第4章循环结构一、选择题1、有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是( A)A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次2、t为int类型,进入下面的循环之前,t的值为0while( t=1){ …… }则以下叙述中正确的是( B)A) 循环控制表达式的值为0B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B )A) m==0 B) m!=0 C) m==1 D) m!=14、有以下程序,程序运行后的输出结果是(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) 98767、以下程序的输出结果是( B )main(){ int num= 0;while(num<=2){ num++; printf(“%d\n”,num);}}A) 1 B) 1 C)1 D) l2 2 23 348、有以下程序,若运行时输入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;}elsebreak;}printf(“%f\n”,y);}A)1.500000 B)1.600000 C)2.000000 D)2.4000009、执行以下程序段时x=-1;do{ x=x*x; }while(! x);则下面描述正确的是(A )A) 循环体将执行一次B) 循环体将执行两次C) 循环体将执行无限次D) 系统将提示有语法错误10、有以下程序段其输出结果是(C )int x=3;do{ printf("%d",x-=2); }while (!(--x));A) 1 B) 3 0 C) 1 -2D) 死循环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的值小于3B) P的值等于12345并且n的值大于等于3C) P的值不等于12345或者n的值小于3D) P的值等于12345或者n的值大于等于313、以下不构成无限循环的语句或语句组是(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("%d" , --y) ;}程序的运行结果是(C)A) 741 B)963 C)852 D)87542117、以下程序执行后sum的值是( C)A)15 B)14 C) 不确定D)0main(){ int i , sum;for(i=1;i<6;i++) sum+=i;printf(“%d\n”,sum);}18、有如下程序{ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf(“%d\n”,sum);}该程序的执行结果是(C)A) 6 B) 3 C) 死循环D) 019、执行语句for(i=3;i>0;i--);i--;后,变量i的值是(C )A)0 B)10 C)-1 D)120、执行下面程序片段的结果是(A )。
int x;for(x=3;x<6;x++)printf((x%2)?(“**%d”):(”##%d\n”),x);A)**3##4 B)##3**5 **4##5C)##3**4 D)**3##4**5 ##521、有以下程序,执行后输出的结果是(A )。
main(){ int i;for(i=0;i<3;i++)switch(i){ case 1: printf("%d",i);case 2: printf("%d",i);default: printf("%d",i);}}A) 011122 B) 012 C) 012020 D) 12022、有以下程序,程序运行后的输出结果是(C )。
main(){ int k=4,n=0;for( ; n<k ; ){ n++;if(n%3!=0) continue;k--;}printf("%d,%d\n",k,n);}A)1,1 B)2,2 C)3,3 D)4,423、设变量已正确定义,则以下能正确计算f = n!的程序段是(D )A) f=0 ;for(i=1;i<=n;i++) f*=i;B) f=1;for(i=1;i<n;i++) f=f*i;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)1025、以下程序的输出结果是( B )。
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) 1126、以下程序的输出结果是(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=1227、有以下程序main(){int i,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n ") ;}}程序的运行结果是(D)A) 2 3 4 B)4 3 2 C)2 3 D)4 53 4 5 5 4 3 3 4 3 44 5 2 328、有以下程序main(){ int i=5;do{if(i%3==1)if(i%5==2){ printf("*%d",i); break; }i++;} while(i!=0);printf("\n");}程序的运行结果是(A)A) *7 B)*3*5 C)*5 D)*2*629、以下程序的结果是(A)main(){ int n;for(n=1; ; ){if(++n%2==0) continue;if(++n%3==0) break; }printf("n=%d",n);}A)n=6 B)n=5 C)n=4 D)死循环30、以下叙述中正确的是(C)A)break语句只能用于switch语句题中B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环C)break 语句只能用在循环体内和switch语句体内D)在循环体内使用break语句和continue语句的作用相同二、程序阅读题(共10题)1、以下程序运行后的输出结果是52 。
main(){int i=10, j=0;do{ j=j+i;i--;}while(i>2);printf(“%d\n”,j);}2、设有以下程序:main(){int n1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298;则输出结果为8921 。
3、以下程序的输出结果是5。
main(){int s,i;for(s=0,i=1;i<3;i++,s+=i);printf("%d\n",s);}4、阅读下面程序,程序的结果是2,1,0 。
main(){int i=7;for(i=2;i>0;i--)printf(”%d,”,i);printf(”%d”,i);}5、阅读下面程序,程序的结果是14,4。
main(){ int i,j,m=0;for(i=2;i<=10;i+=4)for(j=3;j<=4;j++){m++;i++;}printf("%d,%d",i,m);}6、阅读下面程序,程序的结果是1978。
main()long s=0,t=0;for(j=0;j<n;j++)t=t*10+a;s=t;for(j=1;j<n-1;j++){t=t/10;s=s-t;}printf(”%d”,s);}7、以下程序运行后的输出结果是0918273645main(){char c1,c2;for(c1='0',c2='9';c1<c2;c1++,c2--)printf("%c%c",c1,c2);printf("\n");}8、以下程序的输出结果是 5 。