C语言控制语句题库.doc_第1页
C语言控制语句题库.doc_第2页
C语言控制语句题库.doc_第3页
C语言控制语句题库.doc_第4页
C语言控制语句题库.doc_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 控制语句一、选择题1. 以下语句中无限循环语句是 。A)for(;2&5;); B)while(1,2,3); C)while(0); D)for(;0;);答案:B2. 若有程序段如下:a=b=c=0;x=35;if(!a)x-;else if(b);if(c)x=3;else x=4;执行后,变量x的值是( )A34 B4 C35 D3答案:B3. 下列if语句中,不正确的是( ) Aif (xy)scanf (“%d”,x) else scanf (“%d”, y); Bif (xy); Cif (x=y)x+=y; Dif (xy)x+;y+;答案:A4. 若有int x,y;,执行程序段:for(x=1,y=1;y=10)break;if(x%2=1)x+=5;continue;x-=3;变量x的值最终为( ) A11 B12 C13 D10答案:D5. 若有int x=3;,执行程序段:doprintf(%3d,x-=2);while(!(-x);输出的结果是( )A1 3 B1 -1 C1 -2 D1 -3答案C6. 有程序段:int a;for (scanf (“%d”,&a);!a;) printf (“continue”);则for语句中的!a等价于( )。(A)a!=0 (B)a= =0 (C)a0 (D)a=0答案:(B)7. 有如下程序段:int x=1,y=1;int m,n;m=n=1;switch (m)case 0:x=x*2;case 1:switch (n)case 1:x=x*2;case 2:y=y*2;break;case 3:x+; case 2:x+;y+;case 3:x*=2;y*=2;break;default:x+;y+;执行完成后,x和y的值分别是( )。(A)x=6 y=6 (B)x=2 y=1 (C)x=2 y=2 (Dx=7 y=7答案:(A)8. 以下描述不正确的是 。A使用while和do-while循环时,循环变量初始化的操作应在循环体语句之前完成Bwhile循环是先判断表达式,后执行循环语句Cdo-while 和for循环均是先执行循环语句,后判断表达式Dfor、while 和do-while循环中的循环体均可以由空语句构成答案:C9. 若x是int型变量,以下程序的输出结果是 。for (x=3;x6;x+) printf (x%2)?(“*%d”):( “#%dn”),x);printf (“n”);A* * 3 B# # 3 C# # 3 D* * 3 # # 4 # # 4 * * 4 * * 4# # 5 * * 5 * * 5 # # 5答案:D10.与“for (i=0;i10;i+)putchar (a+i);”功能不同的语句是 。A)for (i=0;i10;)putchar (a+(+i);B)for (i=0;i10;) putchar (a+(i+);C)for (i=0;i10;putchar (a+i),i+);D)for (i=0;i=9;i+)putchar (a+i);答案:A11.循环控制语句“while (!scanf (“%d”,&i)getchar ( );”执行的情况是 。A)循环输入字符,遇文件结束符EOF退出 B)循环条件有错,不能执行 C)若输入数据i有错,暂停等待处理 D)键入i值后,回车退出循环答案:A12. 已知x=3、y=2,则表达式 x*=y+8的值为 。A)3 B)2 C)30 D)10答案:C13. 设x为int型变量,则执行以下语句后,x的值为 。x=10;x+=x- =x-x;A)10 B)20 C)40 D)30答案:B14. 在下列描述中,正确的一条是 。A)if (表达式)语句中,表达式的类型只限于逻辑表达式B)语句“goto 12;”是合法的C)for(;)语句相当于while(1)语句 D)break语句可用于程序的任何地方,以终止程序的执行答案:C15. 下面程序的输出结果是 。#include void main( )int i,j,m=0,n=0;for (i=0;i2;i+)for (j=0;j=i)m=1;n+;printf(%dn,n);A)4 B)2 C)1 D)0答案:C16. 若输入字符串:abcde,则以下while循环体将执行 次。While (ch=getchar ( )= = e )printf( * );A)4 B)5 C)0 D)任意答案:C17. 设j为int型变量,则下面for 循环语句的执行结果是 。for (j=10;j3;j-)if (j%3)j-;-j;-j;printf (%d,j); A)6 3 B)7 4 C)6 2 D)7 3答案:B18. 以下循环体的执行次数是 。#include void main()int i,j;for (i=0,j=1;i=j+1;i+=2,j-)printf (%dn,i); A)3 B)2 C)1 D)0答案:C19. 以下程序的输出结果是 。#include void main( ) int a=-1,b=1,k;if(+a0)&!(b-=0) printf(%d %dn,a,b);else printf(%d %dn, b, a);A)-1 1 B)0 1 C)1 0 D)0 0答案:C20. 下面程序的功能是输出以下形式的金字塔图案:* * * * * * * * * * * * *#include void main( )int i,j;for(i=1;i=4;i+)for(j=1;j=4-i;j+)printf( );for(j=1;j= ;j+)printf(*);printf(n );在下划线处应填入的是 。A)i B)2*i-1 C)2*i+1 D)i+2答案:B21. 以下程序的输出结果是 。#include void main( ) int i;for(i=1;i100)break; while(k=10000); 答案:C23. 运行下面的程序:#include void main( ) char c6;int i=0;for(;i6;ci=getchar( ),i+);for(i=0;i6;i+)putchar(ci);printf(n);如果从键盘上输入: ab c def则输出结果为 。A)a B)a C)ab D)avcdef b b c c c d d d e f答案:C24. 下面程序的输出结果是( )。#include void main( ) int x=5,a=0,b=0;if(x!=(a+b) printf(x=5n);else printf(a=b=0n);A)有语法错,不能通过编译 B)通过编译,但不能连接C)x=5 D)a=b=0答案:A25. 当输入为”right?”时,下面程序的执行结果是( )。#include void main( ) char c;c=getchar( );while(c=getchar()!=?)putchar(+c);A)Right B)jhiuC)right D)sjhiu?答案:B26. 下面程序的输出结果是( )。#include void main( )int x=3;doprintf(%3d,x+=1);while(-x);A)4 B)4 4C)4 4 4 D)死循环答案:D27. 若变量已正确定义,要求程序段写成5!的计算,不能完成此操作的程序段是( )。A)for(i=1,p=1;i=5;i+) p*=i; B)for(i=1;i=5;i+)p=1;p*=i; C)i=1;p=1;while(i=5)p*=i;i+; D)i=1;p=1;dop*=i;i+;while(i=5);答案:B28. 有以下程序#include void main( ) int i=1,j=2,k=3;if(i+=1&(+j=3|k+=3) printf(%d %d %dn,i,j,k);程序运行后的输出结果是 (2005年4月)(A)1 2 3 (B)2 3 4 (C)2 2 3 (D)2 3 3答案:D29. 有如下程序#include void main( ) int i,sum;for(i=1;i=3;sum+) printf(%dn,sum);该程序的执行结果是 。(A)6 (B)3 (C)死循环 (D)0答案:C30. 运行以下程序后,如果从键盘上输入china#,则输出结果为 。A)2,0 (B)5,0 (C)5,5 (D)2,5#include void main( ) int v1=0,v2=0;char ch;while (ch=getchar( )!= #)switch (ch) case a:case h:default:v1+;case 0:v2+;printf(%d,%dn,v1,v2);答案:C31. 下面程序运行结果是 。#include void main() int a,b,c,d,x;a=c=0;b=1;d=20;if(a) d=d-10;else if(!b)if(!c)x=15;else x=25;printf(%dn,d);(A)20 (B)25 (C)15 (D)10答案:A32. 写出下列程序的运行结果 。#include void main() int k=0;char c=A;do switch(c+)case A:k+;break;case B:k-;case C:k+=3;break;case D:k=k%2;continue;case E:k=k*6;break;default:k=k/4;k+;while (cG);printf(k=%dn,k);(A)2 (B)k=2 (C)k=3 (D)k=6答案:B33. 定义:int x=7,y=8,z=9;后,则下面表达式为0的是 。A) x & y B)x=yC)x|y+z&y-z D)!(xy) &!z|1)答案:D34. 若w=1,x=2,y=3,z=4,则条件表达式wx?w:yz?y:z的值是 。A)4 B)3 C)2 D)1答案:D35. 以下程序:#include void main() int w=4,x=3,y=2,z=1;printf(%dn,(wx?w:zy?z:x);其输出结果是A)1 B)2 C)3 D)4答案:A)36. 若a和b均是正整数变量,正确的switch语句是A)switch(pow(a,2)+pow(b,2) (注:调用求幂的数学函数)case 1:case 3:y=a+b;break;case 0:case 5:y=a-b;B)switch(a*a+b*b) case 3:case 1: y=a+b;break;case 0: y= b - a;break;C)switch a default:x=a+b;case 10: y=a-b;break;case 11: x=a*d;break;D)switch (a+b) case 10: x=a+b;break;case 11: y=a-b;break;答案:D)37. 对以下程序:#include void main() int c;while(c=getchar()!=n) switch(c-2) case 0:case 1:putchar(c+4);case 2:putchar(c+4);break;case 3:putchar(c+3);default:putchar(c+2);break;printf(n);从第一列开始输入数据:2473(代表回车符),程序的输出结果是A)668977 B)668966 C)66778777 D)6688766答案:A)38. 以下程序:#include void main() int n2=0, i,j,k=2;for(i=0;ik;i+)for(j=0;jk;j+) nj=ni+1;printf(%dn,nk);其输出结果是A)不确定的值 B)3 C)2 D)1答案:A)39. 有以下程序#include void main() int i=1,j=1,k=2;if(j+|k+)&i+) printf(%d,%d,%dn,i,j,k);执行后输出结果是 。A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3答案:C40. 以下程序的输出结果是 。#include void main() int a= -1,b=1,k;if(+a0)&!(b-=0)printf(%d %dn,a, b);elseprintf(%d %dn,b, a);A)-1 1 B)0 1 C)1 0 D)0 0答案:C41. 阅读以下程序:#include void main() int x;scanf (%d,&x);if (x-5) printf(%d,x);else printf(%d,x+);程序执行后,如果从键盘上输入5,则输出结果是 。(2001年9月)A)3 B)4 C)5 D)6答案:B42. 以下程序的输出结果是 。#include void main() int n=4;while(n-) printf(%d,-n);A)2 0 B)31 C)321 D)210答案:A43. 设有以下定义int a=0;double b=1.25;char c= A#define d 2则下面语句中错误的是 。A)a+; B)b+; C)c+; D)d+;答案:D44. 有以下程序#include void main() int a=3,b=4,c=5,d=2;if(ab)if(bc)printf(%d,d+1);else printf(%d,+d+1);printf(%dn,d);程序运行后的输出结果是 。(2004年9月)A)2 B)3 C)43 D)44答案:A45. 下列条件语句中,功能与其他语句不同的是 。A)if(a) printf(%dn,x);else printf(%dn,y); B)if(a=0) printf(%dn,y);else printf(%dn,x);C)if(a!=0) printf(%dn,x);else printf(%dn,y);D)if(a=0) printf(%dn,x);else printf(%dn,y);答案:D46. 有以下程序#include void main() int i;for(i=0;i3;i+)switch(i)case 1:printf(%d,i);case 2:printf(%d,i);default:printf(%d,i);执行后输出结果是 。A)011122 B)012 C)012020 D)120答案:A47. 有以下主程序#include void main() int a=15,b=21,m=0;switch(a%3)case 0:m+;break;case 1:m+;switch(b%2)default:m+;case 0:m+;break;printf(%dn,m);程序运行后的输出结果是 。A)1 B)2 C)3 D)4答案:A48. 以下程序的功能是:按顺序读入10名学生4门功课的成绩,计算出每位学生的平均分并输出。程序如下:#include void main()int n,k;float score,sum,ave;sum=0.0;for(n=1;n=10;n+)for(k=1;k=4;k+)scanf(%f,&score);sum+=score;ave=sum/4.0;printf(No%d:%fn,n,ave);上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是 。A)sum=0.0; B)sum+=score; C)ave=sum/4.0; D)printf(“NO%d:%fn”,n,ave);答案:A49. 有以下程序#include void main() int i,n=0;for(i=2;i5;i+)do if(i%3) continue;n+;while(!i);n+;printf(n=%dn,n);程序执行后输出结果是 。A)n=5 B)n=2 C)n=3 D)n=4答案:D50. 执行下面的程序后,a值为 。#include void main( ) int a,b;for(a=1,b=1;a=5) break;if(b%3=1) b+=3;continue;b-=5;printf(%d,b);A)7 B)8 C)9 D)10答案:A51. 若有以下定义:float x;int a,b;则正确的switch语句是 。A)switch(x) B)switch(x) case 1.0:printf(“*n”); case 1,2:printf(“*n”); case 2.0:printf(“*n”); case 3: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”); 答案:C52. 执行下面程序段的结果是 。#include void main( ) int x=23;doprintf(%2d,x-);while(!x);A)打印出321 B)打印出23 C)不打印任何内容 D)陷入死循环答案:B53. 下面程序的输出是 。#include void main( ) int x=3,y=6,a=0;while(x+!=(y-=1)a+=1;if(yx)break;printf(x=%d,y=%d,a=%dn,x,y,a);A)x=4,y=4,a=1 B)x=5,y=5,a=1 C)x=5,y=4,a=3 D)x=5,y=4,a=1答案:D54. 下面程序段的运行结果是 。int n=0;while (n+=2);printf (%d,n);A)2 B)3 C)4 D)有语法错误答案:C55. 已知x、a、b、c、d均为int型变量,则执行如下程序段后,m的值是_。a = 1; b = 2; c= 3; d = 4;x = (ab) ? a : b;x = (ac) ? a : c;x = (ad) ? a : d;A)4 B)3 C)2 D)1答案:D56. 若有以下定义语句float x; int a,b;则以下正确是_。A)switch(x) B)switch(x) case 1.0: printf(“*”); case 1,2: printf(“*”);case 2.0: printf(“* *”) ; case 2: printf(“*”) ; C)switch(a+b) D)switch(a) case 1: printf(“*”); case 1,2: printf(“*”);case 2: printf(“* *”) ; case 2: printf(“*”) ; 答案:C57. 运行下列程序段后x的值是_。int a,b,c,x;a = 0; b = 0; c= 0; x = 7;if (!a) x-; else if (b);if(c) x=3; else x=4;A)4 B)6 C)7 D)3答案:A58. 运行下列程序段后x的值是_。int a,b,c,d;a = 1; b = 7; c= 15; d = 10;if (ab) x-; if(cd) x=1;else if (ac)if(bd) x=2else x=3;else x=6;else x=7;A)1 B)2 C)6 D)7答案:B59. 如下程序的输出结果是_。#include void main()int a,b,c,d;a = 2; b = -6; c= 5;if (ab) if(b0) c=0; else c+;printf ( %d n, c);A)0 B)1 C)5 D)6答案:C60. 以下五条语句中有_是合法的。if (a=b) x+; if (a=b) x+; if (a-b) x+; if (a=b=c) x+; if(1) x+;A)1 B)2 C)3 D)4答案:D61. 以下结论中正确的是_。A)break语句是switch语句中的一部分B)switch语句中可以根据需要使用或不使用break语句C)break语句只能用于循环结构中D)以上三个结论中没有一个正确答案:B62. 运行下列程序段后x的值是_。int a=10;switch (a)case 9: a+;case 10: a+;case 11: a+;default: a+;A)11 B)12 C)13 D)10答案:C63. 关于以下三条语句的描述中,正确的是_。 if(a) a=1;else a=2; if(a= =0) a=2;else a=1; if(a!=0) a=1;else a=2;A)三条语句相互等效 B)三条语句中与等效C)三条语句中与等效 D)三条语句各不等效答案:A64. 如下程序的输出结果是_。#include 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=1 , b=2答案:A65. 下面的4段程序都试图求解整数1一l0的和,不能满足要求的是_。A)#include B)#include void main() void main() int i,sum;int i,sumfor(i =1,sum=0;i=10;+ i)i =1,sum=0; sum+= i;for( ; i=10;)printf( i=%d sum=%dn ,i,sum);sum+=i+; printf(i=%d sum=%dn ,i,sum); C)#include B)#include void main()void main() int i,sum;int i,sumi =1,sum=0;i =1,sum=0; for(;i=10;+i,sum=sum+i);for( ; i=10; sum=sum+i;+i)printf(i=%d sum=%dn,i,sum); printf(i=%d sum=%dn,i,sum);答案:C66. 下面程序的运行结果为_。#include void main()int i,sum;i=1,sum=0;for (;i=10;)+i;sum=sum+i;printf(i=%d sum=%dn,i,sum);A) i=11,sum=55 B) i=10,sum=55C) i=11,sum=11 D) 形成死循环答案:C67. 下面程序的运行结果为_。#include void main()double sum=0.0,x;for(x=0.0;x!=3.0;x+=0.1)sum+=x;printf(n x=%f, x);A) x=3.0 B) x=2.0C) 会提示出错 D)形成死循环答案:D68. 下面程序的运行结果为_。#include void main()int sum=0,x;for(x=0;x!=3;x+=1)sum+=x;printf(n x=%d, x=%d ,x,sum);A) x=3, sum=3B) x=2, sum=3C) 会提示出错D)形成死循环答案:A69. 定义如下变量int n=10;则下列循环的输出结果是_。while(n=7)n-;printf(“%dn”,n); A)10 B)9 C)10 D)9 9 8 9 8 8 7 8 7 7 6 答案:B70. 有以下程序段,w和k都是整型变量,则不能与它等价的循环语句是_。w=k;A: if(w=0) goto B;w-;printf(*);goto A;B:printf(f);A)for(w=k;w!=0;w-) printf(“*”);B)w=k; while(w-!=0) printf(“*”); w+C)w=k; dow-;printf(“*”);while(w!=0);D)for(w=k;w;-w) printf(“*”);答案:C71. 若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是_。for(i=6;i;i-)for(j=0;j5;j+)A)25 B)30 C)36 D)死循环答案:B72. 设x和y为int型变量,则执行下面的循环后,y的值为_。for(y=1,x=1;y=10) break;if (x%2=1) x+=5; continue;x-=3;A)2 B)4 C)6 D)8答案:C73. 设a和b为int型变量,则执行下而的循环后,b的值为_。a=1; b=10;do b-=a; a+;while(b-10)A)-1 B)-2 C)8 D)9答案:C74. 当执行以下程序段时_。x=-1;do x=x*x;while(!x)A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)会提示有语法错误答案:A75. 以下叙述正确的是_。A)do-while语句构成的循环不能用其它语句构成的循环代替B)do-while语句构成的循环只能用break语句退出C)用do-while语句构成的循环,在while后的表达式为非0时结束循环D)用do-while语句构成的循环,在while后的表达式为0时结束循环答案:D76. 在以下程序段中,while循环招待的次数是_。int k=0;while(k=1) k+;A)循环体将执行一次 B)循环体将一次也不执行C)循环体将执行无限次 D)会提示有语法错误答案:C77. 以下程序执行后,sum的值是_。#include void main()int n,sum;for(n=1;n6;n+)sum+=n;printf(%dn,sum);A)15 B)14 C)0 D)不确定答案:D78. 以下程序执行后,输出结果是_。#include void main()int n=0;while(n=2)n+;printf(%dn,n); A)1 B)1 C)2 D)2 2 2 3 3 答案:A79.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是_。A)k%2 B)k%2=1 C)(k%2)!=0 D)!k%2=1答案:D80.有以下程序#include void main() int k=5,n=0;while(k0) switch(k) default : break;case 1 : n+=k;case 2 :case 3 : n+=k;k-;printf(%dn,n);程序运行后的输出结果是_。A)0 B)4 C)6 D)7答案:D81.有以下程序#include void main()int i=1,j=2,k=3;if(i+=1&(+j=3|k+=3)printf(%d %d %dn,i,j,k);程序运行后的输出结果是_。A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 3答案:D82.若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式ab?a:cd?c:d的值是_。A)1 B)2 C)3 D)4答案

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论