第五章循环结构程序设计一、选择题1.while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为 A 的操作,否则,循环将会无限制地进行下去。
(0级)A)0 B)1 C)成立D)22.在do-while循环中,循环由do开始,用while结束;必须注意的是:在while表达式后面的 C 不能丢,它表示do-while语句的结束。
(0级)A)0 B)1 C);D),3.for语句中的表达式可以部分或全部省略,但两个 C 不可省略。
但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。
(0级)A)0 B)1 C);D),4.程序段如下int k=-20;while(k=0) k=k+1;则以下说法中正确的是 C 。
(1级)A)while循环执行20次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次5.程序段如下int k=1;while(!k==0) {k=k+1;printf("%d\n",k);}说法正确的是 B 。
(1级)A)while循环执行2次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次6.以下for循环是 D 。
(1级)for(a=0,b=0;(b!=123)&&(a<=4);a++)A)无限循环B)循环次数不定C)执行4次D)执行5次7.在下列程序中,while循环的循环次数是 D 。
(1级)main( ){ int i=0;while(i<10){if(i<1) continue;if(i= =5) break;i++;}......}A)1 B)10 C)6 D)死循环、不能确定次数8.程序段如下int k=0; while(k++<=2) printf("%d\n",k);则执行结果是 A 。
(1级)A)1 B)2 C)0 D)无结果2 3 13 4 29.程序段如下int k=0;while(k++<=2); printf("last=%d\n",k);则执行结果是last= C 。
(1级)A)2 B)3 C)4 D)无结果10.执行下面的程序后,a的值为 B 。
(1级)main(){int a,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}}A)7 B)8 C)9 D)10 11.以下程序的输出结果 A 。
(1级)main(){int x=3;do{printf("%3d",x-=2);}while(--x);}A)1 B)30 3 C)1 -2 D)死循环12.定义如下变量:int n=10;则下列循环的输出结果是 B 。
(1级)while(n>7){n--;printf("%d\n",n);}A)10 B)9 C)10 D)99 8 9 88 7 8 77 613.以下程序的输出结果 D 。
(1级)main(){int n=0;while(n++<=1)printf("%d\t",n);printf("%d\n",n);}A)1 2 3 B)0 1 2 C)1 1 2 D)1 2 214.以下程序的输出结果是 B 。
(1级)main(){int i;for(i=1;i<=5;i++){if(i%2)printf("#");else continue;printf("*");}printf("$\n");}A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$ 15.以下程序的输出结果是 C 。
(1级)main(){int a=0,i;for(i=1;i<5;i++){swich(i){case 0:case 3:a+=2;case 1:case2:a+=3;default:a+=5;}}printf("%d\n",a);}A)31 B)15 C)10 D)20 16.以下程序的输出结果是 B 。
(1级)#include <stdio.h>main(){int i=0,a=0;while(i<20){for(;;) {if((i%10)= =0) break;else i--;}i+=11; a+=i;}printf("%d\n",a);}A)21 B)32 C)33 D)11 17.当输入为"quert?"时,下面程序的执行结果是 B 。
(1级)#include<stdio.h>main(){char c;c=getchar();while((c=getchar())!='?') putchar(++c);}A)Quert B)vfsu C)quert? D)rvfsu? 18.当输入为"quert?"时,下面程序的执行结果是 C 。
(1级)#include <stdio.h>main(){while(putchar(getchar())!='?');}A)quert B)Rvfsu C)quert? D)rvfsu? 19.当输入为"quert?"时,下面程序的执行结果是 A 。
(2级)#include<stdio.h>main(){char c;c=getchar();while(c!='?'){putchar(c);c=getchar();}}A)quert B)Rvfsu C)quert? D)rvfsu? 20.在C语言的循环语句for,while,do-while中,用于直接中断最内层循环的语句是C 。
(0级)A)swich B)continue C)break D)if21.若i,j已定义为int型,则以下程序段中循环体的总的执行次数是 A 。
(1级)for(i=5;i;i--)for(j=0;j<4;j++){ }A)20 B)24 C)25 D)3022.以下程序的功能是:按顺序读入10名学生的4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main(){int n,k;float score,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);}}上述程序有一条语句出现在程序的位置不正确。
这条语句是 C 。
(2级)A)sum=0.0; B)sum+=score;C)ave=sum/4.0; D)printf("NO%d:%f\n",n,ave);23. 有如下程序段, 其执行结果为 A 。
(02~03第一学期试题)for ( n = 10; n > 7; n-- )printf ( “ %d\n” , n ) ;A)10 B)9 C)10 D)99 8 9 88 7 8 77 624. 循环语句中的for语句,其一般形式如下:for(表达式1;表达式2;表达式3) 语句其中表示循环条件的是 B 。
(01~02第二学期试题)A)表达式1 B)表达式2 C)表达式3 D)语句25.定义如下变量:int n=10;则下列循环的输出结果是 B 。
(01~02第二学期试题)while (n>7){ n--;printf(“%d”,n); }A)10 B)9 C)10 D)99 8 9 88 7 8 77 626.下面程序段的运行结果是: D 。
(03试题)x=y=0; while(x<15) y++, x+=++y;printf(“%d,%d”, y, x);A)20, 7 B)6, 12C)20, 8 D)8, 2027.以下程序的运行结果是: B 。
(03试题)main( ){ int a=2, i ;for(i=0;i<3;i++) printf(“%4d”,f(a) ) ; }f( int a){ int b=0,c=3;b++; c++; return(a+b+c); }A)7 10 13 B)7 7 7C)7 9 11 D)7 8 928.下面程序的运行结果是: B 。
(往届试题)main( ){ int y=10;do { y--; } while(--y) ;printf(“%d\n”,y--); }A)-1 B)1 C)8 D)029. 下面有关for循环的正确描述是 D 。
(04~05第二学期试题)A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来30. 以下能正确计算1×2×3×…×10的程序段是 C 。
(04~05第二学期试题)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);31. 以下程序段 C 。
(04~05第二学期试题)x=-1; do { x=x *x;} while(!x);A)是死循环B)循环执行二次C)循环执行一次D)有语法错误32.下面程序的运行结果是: D 。
(往届试题)#include <stdio.h>main( ){ int y=10;do { y--; } while(--y) ;printf(“%d\n”,y--); }A)-1 B)1 C)8 D)033.定义如下变量和数组:int I;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面执行语句的结果为: C 。
(往届试题)for(I=0;I<3;I++)printf(“%3d”,x[I][2-I]);A)1 5 9 B)1 4 7C)3 5 7 D)3 6 934.以下程序的运行结果是: A 。