第五章执行程序段[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); )

第五章

执行程序段[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=-1;do{x=x*x;}while(!x);的结果是()

[单选题]执行程序段:x=-1;do{x=x*x;}while(!x);的结果是()A . 死循环B . 循环执行2次C . 循环执行一次D . 有语法错误

  • 查看答案
  • 执行以下程序段() x=£­1; do { x=x*x; } while(!x)

    [单选题]执行以下程序段 ( ) x=-1; do { x=x*x; } while(!x);A.循环体将执行一次B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误

  • 查看答案
  • 当执行以下程序段时,______。x=£­1 ;do {x=x*x;}while

    [单选题]当执行以下程序段时,______。x=-1 ;do { x=x*x;}while (!x);A.循环体将执行1次B.循环体将执行2次C.循环体将执行无限次D.系统将提示有语法错误

  • 查看答案
  • 下列循环执行的次数是( )。int y=2,x;4;while(£­£­x!=x

    [单选题]下列循环执行的次数是( )。 int y=2,x;4; while(--x!=x/y) {}A.1B.2C.3D.0

  • 查看答案
  • 若有“inta=1,x=1;”,则循环语句“while(a<10)x++;a++;”的循环执行()。

    [单选题]若有“inta=1,x=1;”,则循环语句“while(a<10)x++;a++;”的循环执行()。A.无限次B.10次C.9次D.不确定次

  • 查看答案
  • 若有“inta=1,x=1;”,则循环语句“while(a<10)x++;a++;”的循环执行()。

    [单选题]若有“inta=1,x=1;”,则循环语句“while(a<10)x++;a++;”的循环执行()。A.无限次B.10次C.9次D.不确定次

  • 查看答案
  • 下列循环执行的次数为()。int y=2,x=4;while(£­£­x!=x£

    [单选题]下列循环执行的次数为( )。 int y=2,x=4; while(--x!=x/y){}A.1B.2C.3D.0

  • 查看答案
  • 下列程序段的执行结果为 I=1 x=5 Do I=I£«1 x=x£«2 Loo

    [单选题]下列程序段的执行结果为I=1x=5D.oI=I + 1x=x + 2Loop Until I >=7Print "I="; IPrint "x="; x ( )。A.I=4x=5B.I=7x=15C.I=6x=8D.I=7x=17

  • 查看答案
  • 要求循环执行2次后结束循环,【  】处应填入的语句是(  )。<br />x=1  Do<br />x=x+2<br />LoopUntil【  】

    [单选题]要求循环执行2次后结束循环,【  】处应填入的语句是(  )。x=1  Dox=x+2LoopUntil【  】A.X<=5B.x<5C.x>=5D.

  • 查看答案
  • 下列程序段的执行结果为 I=9 X=5 Do I=I£«1 x=x£«2 Loo

    [单选题]下列程序段的执行结果为 I=9 X=5 Do I=I+1 x=x+2 Loop Until I >=7 Print"I=";I Print"x=";xA.I=4x=5B.I=7x=15C.I=6x=8D.I=10x=7

  • 查看答案