13.以下选项中非法的表达式是 A 。 A) 7.5%2/2 B) x=y=0 C) (char)(66+1) D) ’c’+1 14.下列程序的输出结果是 D 。 void main() { float a=3.2; int b,c; b=1.2; c=(b+3.8)/5.0; printf(“%d\\n”, a*c); } A) 3 B) 3.2 C) 3.07 D) 0 15.C语言中用于结构化程序设计的三种基本结构是 A 。 A) 顺序结构、选择结构、循环结构 B) if, switch, break C) for, while, do-while D) if, for, continue 16. 执行以下程序,输出结果是 D 。 int x, y=3, z=2; x=(--y==z++)?--y:++z; printf(“x=%d y=%d z=%d”,x,y,z); A) x=4 y=2 z=4 B) x=3 y=2 z=3 C) x=4 y=1 z=4 D) x=1 y=1 z=3 17. 已有定义: char a[]=\"abc\以下叙述中正确的是 C A) 数组a和b的长度相同 B) a数组长度小于b数组长度 C) a数组长度大于b数组长度 D)上述说法都不对 18.执行以下程序,输出结果是 C 。 void main() { int x=3,y=4,z=2,i; i=xy; printf(“i=%d z=%d”, i,z); } A) i=0 z=10 B) i=1 z=10 C) i=0 z=2 D) i=1 z=2 19. 用数组名作为函数调用时的实参,实际上传送给形参的是 A A) 数组首地址 B) 数组的第一个元素值 C) 数组中全部元素的值 D) 数组元素的个数 20. 执行如下语句, 输出c的值是 C 。 int c=1, x=3; switch(x+1) { case 4: c++; case 6: c++; break; default: c++; } printf(“%d”, c); A) 1 B) 2 C) 3 D) 4 广东工业大学试卷用纸,共 7 页,第 2 页
21. 若有定义:int a[2][3]; 则对a数组的第i行j列元素的正确引用为A A) *(a[i]+j) B) *(a+i)+j C) *(a+i+j) D) a[i]+j 22.若有如下程序: void main() { int x=1,a=0; do { a++; }while(x,x--); } 则语句a++; 执行的次数是 C 。 A) 0 B) 1 C) 2 D) 无限次 23.以下程序中,while循环的循环次数是 D 。 void main() { int i=0; while(i<10) { if(i<1) continue; if(i==5) break; i++; } „„ } A) 1 B) 10 C) 6 D) 死循环,不能确定次数 24.下面能正确定义一维数组的选项是 B 。 A) int num[]; B) #define N 10 int num[N]; C) int num[0..10]; D) int N=10; int num[N]; 25.在C语言中,函数的隐含存储类别是 C 。 A) auto B) static C) extern D) 无存储类别 26.以下程序的输出结果是 C 。 void main() { char str[20]=”hell\\0o\”; printf(“%d %d\\n”, strlen(str),sizeof(str)); } A) 9 7 B) 7 20 C) 4 20 D) 20 20 27.下列选项中不正确的语句组是 A 。 A) char s[10]; s=“Beijing”; B) char s[ ]=“Beijing”; C) char *s =“Beijing”; D) char *s ; s=“Beijing”; 28.有如下程序, 执行后输出的结果是 C(形参不传给实参) 。 void f(int x, int y) { int t; if(x void main() { FILE *fp; char str[100]; int i=0; if((fp=fopen(“text.txt”, “w” (7) ))==NULL) { printf(“can’t open this file.\\n”); exit(0); } printf(“input a string:\\n”); gets(str); while(str[i]) { if(str[i]>=’a’&&str[i]<=’z’) str[i]= str[i]-32 (8) ; fputc(str[i],fp); i++; } fclose(fp); } 7. 下面程序是对10个数排序(由小到大) #include sum=sum+(*p) (12) ; aver = sum / n; printf(″average=%5.2f\n″,aver);} void main( ) { float score[3][3]={{65,67,70},{80,87,90},{90,99,100}}; average(*score,9) (13) ; /*求9个分数的平均分*/ } 9.执行以下程序,输出结果是 4 (14) 。 void main() { int a=6,b=5,c=4,d=3; if(a>b>c) printf(“%d\\n”,d); else if ((c-1>=d)==1) printf(“%d\\n”, d+1); else printf(“%d\\n”,d+2); } 10.执行以下程序,输出结果是 24 (15) 。 void main() { int a[4][4]={{1,2,-3,-4},{0,-5,-6,7},{-8,9,0,-10},{-11,12,-13,0}}; int i,j,s=0; for(i=0;i<4;i++) for(j=0;j<4;j++) { if(a[i][j]<0) continue; if(a[i][j]==0) break; s+=a[i][j]; } printf(”%d\\n”,s); } 11.执行以下程序,输出结果是 125 (16) 。 void fun(int x) { if(x/2>0) fun(x/2); printf(“%d”, x); } void main() { fun(5); } 12.执行以下程序,输出结果是 357 (17) 。 void fun() { static int a=1; a+=2; printf(“%d”,a); } void main() { int c; for (c=1; c<4; c++) fun(); printf(“\\n”); } 13.执行以下程序,输出结果是 6 (18) 。 广东工业大学试卷用纸,共 7 页,第 6 页 void main() { int x[8]={1,2,3,4,5,6,0,0}, *s; s=x+3; printf(“%d\\n”, s[2]); } 14.执行以下程序,输出结果是 2,1 (19) 。 void swap( int *pt1, int *pt2) { int p; p=*pt1; *pt1=*pt2; *pt2=p; } void main( ) { int a=1, b=2, *p1, *p2; p1=&a; p2=&b; if (*p1<*p2) swap(p1, p2); printf(“%d, %d\\n”, a,b); } 15.执行以下程序,输出结果是 4 (20) 。 void main() { int a[4][4]={ {10,2,3,4}, {1,6,7,8}, {19,10,11,12}, {1,14,15,16} }; int (*p)[4], i; p=a; printf(“%d”, *(p+2)-*(p+1)); } 广东工业大学试卷用纸,共 7 页,第 7 页 因篇幅问题不能全部显示,请点此查看更多更全内容