c语言选择结构试题带答案_第1页
c语言选择结构试题带答案_第2页
c语言选择结构试题带答案_第3页
c语言选择结构试题带答案_第4页
c语言选择结构试题带答案_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

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

文档简介

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

2、=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec+printf("%dn",c);该程序的输出结果是A: 0B: 1C: 2D: 35 .有以下程序#include<stdio.h>main()inta,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()intx;scanf("%d&qu

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

4、数10 .C语言的switch语句中,case后A:只能为常量B:只能为常量或常量表达式C:可为常量及表达式或有确定值的变量及表达式D:可为任何量或表达式11 .已知inti=10;表达式"20-0<=i<=9"的值是A: 0B: 1C: 19D: 2012.设有inti,j,k;则表达式i=1,j=2,k=3,i&&j&&k的值为A: 1B: 2C: 3D: 013 .逻辑运算符两侧运算对象的数据类型A:只能是0或1B:只能是0或非0正数C:只能是整型或字符型数据D:可以是任何类型的数据14 .能正确表示“当x的取值在1,10和

5、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<=210)15 .已知x=43,ch='a',y=0;则表达式(x&

6、gt;=y&&ch<'b'&&!y)的值是()A: 0B: 1C:语法错误D:假16 .执行下列语句后a的值为inta=5,b=6,w=1,x=2,y=3,z=4;(aw>x)&&(by>z);A: 5B: 0C: 2D:117 .以下程序的输出结果是()main()inta=5,b=0,c=0;if(a=b+c)printf("*n");elseprintf(n'"$A:有语法错误不能通过编译B:可以通过编译但不能通过连接C:*D:$18 .以下程序的输出结果是()main

7、()intm=5;if(m+>5)printf(n"%m);elseprintf("%dn",m);A: 4B: 5C: 6D: 719.若运行时给变量x输入12,则以下程序的运行结果是()main()intx,y;scanf("%d',&x);y=x>12?x+10:x12;printf("r%d,y);A: 0B: 22C: 12D: 1020.若w=1,x=2,y=3,z=4,则表达式w<x?w:y<z?y:z的值是A:4B: 3C: 2D: 121.设有inta=2,b;则执行b=a&&a

8、mp;1;语句后,b的结果是A: 0B: 1C: 2D: 322 .设有intm=1,n=2;则+m=n的结果是A: 0B: 1C: 2D: 323 .设有intn=2;则+n+1=4的结果是A: trueB: falseC: 1D: 024 .设有intn=2;则+n+1=4,n的结果是A: 1B: 2C: 3D: 425 .以下使i的运算结果为4的表达式是A: inti=0,j=0;(i=3,(j+)+i);B: inti=1,j=0;j=i=(i=3)*2);C: inti=0,j=1;(j=1)?(i=1):(i=3);D: inti=1,j=1;i+=j+=2;26 .当a=5,b=

9、2时,表达式a=b的值为A: 2B: 1C: 0D: 527 .若执行以下程序时从键盘上输入9,则输出结果是main()intn;scanf("%d",&n);if(n+<10)printf("%d'n",n);elseprintf("%dn",n-);A: 11B: 10C: 9D:828.main()inta,b,d=241;a=d/100%9;b=(1)&&(-1);printf("%d,%d”,a,b);A: 6,1B: 2,1C: 6,0D: 2,029 .若有intx=10,

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

11、ifD:同一行上的if32 .已知:intx,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=134.设有定义:inta=2,b=3,c=4;,则以下选项中值为0的表达式是()。A: (!a=1)&&(!b=0)B: aC: a&&bD:a|(b+b)&&(c-a)35.以下程序段的输出结果是

12、。inta=10,b=50,c=30;if(a>b)a=b;b=c;c=a;printf("a=%db=%dc=%dn",a,b,c);A: a=10b=50c=10B: a=10b=30c=10C:a=50b=30c=10D:a=50b=30c=5036.以下4个选项中,不能看作一条语句的是A: ;B: a=0,b=0,c=0;C: if(a>0);D: if(b=0)m=1;n=2;以下题目为二级题37 .if语句的基本形式是:if(表达式)语句,以下关于褰达式”值的叙述中正确的是A)必须是逻辑值B)必须是整数值C)必须是正数D)可以是任意合法的数值38 .

13、有以下程序段inti,n;for(i=0;i<8;i+)n=rand()%5;switch(n)case1:case3:printf("%dn",n);break;case2:case4:printf("%dn",n);continue;7/18case0:exit(0);)printf("%dn",n);)以下关于程序段执行情况的叙述,正确的是B)当产生的随机数C)当产生的随机数D)当产生的随机数A)for循环语句固定执行8次n为4时结束循环操作n为1和2时不做任何操作n为0时结束程序运行39 .有以下程序#include&l

14、t;stdio.h>main()intx=1,y=0;if(!x)y+;elseif(x=0)if(x)y+=2;elsey+=3;printf("%dn",y);)程序运行后的输出结果是A)3B)2C)1D)040 .有以下程序#include<stdio.h>intfun(intx,inty)if(x!=y)return(x+y)/2);elsereturn(x);)main()inta=4,b=5,c=6;printf("%dn",fun(2*a,fun(b,C);)程序运行后的输出结果是A)3B)6C)8D)1241 .有以下程

15、序:#include<stdio.h>main()inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf("%d,%d,%d,%d",a,b,c,d);)程序输出().A) 1,1,2,0B) 0,0,0,3C)编译有错D)012042.有以下程序:#include<stdio.h>main()intx=1,y=0,a=0,b=0;switch(x)case1:switch(y)case0:a+;break;case 1: b+;break;)case 2: :a+;b+;break;case 3: a+;b

16、+;)printf("a=%d,b=%dn",a,b);)A) a=2,b=2B) a=2,b=1C) a=1,b=1D) a=1,b=043.若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x+):(y+)中的条件表达式(x-y)等价的是()A) (x-y<0|x-y>0)B) (x-y<0)C) (x-y>0)D)(x-y=0)44.有以下程序:#include<stdio.h>main()intx=1,y=0;if(!x)y+;elseif(x=0)if(x)y+=2;elsey+=3;printf(&q

17、uot;%dn",y);)程序运行后的输出结果是()A) 3B) 2C) 1D) 045.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()A) switch(a+b)case1:printf("*n");case2+1:printf("*n");B) switch(int)x);case1:printf("*n");case2:printf("*n");C) switch(x);case1.0:printf("*n");case2.0:pri

18、ntf("*n");D) switch(a+b)case1:printf("*n");casec:printf("*n");46.若变量已正确定义,在if(W)printf("%dn",k);中,以下不可替代W的是()。A)a<>b+cB) ch=getchar()C) a=b+cD) a+47.下列叙述中正确的是().A)在switch语句中,不一定使用break语句B)在switch语句中必须使用defaultC) break语句必须与switch语句中的case配对使用D) break语句只能用于

19、switch语句48 .有如下嵌套的if语句if(a<b)if(a<c)k=a;elsek=c;elseif(b<c)k=b;elsek=c;以下选项中与上述语句等价的语句是()A) k=(a<b)?(b<c)?a:b):(b>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 .设有宏定义:#defineIsDIV(k,n)(k%n=1)?1:0)且变量m已正确定义并赋值,

20、则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是:A)判断m是否能被5和7整除B)判断m被5和7整除是否都余1C)判断m被5或者7整除是否余1D)判断m是否能被5或者7整除50 .有以下程序#include<stdio.h>main()inta=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 .有以下程序#inclu

21、de<stido.h>main()intx;scanf("%d",&x);if(x<=3)elseif(x!=10)printf("%dn",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;elsea+;语句功能不同的switch语句是

22、()A) switch(a=1)case0:a=b;break;case1:a+;B) switch(a)case1:a=b;break;default:a+;C)switch(a)default:a+;break;case1:a=b;D)switch(a=1)case1:a=b;break;case0:a+;55 .有以下程序#include<stdio.h>main()inta=1,b=2,c=3,d=0;if(a=1&&b+=2)if(b!=2|c-!=3)printf("%d,%d,%dn",a,b,c);elseprintf("

23、;%d,%d,%dn",a,b,c);elseprintf("%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);elseprintf("%dn",y);B) if(a=0)printf("%dn",y);elseprintf("%dn",x);C) if(a=0)printf("%dn",x)

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

25、t;stdio.h>main()inta=1,b=2,c=3,d=4,r=0;if(a!=1);elser=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<stdio.h>main()inta;scanf("%d",&a);if(a+<9)printf("%dn",a);elseprintf("%dn",a-);

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

27、a<cB)|x|>46、请写出以下程序的输出结果是#include<stdio.h>main()inta=100;if(a>100)printf("%dn",a>100);elseprintf("%dn",a<=100);)7、请写出与以下表达式等价的表达式A)B)A)!(x>0)B)!08、若变量已正确定义,以下语句段的输出结果是x=0;y=2;z=3switch(x)case0:switch(y=2)case1:printf("*");break;case2:printf("

28、;%");break;)case 1 :switch(z)case1:printf("$");case 2 printf("*");break;default:printf("#");)9、inta=3;a+=(a<1)?a:1;printf("%d',a);结果是以下题目为二级题10、有以下程序#include<stdio.h>main()intx;scanf("%d",&x);if(x>15)printf("%d",x-5);if(

29、x>10)printf("%d",x);if(x>5)printf("%dn",x+5);)若程序运行时从键盘输入12<回车>,则输出结果为11、以下程序运行后的输出结果是。#include<stdio.h>main()intx=10,y=20,t=0;if(x=y)t=x;x=y;y=t;printf("%d%dn",x,y);)12、以下程序的运行结果是。main()switch(a>0)case1:switch(b<0)case1:printf("");brea

30、k;case2:printf("!");break;case0:switch(c=5)case0:printf("*");break;case 1: printf("#");break;case 2: printf("$");break;default:printf("&");printf("n");13、以下程序的运行结果i的值为.main()charch='$'inti=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。请填空。mai

温馨提示

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

评论

0/150

提交评论