循环结构练习题

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

循环结构练习题

一.选择题

1.下面程序段

int k=2;

while (k=0) {printf(“%d”,k);k--;}

则下面描述中正确的是。

A)while循环执行10次 B)循环是无限循环

C)循环题语句一次也不执行 D)循环体语句执行一次

2.以下for循环的执行次数是。

for (x=0,y=0; (y=123) && (x<4) ; x++) ;

A)无限循环 B)循环次数不定 C)4次 D)3次

3.以下程序段的循环次数是。

for (i=2; i==0; ) printf(“%d”,i--) ;

A)无限次 B)0次 C)1次 D)2次

4.下面程序段的运行结果是。

x=y=0;

while (x<15) y++,x+=++y ;

printf(“%d,%d”,y,x);

A)20,7 B)6,12 C)20,8 D)8,20

5.下面程序的输出结果是。

main ( )

{ int x=9;

for (; x>0; x--) {

if (x%3==0) {

printf(“%d”,--x);

continue ;

}

}

}

A)741 B)852 C)963 D)875421 6.以下不是死循环的程序段是。

A) int i=100; B)for ( ; ; ) ;

while (1) {

i=i%100+1 ;

if (i>100) break ;

}

C) int k=0; D)int s=36;

do { ++k; } while (k>=0); while (s) ; --s ;

7.下述程序段的运行结果是。

int a=1,b=2,c=3,t;

while (a

printf(“%d,%d,%d”,a,b,c);

A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1 8.以下不是死循环的语句是。

A)for (y=9,x=1;x>++y;x=i++) i=x ;

B)for ( ; ; x++=i ) ;

C)while (1) { x++ ; }

D)for (i=10 ; ; i--) sum+=i ;

9.下述语句执行后,变量k的值是。

int k=1;

while (k++<10);

A)10 B)11 C)9 D)无限循环,值不定10.下面程序的输出结果是。

main ( )

{ int k=0,m=0,i,j;

for (i=0; i<2; i++) {

for (j=0; j<3; j++)

k++ ;

k-=j ;

}

m = i+j ;

printf(“k=%d,m=%d”,k,m) ;

}

A)k=0,m=3 B)k=0,m=5 C)k=1,m=3 D)k=1,m=5

11.下面for循环语句。

int i,k;

for (i=0, k=-1; k=1; i++, k++)

printf(“***”);

A)判断循环结束的条件非法 B)是无限循环

C)只循环一次 D)一次也不循环

12.语句while (!E); 中的表达式!E等价于。

A)E==0 B)E!=1 C)E!=0 D)E==1

13.以下是死循环的程序段是。

A) for (i=1; ; ) {

if (i++%2==0) continue ;

if (i++%3==0) break ;

}

B) i=32767;

do { if (i<0) break ; } while (++i) ;

C) for (i=1 ; ;) if (++I<10) continue ;

D) i=1 ;

while (i--);

14.执行语句for (i=1;i++<4;) ; 后变量i的值是。

A)3 B)4 C)5 D)不定

15. 有以下程序

int 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); }

return 0;}

执行后输出结果是。

A) 011122 B) 012 C) 012020 D) 120

16.下面程序的运行结果是。

int n=0;

while(n++<=2);

printf(“%d”,n);

A)2 B)3 C)4 D)有语法错

17.下面程序段的运行结果是。

a=1; b=2; c=2;

wh ile (a

printf (“%d, %d, %d\n”, a, b, c);

A)1, 2, 0 B)2, 1, 0 C)1, 2, 1 D)2, 1, 1

18.C语言中,while与do-while循环的主要区别是。

A)do-while的循环体至少无条件执行一次

B)while的循环控制条件比do-while的循环控制条件严格

C)do-while允许从外部转到循环体内

D)do-while的循环体不能是复合语句

19.对for (表达式1;;表达式3 )可理解为。

A)for (表达式1;;表达式3)

B) for (表达式1;1 ;表达式3)

C)for (表达式1;表达式1;表达式3)

D)for (表达式1;表达式3;表达式3)

20. 若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)

s=a;

for(b=1;b<=c;b++) s=s+1;

则与上述程序段功能等价的赋值语句是。

A) s=a+b; B) s=a+c; C) s=s+c; D) s=b+c;

二.程序填空题

1.下述程序用“碾转相除法”计算两个整数m和n的最大公约数。

int main ( )

{ int m,n,w;

scanf(“%d,%d”,&m,&n);

while (n) {

w=【1 】;

m=【2 】;

n=【3 】;

}

printf(“%d”,m);return 0;

}

2.下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数。

int main ( )

{ int n,k=1,s=0,m ;

for (n=1 ; n<=100 ; n++) {

k=1 ; s=0 ;

【1 】;

while (【2 】) {

k*=m%10;

s+=m%10;

【3 】;

}

if (k>s) printf(“%dd”,n);

}

return 0;}

3.下面程序段的功能是计算1000!的末尾有多少个零。

int main ( )

{

int i,k;

for (k=0,i=5; i<=1000; i+=5)

相关文档
最新文档