当前位置:首页 > C综合复习题
复习题
一、 单选题
1、一个C源程序至少应包括一个( C )。
A、功能函数 B、自定义函数 C、main函数 D、头文件 2、下面全不正确的字符常量是(C)。
A、A p_0 Do B、float la0 _A C、 b-a goto int D、_123 temp INT 3、执行以下语句后b的值是( B )A int a=5,b=6,w=1,x=2,y=3,z=4;
(a=w>x)&&(b=y>z); &&一边为0另一边不算,||一边为1另一边不算 A、6 B、0 C、1 D、4
4、若以下变量均是整型,且num=sum=7 ; 则计算表达式sum=num++,sum++,++num后sum的值为(B ) A、7 B、8 C、9 D、10
5、设a=10,b=4,执行以下赋值语句后,a的值为( A ) a%=b+1
A、0 B、1 C、2 D、3
6、当a=5,b=4,c=2时,表达式a>b !=c的值是( D ) A、5 B、4 C、2 D、1
7、条件“2 C、x<3||x>2&&x<-10 D、x<3&&x>2||x<-10 有交集用&&无交集用|| 8、以下程序的运行结果是( C ) main () { int m=5 ; if(m++>5)printf(“%d ”,m); else printf(“%d”,m--); } A、4 B、5 C、6 D、7 9、以下程序的输出结果是( B ) A、main( ) { int x=2,y=-1,z=2; if(x printf(“%d”,z); } A、3 B、2 C、1 D、0 10、以下对二维数组a的正确说明是( C ) A、int a[3][] B、float a(3,4) C、double a[1][3] D、float a(3)(4) 11、阅读以下程序,当输入数据的形式为:25,13,10 { int x,y,z; scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\\n”,x+y+z); } A、x+y+z=48 B、x+y+z=35 C、x+z=35 D、不确定值 12、以下错误的if语句是( B ) C )。 CR=回车 D A) if(x>y); B) if (x==y) x+=y; C) if (x!=y) scanf(“%d”,&x) ; else scanf(“%d”,&y) D) if (x A) break语句不能用于循环语句和switch语句外的任何其它语句 B) 在switch语句中使用break语句或continue语句的作用相同 C) 在循环语句中使用continue语句是为了结束本次循环,而不是终止循环 D) 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环 14、执行”for(I=1;I++<4; ) ;”后,变量I的值为( A ) C A)3 B) 4 C) 5 D) 不定 15、若int I=10; 执行下列程序后,变量I的正确结果是(B ) D 没有break,不跳出 switch(i) {case 9 : I+=1; case 10 : I+=1; case 11 : I+=1; default : I+=1; } A) 10 B) 11 C) 12 D)13 16、C语言中while 与do-while语句的主要区别是( A ) A、do-while的循环体至少无条件执行一行; B、do-while允许从外部转到循环体内; C、do-while的循环体不能是复合语句; D、while的循环控制条件比do-while的循环控制条件严格 17、下面程序运行的结果是( A )D main() {int y=10;do{y--;} while(--y);printf(“%d”,y--); } A、-1 B、1 C、8 D、0 18、设j为int型变量,则下面for循环语句的执行结果是(B ) for(j=10;j>3;j--) {if(j%3)j--; --j;--j;printf(“%d ”,j);} A、6 3 B、7 4 C、6 2 D、7 3 19、以下建立函数的目的中,正确的说法是( B ) A、提高程序的执行效率 B、提高程序的可读性; C、减少程序的篇幅 D、减少程序文件所占内存 20、若调用一个函数,且此函数中没有return语句,则正确的说法是( A )D A、没有返回值 B、返回若干个系统默认值 C、能返回一个用户所希望的值 D、返回一个不确定的值 21.在C语言中,合法的字符常量是( D) A)‘程序设计’ B)“程序设计” C) C D)‘\\\\’ 22.表示图中坐标轴上阴影部分的正确表达式是( C ) -1 0 1 3 A) -1<=x && 1<=x||x<=3 B) (x<=-1)&&(1<=x||x<=3) C) x<=-1||x>=1&&x<=3 D) !(-1 23.执行int x=2,y=3;后,表达式x=(y==3)的值是( A )B A)0 B)1 C)2 D)3 x 24.在循环结构的循环体中执行break语句,其作用是( C ) A) 结束本次循环,进行下次循环 B) 继续执行break语句之后的循环体中各语句 C) 跳出该循环体,提前结束循环 D) 终止程序运行 25.以下程序运行结果是( B )A 有效长度,不加转义字符 main() {char s[]=“\\’Address\\’” ; printf(%d\\n”, strlen(s)) ; } A) 9 B) 10 C) 11 D) 12 26.以下程序运行结果是( A )C Y=Y+a[X+1] main() {int a[]={2, 4, 6, 8, 10}, y=1, x; for(x=0;x<3;x++) y+=a[x+1]; printf(“%d\\n”, y); } A) 17 B) 18 C) 19 D) 20 27.已定义char x[8]; int i;为了给x数组赋值,以下正确的语句是(A ) D不能给X赋值X【】也不能直接赋值 A) x[8]=”Turbo C”; B) x=”Turbo C”; C) x[]=”Turbo C”; D) for(i=0;i<7;i++) x[i]=getchar(); 28.设int a[][4]={0, 0};则以下错误的描述是(. D ) A) 数组a的每个元素都可得到初值0 B) 二维数组a的第一维大小为1 C) 数组a的行数为1 D) 只有元素a[0][0]和a[0][1]可得到初值0,其余元素得不到初值0 29.以下程序运行结果是(. C ) fun3(int x) {static int a=3; a+=x; return a; } main() {int k=2, m=1, n; n=fun3(k); n=fun3(m); printf(“%d\\n”, n); } A) 3 B) 4 C) 6 D) 9 30.设变量a是整型,f是单精度型,i是双精度型,则表达式10+′a′+i*f值的数据类型为(C ) A) int B) float C) double D) 不确定 31.以下不正确的描述是( D) A) 在函数外部定义的变量是全局变量 B) 在函数内部定义的变量是局部变量 C) 函数的形参是局部变量 D) 局部变量不能与全局变量同名 32.为了避免在嵌套的条件语句 if --- else 中产生二义性,C语言规定:else子句总是与(.B )配对。 A) 缩排位置相同的if B) 其之前最近的if C) 其之后最近的if D) 同一行上的 if 33.以下程序段(C ) x = -1 ; do { x = x * x ; } while ( !x ) ; A)是死循环 B)循环执行两次 C)循环执行一次 D)有语法错误 34.下列各变量均为整型,选项中不正确的C语言赋值语句是( D ) A)i+=++i; B)i=j==k; C)i=j+=i; D)i=j+1=k; 35.以下正确的函数声明形式是(A )C A)double fun (int x, int y ) B)double fun (int x ;int y) C)double fun (int x, int y); D)double fun (int x,y) ; 36.要使以下程序的输出结果为4,则a和b应满足的条件是( A ) main() {int s,t,a,b; scanf(“%d%d”,&a,&b); s=t=1; if(a>0) s += 1; if(a>b) t= s + t; else if(a==b) t=5; else t=2*s; printf(“%d\\n”,t); } A)a>0并且a0并且a>b D)a<0并且a for(i=100;i<200;i++) { if(i%5==0) continue; printf(“%d\\n”,i); break; } } A)100 B)101 C)无限循环 D)无输出结果 38.下列程序段的运行结果是(B ) int i=1,a[]={1,5,10,9,13,7}; while(a[i]<=10) a[i++]+=2; a[i++]=a[i++]+2
共分享92篇相关文档