循环结构练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)