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

下载本文档

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

文档简介

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: 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;if(ab)if(b0)

2、c=0;else c+printf(%dn,c);该程序的输出结果是A: 0B: 1C: 2D: 35. 有以下程序#include 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,&x);if(x + + 5) printf(%d,x);else printf(%dn,x - -); A: 7 和5B: 6 和3C: 7 和4D: 6

3、和47. 能表示 x 为偶数的表达式是A: x%2=0B: x%2=1C: x%2D: x%2!=08. 下面的程序段中共出现了几处语法错误? int a,b; scanf(%d,a);b=2a;if(b0) printf(%b,b);A: 1B: 2C: 3D: 49. C 语言中,逻辑“真”等价于A: 大于零的数B: 大于零的整数C: 非零的数D: 非零的整数10. C 语言的 switch 语句中, case 后A: 只能为常量B: 只能为常量或常量表达式C: 可为常量及表达式或有确定值的变量及表达式D: 可为任何量或表达式11. 已知 int i=10 ;表达式 20-0=i=1) &

4、(x =200)&(x=1) |(x =200)|(x=1) &(x = 200)&(x=1) |(x = 200)|(x=y&chx)&(b = yz);A: 5B: 0C: 2D: 117. 以下程序的输出结果是( )main() int a = 5,b= 0,c= 0;if(a = b+c) printf( *n );else printf(“n ” $);$A: 有语法错误不能通过编译B: 可以通过编译但不能通过连接C: *D: $18. 以下程序的输出结果是( )main() int m = 5;if(m+5) printf(n“” %,md );else printf( “ %dn

5、 ” ,m);A: 4B: 5C: 6D: 719. 若运行时给变量x 输入 12,则以下程序的运行结果是( )main() int x,y;scanf( “ %d” ,&x);y=x12?x+10: x12;printf(“n%”d ,y);A: 0B: 22C: 12D: 1020. 若w= 1,x= 2,y= 3,z = 4,则表达式 wx?w : yz?y: z 的值是A: 4B: 3C: 2D: 121. 设有int a= 2,b;则执行b= a&1;语句后,b的结果是A: 0B: 1C: 2D: 322. 设有int m = 1,n= 2;则+m = = n的结果是A: 0B: 1

6、C: 2D: 323. 设有int n = 2;则+n+1 = 4的结果是A: trueB: falseC: 1D: 024. 设有int n = 2;则+n+1 = = 4, n的结果是A: 1B: 2C: 3D: 425. 以下使 i 的运算结果为 4 的表达式是A: int i =0,j = 0;(i = 3,(j+)+i);B: int i = 1,j=0; j= i=(i = 3)*2);C: int i = 0,j=1; (j=1)?(i = 1): (i=3);D: int i = 1,j = 1; i+ = j+ = 2;26. 当a=5,b=2时,表达式a= =b的值为A:

7、2B: 1C: 0D: 527. 若执行以下程序时从键盘上输入9, 则输出结果是main() int n;scanf(%d,&n);if(n+y)z = x;x = y;y = z;A: x = 10,y=20,z=30B: x = 20,y= 30,z= 30C: x=20,y= 30,z= 10D: x = 20,y= 30,z=2030. 下列表达式中能表示a 在0 到 100 之间的是A: a0&a100B: !(a100)C: 0a0&a100 )31. 为了避免嵌套的 if else 语句的二义性, C 语言规定 else 总是与( 组成配对关系。A: 缩排位置相同的 ifB: 在

8、其之前未配对的 ifC: 在其之前未配对的最近的 ifD: 同一行上的 if32. 已知: int 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=10B: a=10 b=30 c=10C: a=50 b=30 c=10D: a=50 b=30 c=5036. 以下 4 个选项中,不能看作一条语句的是A: ;B: a=0,b=0,c=0;C: if(a0);D: if(b=0) m=1;n=2;以下题目为二级题37. if 语句的基本形式

9、是: if( 表达式 )语句,以下关于 “表达式 ”值的叙述中正确的是A)必须是逻辑值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;7 / 18case 0:exit(0);printf(%dn,n);以下关于程序段执行情况的叙述,正确的是A)for 循环语句固定执行8 次n 为 4 时结束循环操作n 为 1 和 2 时不做任何操作n 为

10、 0 时结束程序运行B)当产生的随机数 C)当产生的随机数 D)当产生的随机数 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)3B)2C)1D) 040. 有以下程序#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);程序运行后的输出结果

11、是A)3 B)6 C)8 D)1241. 有以下程序:#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, 0B ) 0 , 0, 0, 3C)编译有错D) 0, 1, 2, 042. 有以下程序:#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

12、+; 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-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; printf(%dn,y);程序运行后的输

13、出结果是( )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) 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 ) case 1:printf(*n);case c

14、: 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 语句中必须使用 defaultC) break 语句必须与 switch 语句中的 case 配对使用D) break 语句只能用于 switch 语句48. 有如下嵌套的 if 语句 if ( ab)if(ac) k=a;else k=c; elseif(bc)

15、 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 整除是否都余1C) 判断m 被 5 或者 7 整除是否余1D)

16、 判断m 是否能被 5 或者7 整除50. 有以下程序#include main()int a=1, b=2, c=3, x;x=(aAb)&c;printf(%dn,x);程序运行结果是A) 3B) 1C) 2D) 051. 以下选项中,当x 为大于1 的奇数时,值为 0 的表达式是A) x%2=0B) x/2C) x%2!=0D) x%2=152. 有以下程序#include main()int x;scanf(%d,&x);if(x0 | E0)B) (E=0)C) (!E=0)D) (E!=0)54. 以下选项中与if (a=1) a=b;else a+;语句功能不同的 switch

17、语句是()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)if(b!=2 | c-!=3)printf(%d,%d,%dn,a,b,c);else printf(%d,%d,%d

18、n,a,b,c);else printf(%d,%d,%dn,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) printf(%dn,x); else printf(%dn,y);57. 有以下程序#include ma

19、in()int x=1, y=2, z=3;if(xy)if(yz) printf(%d,+z);else printf(%d,+y); printf(%dn,x+);程序的运行结果是()A) 1B) 41C) 2D) 33158. 若有以下程序#include main()int a=1,b=2,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) 10B) 7C) 6D) 359. 有以下程序#include main()

20、int a;scanf(%d,&a);if(a+9) printf(%dn,a);elseprintf(%dn,a-);程序运行时从键盘输入9, 则输出结果是A) 10B) 11C) 9D) 860. 设 x=3,y=-4,z=6 ,写出表达式!(xy)+(y!=z)|(x+y)&(y-z) 的结果 ( )A、 0B、 1C、 -1D、 6二、 填 空题1、 C 语言中用 表示逻辑值“真” ,用 表示逻辑值“假”2、C语言中的关系运算符“!= ”的优先级 “=”的优先级。3、C语言中的逻辑运算符“ &”的优先级 “| ”的优先级。4、C语言中的关系运算符=的优先级 逻辑运算符“ &”的优先级5

21、、将下列数学式改写成C语言关系表达式或逻辑表达式A) B) A) a=b 或 a46、请写出以下程序的输出结果是#include main()int a=100;if(a100) printf(%dn, a100);else printf(%dn, a0)B) !015 / 188、若变量已正确定义,以下语句段的输出结果是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

22、( $ );case 2 printf( * ); break; default: printf( # );9、int a=3;a+=(a1)?a:1;printf( “ %d” ,a);结果是 以下题目为二级题10、有以下程序#include main() int 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()switch(a0)case 1: switch (bc,a+cb,b+ca 。 请填空。main()float a,b,c;scanf( “ %f%f%f” ,&a,&b,&c);if()printf( YES);/*a,b,(f归构成三角形 */else printf(nNOTa,b,杯能构成三角形 */三、 编 程题1. 从键盘输入一个学生的分数, 要求实现这样的判断功能: 如果分数大于100 ,输出Input error! 如果分数介于100 到 90 之间 , 输出 Very Goo

温馨提示

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

评论

0/150

提交评论