C语言第六章循环结构复习题.docx
《C语言第六章循环结构复习题.docx》由会员分享,可在线阅读,更多相关《C语言第六章循环结构复习题.docx(11页珍藏版)》请在冰豆网上搜索。
C语言第六章循环结构复习题
循环结构程序设计复习题
一.选择题
1.以下while循环中,循环体执行的次数是:
()
k=1;
while(--k)k=10;
a)10次b)无限次c)一次也不执行d)1次
2.有以下程序段,其中x为整型变量,以下选项中叙述正确
的是:
()
x=0;
while(!
x!
=0)x++;
a)退出while循环后,x的值为0
b)退出while循环后,x的值为1
c)while的控制表达式是非法的
d) while循环执行无限次
3.有以下程序段,其中n为整型变量,执行后输出结果是:
()
n=20 ;
while(n--) ;printf(“%d”,n) ;
a) 2b)10c)-1d) 0
4.有以下程序段,其中t为整型变量,以下选项中叙述正确的是:
()
t=1;
while(-1)
{t--;
if(t)break;}
a)循环一次也不执行
b)循环执行一次
c)循环控制表达式(-1)不合法
d) 循环执行2次
5.有以下程序段,其中x为整型变量,以下选项中叙述正确的是:
()
x=-1;
do
{;}
while(x++);
printf(“x=%d”,x);
a)该循环没有循环体,程序错误
b)输出x=1
c)输出x=0
d) 输出x=-1
6.有以下程序段,其中x,y为整型变量,程序输出结果是:
()
for(x=0,y=0;(x<=1)&&(y=1);x++,y--);
printf(“x=%d,y=%d”,x,y);
a)x=2,y=0b)x=1,y=0
c)x=1,y=1d)x=0,y=0
解析:
在开始时x=0,y=0;
进入循环判断(x<=1)&&(y=1)条件成立,同时把1赋给y,此时x=0,y=1;
然后执行x++,y--,执行之后x=1,y=0;
再进入循环判断(x<=1)&&(y=1),条件成立,同时同时把1赋给y,此时x=1,y=1;
然后执行x++,y--,执行之后x=2,y=0;
再进入循环判断(x<=1)&&(y=1),条件不成立,跳出循环
输出x=2,y=0。
7.有以下程序:
main()
{intx=0,y=0;
while(x<5&&++y)y--,x++;
printf(“%d,%d”,y,x);
}
程序的输出结果是:
()
a)0,5b)1,5c)0,4d)1,4
8.有以下程序:
main()
{intnum=0;
do
{num++ ;printf(“%d\n”,num);}
while(num<=2);
}
程序的输出结果是:
()
a)1b)1c)1d)1
222
33
4
9.有以下程序:
main()
{intx=3;
do
{printf(“%d”,x-=2);}
while(!
(--x));
}
程序的输出结果是:
()
a)1b)30c)1-2d)死循环
10.有以下程序:
main()
{inty=10;
do{y--;}while(--y);
printf(“%d\n”,y--);
}
程序的输出结果是:
()
a)1b)-1c)8d)0
11.有以下程序:
main()
{intx=3,y;
do
{y=--x;
if( !
y)printf(“x”) ;
elseprintf(“y”) ;
}while(x);
}
程序的输出结果是:
()
a)xyxb)yyxc)yxxd)yxy
12.有以下程序段,此处do-while循环的结束条件是:
()
intn=0,p;
do{scanf(“%d”,&p);n++;}while(p!
=12345&&n<3);
a)p的值不等于12345并且n的值小于3
b)p的值等于12345并且n的值大于等于3
c)p的值不等于12345或者n的值小于3
d) p的值等于12345或者n的值大于等于3
13.有以下程序:
main()
{inta,b,t;
for(a=3,b=0 ;!
a==b ;a--,b++)
if(a>b){t=a;a=b;b=t;}
printf(“%d,%d\n”,a,b);
}
程序的输出结果是:
()
a)4,1b)1,4c)4,-1d)-1,4
14.有以下程序:
main()
{intx=3,y=0;
do
{while( !
y)y=-x;
}while(x--);
printf(“%d,%d\n”,x,y);
}
程序的输出结果是:
()
a)-1,3b)-1,-3c)0,0d)1,-3
15.有以下程序:
main()
{intm,n;
printf(“Enterm,n:
”) ;scanf(“%d%d”,&m,&n);
while(m!
=n)
{while(m>n)m-=n;
while(n>m)n-=m;}
printf(“m=%d\n”,m);
}
程序的输出结果是:
()
a)m=3b)m=2c)m=1d)m=0
16.有以下程序:
main()
{inti,s=1;
for(i=1 ;i<=50 ;i++)
if( !
(i%5)&& !
(i%3))s+=i;
printf(“%d\n”,s);
}
程序的输出结果是:
()
a)409b)277c)1d)91
17.有以下程序:
main()
{intx=0,y=0,i;
for(i=1 ; ;++i)
{if(i%2==0){x++ ;continue ;}
if(i%5==0){y++ ;break ;}
}
printf(“%d,%d”,x,y);
}
程序的输出结果是:
()
a)2,1b)2,2c)2,5d)5,2
18.有以下程序:
main()
{inti=0,a=0;
while(i<30)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;a+=i;
}
printf(“%d\n”,a);
}
程序的输出结果是:
()
a)66b)63c)33d)32
19.有以下程序:
main()
{inta,b;
for(a=1,b=1 ;a<=100 ;a++)
{if(b>=10)break;
if(b%3==1)
{b+=3;continue;}
}
printf(“%d\n”,a);
}
程序的输出结果是:
()
a)101b)6c)5d)4
20.有以下程序:
main()
{inti=0;
for(i+=3 ;i<=5 ;i=i+2)
switch(i%5)
{case0:
printf(“*”);
case1:
printf(“#”);break;
default:
printf(“!
”);break;
case2:
printf(“&”);
}
}
程序的输出结果是:
()
a)*#b)!
&c)!
*#d)*#*
二.填空题
1.要求使以下程序段输出10个整数,请填空。
for(i=0;i<=_18_;printf(“%d\n”,i+=2));
2.执行下面程序段后,k的值是_____0_____。
r=1;n=203;k=1;
do{k*=n%10*r;n/=10;r++;}while(n);
3.下面程序的输出结果是_12510_。
main()
{inti,x=10;
for(i=1;i<=x;i++)
if(x%i==0)printf(“%d”,i);
}
4.下面程序的输出结果是___无定值________。
main()
{inti,sum;
for(i=1;i<6;i++)sum+=i;
printf(“%d”,sum);
}
5.下面程序的输出结果是_20__。
main()
{inti,sum=0;
for(i=2;i<10;i++)
{if((i%2)!
=0)continue;
sum+=i;}
printf(“%d\n”,sum);
}
6.下面程序的输出结果是**!
*!
!
__!
!
!
____。
main()
{inti,j;
for(i=2;i>=0;i--)
{for(j=1;j<=i;j++)printf(“*”);
for(j=0;j<=2-i;j++)printf(“!
”);
printf(“\n”);
}
}
7.下面程序的输出结果是___1,1____。
main()
{inti,j=0,a=0;
for(i=0;i<5;i++)
do
{if(j%3)break;
a++;j++;
}while(j<10);
printf(“%d,%d\n”,j,a);
}
8.下面程序的输出结果是___852____。
main()
{intx=9;
for(;x>0;)
{if(x%3==0)
{printf(“%d”,--x);continue;}
x--;
}
}
9.下面程序的输出结果是____***#____。
main()
{inti,j=2;
for(i=1;i<=2*j;i++)
switch(i/j)
{case0:
case1:
printf(“*”);break;
case2:
printf(“#”);
}
}
三.操作题
1.计算1到10之间的奇数之和以及偶数之和。
2.输出100以内能被3整除且个位数为6的所有整数。
3.找出2至99之间的全部同构数。
同构数是这样一组数:
它出
现在其平方数的右边,例如,5是25右边的数,25是625右边
的数,5和25都是同构数。
4.根据以下近似公式求∏值。
5.根据以下公式求S的值。
6.根据以下公式求S的值。