C语言5、6章测试题(参考)
- 格式:doc
- 大小:73.50 KB
- 文档页数:9
C语言第4、5章测试题一、单选题: (1.5分/题,共30题,30分)1、以下循环体的执行次数是:A) 3 B) 2 C) 1 D) 0void main(){ int i, j ;for ( i=0;j=1; i ) ;}2、以下叙述正确的是A) do-while语句构成的循环不能用其它语句构成的循环来代替。
B) do-while语句构成的循环只能用break语句退出。
C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D) 用do-while语句构成的循环,在while后的表达式为零时结束循环。
3、若有定义: float w; int a, b; 则合法的switch语句是A) switch(w) B) switch(a);{ case 1.0: printf("*\n"); { case 1 printf("*\n");case 2.0: printf("**\n"); case 2 printf("**\n");} }C) switch(b) D) switch(a+b){ case 1: printf("*\n"); { case …1‟: printf("*\n");default: printf("\n"); case …2‟: printf("**\n");ase 1+2: printf("**\n"); default: printf("\n");} }4、有如下程序void main(){ int x=1,a=0,b=0;switch(x){ case 0: b++ ;case 1: a++ ;case 2: a++;b++;}printf(“a=%d,b=%d\n”,a,b);}该程序的输出结果是:A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=25、有如下程序void main(){ int i ;sum;for(i=1; printf(“%d\n”,sum);)该程序的执行结果是:A} 6 B) 3 C) 死循环D) 06、有如下程序void main(){ int x=23;do { printf(“%d”, x--); } while(!x);}该程序的执行结果是:A) 321 B) 23 C) 不输出任何内容D) 陷入死循环7、有如下程序void main0{ int n=9;while(n>6) { n--;printf(“%d”,n); }}该程序段的输出结果是:A) 987 B) 876 C) 8765 D) 98768、若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是A) swich(a+b); B) switch(a*a+b*b){ case 1:y=a+b; break; { case 3:case 0:y=a-b; break; case 1:y=a+b; break;case 3:y=b-a, break; }}C) switch a D) switch(a-b){ case c1 :y=a-b; break; { default:y=a*b;breakcase c2: x=a*d; break ; case 3:case 4:x=a+b;breakdefault:x=a+b; case 10:case 11:y=a-b;break;} }9、有以下程序段,while 循环执行的次数是int k=0while(k=1) k++;A)无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次10、有以下程序段int x=3do { printf("%d",x-=2); } while (!(--x));其输出结果是:A) 1 B) 3 0 C) 1 -2 D) 死循环11、若有以下定义:float x;int a,b; 则正确的switch 语句是A)switch(x) B)switch(x){ case1.0:printf("*\n"); { case1,2:printf("*\n");case2.0:printf("**\n"); case3:printf("**\n");} }C)switch (a+b) D)switch (a+b);{ case 1:printf("\n"); { case 1:printf(."*\n");case 1+2:printf("**\n"); case 2:printf("**\n");} }12、若int a=1,b=10;则执行以下语句后b的值为do{ b-=a; a++; }while (b-- );A) 9 B) -2 C) -1 D) 813、设j为int型变量,则下面for循环语句的执行结果是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 314、以下程序的输出结果是:A)10 1 9 2 B)9 8 7 6 C)10 9 9 0 D)10 10 9 1void main( ){ int x=10,y=10,i;for(i=0;x8;y=++i)printf("%d,%d ",x--,y);}15、以下程序的输出结果是:A)-1 1 B)0 1 C)1 0 D)0 0void main( ){ int a= -1,b=1,k;if (++a ) printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}16、在C语言中,if 语句后的一对圆括号中,用以决定分支的流程的表达式A)只能用逻辑表达式 B)只能用关系表达式C)只能用逻辑表达式或关系表达式 D)可用任意表达式17、在以下给出的表达式中,与do...while(E)语句中的(E)不等价的表达式是A)(!E == 0) B)(E >0|| E< 0) C)(E == 0) D)(E != 0)18、在C语言中,switch语句后一对圆括号中表达式的类型A)可以是任何类型 B)只能是基本类型C)只能是整型或字符型 D)只能是整型或实型19、有以下程序void main(){ int I;for(I=0;I<3;I++)switch(i){ case 1: printf(“%d”,i);case 2: printf(“%d”,i);default: printf(“%d”,i);}}执行后输出结果是:A)011122 B)012 C)012020 D)12020、有以下程序void main(){ int a=5,b=4,c=3,d=2;if(a>b>c)printf(“%d\n”,d);else if ((c-1>=d)= =1)printf(“%d\n”,d+1);elseprintf(“%d\n”,d+2);}输出结果是:A)2 B) 3 C) 4 D) 编译时有错,无结果二、判断题(2分/题,共20分)1、关系运算比算术运算级别低。
2、关系运算的功能是起判断作用,故无结果。
3、若a=5, b=5 执行表达式(a-b)&&(a=3)&&(b=9)后,a=3, b=94、若ch=‘c’,则执行swich语句后,输出结果为:60≤成绩<70分! 成绩<60分!swicth(ch){ case‘a’: printf(“成绩≥85分!”);case‘b’: printf(“70≤成绩<85分!”);case‘c’: printf(“60≤成绩<70分!”);default: printf(“成绩<60分!”);}5、下列程序段的功能是: 输出所有的能被7整除的数。
for( i=m; i<=n; i++){ if( i%7= =0) continue;printf(“%d ”,i ) ;}6、if(++j%10= =0) printf(“\12”); 该语句的功能是:输出10个12。
7、程序只要经编译后无任何错误,结果肯定正确。
8、tc是一个dos下的文本编辑器。
9、if(x>=0)if(x>0) printf(“%d”,x);else printf(“%d”,x);在该题中,当x<0时,执行else语句。
10、while(x.>0) ;printf(“%d”,x);当x.>0或x<=0时,输出x的值。
三、填空题:(2分/空,共25空,50分)1、若有程序void main(){ int i , j;scanf(“i=%d,j=%d”,&i,&j) ;printf("i=%d,j=%d\n", i,j);}要求给i赋值10,给j赋值20,则应从键盘输入【1】2、写出能求出多项式:5X7 + 3X6 + 4X5 + 2X4 + X3 - 6X2 + X + 10的语句【2】(只含八次乘法运算,其余皆为加、减运算)。
3、在C语言中,表示逻辑值“真”用【3】,表示逻辑值“假”用【4】。
4、若已知a=10,b=15,c=1,d=2,e=0,请分别给出以下表达式的运算结果。
a++&&e++&&c++ 【5】 !0||d&&a==c+d 【6】1.234&&5.982 【7】 c==b>e 【8】5、当a=1时,c=【9】。
c = a ? (printf("***\n"),++a):(printf(###\n"),--a);6、当a=3,b=2, c=1时,执行以下if语句后 a,b,c分别为【10】。
if (a > c) b = a, a = c; c = b;7、当a=3,b=2, c=1时,执行以下if语句后 a,b,c分别为【11】。
if (a > c) b = a; a = c; c = b;8、将以下两条if 语句合并成一条if 语句【12】if (a > b) scanf("%d",&x);else scanf("%d",&y);if (a <= b) i++;else j++;9、将以下语句改写成switch 语句【13】if (s < 60) m = 1;else if(s < 70) m = 2;else if(s < 80) m = 3;else if( s < 90) m = 4;else if( s <= 100) m = 5;10、以下程序判断输入的一个整数是否能被3或7整除,若能整除,输出“YES”,若不能整除,输出“NO”。