6 循环控制练习

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6 循环控制

一、单项选择题

1、for(i=1;i<9;i+=1);该循环共执行了( )次。

A、 7

B、 8

C、 9

D、 10

2、int a=2;while(a=0) a--;该循环共执行了( )次。

A、 0

B、 1

C、 2

D、 3

3、执行完循环 for(i=1;i<100;i++);后,i 的值为( )。

A、 99

B、 100

C、 101

D、 102

4、以下 for语句中,书写错误的就是。

A、 for(i=1;i<5;i++)

B、 i=1;for(;i<5;i++)

C、 for(i=1;i<5;i++);

D、 for(i=1;i<5;) i++;

5、( )语句,在循环条件初次判断为假,还会执行一次循环体。

A、 for

B、 while

C、 do-while

D、以上都不就是

6、有以下程序段int i=5;do{ if(i%3==1)if(i%5==2){printf("*%d",i); break; } i++; }while(i!=0); 其运行结果就是( )

A、*2*6

B、 *7

C、*5

D、 *3*5

7、i、j已定义为 int 类型,则以下程序段中内循环体的执行次数就是( ) 。

for(i=5;i;i--) for(j=0;j<4;j++){…}

A、 20

B、 24

C、 25

D、 30

8、以下不构成无限循环的语句或语句组就是( )。

A、n=10; while(n);{n--;}

B、n=0; while(1){n++;}

C、n=0; do{++n;}while(n<=0);

D、for(n=0,i=1;;i++)n+=i;

9、有以下程序段int y=9; for(y>0;y--) if(y%3==0) printf("%d",--y);其运行结果就是( )。

A、 875421 B.963 C、852 D、 741

10、有以下程序段:int i,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++) printf("%d",i+j);printf("\n");}

其运行结果就是( )。

A、2 3 4

B、4 3 2

C、2 3

D、4 5

3 4 5 5 4 3 3 4 3 4

4 5 2 3

二、判断题

( )1、do {……} while(0); 程序块至少会执行一次

( )2、语句for(i=0;i=10;i++) {……}; 至多循环10次

( )3、for( ; ; )表示无限循环。

( )4、下面的循环不能正常结束: for (s=0,i=1; i<=10; ) { s=s+i; i++; }

( )5、continue语句就是终止整个循环的执行。

( )6、对for(表达式1;;表达式3;)可理解为for(表达式1;1;表达式3;)。

( )7、下列程序段执行循环二次 x=-1; do {x=x*x;}while(!x);

( )8、下列程序段能计算s=10!的值i=1;s=1; do {s=s*i;i++;} while(i<=10);

( )9、下列程序段将输出3与0 , int x=3; do{printf(“%d\n”,x-=2);}while(!--x));

三、程序填空题

1、有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天后卖完?

main( )

{ int day,x1,x2;

day=0; x1=1020;

while( )

{ x2= ; x1= ; day++; }

printf("day=%d\n",day);

}

2、输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。

#include

void main( )

{ int s1=0,s2=0;

char ch;

while(( )!='\n')

{ if(ch>='0'&&ch<='9') s1++;

if(ch>='a'&&ch<='z' || ) s2++;

} printf(“%d,%d”,s1,s2);

}

3、下面程序的功能就是计算1-3+5-7+……-99+101的值,请填空。

#include

main( )

{ int i=1,t=1,s=0;

for(i=1;i<=101; i=i+2 )

{ ; ;}

printf(“%d\n”,s);

}

四、阅读下列程序,写出程序运行的输出结果

1.void main( )

{ int y=9;

for( ;y>0; y--)

if(y%3==0) { printf("%d", --y); continue;}

}

程序运行后输出结果为

2、 main( )

{ int n1,n2;

scanf("%d",&n2);

while(n2!=0)

{ n1=n2%10; n2=n2/10; printf("%d",n1); }

}

程序运行后,如果从键盘上输入1298;则输出结果为

3、 main ( )

{int s,i;

for(s=0,i=1;i<3;i++,s+=i);

printf("%d\n",s);

}

程序运行后输出结果为

4、 #include

void main( )

{ int s=1,t=1,a,n;

scanf("%d%d",&a,&n);

for(int i=1;i

{ t=t*10+1; s=s+t; }

s*=a; printf("SUM=%d\n",s);

}

程序运行后,如果从键盘上输入2,4;则输出结果为

五、程序改错

1、以下程序就是显示[200,300]所有能被7整除的数,每行显示5个数,此程序有 5处错。 main( )

{ int i,n=0; /*n用来记录每行已打印数的个数*/

while(i<300)

{ if(i%7==0) break;

printf("%5d",i);

n=n+1;

if(n=5)/*满5个换行*/

{ printf("\n"); n=0; }

}

}

2、以下程序就是求 1!+2!+3!+4!+5!+6!+7!的值,其中有 3 处错误。

main()

{ int i,s,t=0;

for(i=1;i<=7;i++)

{ s=0; t=t*i; s=s+t; }

相关文档
最新文档