循环结构习题Word格式文档下载.docx
《循环结构习题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《循环结构习题Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
}while(c<
’G’);
printf(“k=%d”,k);
A)k=3B)k=4C)k=2D)k=0
5.下面程序的输出结果是。
{intx=9;
for(;
x>
0;
x--){
if(x%3==0){
printf(“%d”,--x);
continue;
A)741B)852C)963D)875421
6.以下不是死循环的程序段是。
A)inti=100;
B)for(;
;
);
while
(1){
i=i%100+1;
if(i>
100)break;
C)intk=0;
D)ints=36;
do{++k;
}while(k>
=0);
while(s);
--s;
7.下述程序段的运行结果是。
inta=1,b=2,c=3,t;
while(a<
b<
c){t=a;
a=b;
b=t;
c--;
printf(“%d,%d,%d”,a,b,c);
A)1,2,0B)2,1,0C)1,2,1D)2,1,1
8.下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择
填空。
{intm=0,n=0;
charc;
while((【】)!
’\n’)
{
if(c>
=’A’&
&
c<
=’Z’)m++;
=’a’&
=’z’)n++;
A)c=getchar()B)getchar()C)c==getchar()D)scanf(“%c”,&
c)
9.下述语句执行后,变量k的值是。
intk=1;
while(k++<
10);
A)10B)11C)9D)无限循环,值不定
10.下面程序的输出结果是。
{intk=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=3B)k=0,m=5C)k=1,m=3D)k=1,m=5
11.下面for循环语句。
inti,k;
for(i=0,k=-1;
k=1;
i++,k++)
printf(“***”);
A)判断循环结束的条件非法B)是无限循环
C)只循环一次D)一次也不循环
12.语句while(!
E);
括号中的表达式!
E等价于。
A)E==0B)E!
=1C)E!
=0D)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)3B)4C)5D)不定
15.以下程序段。
x=-1;
do
{x=x*x;
}
while(!
x);
A)是死循环B)循环执行2次C)循环执行1次D)有语法错误
16.下面程序的功能是在输入的一批正数中求最大者,输入0结束循环,选择填空。
{inta,max=0;
scanf(“%d”,&
a);
while(【】){
if(max<
a)max=a;
scanf(“%d”,&
printf(“%d”,max);
A)a==0B)aC)!
a==1D)!
a
17.以下不是死循环的语句是。
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;
18.下面程序段的运行结果是。
x=y=0;
while(x<
15)y++,x+=++y;
printf(“%d,%d”,y,x);
A)20,7B)6,12C)20,8D)8,20
19.以下for循环的执行次数是。
for(x=0,y=0;
(y=123)&
(x<
4);
x++);
A)无限循环B)循环次数不定C)4次D)3次
20.若运行以下程序时,输入2473↙,则程序的运行结果是。
{intc;
while((c=getchar())!
=’\n’)
switch(c-‘2’){
case0:
case1:
putchar(c+4);
case2:
case3:
putchar(c+3);
putchar(c+2);
printf(“\n”);
A)668977B)668966C)66778777D)6688766
二.填空题
1.C语言三个循环语句分别是语句,语句和语句。
2.至少执行一次循环体的循环语句是。
3.循环功能最强的循环语句是。
5.程序段
for(a=1,i=-1;
-1<
i<
1;
i++)
{a++;
printf(“%2d”,a);
};
printf(“%2d”,i);
的运行结果是。
三.判断题
1.在while循环中允许使用嵌套循环,但只能是嵌套while循环。
【】
2.在实际编程中,do-while循环完全可以用for循环替换。
3.continue语句只能用于三个循环语句中。
4.在不得已的情况下(例如提高程序运行效率),才使用goto语句。
5.语句标号与C语言标识符的语法规定是完全一样的。
6.for循环的三个表达式可以任意省略,while,do-while也是如此。
7.do-while允许从外部转到循环体内。
8.while的循环控制条件比do-while的循环控制条件严格。
9.do-while循环中,根据情况可以省略while。
10.do-while循环的while后的分号可以省略。
四.程序阅读题
1.写出下面程序运行的结果。
{intx,i;
for(i=1;
=100;
x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf(“%d”,x);
2.写出下面程序运行的结果。
{inti,b,k=0;
for(i=1;
=5;
b=i%2;
while(b--=0)k++;
printf(“%d,%d”,k,b);
3.写出下面程序运行的结果。
{inta,b;
for(a=1,b=1;
a<
a++){
if(b>
=20)break;
if(b%3==1){b+=3;
b-=5;
printf(“%d\n”,a);
4.写出下面程序运行的结果。
{intk=1,n=263;
do{k*=n%10;
n/=10;
}while(n);
printf(“%d\n”,k);
5.写出下面程序运行的结果。
{inti=5;
switch(i%2){
case4:
i--;
case6:
i--;
printf(“%d”,i);
}while(i>
0);
6.写出下面程序运行的结果。
{inti,j;
i++,i++){
for(j=4;
j>
=0;
j--){
if((j+i)%2){
j--;
printf(“%d,”,j);
--i;
printf(“%d,”,j);
7.写出下面程序运行的结果。
main()
{inta=10,y=0;
a+=2;
y+=a;
if(y>
50)break;
}while(a=14);
printf(“a=%dy=%d\n”,a,y);
8.写出下面程序运行的结果。
{inti,j,k=19;
while(i=k-1){
k-=3;
if(k%5==0){i++;
elseif(k<
5)break;
i++;
printf(“i=%d,k=%d\n”,i,k);
9.写出下面程序运行的结果。
{inty=2,a=1;
while(y--!
=-1)
a*=y;
a++;
}while(y--);
printf(“%d,%d\n”,a,y);
10.写出下面程序运行的结果。
{inti,k=0;
while(k<
i*i){
if(k%3==0)gotoloop;
loop:
printf(“%d,%d\n”,i,k);
六.程序填空题
1.下述程序用“碾转相除法”计算两个整数m和n的最大公约数。
该方法的基本思想是计算m和n相除的余数,如果余数为0则结束,此时的被除数就是最大公约数。
否则,将除数作为新的被除数,余数作为新的除数,继续计算m和n相除的余数,判断是否为0,等等,请填(3)空使程序完整。
{intm,n,w;
scanf(“%d,%d”,&
m,&
n);
while(n){
w=【1】;
m=【2】;
n=【3】;
printf(“%d”,m);
2.下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,请填(3)空使程序完整。
{intn,k=1,s=0,m;
for(n=1;
n<
n++){
k=1;
s=0;
【1】;
while(【2】){
k*=m%10;
s+=m%10;
【3】;
if(k>
s)printf(“%dd”,n);
3.下面程序段的功能是计算1000!
的末尾有多少个零,请填
(1)空使程序完整。
for(k=0,i=5;
=1000;
i+=5)
{m=i;
while(【1】){k++;
m=m/5;
4.下面程序接受键盘上的输入,直到按↙键为止,这些字符被原样输出,但若有连续的一个以上的空格时只输出一个空格,请填(3)空使程序完整。
{
charcx,front=’\0’;
while(【1】!
=’\n’){
if(cx!
=’’)putchar(cx);
if(cx==’’)
if(【2】)
putchar(【3】)
front=cx;
5.下面程序按公式求和并输出结果,请填(3)空使程序完整。
【1】;
intk;
for(k=1;
k<
k++)
s+=k;
=50;
s+=k*k;
=10;
s+=【2】;
printf(“sum=【3】”,s);
七.编程题
1.输入两个正整数m和n,求其最大公约数和最小公倍数。
2.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。
3.求(即求1!
+2!
+3!
+…+19!
+20!
)。
4.有一个分数数列:
求出这个数列前20项之和。
5.提高题:
打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。
感谢下载!
欢迎您的下载,资料仅供参考