第5章循环结构练习题一、选择题1.以下程序的输出结果是()。
ma i n(){i n t n=4;w h i l e(n--)p r i n t f(〞%d〞,--n);}A.20B.31C.321D.210 2.以下程序的输出结果是()。
ma i n(){i n t x=10,y=10,i;f o r(i=0;x>8;y=++i)p r i n t f("%d%d",x--,y);}A.10192B.9876C.10990D.101091 3.当执行以下程序段时。
x=-1;d o{x=x*x;}w h i l e(!x);A.循环体将执行一次B.循环体将执行两次C.循环体将执行无数多次D.系统将提示有语法错误4.执行以下程序后输出的结果是()。
ma i n(){i n t y=10;d o{y--;}w h i l e(--y);p r i n t f("%d\n",y--);}A.-1B.1C.8D.05.下面程序的输出结果是()。
ma i n(){i n t x=3,y=6,a=0;w h i l e(x++!=(y-=1)){a+=1;i f(y<x)b r e a k;}p r i n t f("x=%d,y=%d,a=%d\n",x,y,a);}A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=16.若i,j已定义为i n t类型,则以下程序段中内循环的总的执行次数是()。
f o r(i=5;i;i--)f o r(j=0;j<4;j++){…}A.20B.24C.25D.30 7.请读程序:#i n c l u d e<s t d i o.h>ma i n(){i n t x=1,y=0,a=0,b=0;s w i t c h(x){c a s e1:s w i t c h(y){c a s e0:a++;b r e a k;c a s e1:b++;b r e a k;}c a s e2:a++;b++;b r e a k;}p r i n t f("a=%d,b=%d\n",a,b);}上面程序的输出结果是()。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2 8.若有以下程序段,w和k都是整型变量w=k;L B:i f(w==0)g o t o L E;w--;p r i n t f(〞*〞);g o t o L B;L E:则不能与上面程序段等价的循环语句是()。
A.f o r(w=k;w!=0;w--)p r i n t(〞*〞);B.w=k;w h i l e(w--!=0)p r i n t f(〞*〞);w++;C.w=k;d o{w--;p r i n t f(〞*〞);}w h i l e(w!=0);D.f o r(w=k;w;--w)p r i n t f(〞*〞);9.下面程序的输出是()。
ma i n(){c h a r*s=〞12134211〞;i n t k,v1=0,v2=0,v3=0,v4=0;f o r(k=0;s[k];k++)s w i t c h(s[k]){d e f a u l t:v4++;c a s e1:v1++;c a s e2:v2++;c s s e3:v3++;}p r i n t f(〞v1=%d,v2=%d,v3=%d,v4=%d\n〞,v1,v2,v3,v4);}A.v1=4,v2=2,v3=1,v4=1B.v1=4,v2=9,v3=3,v4=1C.v1=5,v2=8,v3=6,v4=1D.v1=8,v2=8,v3=8,v4=8 10.有以下程序#i n c l u d e〞s t d i o.h〞i n t a b c(i n t u,i n t v);ma i n(){i n t c,a=24,b=16;c=a b c(a,b);p r i n t f(〞%d\n〞,c);}i n t a b c(i n t u,i n t v){i n t w;w h i l e(v){w=u%v;u=v;v=w;}r e t u r n u;}输出结果是()。
A.6B.7C.8D.9 11.在下列选项中,没有构成死循环的程序段是()。
A.i n t i=100;w h i l e(1){i=i%100+1;i f(i>100)b r e a k;}B.f o r(;;);C.i n t k=1000;d o{++k;}w h i l e(k>=10000);D.i n t s=36;--s;12.若输入B,以下程序的运行结果为()。
ma i n(){c h a r g r a d e;s c a n f("%c",&g r a d e);s w i t c h(g r a d e){c a s e'A':p r i n t f(">=85.");c a s e'B':c a s e'C':p r i n t f(">=60.");c a s e'D':p r i n t f("<60.");d e f a u l t:p r i n t f("e r r o r.");}}A.>=85.B.>=60.C.>=60.<60.e r r o r.D.e r r o r. 13.列程序运行的情况是()。
ma i n(){i n t i=1,s u m=0;w h i l e(i<10)s u m=s u m+1;i++;p r i n t f("i=%d,s u m=%d",i,s u m);}A.i=10,s u m=9B.i=9,s u m=9C.i=2,s u m=1D.运行出现错误14.有以下语句:i=1;f o r(;i<=100;i++)s u m+=i;与以上语句序列不等价的有()。
A.f o r(i=1;;i++){s u m+=i;i f(i==100)b r e a k;}B.f o r(i=1;i<=100;){s u m+=i;i++;}C.i=1;f o r(;i<=100;)s u m+=i;D.i=1;f o r(;;){s u m+=i;i f(i==100)b r e a k;i++;}15.下面程序的运行结果为()。
ma i n(){i n t n;f o r(n=1;n<=10;n++){i f(n%3==0)c o n t i n u e;p r i n t f("%d",n);}}A.12457810B.369C.12D.12345678910 16.下面程序的运行结果是()。
ma i n(){i n t x,y,z;x+=-z---y;p r i n t f("x=%d\n",x);}A.x=4B.x=0C.x=2D.x=317.标有/**/的语句的执行次数是()。
i n t y,i;f o r(i=0;i<20;i++){i f(i%2==0)c o n t i n u e;y+=i;/**/}A.20B.19C.10D.918.在C语言中,i f语句后的一对圆括号中,用以决定分支的流程的表达式。
A.只能用逻辑表达式B.只能用关系表达式C.只能用逻辑表达式或关系表达式D.可用任意表达式19.在以下给出的表达式中,与d o-w h i l e(E)语句中的(E)不等价的表达式是()。
A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)20.假定所有变量均已正确定义,下列程序段运行后x的值为()。
k1=1;k2=2;k3=3;x=15;i f(!k1)x--;e l s e i f(k2)i f(k3)x=4;e l s e x=3;A.14B.4C.15D.321.执行下面语句的输出为()。
i n t i=-1;i f(i<=0)p r i n t f(“****\n”);e l s e p r i n t f(“%%%%\n”);A.****B.%%%%C.%%%%cD.有错,执行不正确22.下列程序的输出是()。
#i n c l u d e<s t d i o.h>ma i n(){i n t i;c h a r c;f o r(i=0;i<=5;i++){c=g e t c h a r();p u t c h a r(c);}}程序执行时从第一列开始输入以下数据,<C R>代表换行符。
u<C R>w<C R>x s t a<C R>A.u w x s t aB.uC.uD.uw w wx x s x s t a23.下列程序的输出为()。
#i n c l u d e"s t d i o.h"ma i n(){i n t i,j,x=0;f o r(i=0;i<2;i++){x++;f o r(j-0;j<=3;j++){i f(j%2)c o n t i n u e;x++;}x++;}p r i n t f("x=%d\n",x);}A.x=4B.x=8C.x=6D.x=1224.下列程序的输出为()。
#i n c l u d e<s t d i o.h>ma i n(){i n t i,j,k=0,m=0;f o r(i=0;i<2;i++){f o r(j=0;j<3;j++)k++;k-=j;}m=i+j;p r i n t f("k=%d,m=%d\n",k,m);}A.k=0,m=3B.k=0,m=5C.k=1,m=3D.k=1,m=5 25.在C语言中,为了结束w h i l e语句构成的循环,w h i l e后一对圆括号中表达式的值应该为()。
A.0B.1C.t r u e D.非026.在C语言中,为了结束由d o-w h i l e语句构成的循环,w h i l e后一对圆括号中表达式的值应为()。
A.0B.1C.t r u e D.非027.下列程序的输出为()。
#i n c l u d e<s t d i o.h>ma i n(){i n t k=0;c h a r c='A';d o{s w i t c h(c++){c a s e'A':k++;b r e a k;c a s e'B':k--;c a s e'C':k+=2;b r e a k;c a s e'D':k=k%2;c o n t i n u e;c a s e'E':k=k*10;b r e a k;d e f a u l t:k=k/3;}k++;}w h i l e(c<'G');p r i n t f("%d\n",k);}A.k=3B.k=4C.k=2D.k=028.C语言的i f语句嵌套时,i f与e l s e的配对关系是()。