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

下载本文档

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

文档简介

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

2、a=2,b=-1,c=2; if(ab) if(b0) c=0; else c+ printf(%dn,c); 该程序的输出结果是 A: 0 B: 1 C: 2 D: 3 5. 有以下程序 #include main() 读书破万卷 下笔如有神 int a,b,c=246; a=c/100%9; b=(-1)&(-1); printf(%d,%dn,a,b); 输出结果是( )。 A: 2,1 B: 3,2 C: 4,3 D: 2,-1 6. 两次运行下面的程序,如果从键盘上分别输入6 和4,则输出结果是 main( ) int x; scanf(%d,&x); if(x + + 5) pri

3、ntf(%d,x); else printf(%dn,x - -); A: 7 和5 B: 6 和3 C: 7 和4 D: 6 和4 7. 能表示x 为偶数的表达式是 A: x%2=0 B: x%2=1 C: x%2 D: x%2!=0 8. 下面的程序段中共出现了几处语法错误? int a,b; scanf(%d,a); b=2a; if(b0) printf(%b,b); A: 1 B: 2 C: 3 D: 4 9. C 语言中,逻辑“真”等价于 A: 大于零的数 B: 大于零的整数 C: 非零的数 D: 非零的整数 读书破万卷 下笔如有神 10. C 语言的 switch 语句中,cas

4、e 后 A: 只能为常量 B: 只能为常量或常量表达式 C: 可为常量及表达式或有确定值的变量及表达式 D: 可为任何量或表达式 11. 已知int i=10;表达式?椽?尹的值是 A: 0 B: 1 C: 19 D: 20 12. 设有int i, j, k; 则表达式i=1,j=2,k=3, i&j&k 的值为 A: 1 B: 2 C: 3 D: 0 13. 逻辑运算符两侧运算对象的数据类型 A: 只能是0 或1 B: 只能是0 或非0 正数 C: 只能是整型或字符型数据 D: 可以是任何类型的数据 14. 能正确表示“当x 的取值在1,10和200,210范围内为真,否则为 假”的表达式

5、是( ) A: (x1)&(x200)&(x1)|(x200)|(x1)&(x200)&(x1)|(x200)|(xy&chx)&(byz); A: 5 B: 0 C: 2 读书破万卷 下笔如有神 D: 1 17. 以下程序的输出结果是( ) main() int a5,b0,c0; if(ab+c) printf(“*n”); else printf(“$n”); A: 有语法错误不能通过编译 B: 可以通过编译但不能通过连接 C: * D: $ 18. 以下程序的输出结果是( ) main() int m5; if(m+5) printf(“%dn”,m); else printf(“%d

6、n”,m); A: 4 B: 5 C: 6 D: 7 19. 若运行时给变量x 输入12,则以下程序的运行结果是( ) main() int x,y; scanf(“%d”,&x); yx12?x+10:x12; printf(“%dn”,y); A: 0 B: 22 C: 12 D: 10 20. 若w1,x2,y3,z4,则表达式wx?w:yz?y:z 的值是 A: 4 B: 3 C: 2 D: 1 21. 设有int a2,b;则执行ba&1;语句后,b 的结果是 A: 0 读书破万卷 下笔如有神 B: 1 C: 2 D: 3 22. 设有int m1,n2;则+mn 的结果是 A: 0

7、 B: 1 C: 2 D: 3 23. 设有int n2;则+n+14 的结果是 A: true B: false C: 1 D: 0 24. 设有int n2;则+n+14,n 的结果是 A: 1 B: 2 C: 3 D: 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= =b 的值为 A: 2 B: 1 C: 0 D: 5 27. 若执行以下程序

8、时从键盘上输入9,_则输出结果是 main() int n; scanf(%d,&n); if(n+y) zx;xy;yz; A: x10,y20,z30 B: x20,y30,z30 C: x20,y30,z10 D: x20,y30,z20 30. 下列表达式中能表示a 在0 到100 之间的是 A: a0&a100 B: !(a100) C: 0a0&a100) 31. 为了避免嵌套的ifelse 语句的二义性,C 语言规定else 总是与( ) 组成配对关系。 A: 缩排位置相同的if B: 在其之前未配对的if C: 在其之前未配对的最近的if D: 同一行上的if 32. 已知:i

9、nt x,a,b;下列选项中错误的if 语句是 A: if(a=b) x+; B: if(ab) a=b; b=c; c=a; printf(a=%d b=%d c=%dn,a,b,c); A: a=10 b=50 c=10 B: a=10 b=30 c=10 C: a=50 b=30 c=10 D: a=50 b=30 c=50 36. 以下4 个选项中,不能看作一条语句的是 A: ; B: a=0,b=0,c=0; C: if(a0); D: if(b=0) m=1;n=2; 以下题目为二级题 37. if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是 A)必须

10、是逻辑值 B)必须是整数值 C)必须是正数 D)可以是任意合法的数值 38. 有以下程序段 int i,n; for(i=0;i8;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)当产生的随机数n为1和2时不做任何操作 D)当产生的随机数n

11、为0时结束程序运行 39.有以下程序 #include 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) 0 40.有以下程序 #include int fun (int x,int y) if(x!=y) return (x+y)/2); else return (x); main() inta=4,b=5,c=6; printf(%dn,fun(2*a,fun(b,C); 程序运行后的输出结果是 A)3 B)6 C)8 D

12、)12 41. 有以下程序: #include 读书破万卷 下笔如有神 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,0 B)0,0,0,3 C)编译有错 D) 0,1,2,0 42. 有以下程序: #include main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2 : a+; b+; br

13、eak; case 3: a+; b+; printf(a=%d,b=%dn,a,b); A) a=2,b=2 B) a=2,b=1 C) a=1,b=1 D) a=1,b=0 43. 若有定义int x, y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x+) : (y+)中的条件表达式(x-y) 等价的是( ) A) (x-y0) B) (x-y0) D)(x-y=0) 44 .有以下程序: #include main() int x=1,y=0; 读书破万卷 下笔如有神 if ( !x ) y+; else if (x=0) if(x) y+=2; else y+=3; pr

14、intf(%dn,y); 程序运行后的输出结果是( ) A) 3 B) 2 C) 1 D) 0 45. 若有定义: 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)switch( (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 )

15、case 1: printf(*n); case c: printf(*n); 46. 若变量已正确定义,在if ( W ) printf(%dn,k); 中,以下不可替代W的是()。 A) ab+c B) ch=getchar() C) a=b+c D) a+ 47. 下列叙述中正确的是( ) . A) 在switch语句中,不一定使用break语句 B) 在switch语句中必须使用default C) break语句必须与switch语句中的case配对使用 D) break 语句只能用于switch语句 48. 有如下嵌套的if语句 if ( ab) if(ac) k=a; else

16、k=c; else if(bc) k=b; 读书破万卷 下笔如有神 else k=c; 以下选项中与上述语句等价的语句是( ) A) k=(ab)?(bc)?b:c); B) k=(ab)?(ac)?a:c): (bc)?b:c); C) k=(ab)?a:b; k=(bc)?b:c ; D) k=(ab)?a:b; k=(ac)?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 整

17、除是否都余1 C) 判断m被5或者7整除是否余1 D) 判断m是否能被5或者7整除 50. 有以下程序 #include main() int a=1, b=2, c=3, x; x=(ab)&c; printf(%dn,x); 程序运行结果是 A) 3 B) 1 C) 2 D) 0 51. 以下选项中,当x为大于1的奇数时,值为0的表达式是 A) x%2=0 B) x/2 C) x%2!=0 D) x%2=1 52. 有以下程序 #include main() int x; scanf(%d,&x); if(x0 | E0) B) (E=0) C) (!E=0) D) (E!=0) 54.

18、以下选项中与 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+; C) switch(a) default : a+; break; case 1: a=b; D) switch(a=1) case 1: a=b; break; case 0: a+; 55. 有以下程序 #include main() int a=1,b=2,c=3,d=0; if( a=1 & b+=2) i

19、f(b!=2 | c-!=3) printf(%d,%d,%dn,a,b,c); else printf(%d,%d,%dn,a,b,c); else printf(%d,%d,%dn,a,b,c); 程序运行后的输出结果是()读书破万卷 下笔如有神 A) 1,3,2 B) 1,3,3 C) 1,2,3 D) 3,2,1 56. 下列条件语句中,输出结果与其他语句不同的是() 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

20、(%dn,x); else printf(%dn,y); D) if(a) printf(%dn,x); else printf(%dn,y); 57. 有以下程序 #include main() int x=1, y=2, z=3; if(xy) if(yz) printf(%d,+z); else printf(%d,+y); printf(%dn,x+); 程序的运行结果是() A) 1 B) 41 C) 2 D) 331 58. 若有以下程序 #include main() int a=1,b=2,c=3,d=4,r=0; if(a!=1) ; else r=1; if(b=2) r+

21、=2; else; if(c!=3) r+=3; else; if(d=4) r+=4; printf(%dn,r); 则程序的输出结果是() A) 10 B) 7 C) 6 D) 3 59. 有以下程序 #include 读书破万卷 下笔如有神 main() int a; scanf(%d,&a); if(a+9) printf(%dn,a); else printf(%dn,a-); 程序运行时从键盘输入9, 则输出结果是 A) 10 B) 11 C) 9 D) 8 60.设x=3,y=-4,z=6,写出表达式 !(xy)+(y!=z)|(x+y)&(y-z) 的结果( ) A、0 B、1

22、 C、-1 D、6 二、 填空题 1、C语言中用_表示逻辑值“真”,用_表示逻辑值“假” 2、C语言中的关系运算符“!=”的优先级_ “=”的优先级。 3、C语言中的逻辑运算符“&”的优先级_ “|”的优先级。 4、C语言中的关系运算符?尽的优先级_ 逻辑运算符“&”的优先级 5、将下列数学式改写成C语言关系表达式或逻辑表达式 A) _ B) _ A) a=b 或a4 6、请写出以下程序的输出结果是_ #include main() int a=100; if(a100) printf(%dn, a100); else printf(%dn, a0) B) !0 读书破万卷 下笔如有神 8、若

23、变量已正确定义,以下语句段的输出结果是_ x=0; y=2; z=3 switch( x ) case 0 : switch( y=2 ) case 1: printf( * ); break; case 2: printf( % ); break; case 1 : switch( z ) case 1: printf( $ ); case 2: printf( * ); break; default: printf( # ); 9、 int a=3; a+=(a1)?a:1; printf(“%d”,a); 结果是_ 以下题目为二级题 10、有以下程序 #include main() in

24、t x; scanf(%d,&x); if(x15)printf(%d,x-5); if(x10)printf(%d,x); if(x5)printf(%dn,x+5); 若程序运行时从键盘输入12,则输出结果为_。 11、以下程序运行后的输出结果是_。 #include main() int x=10,y=20,t=0; if(x=y)t=x;x=y;y=t; printf(%d %dn,x,y); 12、以下程序的运行结果是_。 main() int a=2,b=7,c=5; 读书破万卷 下笔如有神 switch(a0) case 1: switch (bc,a+cb,b+ca。 请填空。

25、 main() float a,b,c; scanf(“%f%f%f”,&a,&b,&c); if(_)printf(“YESn”);/*a,b,c能构成三角形*/ else printf(“NOn”);/*a,b,c不能构成三角形*/ 三、 编程题 1. 从键盘输入一个学生的分数, 要求实现这样的判断功能: 如果分数大于 100,输出 Input error! 如果分数介于 100到 90 之间, 输出 Very Good! 如果分 数介于 80 到 90 只,输出 Good! 如果分数介于 70 到 80 之间,输出 Middle 如果 分数介于 60到 70 之间, 输出 Pass! 如果分数小于

温馨提示

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

评论

0/150

提交评论