第3章控制结构

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章程序的控制结构一、选择题1、C语言中用(C)表示逻辑值“真”A)trueB)整数0C)非零值D)T2、表示关系x≥y≥z的c语言表达式是(A)A)(x=y)&&(y=z)B)(x=y)&d(y=z)C)x=y=zD)(x=y)||(y=z)3、对y在(3,23)和[100,200]范围内为真的确表达式为(C)A)(y3)&&(y23)&&(y=100)&&(y=200)B)(y3)||(y23)||(y=100)||(y=200)C)(y3)&&(y23)||(y=100)&&(y=200)D)(y3)||(y23)&&(y=100)||(y=200)4、已知charch=′G′;则以下表达式的值是(D)ch=(ch=′A′&&ch=′Z′)?(ch+32):ch;A)AB)aC)ZD)g5、设inta=4,b=5,c=6;则下面的表达式中,值为0的表达式是(D)A)a&&bB)a=bC)a||b+c&&b-cD)!((ab)&&!c||1)6、设有如下程序,则程序的输出结果是(B)++x&&++y&&++z;printf(“%d,%d,%d”,x,y,z);A)1,0,0B)1,1,1C)1,1,0D)1,0,17、已知intx=0,y=0,z=0;则执行x&&y++&&++z;后,表达式y+z的值为(D)A)1B)2C)3D)08、设有inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=ab)&&(n=cd)后n的值是(B)A)1B)2C)3D)4(说明:根据逻辑运算的规则0&&a=0,表达式a根本不用计算,本题中n=cd未进行计算)9、下述程序段的输出结果是(D)inta=2,b=3,c=4,d=5,m=2,n=2;a=(m=ab)&&(n=cd)+5;printf(“%d,%d”,a,n);A)0,5B)1,0C)5,2D)5,010、设有定义inta=3,y=4,z=5;则表达式!(x+y)+z-1&&y+z/2的值是(D)A)0B)1C)4D)4.5******************************分支结构***********************************11、为了避免在嵌套的if-else语句中产生二义性,C语言规定else子句总是与(B)A)编排位置相同的if配对B)前面最近的未匹配的if配对C)后面最近的未匹配的if配对D)同一行上的if配对12、以下不正确的if语句是(B)A)if(xy)printf(“%d\n”,x);B)if(x==y)&&(x!=0)x+=y;C)if(x!=y)scanf(“%d”,&x);D)if(xy){x++;y++;}13、以下程序段的输出结果是(A)charc=‘a’;if(‘a’c=‘z’)printf(“LOW”);elseprintf(“UP”);A)LOWB)UPC)LOWUPD)语法错误14、已知intx=10,y=20,z=30;则执行以下语句后,x,y,z的值是(B)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=2015、执行以下程序段后x的值是(B)inta=1,b=3,c=5,d=4;if(ab)if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;elsex=6;A)1B)2C)3D)616、以下程序段的输出结果是(B)inta=5,b=4,c=3,d=2;if(abc)printf(%d\n,a);elseif((c-1=d)==1)printf(%d\n,d+1);elseprintf(%d\n,d+2);A)2B)3C)4D)517、以下程序段的输出结果是(C)floatx=2.0,y;if(x0.0)y=0.0;elseif(x10.0)y=1.0/x;elsey=1.0;printf(“%4.2f\n”,y);A)0.00B)0.25C)0.50D)1.0018、设有如下程序,则输出结果是(C)inta=2,b=3,c=1;if(ab)if(ac)printf(“%d\n”,a);elseprintf(“%d\n”,b);printf(“Over!\n”);A)2B)3C)Over!D)419、设有变量定义:intx=10,y=20,a=5;则以下程序的输出结果是(B)if(xy)if(y!=10)a=1;elsea=10;elsea=0;printf(“%d\n”,a);A)0B)1C)5D)1020、以下程序段的输出结果是(B)intx=5;if(x--5)printf(“%d”,x);elseprintf(“%d”,x++);A)3B)4C)5D)621、设有如下程序,则输出结果是(B)inta=5,b=3,c=2;if(--ab)if(--ac)printf(“%d\n”,a);elseprintf(“%d\n”,b);elseprintf(“Over!\n”);A)2B)3C)Over!D)422、执行下面程序段后,x的值是(C)intx=15;if(x++15)printf(%d\n,++x);elseprintf(%d\n,x--);A)17B)16C)15D)1423、以下程序段的输出结果是(C)inti=1,j=1,k=2;if((j++||k++)&&i++)printf(“%d,%d,%d”,i,j,k);A)1,1,2B)2,2,1C)2,2,2D)2,2,3(说明:根据逻辑运算的规则1||a=1,表达式k++未进行计算)24、以下程序段的输出结果是(D)inti=1,j=2,k=3;if((i++==1&&(++j==3||k++==3))printf(“%d,%d,%d”,i,j,k);A)1,2,3B)2,3,4C)2,2,3D)2,3,3(说明:根据逻辑运算的规则,执行了表达式i++==1和++j==3,而k++==3未执行)25、下列描述正确的是(C)A)在switch中必须使用break语句。B)break语句只能用于switch中。C)在switch中可根据需要使用或不使用break语句。D)break语句是switch的一部分。26、若有以下定义:floatx;inta,b;则正确的switch语句是(C)A)switch(x)B)switch(x){case1.0:printf(*\n);{case1,2:printf(*\n);case2.0:printf(**\n);case3:printf(**\n);}}C)switch(a+b)D)switch(a){case1:printf(\n);{caseb1:printf(.*\n);case1+2:printf(**\n);caseb2:printf(**\n);}}27、以下程序段的输出结果是(A)intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf(“a=%d,b=%d\n”,a,b);A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=228、若intk=8;则执行下列程序段后,变量k的正确结果是(D)intk=8;switch(k){case9:k+=1;case10:k+=1;case11:k+=1;break;default:k+=1;}printf(%d\n,k);A)12B)11C)10D)929、以下程序段的输出结果是(C)inta=10,b=5,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf(“m=%d\n”,m);A)m=1B)m=2C)m=3D)m=4(说明:执行default后的语句后,因无break,所以继续执行case0后语句)*******************************循环结构***********************************30、下列对while和do-while循环的描述正确的是(B)A)do-while的循环体不能是复合语句B)do-while的循环体至少要执行一次C)while的循环体至少要执行一次D)while循环不能使用break;来结束循环31、下列程序段的输出结果是(B)inti=6;while(i--)printf(%2d,--i);printf(\n);A)□5□3□1B)□4□2□0C)□5□4□3D)死循环(注:□表示空格)32、下面程序段的输出结果是(D)inty=10;while(y--);printf(y=%d\n,y);A)y=0B)死循环,无输出结果C)y=1D)y=-133、对以下程序段的叙述正确的是(D)intk=0;while(k==0)k=k-1;A)循环执行10次B)循环体一次也不被执行C)无限循环D)循环体被执行一次34、下面程序段的运行结果是(B)intn=0;while(n++=2);printf(“%d”,n);A)2B)3C)4D)出错35、设有如下程序,则程序的输出结果是(B)intk=1,s=0;while(s10){s=s+k*k;k++;}printf(“%d”,k);A)3B)4C)5D)636、对以下程序段描述正确的是(B)intx=0,s=0;while(!x!=0)s+=++x;printf(“%d\n”,s);A)输出结果为0B)输出结果为1C)while后的表达式是非法的D)while循环无法结束37、以下程序段的输出结果是(A)inta=1,b=2,c=2,t=0;while(abc){t=a;a=b;b=t;c--;}printf(“%d,%d,%d\n”,a,b,c);A)1,2,0B)2,1,1C)1,2,1D)2,1,0(循环执行1次后a=2,b=1,c=1,执行2次后a=1,b=2,c=0,第3次结束循环)38、设有inti=0;则以下while循环的执行次数是(D)while(i10){if(i1)continue;if(i==5)break;i++;}A)1次B)5次C)6次D)无限次39、以下能正确计算5!的程序段是(A)A)inti=1,s=1;B)inti,s=1;C)inti=1,s;D)inti=1,s=0;while(i=5)while(i=5)while(i=5)while(i=5){s=s*i;{s=s*i;{s=s*i;{s=s*i;i++;i++;++i;++i;}}}}40、设intx=-1;则以下循环执行的次数是(B)do{x=x*x;}while(!x);A)0次B)1次C)2次D)无限次41、以下程序段的输出结果是(B)inta=1,b=10;do{b=b-a;a++;}while(b--0);printf(“a=%d,b=%d\n”,a,b);A)a=3,b=11B)a=2,b=8C)a=1,b=-1D)a=4,b=942、有以下程序,若要使程序的输出值为2,则应该从键盘给n输入的值是(B)voidmain(){ints=0,a=1,n;scanf(%d,&n);do{s=s+1;a=a-2;}while(a!=n);printf(%d\n,s);}A)-1B)-3C)-5D)043、以下程序段的输出结果是(D)inty=6;do{y--;}while(--y);printf(“%d\n”,y--);A)-1B)1C)3D)044、设有inti;则以下for循环的执行次数是(C)for(i=2;i!=0;)printf(“%d”,i--);A)0次B)1次C)2次D)无限次45、关于for循环以下叙述错误

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功