c语言选择结构试题带答案_第1页
c语言选择结构试题带答案_第2页
c语言选择结构试题带答案_第3页
c语言选择结构试题带答案_第4页
c语言选择结构试题带答案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、一、 选择题1. 以下非法的赋值语句是A: n=(i=2,+i);B: j+;C: +(i+1);D: x=j>0;2. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2 的值是A: 6B: 0C: 2D: 13. 阅读以下程序: main() int x;scanf(“%d”,&x);if(x-<5) printf(“%d”,x);else printf(“%d”,x+);程序运行后,如果从键盘上输人5,则输出结果是( )。A: 3B: 4C: 5D: 64. 有如下程序main0 int a=2,b=-1,c=2

2、;if(a<b)if(b<0) c=0;else c+printf("%dn",c);该程序的输出结果是A: 0B: 1C: 2D: 35. 有以下程序#include <stdio.h>main() int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%dn",a,b);输出结果是( )。A: 2,1B: 3,2C: 4,3D: 2,-16. 两次运行下面的程序,如果从键盘上分别输入6 和4,则输出结果是main( ) int x;scanf("%d"

3、;,&x);if(x + + >5) printf("%d",x);else printf("%dn",x - -); A: 7 和5B: 6 和3C: 7 和4D: 6 和4 7. 能表示x 为偶数的表达式是A: x%2=0B: x%2=1C: x%2D: x%2!=0 8. 下面的程序段中共出现了几处语法错误?int a,b;scanf("%d",a);b=2a;if(b>0) printf("%b",b);A: 1B: 2C: 3D: 4 9. C 语言中,逻辑“真”等价于A: 大于零的数

4、B: 大于零的整数C: 非零的数D: 非零的整数 10. C 语言的 switch 语句中,case 后A: 只能为常量B: 只能为常量或常量表达式C: 可为常量及表达式或有确定值的变量及表达式D: 可为任何量或表达式 11. 已知int i=10;表达式"20-0<=i<=9"的值是A: 0B: 1C: 19D: 20 12. 设有int i, j, k; 则表达式i=1,j=2,k=3, i&&j&&k 的值为A: 1B: 2C: 3D: 0 13. 逻辑运算符两侧运算对象的数据类型A: 只能是0 或1B: 只能是0 或非0

5、正数C: 只能是整型或字符型数据D: 可以是任何类型的数据 14. 能正确表示“当x 的取值在1,10和200,210范围内为真,否则为假”的表达式是( )A: (x>1)&&(x<10)&&(x>200)&&(x<210)B: (x>1)|(x<10)|(x>200)|(x<210)C: (x>1)&&(x<10)|(x>200)&&(x<210)D: (x>1)|(x<10)&&(x>200)|(x<

6、210) 15. 已知x43,cha,y0;则表达式(x>y&&ch<b&&!y)的值是( )A: 0B: 1C: 语法错误D: 假 16. 执行下列语句后a 的值为int a5,b6,w1,x2,y3,z4;(aw>x)&&(by>z);A: 5B: 0C: 2D: 1 17. 以下程序的输出结果是( )main() int a5,b0,c0;if(ab+c) printf(“*n”);else printf(“$n”);A: 有语法错误不能通过编译B: 可以通过编译但不能通过连接C: *D: $ 18. 以下程序的输出

7、结果是( )main() int m5;if(m+>5) printf(“%dn”,m);else printf(“%dn”,m);A: 4B: 5C: 6D: 7 19. 若运行时给变量x 输入12,则以下程序的运行结果是( )main() int x,y;scanf(“%d”,&x);yx>12?x+10:x12;printf(“%dn”,y);A: 0B: 22C: 12D: 10 20. 若w1,x2,y3,z4,则表达式w<x?w:y<z?y:z 的值是A: 4B: 3C: 2D: 1 21. 设有int a2,b;则执行ba&&1;语

8、句后,b 的结果是A: 0B: 1C: 2D: 3 22. 设有int m1,n2;则+mn 的结果是A: 0B: 1C: 2D: 3 23. 设有int n2;则+n+14 的结果是A: trueB: falseC: 1D: 0 24. 设有int n2;则+n+14,n 的结果是A: 1B: 2C: 3D: 4 25. 以下使i 的运算结果为4 的表达式是A: int i0,j0; (i3,(j+)+i);B: int i1,j0; ji(i3)*2);C: int i0,j1; (j1)?(i1):(i3);D: int i1,j1; i+j+2; 26. 当a=5,b=2 时,表达式a

9、= =b 的值为A: 2B: 1C: 0D: 5 27. 若执行以下程序时从键盘上输入9,_则输出结果是main() int n;scanf("%d",&n);if(n+<10) printf("%dn",n);else printf("%dn",n-);A: 11B: 10C: 9D: 8 28. main() int a,b,d241;ad/100%9;b(1)&&(1);printf(“%d,%d”,a,b);A: 6,1B: 2,1C: 6,0D: 2,0 29. 若有int x10,y20,z3

10、0;以下语句执行后x,y,z 的值是( )if (x>y)zx;xy;yz;A: x10,y20,z30B: x20,y30,z30C: x20,y30,z10D: x20,y30,z20 30. 下列表达式中能表示a 在0 到100 之间的是A: a>0&a<100B: !(a<0|a>100)C: 0<a<100D: !(a>0&&a<100) 31. 为了避免嵌套的ifelse 语句的二义性,C 语言规定else 总是与( )组成配对关系。A: 缩排位置相同的ifB: 在其之前未配对的ifC: 在其之前未配对的

11、最近的ifD: 同一行上的if 32. 已知:int x,a,b;下列选项中错误的if 语句是A: if(a=b) x+;B: if(a<=b) x+;C: if(a-b) x+;D: if(x) x+; 33. 当把以下四个表达式用作if 语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( )。A: k%2B: k%2=1C: (k%2)!=0D: !k%2=1 34. 设有定义:int a=2,b=3,c=4;,则以下选项中值为0 的表达式是( )。A: (!a=1)&&(!b=0)B: aC: a && bD: a|(b+b)&

12、;&(c-a) 35. 以下程序段的输出结果是。int a=10,b=50,c=30;if(a>b)a=b;b=c;c=a;printf("a=%d b=%d c=%dn",a,b,c);A: a=10 b=50 c=10B: a=10 b=30 c=10C: a=50 b=30 c=10D: a=50 b=30 c=50 36. 以下4 个选项中,不能看作一条语句的是A: ;B: a=0,b=0,c=0;C: if(a>0);D: if(b=0) m=1;n=2; 以下题目为二级题37. if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的

13、叙述中正确的是 A)必须是逻辑值 B)必须是整数值C)必须是正数 D)可以是任意合法的数值38. 有以下程序段 int i,n;for(i=0;i<8;i+)n=rand()%5;switch (n) case 1:case 3:printf("%dn",n); break;case 2:case 4:printf("%dn",n);continue;case 0:exit(0);printf("%dn",n);以下关于程序段执行情况的叙述,正确的是A)for循环语句固定执行8次B)当产生的随机数n为4时结束循环操作C)当产生的

14、随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行39.有以下程序#include <stdio.h>main() int x=1,y=0;if(!x) y+;else if(x=0)if (x) y+=2;else y+=3;printf("%dn",y);程序运行后的输出结果是A)3 B)2 C)1 D) 040.有以下程序#include <stdio.h>int fun (int x,int y) if(x!=y) return (x+y)/2);else return (x);main() inta=4,b=5,c=6;p

15、rintf("%dn",fun(2*a,fun(b,C);程序运行后的输出结果是A)3 B)6 C)8 D)1241. 有以下程序:#include <stdio.h>main()int a=0,b=0,c=0,d=0;if(a=1) b=1;c=2;else d=3;printf("%d,%d,%d,%d",a,b,c,d);程序输出( ).A)1,1,2,0B)0,0,0,3C)编译有错D) 0,1,2,042. 有以下程序:#include <stdio.h>main()int x=1,y=0,a=0,b=0;switch(

16、x) case 1: switch(y) case 0: a+; break; case 1: b+; break;case 2 : a+; b+; break;case 3: a+; b+;printf("a=%d,b=%dn",a,b);A) a=2,b=2B) a=2,b=1C) a=1,b=1D) a=1,b=043. 若有定义int x, y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x+) : (y+)中的条件表达式(x-y) 等价的是( ) A) (x-y<0|x-y>0)B) (x-y<0)C) (x-y>0)D)(x-

17、y=0)44 .有以下程序: #include <stdio.h>main()int x=1,y=0;if ( !x ) y+;else if (x=0)if(x) y+=2;else y+=3;printf("%dn",y);程序运行后的输出结果是( )A) 3B) 2C) 1D) 045. 若有定义: float x=1.5; int a =1,b=3,c=2;则正确的switch语句是() A)switch(a+b) case 1: printf("*n");case 2+1 : printf("*n");B)swi

18、tch( (int)x ); case 1: printf("*n");case 2 : printf("*n");C) switch( x ); case 1.0: printf("*n");case 2.0 : printf("*n");D) switch( a+b ) case 1: printf("*n");case c: printf("*n");46. 若变量已正确定义,在if ( W ) printf("%dn",k); 中,以下不可替代W的

19、是()。A) a<>b+cB) ch=getchar()C) a=b+cD) a+47. 下列叙述中正确的是( ) .A) 在switch语句中,不一定使用break语句B) 在switch语句中必须使用defaultC) break语句必须与switch语句中的case配对使用D) break 语句只能用于switch语句48. 有如下嵌套的if语句if ( a<b) if(a<c) k=a;else k=c;else if(b<c) k=b;else k=c;以下选项中与上述语句等价的语句是( ) A) k=(a<b)?(b<c)?a:b): (b

20、>c)?b:c);B) k=(a<b)?(a<c)?a:c): (b<c)?b:c);C) k=(a<b)?a:b; k=(b<c)?b:c ;D) k=(a<b)?a:b; k=(a<c)?a:c ;49. 设有宏定义:#define IsDIV(k,n) (k%n=1) ? 1:0) 且变量m已正确定义并赋值,则宏调用:IsDIV(m,5) && IsDIV(m,7)为真时所要表达的是:A) 判断m是否能被5和7整除B) 判断m被5和7 整除是否都余1C) 判断m被5或者7整除是否余1D) 判断m是否能被5或者7整除50. 有

21、以下程序#include <stdio.h>main()int a=1, b=2, c=3, x;x=(ab)&c;printf("%dn",x);程序运行结果是A) 3B) 1C) 2D) 051. 以下选项中,当x为大于1的奇数时,值为0的表达式是A) x%2=0B) x/2 C) x%2!=0D) x%2=152. 有以下程序#include <stido.h>main()int x;scanf("%d",&x);if(x<=3) elseif(x!=10) printf("%dn"

22、,x);程序运行时,输入的值在哪个范围才会有输出结果()A) 小于3的整数B) 不大于10的整数C) 大于3或等于10的整数D) 大于3且不等于10的整数53. 在以下给出的表达式中,与while(E)中的E不等价的表达式是()A)(E>0 | E<0)B) (E=0)C) (!E=0)D)(E!=0)54. 以下选项中与if (a=1) a=b;else a+;语句功能不同的switch语句是()A) switch(a=1) case 0: a=b; break; case 1: a+; B) switch(a) case 1: a=b; break; default: a+;

23、C) switch(a) default : a+; break; case 1: a=b; D) switch(a=1) case 1: a=b; break; case 0: a+; 55. 有以下程序#include <stdio.h>main()int a=1,b=2,c=3,d=0; if( a=1 && b+=2)if(b!=2 | c-!=3)printf("%d,%d,%dn",a,b,c);else printf("%d,%d,%dn",a,b,c);else printf("%d,%d,%dn&q

24、uot;,a,b,c);程序运行后的输出结果是()A) 1,3,2B) 1,3,3C) 1,2,3D)3,2,156. 下列条件语句中,输出结果与其他语句不同的是()A) if(a!=0) 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)

25、printf("%dn",x); else printf("%dn",y);57. 有以下程序#include <stdio.h>main()int x=1, y=2, z=3;if(x>y)if(y<z) printf("%d",+z);else printf("%d",+y);printf("%dn",x+);程序的运行结果是()A) 1B) 41C) 2D) 33158. 若有以下程序#include <stdio.h>main()int a=1,b=2

26、,c=3,d=4,r=0;if(a!=1) ; else r=1;if(b=2) r+=2;else; if(c!=3) r+=3;else; if(d=4) r+=4;printf("%dn",r);则程序的输出结果是()A) 10 B) 7C) 6D) 359. 有以下程序#include <stdio.h>main()int a;scanf("%d",&a);if(a+<9) printf("%dn",a);else printf("%dn",a-); 程序运行时从键盘输入9<

27、回车>, 则输出结果是A) 10 B) 11C) 9D) 860.设x=3,y=-4,z=6,写出表达式 !(x>y)+(y!=z)|(x+y)&&(y-z) 的结果( )A、0 B、1 C、-1 D、6二、 填空题1、C语言中用_表示逻辑值“真”,用_表示逻辑值“假”2、C语言中的关系运算符“!=”的优先级_ “<=”的优先级。3、C语言中的逻辑运算符“&&”的优先级_ “|”的优先级。4、C语言中的关系运算符"="的优先级_ 逻辑运算符“&&”的优先级5、将下列数学式改写成C语言关系表达式或逻辑表达式 A

28、) _B) _A) a=b 或a<c B) |x|>4 6、请写出以下程序的输出结果是_#include <stdio.h>main()int a=100;if(a>100) printf("%dn", a>100);else printf("%dn", a<=100);7、请写出与以下表达式等价的表达式A) _B) _A) !(x>0) B) !08、若变量已正确定义,以下语句段的输出结果是_x=0; y=2; z=3switch( x ) case 0 : switch( y=2 ) case 1: p

29、rintf(" * "); break; case 2: printf(" % "); break;case 1 : switch( z ) case 1: printf(" $ "); case 2: printf(" * "); break;default: printf(" # ");9、 int a=3; a+=(a<1)?a:1; printf(“%d”,a);结果是_以下题目为二级题10、有以下程序#include <stdio.h>main() int x;sca

30、nf("%d",&x);if(x>15)printf("%d",x-5);if(x>10)printf("%d",x);if(x>5)printf("%dn",x+5);若程序运行时从键盘输入12<回车>,则输出结果为_。 11、以下程序运行后的输出结果是_。 #include <stdio.h>main() int x=10,y=20,t=0;if(x=y)t=x;x=y;y=t;printf("%d %dn",x,y);12、以下程序的运行结

31、果是_。main()int a=2,b=7,c=5;switch(a>0)case 1: switch (b<0)case 1:printf (""); break;case 2: printf("!"); break;case 0: switch(c=5) case 0: printf("*"); break;case 1: printf("#"); break;case 2: printf("$"); break;default : printf("&");printf("n");13、 以下程序的运行结果i的值为_.main()char ch='$'int i=1,j;j=!ch&&i+;printf("%d",i);14、以下程序用于判断a,b,c能否构成三角形,若能输出YES,若不能输出NO。当a,b,c输入三角形三条边长时,确定a,b,c能构成三角形的条件是需要同时满足三条件:a+b>c,a+c>b,b+c>a。 请填空。 main() float a,b,c; scanf(“%f%f%f”,&a,&b,&a

温馨提示

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

评论

0/150

提交评论