您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > c语言选择结构试题带答案
1/15一、选择题1.以下非法的赋值语句是A:n=(i=2,++i);B:j++;C:++(i+1);D:x=j0;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.有如下程序main0{inta=2,b=-1,c=2;if(ab)if(b0)c=0;elsec++printf(%d\n,c);}该程序的输出结果是A:0B:1C:2D:35.有以下程序#includestdio.hmain(){inta,b,c=246;a=c/100%9;b=(-1)&&(-1);printf(%d,%d\n,a,b);}输出结果是()。A:2,1B:3,2C:4,3D:2,-16.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是main(){intx;scanf(%d,&x);2/15if(x++5)printf(%d,x);elseprintf(%d\n,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(b0)printf(%b,b);A:1B:2C:3D:49.C语言中,逻辑“真”等价于A:大于零的数B:大于零的整数C:非零的数D:非零的整数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]和[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=y&&ch’b’&&!y)的值是()3/15A:0B:1C:语法错误D:假16.执行下列语句后a的值为inta=5,b=6,w=1,x=2,y=3,z=4;(a=wx)&&(b=yz);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(){intm=5;if(m++5)printf(“%d\n”,m);elseprintf(“%d\n”,m--);}A:4B:5C:6D:719.若运行时给变量x输入12,则以下程序的运行结果是()main(){intx,y;scanf(“%d”,&x);y=x12?x+10:x-12;printf(“%d\n”,y);}A:0B:22C:12D:1020.若w=1,x=2,y=3,z=4,则表达式wx?w:yz?y:z的值是A:4B:3C:2D:121.设有inta=2,b;则执行b=a&&1;语句后,b的结果是A:0B:1C:2D:322.设有intm=1,n=2;则++m==n的结果是A:0B:1C:2D:34/1523.设有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=2时,表达式a==b的值为A:2B:1C:0D:527.若执行以下程序时从键盘上输入9,_______则输出结果是main(){intn;scanf(%d,&n);if(n++10)printf(%d\n,n);elseprintf(%d\n,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,y=20,z=30;以下语句执行后x,y,z的值是()if(xy)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:!(a0||a100)C:0a100D:!(a0&&a100)5/1531.为了避免嵌套的if—else语句的二义性,C语言规定else总是与()组成配对关系。A:缩排位置相同的ifB:在其之前未配对的ifC:在其之前未配对的最近的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.以下程序段的输出结果是。inta=10,b=50,c=30;if(ab)a=b;b=c;c=a;printf(a=%db=%dc=%d\n,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(a0);D:if(b==0)m=1;n=2;以下题目为二级题37.if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值B)必须是整数值C)必须是正数D)可以是任意合法的数值38.有以下程序段inti,n;for(i=0;i8;i++){n=rand()%5;switch(n){case1:case3:printf(%d\n,n);break;6/15case2:case4:printf(%d\n,n);continue;case0:exit(0);}printf(%d\n,n);}以下关于程序段执行情况的叙述,正确的是A)for循环语句固定执行8次B)当产生的随机数n为4时结束循环操作C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行39.有以下程序#includestdio.hmain(){intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf(%d\n,y);}程序运行后的输出结果是A)3B)2C)1D)041.有以下程序:#includestdio.hmain(){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)0,1,2,042.有以下程序:#includestdio.hmain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){7/15case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf(a=%d,b=%d\n,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-y0||x-y0)B)(x-y0)C)(x-y0)D)(x-y==0)44.有以下程序:#includestdio.hmain(){intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf(%d\n,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:printf(**\n);}D)switch(a+b){case1:printf(*\n);casec:printf(**\n);}8/1546.若变量已正确定义,在if(W)printf(%d\n,k);中,以下不可替代W的是()。A)ab+cB)ch=getchar()C)a==b+cD)a++47.下列叙述中正确的是().A)在switch语句中,不一定使用break语句B)在switch语句中必须使用defaultC)break语句必须与switch语句中的case配对使用D)break语句只能用于switch语句48.有如下嵌套的if语句if(ab)if(ac)k=a;elsek=c;elseif(bc)k=b;elsek=c;以下选项中与上述语句等价的语句是()A)k=(ab)?((bc)?a:b):((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.设有宏定义:#defineIsDIV(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.有以下程序#includestdio.hmain(){inta=1,b=2,c=3,x;x=(a^b)&c;printf(%d\n,x);}程序运行结果是A)3B)1C)2D)051.以下选项中,当x为大于1的奇数时,值为0的表达式是A)x%2==0B)x/2C)x%2!=0D)x%2==152.有以下程序#includestido.h9/
本文标题:c语言选择结构试题带答案
链接地址:https://www.777doc.com/doc-5051700 .html