float price; };
int main() { int i; struct cargo cargo[4]={{1,\ {3,\ for(i=0;i<=2;i+=2) printf(\ return 0; }
A)DVD CD B)CD VCD C)DVD VCD D)DVD BLANK 31.根据下面的定义,能打印出字母‘Z’的语句是 。
struct person { char name[20]; int age; };
struct person class[10]={\A)printf(\ B)printf(\ C)printf(\ D)printf(\32.若有以下定义及语句:
struct s1 { char a[3]; int num; }t,*p; p=&t;
则能正确引用t中的num域的是 。
A)*p.t.num B)p->t.num C)p->num D)(*p).t.num 33.若有以下定义及语句:
struct s1 { char a[3]; int num;
}t={'a','b','c',4},*p; p=&t;
则输出值为c的语句是 。
A)printf(\ B)printf(\ C)printf(\ D)printf(\34.以下程序的运行结果是 。
union u { int k;
41
char c[2]; }u1;
int main() {
u1.c[0]=13; u1.c[1]=0; printf(\ return 0; }
A)13 B)208 C)15 D)130 35.下面关于typedef的说法中不正确的是 。
A)用typedef可以定义各种类型名,但不能用来定义变量 B)用typedef可以增加新类型
C)使用typedef有利于程序的通用和移植 D)用typedef是为已存在的类型取一个别名
二.分析程序写结果
1.运行下面程序,输入为0 1 2 3 4 5 6 7 8 9 时,请给出程序运行结果。
int main() { int arr[10],i,j,temp; printf(\ value of array:\\n\ for(i=0;i<10;i++) scanf(\ for(i=0,j=9;i<=j;i++,j--) { temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } for(i=0;i<10;i++) printf(\ return 0; }
2.请给出程序运行结果。 int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int k,s,i; float ave; for(k=s=i=0;i<10;i++) { if(a[i]%2!=0) continue;
42
s+=a[i]; k++; } if(k!=0) { ave=s/k; printf(\ }
return 0; }
3.请给出程序运行结果。
#define N 7 int main() { int i,j,a[N][N]; for (i=1;i 4.请给出程序运行结果。 int main() { char ch[7]={\ int i,s=0; for (i=0;ch[i]>='0' && ch[i]<='9';i++) s=10*s+ch[i]-'0'; printf(\ return 0; } 5.请给出程序运行结果。 int main() { float x,*f=&x; 43 x=5.17; *f=x+4.83; printf(\ return 0; } 6.请给出程序运行结果。 int main() { int w[10],i,*p; for(i=0;i<10;i++) w[i]=3*i; for(p=w,i=0;p-w<10;p++,i++) *p+=1; printf(\ return 0; } 7.请给出程序运行结果。 int main() { char ch[]=\ printf(\ printf(\ return 0; } 8.请给出程序运行结果。 int main() { int a[4][2]={3,5,7,9,11,13},(*pp)[2]=a+2; printf(\ return 0; } 9.请给出程序运行结果。 int main() { enum team{my,your=4,his,her=his+10}; printf(\ return 0; } 10.请给出程序运行结果。 int x[5]={1,2,3,4,5}; struct { int a; int *b; }*k,t[3]={100,&x[0],200,&x[2],300,&x[4]}; 44 int main() { k=t; printf(\ \ return 0; } 三.阅读程序并填空 1.以下程序的功能是输入一个整数,插入到一个已排好序的数组中,使其仍然有序。请填空。 int main() { int a[10]={2,5,8,10,15,20,28,37}; int x,i,n=8; scanf(\ for(i=n-1;i>=0;i--) if(a[i]>x) else break; n++; for(i=0;i 2.下面程序的功能是输出5*6阶矩阵中值最大的元素值。请填空。 int main() { int i,j,a[5][6],max; for(i=0;i<5;i++) for(j=0;j<6;j++) scanf(\ ); max=a[0][0]; for(i=0;i<5;i++) for(j=0;j<6;j++) if( ) max=a[i][j]; printf(\ return 0; } 3.对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。程序如下,请填空。 int main() { 45