第五章执行程序段[1]: x=-1; do ( x=x*x;) while(!x); 的结果是______。 (A)死循环 (B)循环执行2次 (C)循环执行一次 (D)有语法错误[2] 有以下程序: #include<stdio.h> void main() ( while(putchar(getchar())!='?'); ) 当输入"hello?"时,程序的执行结果是______。 (A)hello (B)dijob (C)dijob? (D)hello? 以下程序的输出为______。 #include<stdio.h> void main( ) ( int y=5; while (y--); printf ("y=%dn", y);) (A)y=0 (B)无限循环,无结果输出 (C)y=1 (D)y=-1 设有程序段: int x=0,s=0; while(x!=0) s+=++x; printf("%d",s); ,则运行程序段后______。 (A)输出0 (B)输出1 (C)控制表达式是非法的 (D)执行无限次 设有程序段: int k=10; while(k=0) k=k-1; ,则下面描述正确的是______。 (A)while 循环执行10次 (B)循环是无限循环 (C)循环体语句一次也不执行 (D)循环体语句执行一次 C语言的do-while循环中,循环由do开始,用while结束;而且在while表达式后面的______不能丢,它表示do-while循环的结束。 (A)n (B)“;” (C)“%” (D) “,” 以下能正确计算1×2×3×4...×10的程序段是______。 (A)do (i=1; s=1; s=s*i; i++;) while(i<=10); (B)do (i=1; s=0; s=s*i; i++;) while(i<=10); (C)i=1; s=1; do (s=s*i; i++;) while(i<=10); (D)i=1; s=0; do (s=s*i; i++;) while(i<=10); 以下描述中正确的是______。 (A)由于do-while循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 (B)do-while循环由do开始,用while结束,因此在while(表达式)后无需加分号。 (C)在do-while循环体中,一定要有能使while后面表达式的值变为“假”的操作。 (D)do-while循环中,根据情况可以省略while。 下面程序段的输出结果是______。 int x=3; do(printf("%3d",x-=2);) while(!(--x)); (A)1 2 (B)3 2 (C)2 3 (D)1 -2 C语言的for语句中的表达式可以部分或全部省略,但两个______不可省略。当三个表达式均省略后,因缺少判断条件,循环可能会无限制地进行下去,形成死循环。 (A)“<” (B)“++” (C)“;” (D)“,” 对于for(表达式;;表达式3)可理解为______。 (A)for(表达式;0;表达式3) (B)for(表达式;1;表达式3) (C)for(表达式;表达式1;表达式3) (D)for(表达式;表达式3;表达式3) 若i为整型变量,则以下循环执行的次数是______。 for(i=2;i==0;) printf("%d",i--); (A)无限次 (B)0次 (C)1次 (D)2次 以下for循环的执行次数是______。 for(x=0,y=0;(y=3)(x<4);x++,y++); (A)是无限循环 (B)循环次数不定 (C)执行4次 (D)执行3次 设i为整型量,执行循环语句for(i=50;i>=0;i-=10);后,i值为______。 (A)-10 (B)0 (C)10 (D)50 下面有关for循环的正确描述是______。 (A)for循环只能用于循环次数已经确定的情况。(B)for循环是先执行循环体语句,后判断表达式。 (C)在for循环中,不能用break语句跳出循环体。(D)for循环的循环体语句中,可以包含多条语句,但要用花括号括起来。 下面有关for循环的正确描述是______。 (A)for语句的三个表达式都是可以省略的,但分号“;”绝对不能省略。(B)for语句的三个表达式都是可以省略的,可以写成for( )。 (C)在for语句中,至少会执行循环体语句一次(D)for(;;) ;是一条语法上错误的语句。 在下列选[3]项中,没有构成死循环的程序段是______。 (A)int i=100; while (1) (i=i%100+1; if(i>100)break;) (B)for(;;); (C)int k=1000; do(--k;) while (k); (D)int s=36; while(s>=0) ; --s; 以下程序段的输出结果是______。 int x,i; for (i=1;i<=100;i++) ( x=i; if (++x%2==0) if (++x%3==0) if (++x%7==0) printf("%d ",x);) (A)25 67 (B)26 68 (C)27 69 (D)28 70 以下程序段的输出结果是______。 #include<stdio.h> void main( ) ( int i=2; for ( ;i<=10; ) { i++; if (i%3==0) printf("%d ",i); else continue;) } (A)3 (B)3 6 (C)3 6 9 (D)3 6 9 10 以下正确的描述是______。 (A)continue语句的作用是结束整个循环的执行。 (B)只能在循环体内和switch语句内使用break语句。 (C)在循环体内,使用break语句和使用continue语句的作用是相同的。 (D)从多层循环嵌套中退出时,只能使用goto语句。 下面程序段,______。 for(t=1;t<=100;t++) ( scanf("%d",x); if (x<0) continue; printf("%3d",t); )A. 当x<0时整个循环结束 B. 当x>=0时什么也不输出 C. printf函数永远也不执行 D. 最多允许输出100个非负整数 以下为死循环的程序段是______。 (A)for(i=1; ; ) (if (++i%2==0) continue; if (++i%3==0) break; ) (B)short int i; i=100; do ( if (i<0) break;) while(++i); (C)for(i=1; ; ) if (++i<10) continue; (D)i=100; while(i--); 以下程序输出结果为______。 #include <stdio.h> void main() ( int i,b,k=0; for(i=1;i<=3;i++) { b=i%3; while (b-->=0) k++; ) printf("%d,%dn",k,b); } (A)3,-1 (B)6,-1 (C)3,0 (D)6,-2 以下描述正确的是______。 (A)goto语句只能用于退出多层循环。 (B)switch语句中不能出现continue语句。 (C)只能用continue语句来终止本次循环。 (D)在循环中break语句不能独立出现。 以下不正确的描述是______。 (A)break语句不能用于循环语句和switch语句外的任何其他语句。 (B)在switch语句中使用break语句或continue语句的作用相同。 (C)在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行。 (D)在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环。 以下叙述正确的是______。 (A)for循环中的break; 语句表示:当条件成立时中止程序执行。 (B)for循环中的continue; 语句表示:当条件成立时中止本层循环。 (C)for循环中的break; 语句表示:当条件成立时中止本层循环。 (D)for循环中的break; 语句表示:当条件成立时暂停本次循环。 下面程序的运行结果是______。 #include<stdio.h> void main() ( int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=4;j++) { if(j%2) continue; x++; ) x++; } printf("x=%dn",x); } (A)x=6 (B)x=8 (C)x=10 (D)x=12 下面程序段输出的i值是______。 #include<stdio.h> void main() ( int i; for(i=1;i<=50;i++) if((i*i>=130)(i*i<=180))break; printf("%dn",i); ) (A)10 (B)11 (C)12 (D)13 下面程序段在执行完成后,a的值为:______。 int j=0,k=0,a=0; while(j<3) ( j++; a=a+1; k=0; while(k<=2) { k++; if(k%2!=0) continue; a=a+1; ) a=a+1; } (A)6 (B)8 (C)9 (D)10 E. ____4 _______。 #include<stdio.h> void main() ( int a=0; while(a*a*a<=50) ++a; printf("%dn",a); ) F. Hello?<回车>,则下面程序的运行结果是[ Ifmmp ]。 #include<stdio.h> void main() (char c; while((c=getchar())!='?') putchar(++c); ) G. [ 40 ]。 #include<stdio.h> void main() ( int k=1,n=452; do { k*=n%10; n/=10; ) while(n); printf("%dn",k); } [ k=14 n=-1 ]。 #include<stdio.h> void main() ( int k=0,n; do { scanf("%d",n); k+=n; ) while(n!=-1); printf("k=%d n=%dn",k,n); } [ 10 ]。 #include"stdio.h" void main() ( int i; for(i=0;i<10;i++); printf("%d",i); ) [55 ]。 #include<stdio.h> void main() ( int a=0,i;for(i=1;i<=5;i++) a+=i*i;printf("%dn",a); ) [ x=6 ]。 #include<stdio.h> void main() ( int i,j,x=0; for(i=0;i<3;i++) {if(i%3==2) break; x++; for(j=0;j<4;j++) { if(j%2) break; x++; ) x++; } printf("x=%dn",x); } [ 6 ]。 for(y=1,x=1;y<=50;y++) ( if(x>=10) break; if (x%2==1){ x+=5; continue;) x-=3; } BCdef<回车>,则输出为[ abcDEF ]。 #include<stdio.h> void main() (char ch; while((ch=getchar( ))!='n') {if(ch>='A' ch<='Z') ch=ch+32; else if(ch>='a'ch<'z') ch=ch-32;printf("%c",ch);) printf("n"); } [ 7,7 ]。 #include<stdio.h> void main() ( int v1=0,v2=0; char ch; while((ch=getchar( ))!='#') switch(ch){case 'd':case 't':default: v1++;case 'a': v2++;) printf("%d,%dn",v1,v2);} [ 6 ]。 #include<stdio.h> void main() ( int i,j,m=0; for(i=1;i<=10;i+=4) for(j=3;j<=10;j+=4) m++; printf("%dn",m); ) in() ( int a,b,t; scanf("%d%d",a,b); while([ a!=b ]) { if (a>b) {t=a;a=b;b=t;) printf("%d,%dn",a,b); scanf("%d%d",a,b); } } ,z变成 。请将程序补充完整。 #include<stdio.h> void main() ( har c; while ((c=getchar())!='n') { if (c>='a' c<='z') [ c-=30 ]; if (c>'Z' c<='Z'+2) [ c-=26 ]; printf("%cn",c); ) } in() ( int m=0,n=0; char c; while ( ([ c=getchar() ])!='n') { if (c>='A' c<='Z') m++; if (c>='a' c<='z') n++; ) printf("m=%d,n=%dn",m,n); } r(); while([ c!='n' ]) ( if([ c>='0'c<='9' ]) n++; c=getchar(); ) in() ( int i,t=1,s=0; for(i=1;i<=101;i+=2) t=t*i ]; s+=t;[t=-t/i ];) printf("%dn",s); } in() ( int x,y; for(x=1;x<=29;x++) {y=30-x; if ([ x*2+y*4==90 ])printf("%d,%dn",x,y);) } in() ( int i,j,k; printf("n 红 白 黑 n"); for(i=0;i<=3;i++) for([ j=1 ];j<=5;j++) { k=8-i-j; if ([ k>=0k<=6 ]) printf(" %3d %3d %3d n",i,j,k); ) } in() (int i=1,j=0; do {if ([i%3==2i%5==3i%7==2 ]) { printf("%4d",i); j=j+1; if ([ j%5==0 ]) printf("n"); ) i=i+1; }while(i<1000); } while语句do-while语句无论什么情况下,二者的执行结果都一样。 C语言的while、do-while和for几个循环语句,可以相互嵌套。 用do-while语句构成循环时,只有在while后的表达式为非0时结束循环。 要使for(表达式1;表达式2;表达式3)(循环体)不形成死循环,表达式2一定不能省略。 while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。 ontinue语句的功能就是结束本层循环。 对用goto语句和if语句构成的循环,不能用break语句和continue语句进行控制。 break语句不能用于循环语句和switch语句之外的任何其它语句。 在多层循环嵌套中,可以共用一个continue结束各层的本次循环。 三种循环(for循环、while循环和do-while循环)可以互相嵌套,但必须使用相同的循环控制变量。
第五章
执行程序段[1]: x=-1; do { x=x*x;} while(!x); 的结果是______。 (A)死循环 (B)循环执行2次 (C)循环执行一次 (D)有语法错误[2] 有以下程序: #include<stdio.h> void main() { while(putchar(getchar())!='?'); } 当输入"hello?"时,程序的执行结果是______。 (A)hello (B)dijob (C)dijob? (D)hello? 以下程序的输出为______。 #include<stdio.h> void main( ) { int y=5; while (y--); printf ("y=%d\n", y);} (A)y=0 (B)无限循环,无结果输出 (C)y=1 (D)y=-1 设有程序段: int x=0,s=0; while(x!=0) s+=++x; printf("%d",s); ,则运行程序段后______。 (A)输出0 (B)输出1 (C)控制表达式是非法的 (D)执行无限次 设有程序段: int k=10; while(k=0) k=k-1; ,则下面描述正确的是______。 (A)while 循环执行10次 (B)循环是无限循环 (C)循环体语句一次也不执行 (D)循环体语句执行一次 C语言的do-while循环中,循环由do开始,用while结束;而且在while表达式后面的______不能丢,它表示do-while循环的结束。 (A)\n (B)“;” (C)“%” (D) “,” 以下能正确计算1×2×3×4...×10的程序段是______。 (A)do {i=1; s=1; s=s*i; i++;} while(i<=10); (B)do {i=1; s=0; s=s*i; i++;} while(i<=10); (C)i=1; s=1; do {s=s*i; i++;} while(i<=10); (D)i=1; s=0; do {s=s*i; i++;} while(i<=10); 以下描述中正确的是______。 (A)由于do-while循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 (B)do-while循环由do开始,用while结束,因此在while(表达式)后无需加分号。 (C)在do-while循环体中,一定要有能使while后面表达式的值变为“假”的操作。 (D)do-while循环中,根据情况可以省略while。 下面程序段的输出结果是______。 int x=3; do{printf("%3d",x-=2);} while(!(--x)); (A)1 2 (B)3 2 (C)2 3 (D)1 -2 C语言的for语句中的表达式可以部分或全部省略,但两个______不可省略。当三个表达式均省略后,因缺少判断条件,循环可能会无限制地进行下去,形成死循环。 (A)“<” (B)“++” (C)“;” (D)“,” 对于for(表达式;;表达式3)可理解为______。 (A)for(表达式;0;表达式3) (B)for(表达式;1;表达式3) (C)for(表达式;表达式1;表达式3) (D)for(表达式;表达式3;表达式3) 若i为整型变量,则以下循环执行的次数是______。 for(i=2;i==0;) printf("%d",i--); (A)无限次 (B)0次 (C)1次 (D)2次 以下for循环的执行次数是______。 for(x=0,y=0;(y=3)(x<4);x++,y++); (A)是无限循环 (B)循环次数不定 (C)执行4次 (D)执行3次 设i为整型量,执行循环语句for(i=50;i>=0;i-=10);后,i值为______。 (A)-10 (B)0 (C)10 (D)50 下面有关for循环的正确描述是______。 (A)for循环只能用于循环次数已经确定的情况。(B)for循环是先执行循环体语句,后判断表达式。 (C)在for循环中,不能用break语句跳出循环体。(D)for循环的循环体语句中,可以包含多条语句,但要用花括号括起来。 下面有关for循环的正确描述是______。 (A)for语句的三个表达式都是可以省略的,但分号“;”绝对不能省略。
(B)for语句的三个表达式都是可以省略的,可以写成for( )。 (C)在for语句中,至少会执行循环体语句一次
(D)for(;;) ;是一条语法上错误的语句。 在下列选[3]项中,没有构成死循环的程序段是______。 (A)int i=100; while (1) {i=i%100+1; if(i>100)break;} (B)for(;;); (C)int k=1000; do{--k;} while (k); (D)int s=36; while(s>=0) ; --s; 以下程序段的输出结果是______。 int x,i; for (i=1;i<=100;i++) { x=i; if (++x%2==0) if (++x%3==0) if (++x%7==0) printf("%d ",x);} (A)25 67 (B)26 68 (C)27 69 (D)28 70 以下程序段的输出结果是______。 #include<stdio.h> void main( ) { int i=2; for ( ;i<=10; ) { i++; if (i%3==0) printf("%d ",i); else continue;} } (A)3 (B)3 6 (C)3 6 9 (D)3 6 9 10 以下正确的描述是______。 (A)continue语句的作用是结束整个循环的执行。 (B)只能在循环体内和switch语句内使用break语句。 (C)在循环体内,使用break语句和使用continue语句的作用是相同的。 (D)从多层循环嵌套中退出时,只能使用goto语句。 下面程序段,______。 for(t=1;t<=100;t++) { scanf("%d",x); if (x<0) continue; printf("%3d",t); }
A. 当x<0时整个循环结束B. 当x>=0时什么也不输出
C. printf函数永远也不执行
D. 最多允许输出100个非负整数 以下为死循环的程序段是______。 (A)for(i=1; ; ) {if (++i%2==0) continue; if (++i%3==0) break; } (B)short int i; i=100; do { if (i<0) break;} while(++i); (C)for(i=1; ; ) if (++i<10) continue; (D)i=100; while(i--); 以下程序输出结果为______。 #include <stdio.h> void main() { int i,b,k=0; for(i=1;i<=3;i++) { b=i%3; while (b-->=0) k++; } printf("%d,%d\n",k,b); } (A)3,-1 (B)6,-1 (C)3,0 (D)6,-2 以下描述正确的是______。 (A)goto语句只能用于退出多层循环。 (B)switch语句中不能出现continue语句。 (C)只能用continue语句来终止本次循环。 (D)在循环中break语句不能独立出现。 以下不正确的描述是______。 (A)break语句不能用于循环语句和switch语句外的任何其他语句。 (B)在switch语句中使用break语句或continue语句的作用相同。 (C)在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行。 (D)在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环。 以下叙述正确的是______。 (A)for循环中的break; 语句表示:当条件成立时中止程序执行。 (B)for循环中的continue; 语句表示:当条件成立时中止本层循环。 (C)for循环中的break; 语句表示:当条件成立时中止本层循环。 (D)for循环中的break; 语句表示:当条件成立时暂停本次循环。 下面程序的运行结果是______。 #include<stdio.h> void main() { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=4;j++) { if(j%2) continue; x++; } x++; } printf("x=%d\n",x); } (A)x=6 (B)x=8 (C)x=10 (D)x=12 下面程序段输出的i值是______。 #include<stdio.h> void main() { int i; for(i=1;i<=50;i++) if((i*i>=130)(i*i<=180))break; printf("%d\n",i); } (A)10 (B)11 (C)12 (D)13 下面程序段在执行完成后,a的值为:______。 int j=0,k=0,a=0; while(j<3) { j++; a=a+1; k=0; while(k<=2) { k++; if(k%2!=0) continue; a=a+1; } a=a+1; } (A)6 (B)8 (C)9 (D)10
E. ____4 _______。 #include<stdio.h> void main() { int a=0; while(a*a*a<=50) ++a; printf("%d\n",a); }
F. Hello?<回车>,则下面程序的运行结果是[ Ifmmp ]。 #include<stdio.h> void main() {char c; while((c=getchar())!='?') putchar(++c); }
G. [ 40 ]。 #include<stdio.h> void main() { int k=1,n=452; do { k*=n%10; n/=10; } while(n); printf("%d\n",k); }
[ k=14 n=-1 ]。 #include<stdio.h> void main() { int k=0,n; do { scanf("%d",n); k+=n; } while(n!=-1); printf("k=%d n=%d\n",k,n); }
[ 10 ]。 #include"stdio.h" void main() { int i; for(i=0;i<10;i++); printf("%d",i); }
[55 ]。 #include<stdio.h> void main() { int a=0,i;for(i=1;i<=5;i++) a+=i*i;printf("%d\n",a); }
[ x=6 ]。 #include<stdio.h> void main() { int i,j,x=0; for(i=0;i<3;i++) {if(i%3==2) break; x++; for(j=0;j<4;j++) { if(j%2) break; x++; } x++; } printf("x=%d\n",x); }
[ 6 ]。 for(y=1,x=1;y<=50;y++) { if(x>=10) break; if (x%2==1){ x+=5; continue;} x-=3; }
BCdef<回车>,则输出为[ abcDEF ]。 #include<stdio.h> void main() {char ch; while((ch=getchar( ))!='\n') {if(ch>='A' ch<='Z') ch=ch+32; else if(ch>='a'ch<'z') ch=ch-32;printf("%c",ch);} printf("\n"); }
[ 7,7 ]。 #include<stdio.h> void main() { int v1=0,v2=0; char ch; while((ch=getchar( ))!='#') switch(ch){case 'd':case 't':default: v1++;case 'a': v2++;} printf("%d,%d\n",v1,v2);}
[ 6 ]。 #include<stdio.h> void main() { int i,j,m=0; for(i=1;i<=10;i+=4) for(j=3;j<=10;j+=4) m++; printf("%d\n",m); }
in() { int a,b,t; scanf("%d%d",a,b); while([ a!=b ]) { if (a>b) {t=a;a=b;b=t;} printf("%d,%d\n",a,b); scanf("%d%d",a,b); } }
,z变成
。请将程序补充完整。 #include<stdio.h> void main() {
har c; while ((c=getchar())!='\n') { if (c>='a' c<='z') [ c-=30 ]; if (c>'Z' c<='Z'+2) [ c-=26 ]; printf("%c\n",c); } }
in() { int m=0,n=0; char c; while ( ([ c=getchar() ])!='\n') { if (c>='A' c<='Z') m++; if (c>='a' c<='z') n++; } printf("m=%d,n=%d\n",m,n); }
r(); while([ c!='\n' ]) { if([ c>='0'c<='9' ]) n++; c=getchar(); }
in() { int i,t=1,s=0; for(i=1;i<=101;i+=2) {[ t=t*i ]; s+=t;[t=-t/i ];} printf("%d\n",s); }
in() { int x,y; for(x=1;x<=29;x++) {y=30-x; if ([ x*2+y*4==90 ])printf("%d,%d\n",x,y);} }
in() { int i,j,k; printf("\n 红 白 黑 \n"); for(i=0;i<=3;i++) for([ j=1 ];j<=5;j++) { k=8-i-j; if ([ k>=0k<=6 ]) printf(" %3d %3d %3d \n",i,j,k); } }
in() {int i=1,j=0; do {if ([i%3==2i%5==3i%7==2 ]) { printf("%4d",i); j=j+1; if ([ j%5==0 ]) printf("\n"); } i=i+1; }while(i<1000); }
while语句do-while语句无论什么情况下,二者的执行结果都一样。
C语言的while、do-while和for几个循环语句,可以相互嵌套。
用do-while语句构成循环时,只有在while后的表达式为非0时结束循环。
要使for(表达式1;表达式2;表达式3){循环体}不形成死循环,表达式2一定不能省略。
while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。
ontinue语句的功能就是结束本层循环。
对用goto语句和if语句构成的循环,不能用break语句和continue语句进行控制。
break语句不能用于循环语句和switch语句之外的任何其它语句。
在多层循环嵌套中,可以共用一个continue结束各层的本次循环。
三种循环(for循环、while循环和do-while循环)可以互相嵌套,但必须使用相同的循环控制变量。
题目解答
答案
当 x<0 时整个循环结束 ( B )当 x>=0 时什么也不输出 ( C ) printf 函数永远也不执行 ( D )最多允许输出 100 个非负整数 以下为死循环的程序段是 ______ 。 ( A ) for(i=1; ; ) {if (++i%2==0) continue; if (++i%3==0) break; } ( B ) short int i; i=100; do { if (i<0) break;} while(++i); ( C ) for(i=1; ; ) if (++i<10) continue; ( D ) i=100; while(i--); 以下程序输出结果为 ______ 。 #include <stdio.h> void main() { int i,b,k=0; for(i=1;i<=3;i++) { b=i%3; while (b-->=0) k++; } printf("%d,%d\n",k,b); } ( A ) 3,-1 ( B ) 6,-1 ( C ) 3,0 ( D ) 6,-2 以下描述正确的是 ______ 。 ( A ) goto 语句只能用于退出多层循环。 ( B ) switch 语句中不能出现 continue 语句。 ( C )只能用 continue 语句来终止本次循环。 ( D )在循环中 break 语句不能独立出现。 以下不正确的描述是 ______ 。 ( A ) break 语句不能用于循环语句和 switch 语句外的任何其他语句。 ( B )在 switch 语句中使用 break 语句或 continue 语句的作用相同。 ( C )在循环语句中使用 continue 语句是为了结束本次循环 , 而不是终止整个循环的执行。 ( D )在循环语句中使用 break 语句是为了使流程跳出循环体 , 提前结束循环。 以下叙述正确的是 ______ 。 ( A ) for 循环中的 break; 语句表示:当条件成立时中止程序执行。 ( B ) for 循环中的 continue; 语句表示:当条件成立时中止本层循环。 ( C ) for 循环中的 break; 语句表示:当条件成立时中止本层循环。 ( D ) for 循环中的 break; 语句表示:当条件成立时暂停本次循环。 下面程序的运行结果是 ______ 。 #include<stdio.h> void main() { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=4;j++) { if(j%2) continue; x++; } x++; } printf("x=%d\n",x); } ( A ) x=6 ( B ) x=8 ( C ) x=10 ( D ) x=12 下面程序段输出的 i 值是 ______ 。 #include<stdio.h> void main() { int i; for(i=1;i<=50;i++) if((i*i>=130)(i*i<=180))break; printf("%d\n",i); } ( A ) 10 ( B ) 11 ( C ) 12 ( D ) 13 下面程序段在执行完成后, a 的值为: ______ 。 int j=0,k=0,a=0; while(j<3) { j++; a=a+1; k=0; while(k<=2) { k++; if(k%2!=0) continue; a=a+1; } a=a+1; } ( A ) 6 ( B ) 8 ( C ) 9 ( D ) 10 下面程序的运行结果是 ____ 4 _______ 。 #include<stdio.h> void main() { int a=0; while(a*a*a<=50) ++a; printf("%d\n",a); } 当运行下面程序时,从键盘键入 Hello?< 回车 > ,则下面程序的运行结果是【 Ifmmp 】。 #include<stdio.h> void main() {char c; while((c=getchar())!='?') putchar(++c); } 执行下面程序后, k 值是【 40 】。 #include<stdio.h> void main() { int k=1,n=452; do { k*=n%10; n/=10; } while(n); printf("%d\n",k); } 当运行以下程序时,从键盘键入 1 2 3 4 5 -1 < 回车 > ,则下面程序的运行结果是【 k=14 n=-1 】。 #include<stdio.h> void main() { int k=0,n; do { scanf("%d",n); k+=n; } while(n!=-1); printf("k=%d n=%d\n",k,n); } 以下程序输出结果为【 10 】。 #include"stdio.h" void main() { int i; for(i=0;i<10;i++); printf("%d",i); } 下面程序的运行结果是【 55 】。 #include<stdio.h> void main() { int a=0,i;for(i=1;i<=5;i++) a+=i*i;printf("%d\n",a); } 下列程序的输出结果为【 x=6 】。 #include<stdio.h> void main() { int i,j,x=0; for(i=0;i<3;i++) {if(i%3==2) break; x++; for(j=0;j<4;j++) { if(j%2) break; x++; } x++; } printf("x=%d\n",x); } 设 x 和 y 均为 int 型变量 , 则执行以下的循环后 ,y 值为【 6 】。 for(y=1,x=1;y<=50;y++) { if(x>=10) break; if (x%2==1){ x+=5; continue;} x-=3; } 在执行以下程序时 , 如果从键盘上输入: ABCdef< 回车 >, 则输出为【 abcDEF 】。 #include<stdio.h> void main() {char ch; while((ch=getchar( ))!='\n') {if(ch>='A' ch<='Z') ch=ch+32; else if(ch>='a'ch<'z') ch=ch-32;printf("%c",ch);} printf("\n"); } 运行以下程序后 , 如果从键盘上输入 student#< 回车 >, 则输出结果为【 7,7 】。 #include<stdio.h> void main() { int v1=0,v2=0; char ch; while((ch=getchar( ))!='#') switch(ch){case 'd':case 't':default: v1++;case 'a': v2++;} printf("%d,%d\n",v1,v2);} 运行下面程序后,输出结果为【 6 】。 #include<stdio.h> void main() { int i,j,m=0; for(i=1;i<=10;i+=4) for(j=3;j<=10;j+=4) m++; printf("%d\n",m); } 下面程序的功能是将从键盘上输入的一对数,由小到大排序输出。当输入一对相等数时结束循环。请将程序补充完整。 #include<stdio.h> void main() { int a,b,t; scanf("%d%d",a,b); while( 【 a!=b 】 ) { if (a>b) {t=a;a=b;b=t;} printf("%d,%d\n",a,b); scanf("%d%d",a,b); } } 下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中 y 变成 A,z 变成 B 。请将程序补充完整。 #include<stdio.h> void main() { char c; while ((c=getchar())!='\n') { if (c>='a' c<='z') 【 c-=30 】 ; if (c>'Z' c<='Z'+2) 【 c-=26 】 ; printf("%c\n",c); } } 下面程序的功能是从键盘输入的一组字符中分别统计出大写和小写字母的个数,当输入换行符时结束输入。请将程序补充完整。 #include<stdio.h> void main() { int m=0,n=0; char c; while ( ( 【 c=getchar() 】 )!='\n') { if (c>='A' c<='Z') m++; if (c>='a' c<='z') n++; } printf("m=%d,n=%d\n",m,n); } 下面程序段是从键盘输入的字符中统计数字字符个数,用换行符结束循环。请将程序补充完整。 int n=0,c; c=getchar(); while( 【 c!='\n' 】 ) { if( 【 c>='0'c<='9' 】 ) n++; c=getchar(); } 下面程序的功能是计算 1-3+5-7+...-99+101 的值。请将程序补充完整。 #include<stdio.h> void main() { int i,t=1,s=0; for(i=1;i<=101;i+=2) { 【 t=t*i 】 ; s+=t; 【 t=-t/i 】 ;} printf("%d\n",s); } 鸡兔共有 30 只,脚共有 90 个,下面程序是计算鸡兔各有多少只。请将程序补充完整。 #include<stdio.h> void main() { int x,y; for(x=1;x<=29;x++) {y=30-x; if ( 【 x*2+y*4==90 】 )printf("%d,%d\n",x,y);} } 下面程序的功能是从 3 个红球、 5 个白球、 6 个黑球中任意取出 8 个球,且其中必须有白球,输出所有的方案。请将程序补充完整。 #include<stdio.h> void main() { int i,j,k; printf("\n 红 白 黑 \n"); for(i=0;i<=3;i++) for( 【 j=1 】 ;j<=5;j++) { k=8-i-j; if ( 【 k>=0k<=6 】 ) printf(" %3d %3d %3d \n",i,j,k); } } 下面程序的功能是用 do-while 语句求 1-1000 之间满足 “ 用 3 除余 2 、用 5 除余 3 、用 7 除余 2 ” 的数,且一行只打印 5 个数。请将程序补充完整。 #include<stdio.h> void main() {int i=1,j=0; do {if ( 【 i%3==2i%5==3i%7==2 】 ) { printf("%4d",i); j=j+1; if ( 【 j%5==0 】 ) printf("\n"); } i=i+1; }while(i<1000); } B while 语句 do-while 语句无论什么情况下,二者的执行结果都一样。 A C 语言的 while 、 do-while 和 for 几个循环语句,可以相互嵌套。 B 用 do-while 语句构成循环时,只有在 while 后的表达式为非 0 时结束循环。 B 要使 for( 表达式 1; 表达式 2; 表达式 3){ 循环体 } 不形成死循环,表达式 2 一定不能省略。 A while 循环的 while() 后没有分号,而 do-while 循环的 while() 后一定要有一个分号。 B continue 语句的功能就是结束本层循环。 A 对用 goto 语句和 if 语句构成的循环,不能用 break 语句和 continue 语句进行控制。 A break 语句不能用于循环语句和 switch 语句之外的任何其它语句。 B 在多层循环嵌套中,可以共用一个 continue 结束各层的本次循环。 B 三种循环( for 循环、 while 循环和 do-while 循环)可以互相嵌套,但必须使用相同的循环控制变量。