循环结构程序设计练习题内含答案概要.docx
《循环结构程序设计练习题内含答案概要.docx》由会员分享,可在线阅读,更多相关《循环结构程序设计练习题内含答案概要.docx(21页珍藏版)》请在冰豆网上搜索。
循环结构程序设计练习题内含答案概要
第三单元循环结构练习题
选择题:
(有答案)
1、有以下程序执行后的输出结果是()。
main()
{inti,s=0;
for(i=1;i<10;i+=2)s+=i+1;
printf("%d\n",s);}
A.自然数1~9的累加和B.自然数1~10的累加和
C.自然数1~9中的奇数之和D.自然数1~10中的偶数之和
2、以下关于for语句的说法不正确的是()。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先判断表达式,后执行循环体语句
C.for循环中,可以用break跳出循环体
D.for循环体语句中,可以保含多条语句,但要用花括号括起来
3、若i和k都是int类型变量,有以下for语句
for(i=0,k=-1;k=1;k++)printf("*****\n");
下面关于语句执行情况的叙述中正确的是()。
A.循环体执行两次B.循环体执行一次
C.循环体一次也不执行D.构成无限循环
4、若运行以下程序时,输入2473↙,则程序的运行结果是:
()
main()
{intc;
while((c=getchar())!
=’\n’)
switch(c-‘2’){
case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;
}
printf(“\n”);
}
A)668977B)668966C)66778777D)6688766
5、以下for循环的执行次数是:
()。
for(x=0,y=0;(y=123)&&(x<4);x++);
A)无限循环B)循环次数不定C)4次D)3次
6、已知int t=0;while(t=1){...}则以下叙述正确的是()。
A)循环控制表达式的值为0
B)循环控制表达式的值为1
C)循环控制表达式不合法
D)以上说法都不对
7、设有以下程序段()
intx=0,s=0;
while(!
x!
=0)s+=++x;
printf("%d",s);则
A)运行程序段后输出0
B)运行程序段后输出1
C)程序段中的控制表达式是非法的
D)程序段执行无限次
8、设i,j,k均为int型变量,则执行完下面的for语句后,k的值为()。
for(i=0, j=10; i<=j; i++, j- -) k=i+j;
A.6B.9C.10D.11
9、C语言中,break;语句可以用于循环语句和()语句中。
A.ifB.switchC.forD.while
10、for(i=0;i<=15;i++)printf("%d",i);循环结束后,i的值为()。
A.14B.15C.16D.17
11.有以下程序
main()
{charb,c;inti;b='a';c='A';
for(i=0;i<6;i++)
{if(i%2)putchar(i+b);
elseputchar(i+c);
}printf("\n");}
程序运行后的输出结果是()
A.ABCDEFB.AbCdEfC.aBcDeFD.abcdef
12、与语句“while(!
x)”等价的语句是()。
A.while(x==0)B.while(x!
=0)C.while(x==1)D.while(x!
=1)
13、下面程序段的运行结果是()。
x=y=0;
while(x<15)y++,x+=++y;
printf(“%d,%d”,y,x);
A)20,7B)6,12C)20,8D)8,20
14、以下程序中,while循环的次数是()。
#include
voidmain()
{inti=0;
while(i<10){if(i<1)continue;if(i==5)break;i++;}}
A.1B.死循环,不能确定次数C.6D.10
15.下面程序段
intk=2;
while(k=0){printf(“%d”,k);k--;}
则下面描述中正确的是()。
A)while循环执行10次B)循环是无限循环
C)循环题语句一次也不执行D)循环体语句执行一次
16.以下程序段的循环次数是()。
for(i=2;i==0;)printf(“%d”,i--);
A)无限次B)0次C)1次D)2次
17.下面程序的输出结果是()。
main()
{charc='A’;
intk=0;
do{
switch(c++){
case‘A’:
k++;break;
case‘B’:
k--;
case‘C’:
k+=2;break;
case‘D’:
k%=2;continue;
case‘E’:
k*=10;break;
default:
k/=3;
}
k++;
}while(c<’G’);
printf(“k=%d”,k);
}
A)k=3B)k=4C)k=2D)k=0
19.下面程序的输出结果是()。
main()
{intx=9;
for(;x>0;x--){
if(x%3==0){
printf(“%d”,--x);
continue;
}}}
A)741B)852C)963D)875421
20.inti=100;以下不是死循环的程序段是()。
A)while
(1){i=i%100+1;if(i>100)break;}
B)for(;;);
C)intk=0;do{++k;}while(k>=0);
D)ints=36;while(s);--s;
21.下述程序段的运行结果是()。
inta=1,b=2,c=3,t=4;
while(a
A)1,2,0B)2,1,0C)1,2,1D)2,1,1
22.下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择() 填空。
main()
{intm=0,n=0;
charc;
while((【】)!
=‘\n’)
{
if(c>=’A’&&c<=’Z’)m++;
if(c>=’a’&&c<=’z’)n++;
}}
A)c=getchar()B)getchar()
C)c==getchar()D)scanf(“%c”,&c)
23.下述语句执行后,变量k的值是()。
intk=1;
while(k++<10);
A)10B)11C)9D)无限循环,值不定
24.下面程序的输出结果是()。
main()
{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
25.下面for循环语句。
()
inti,k;
for(i=0,k=-1;k=1;i++,k++)
printf(“***”);
A)判断循环结束的条件非法B)是无限循环
C)只循环一次D)一次也不循环
26.语句while(!
E);括号中的表达式!
E等价于()。
A)E==0B)E!
=1C)E!
=0D)E==1
27.以下不是死循环的语句是()。
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;
28.执行语句for(i=1;i++<4;);后变量i的值是()。
A)3B)4C)5D)不定
29.以下程序段()。
x=-1;
do
{x=x*x;}
while(!
x);
A)是死循环B)循环执行2次C)循环执行1次D)有语法错误
30.下面程序的功能是在输入的一批正数中求最大者,输入0结束循环,选择填空。
()
main()
{inta,max=0;
scanf(“%d”,&a);
while(【】){if(max printf(“%d”,max);}
A)a==0B)aC)!
a==1D)!
a
31.设有程序段intk=10;while(k<0)k=k-1;则下面描述中正确的是 ( )
Awhile循环执行10次B循环是无限循环
C循环体语句一次也不执行D循环体语句执行一次
32.设有以下程序段intx=0,s=0;while(x!
=0)s+=++x;printf("%d",s);则( )
A运行程序段后输出0B运行程序段后输出1
C程序段中的控制表达式是非法的D程序段执行无限次
33、下面程序段的运行结果是( )
intn=0;
while(n++<=2);printf("%d",n);
A,2B、3C、4D有语法错误
34、设有程序段
t=0;
while(printf("*"))
{t++;if(t<3)break;}下面描述正确的是( )
A、其中循环控制表达式与0等价
B、其中循环控制表达式与’0‘等价
C、其中循环表达式是不合法的
D、以上说法都不对
35、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。
当输入一对相等的数时结束循环,请选择填空。
main()
{inta,b,t;
scanf(“%d,%d”,&a,&b);
while()
{if(a>b){t=a;a=b;b=t;}
printf(“%d,%d\n”,a,b);}
A、!
a=bB、a!
=bC、a==bD、a=b
36、下面程序的功能是从键盘输入的一组字符中统计出大写字母个数m和小写字母个