第4章 循环结构
一、 选择题 1、有以下程序段 int k=0; while(k=1)k++;
while 循环执行的次数是( A)
A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次
2、t为int类型,进入下面的循环之前,t的值为0 while( t=1) { …… }
则以下叙述中正确的是 ( B) A) 循环控制表达式的值为0 B) 循环控制表达式的值为1 C) 循环控制表达式不合法 D) 以上说法都不对
3、在C程序中,与while(m)中表达式m完全等价的是 (B ) A) m==0 B) m!=0 C) m==1 D) m!=1 4、有以下程序,程序运行后的输出结果是(C )。 main()
{int i=1,sum=0; while(i<=4) {
sum=sum+i; i=i+1; }
printf(“%d\\n”,sum);}
A)4 B)5 C)10 D)死循环
5、有以下程序,程序运行后的输出结果是(D )。 main()
{ int i=1,sum=0; while(i<=4) sum=sum+i; i=i+1;
printf(“%d\\n”,sum); }
A)4 B)5 C)10 D)死循环 6、有如下程序 main(){ int n=9;
while(n>6){n--;printf(“%d”,n);} }
该程序段的输出结果是(B)
A) 987 B) 876 C) 8765 D) 9876
7、以下程序的输出结果是 ( B ) main()
{ int num= 0; while(num<=2)
{ num++; printf(“%d\\n”,num);} }
A) 1 B) 1 C)1 D) l 2 2 2 3 3 4
8、有以下程序,若运行时输入3.6 2.4<回车>,则输出的结果是( B)。 main() {float x,y,z;
scanf(“%f%f”,&x,&y); z=x/y; while(1){
if(fabs(z)>1.0) {
x=y; y=z; z=x/y;} else
break;} printf(“%f\\n”,y);}
A)1.500000 B)1.600000 C)2.000000 D)2.400000 9、执行以下程序段时 x=-1; do { x=x*x; } while(! x);
则下面描述正确的是(A )
A) 循环体将执行一次 B) 循环体将执行两次
C) 循环体将执行无限次 D) 系统将提示有语法错误 10、有以下程序段其输出结果是(C ) int x=3; do
{ printf(\while (!(--x));
A) 1 B) 3 0 C) 1 -2 D) 死循环 11、有如下程序 main(){ int x=23; do {
printf(“%d”,x); x--;
}while(!x); }
该程序的执行结果是(B )
A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环 12、有以下程序段 int n=0,p;
do{scanf(“%d”,&p);n++;}while(p!=12345 &&n<3); 此处do—while循环的结束条件是( D) A) P的值不等于12345并且n的值小于3 B) P的值等于12345并且n的值大于等于3 C) P的值不等于12345或者n的值小于3 D) P的值等于12345或者n的值大于等于3 13、以下不构成无限循环的语句或语句组是(A) A) n=0;
do {++n;}while(n<0); B) n=0;
while(1){n++;} C) n=10;
while(n);{n--;}
D) for(n=0,i=1; ;i++)n+=i;
14、若i为整型变量,则以下循环执行的次数是(B) for(i=2;i= =0;) printf(“%d”,i--); A)无限次 B)0次 C)1次 D)2次
15、执行语句for(i=1;i++<4;)后,变量i的值是(C) A) 3 B) 4 C) 5 D) 不定 16、有以下程序 main() {
int y=9 ;
for( ; y>0 ; y--)
if(y%3==0 ) printf(\}
程序的运行结果是(C)
A) 741 B)963 C)852 D)875421 17、以下程序执行后sum的值是( C) A)15 B)14 C) 不确定 D)0 main()
{ int i , sum;
for(i=1;i<6;i++) sum+=i; printf(“%d\\n”,sum); }
18、有如下程序
main()
{ int i,sum=0;
for(i=1;i<=3;sum++) sum+=i; printf(“%d\\n”,sum); }
该程序的执行结果是(C)
A) 6 B) 3 C) 死循环 D) 0
19、执行语句for(i=3;i>0;i--);i--;后,变量i的值是(C ) A)0 B)10 C)-1 D)1 20、执行下面程序片段的结果是(A )。 int x;
for(x=3;x<6;x++)
printf((x%2)?(“**%d”):(”##%d\\n”),x); A)**3##4 B)##3 **5 **4##5 C)##3**4 D)**3##4 **5 ##5
21、有以下程序,执行后输出的结果是(A )。 main() { int i;
for(i=0;i<3;i++) switch(i)
{ case 1: printf(\ case 2: printf(\ default: printf(\ } }
A) 011122 B) 012 C) 012020 D) 120
22、有以下程序,程序运行后的输出结果是(C )。 main()
{ int k=4,n=0; for( ; n if(n%3!=0) continue; k--; } printf(\} A)1,1 B)2,2 C)3,3 D)4,4 23、设变量已正确定义,则以下能正确计算f = n!的程序段是(D ) A) f=0 ; for(i=1;i<=n;i++) f*=i; B) f=1; for(i=1;i C) f=1; for(i=n;i>1;i++) f*=i; D) f=1; for(i=n;i>=2;i--) f*=i; 24、执行下面程序片段的结果是(B )。 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; } printf(“%d\\n”,a); } A)7 B)8 C)9 D)10 25、以下程序的输出结果是( B )。 main() { int i=0,a=0; while(i<20) { for(;;) { if((i)==0) break; else i--; } i+=11; a+=i; } printf(\ } A) 21 B) 32 C) 33 D) 11 26、以下程序的输出结果是(A ) main() { int i,j,x=0; for(i=1;i<2;i++) { x++; for(j=0;j<=3;j++ ) { if(j%2) continue; x++;} x++;} printf(“x=%d\\n”,x);} A)x=4 B) x=8 C) x=6 D)x=12