
第五章循环结构 I.若输入字符串:abcde5)-:printf("d°,n):) 该程序段的输出结果是 A)987B)876C)8785D)9876 3,运行以下程序后,如果从键盘上输入cin4# ain() [intv1-0,v2-0: charch: while ((ch-getchar ())!'' switch (ch) (case'a': case'h' default:vI++: case'0'v2++} printf("d,n°,rl,v2:》 4,请读程序: main ( intnun-0: while (mu<-2)(numt+:printf ("sdin",nun):] 上面程序的输出结果是 A)1B)IC)ID)1 2224
第五章 循环结构 1.若输入字符串:abcde,则以下 while 循环体将执行【】次。 While((ch=getchar())=='e')printf("*"); 2.有如下程序 main() {intn=9; while(n>5){n--;printf("%d",n);} 该程序段的输出结果是 A)987B)876C)8765D)9876 3.运行以下程序后,如果从键盘上输入 china#,则输出结果为 A)2,0B)5,0C)5,5D)2,5 #include main() {intv1=0,v2=0; charch; while((ch=getchar())!='#') switch(ch) {case'a': case'h': default:v1++; case'0':v2++;} printf("%d,%d\n",v1,v2);} 4.请读程序: main() {intnum=0; while(num<=2){num++;printf("%d\n",num);}} 上面程序的输出结果是 A)1B)1C)1D)1 2224

33 5.请读程序: =include“athh" nain ( [floatx,y. sanf("俏f广,&x,与) 2-x/y: while (1) {it(fabs(z》>1,0){y:=z:2=/y:1 elsebreak:】 printf("sfn“,yhJ 若运行时从键盘上输入3.脱4C心,则输出结果是 A)1.500000B)1.600000C)20000000)2.400000 6.以下程序的功能是:从键盘上输入若干个学生的成镇,统计并输出最高成绩和最低 成绩,当输入负数时结束输入。请殖空, main ( tloatx.amax.amint scanf ("sf",Ax): anax=x:amin=x: hile【】) [if (x>amax)anax=x: if(【】)ainx: scanf("%f”,表r)h】 printf ("\nanx-kf\naain=kf'\n",amax,amin): 7.定义如下变量: intn=10: 则下列循环的输出结果是 hi1e()7) In-:printf ("%d\n",n): A)10B)9C)100)9
33 5.请读程序: #include“math.h” main() {floatx,y,z; scanf("%f%f",&x,&y); z=x/y; while(1) {if(fabs(z)>1.0){x=y;y=z;z=x/y;} elsebreak;} printf("%f\n",y);} 若运行时从键盘上输入 3.62.4,则输出结果是 A)1.500000B)1.600000C)2.000000D)2.400000 6.以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低 成绩,当输入负数时结束输入。请填空。 main() {floatx,amax,amin; scanf("%f",&x); amax=x;amin=x; while(【】) {if(x>amax)amax=x; if(【】)amin=x; scanf("%f",&x);} printf("\namax=%f\namin=%f\n",amax,amin);} 7.定义如下变量: intn=10; 则下列循环的输出结果是 while(n>7) {n--;printf("%d\n",n);} A)10B)9C)10D)9

9898 8787 76 8.以下程序段的输出结果是 intx=3: do(printf (3d".x-=2)Jwhile ((--x)): A)1B》30C)1-2D)死循环 9.以下叙述正确的是 A)d0由1。语句构成的循环不能用它语句构成的简环米代替。 B)o-hile语句构成的循环只能用break语句恩出。 C)do由ile语句构成的循环,在hile后的表达式为非零时结束循环. D)用hi1e语句构成的箱环,在h11e后的表达式为零时结束箱环, 10.以下程序的输出结果是 A)20B)31C)321D)210 min ( {intn=4: while (n-)printf (sd".-n) 11.设有如下程序段: inti=0.sumF1 do(sumt=i++:]while (i(6): printf (sd\n",sum): 上述程序段的输出结果是【】 2。执行下面程序片段的结果是 intx-23; do(printf("2d°,x一:hile(lx: A)打印出321B)打印出23 C)不打印任何内容D)陷入死循环 13.假定a和b为int型变量:则执行以下语句后b的值为 a=1:b-10: do[b-=a1 a++lwhile (b--<0)
9898 8787 76 8.以下程序段的输出结果是 intx=3; do{printf("%3d",x-=2);}while(!(--x)); A)1B)30C)1-2D)死循环 9.以下叙述正确的是 A)do-while 语句构成的循环不能用其它语句构成的循环来代替。 B)do-while 语句构成的循环只能用 break 语句退出。 C)do-while 语句构成的循环,在 while 后的表达式为非零时结束循环。 D)用 do-while 语句构成的循环,在 while 后的表达式为零时结束循环。 10.以下程序的输出结果是 A)20B)31C)321D)210 main() {intn=4; while(n--)printf("%d",--n);} 11.设有如下程序段: inti=0,sum=1; do{sum+=i++;}while(i<6); printf("%d\n",sum); 上述程序段的输出结果是【】。 12.执行下面程序片段的结果是 intx=23; do{printf("%2d",x--);}while(!x); A)打印出 321B)打印出 23 C)不打印任何内容 D)陷入死循环 13.假定 a 和 b 为 int 型变量;则执行以下语句后 b 的值为 a=1;b=10; do{b-=a;a++;}while(b--<0);

A)9B)-2C)-1D)8 14.以下循环体的执行次数是【】 A)3B)2C)1D)0 nain ( [inti,j: for (i-0,j-l:i(-jtl:it-2,j-) printf (sd\n",i) 15.以下程序的输出结果是 A)编译不通过,无输出B》Ceg C)acegiD)abedefghi main ( [inti: for (i'A':i'I':i+t,i+) printf("s”,i+32 printf ("\n"):} 16.以下程序的输出结果是 A)101928)9876 C)109900)101091 main ( [intx=10.y=10.i for (i=0:x)8:y++i) printf("%格广,x一,y:} 17.请读程序: main ( lintA.Br for (A=I.B=l:AK=100:A++) [if (BD-20)break: if(B3=1) B+=3:continue::】 B-5:J
A)9B)-2C)-1D)8 14.以下循环体的执行次数是【】。 A)3B)2C)1D)0 main() {inti,j; for(i=0,j=1;i8;y=++i) printf("%d%d",x--,y);} 17.请读程序: main() {intA,B; for(A=1,B=1;A=20)break; if(B%3==1) {B+=3;continue;} B-=5;}

printf ("sd\n".A) 上面程序的输出结果是 A)7B》8)9D)10 18.有如下程序 main ( [inti.sum for (i=l:i3:j-) [if(j3)j-: 一j:一jt printf("d°;j:】 A)63B)74C)620)73 21.下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。 年include(stdio.h> main ( [inta.b.c.i: ac-0; far(i=0:1<10:i+=2) {a+i:【】c+b:】
printf("%d\n",A);} 上面程序的输出结果是 A)7B)8C)9D)10 18.有如下程序 main() {inti,sum; for(i=1;i3;j--) {if(j%3)j--; --j;--j; printf("%d";j);} A)63B)74C)62D)73 21.下面程序的功能是:计算 1 到 10 之间奇数之和及偶数之和,请填空。 #include main() {inta,b,c,i; a=c=0; for(i=0;i<10;i+=2) {a+=i;【】;c+=b;}

printf(“偶数之和-dn”,a万 printf(“奇数之和dn”,,c-l1:】 2,下面程序的功能是:输出100以内雀技3整豫且个位数为6的所有整数,请填空。 #include(stdio.h> nsin ( [inti.Jr for(i=0:【】:i+) 5-iw106: if(【】continue printf (sd",j): 1 2公.执行下面的程序后,的值为 main ( inta,b: for (a=l.h=l:a=20)break: if (b3==1)[b+=3:continue: b-=5:1 1 A)7B)8)9D)10 24.下面程序的输出是 A)741B)852C)963D)875121 main ( [inty-9: for (y)0:y-) [if (y%3=-0)(printf (d",--y):contimue: 1 25.设x和y均为int型变量,则执行下面的循环后,y值为 for (y=1.x=l1 y<=50 y++)
printf("偶数之和=%d\n",a); printf("奇数之和=%d\n",c-11);} 22.下面程序的功能是:输出 100 以内能被 3 整除且个位数为 6 的所有整数,请填空。 #include main() {inti,j; for(i=0;【】;i++) {j=i*10+6; if(【】)continue; printf("%d",j);} } 23.执行下面的程序后,a 的值为 main() {inta,b; for(a=1,b=1;a=20)break; if(b%3==1){b+=3;continue;} b-=5;} } A)7B)8C)9D)10 24.下面程序的输出是 A)741B)852C)963D)875421 main() {inty=9; for(;y>0;y--) {if(y%3==0){printf("%d",--y);continue;} } } 25.设 x 和 y 均为 int 型变量,则执行下面的循环后,y 值为 for(y=1,x=1;y<=50;y++)

[if (x>10)]break: if (x%2==1)(x+=5:continue: x-3: 1 A)2B)4C)6D)8 26.下面有关for循环的正确描述是 A)0r循环只能用于循环次数己经确定的情况 B)or循环是先执行循环体语句,后判断表达式 C)在far循环中,不能用beak语句跳出循环体 D)0r循环的循环体语句中,可包含多条语句,但必领川花括号括起米 勿,以下正确的描述是 A)continue语句的作用是结束整个循环的执行 B)只旋在循环体内和itch语句体内使用break语句 C)在循环体内使用break语句成continue语句的作用相同 D)从多层新环嵌套中退出时,只能使用Ot0语句 28.有以下程序 nain ( [inti,j: for (j-10:jll:jt) far(i=911i)l:ntt:printf (%d\n",n):
{if(x>=10)}break; if(x%2==1){x+=5;continue;} x-=3; } A)2B)4C)6D)8 26.下面有关 for 循环的正确描述是 A)for 循环只能用于循环次数已经确定的情况 B)for 循环是先执行循环体语句,后判断表达式 C)在 for 循环中,不能用 break 语句跳出循环体 D)for 循环的循环体语句中,可包含多条语句,但必须用花括号括起来 27.以下正确的描述是 A)continue 语句的作用是结束整个循环的执行 B)只能在循环体内和 switch 语句体内使用 break 语句 C)在循环体内使用 break 语句或 continue 语句的作用相同 D)从多层循环嵌套中退出时,只能使用 goto 语句 28.有以下程序 main() {inti,j; for(j=10;j=i)m=1;n++;printf("%d\n",n);}

0.以下描述正确的是 A)0t0语句只能用于退出多层循环 B)swtich语句中不能出现continue语句 C)只能用continue语句米锋止本次循环 D)在循环中brek语句不能独立出现 31,以下程序的输出结果是 A)#*可种超)时时可C)中中中+D》柱中村华 min ( [intin for (i=l:i main( {[inti-0,a-0: while(i<20) [for(::) if((i%10)==0)break: else i-: itll;atmi: 1 printh(dn“,a): 1 A21BD32C)33D)11 3双以下程序的输出结果是【】 main()
30.以下描述正确的是 A)goto 语句只能用于退出多层循环 B)swtich 语句中不能出现 continue 语句 C)只能用 continue 语句来终止本次循环 D)在循环中 break 语句不能独立出现 31.以下程序的输出结果是 A)#*#*#B)#####C)*****D)*#*#* main() {inti; for(i=1;i main() {inti=0,a=0; while(i<20) {for(;;) {if((i%10)==0)break; else i--; } i+=11;a+=i; } printh("%d\n",a); } A)21B)32C)33D)11 33.以下程序的输出结果是【】。 main()

int8,i日 for(s=0.iml:i<3:itt,s*mi); orintf\n”,s): 34以下程序的功能是:按顺序读入10名学生4门课程的成境,计算出每位学生的平均 分并输出,醒序如下, main( [intn,k: floatscore,sun,ave: 5=0.0月 far(n-l:a(-l0:mt+) [for (k=1:k<=4:k++) [scanf("sf",&score)sumt=score:! ave"sun/4.0: printf(“wOd:sf\n”,n,ave: 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条 语句是 A》sumr0.0: B》sut=sc0re: C)ave=sun/4.0: D)printf("Nod:%nn",n,ave) 35.有以下程序段 intn-0,p阳 do(scanf(“”,&p):mt+:》hi1e(p!-12345kkn(3): 此处da动ile循环的结桌条件是 A》P的值不等于12345并且■的值小于3 B卧P的值等于12345并且n的值大于等于3 CP的值不等于12345或者n的值小于3 D)P的值等于12345或者n的值大于等于3 3,有以下程序1
{ints,i; for(s=0,i=1;i<3;i++,s+=i); printf("%d\n",s); } 34.以下程序的功能是:按顺序读入 10 名学生 4 门课程的成绩,计算出每位学生的平均 分并输出,程序如下: main() {intn,k; floatscore,sum,ave; sum=0.0; for(n=1;n<=10;n++) {for(k=1;k<=4;k++) {scanf(“%f”,&score);sum+=score;} ave=sum/4.0; printf(“NO%d:%f\n”,n,ave); } } 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条 语句是 A)sum=0.0; B)sum+=score; C)ave=sun/4.0; D)printf(“NO%d:%f\n”,n,ave); 35.有以下程序段 intn=0,p; do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3); 此处 do—while 循环的结束条件是 A)P 的值不等于 12345 并且 n 的值小于 3 B)P 的值等于 12345 并且 n 的值大于等于 3 C)P 的值不等于 12345 或者 n 的值小于 3 D)P 的值等于 12345 或者 n 的值大于等于 3 36.有以下程序:

sinclude(stdio.h> main() (charc: while((c-getchar())!='?')putchar(-c): 1 程序运行时,如果从键盘输入:Y?N?(回车),则输出结果为[10]. 11 1 37,以下函数的功能是计算1+2+到++州,请填空。 doublefun(intn) (doubles-0.0.fac=1.0:inti; for(i=1,i<=n:i++) [fac-fac[12]; smstl/fac: 1 returns: 1
#include main() {charc; while((c=getchar())!=’?’)putchar(--c); } 程序运行时,如果从键盘输入:Y?N?,则输出结果为[10]。 37.以下函数的功能是计算 s=1+ 2! 1 + 3! 1 +……+ ! 1 n ,请填空。 doublefun(intn) {doubles=0.0,fac=1.0;inti; for(i=1,i<=n;i++) {fac=fac[12]; s=s+1/fac; } returns; }