C语言循环结构选择题新.docx
《C语言循环结构选择题新.docx》由会员分享,可在线阅读,更多相关《C语言循环结构选择题新.docx(24页珍藏版)》请在冰豆网上搜索。
C语言循环结构选择题新
一、选择题
1、语句while(!
e);中的条件!
e等价于()。
A)e==0B)e!
=1
C)e!
=0D)~e
2、以下for循环是()。
for(x=0,y=0;(y!
=123)&&(x<4);x++)
A)无限循环B)循环次数不定
C)执行4次D)执行3次
3、对于for(表达式1;;表达式3)可理解为()。
A)for(表达式1;0;表达式3)
B)for(表达式1;1;表达式3)
C)for(表达式1;表达式1;表达式3)
D)for(表达式1;表达式3;表达式3)
4、C语言中while和do-while循环的主要区别是()。
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件严格
C)do-while允许从外部转到循环体内
D)do-while的循环体不能是复合语句
5、下面关于for循环的正确描述是()。
A)for循环只能用于循环次数已经确定的情况
B)for循环的循环体可以是一个复合语句
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体不能是一个空语句
6、若i为整型变量,则以下循环语句的循环次数是()。
for(i=2;i==0;)
printf("%d",i--);
A)无限次B)0次
C)1次D)2次
7、以下叙述正确的是()。
A)continue语句的作用是结束整个循环的执行
B)只能在循环体内和switch语句体内使用break语句
C)在循环体内使用break语句或continue语句的作用相同
D)从多层循环嵌套中退出时,只能使用goto语句
8、对下面程序段,描述正确的是()。
for(t=1;t<=100;t++)
{scanf("%d",&x);
if(x<0)continue;
printf("%d\n",t);
}
A)当x<0时,整个循环结束
B)当x>=0时,什么也不输出
C)printf函数永远也不执行
D)最多允许输出100个非负整数
9、对下面程序段叙述的正确的是()。
intk=0;
while(k=0)k=k-1;
A)while循环执行10次B)无限循环
C)循环体一次也不被执行D)循环体被执行一次
10、下面程序段中,循环体的执行次数是()。
inta=10,b=0;
do{b+=2;a-=2+b;}while(a>=0);
A)4B)5
C)3D)2
11、在下列选项中,没有构成死循环的程序段是
A)inti=100;
while
(1)
{i=i%100+1;
if(i>100)break;
}
B)for(;;);
C)intk=1000;
do{++k;}while(k>=1000);
D)ints=36;
while(s)--s;
12、以下程序的输出结果是
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=10)break;
if(b%5==1){b+=5;continue;}}
printf("%d\n",a);}
A)101B)6
C)4D)3
13、若x是int型变量,且有下面的程序片段:
for(x=3;x<6;x++)
printf((x%2)?
("**%d"):
("##%d\n"),x);
上面程序片段的输出结果是
A)**3B)##3
##4**4
**5##5
C)##3D)**3##4
**4##5**5
14、以下程序的输出结果是()。
#include
main()
{
inti;
for(i=1;i<=5;i++)
if(i%2==1)
printf("*");
elsecontinue;
printf("#");
printf("$\n");
}
A)***#$B)#*#*#*$
C)*#*#*#$D)**#*$
15、下面程序的输出结果是()。
main()
{inti;
for(i=1;i<=5;i++)
{if(i%2==1)printf("*");
elsecontinue;
printf("#");
}
printf("$\n");
}
A)*#*#*#$B)#*#*#*$
C)#*#*$D)*#*#$
16、定义如下变量:
intn=10;
则下列循环的输出结果是()。
while(n>7)
{n--;printf("%d\n",n);}
A)10B)9C)10D)9
9898
8787
76
17、下面程序的输出结果是()。
main()
{intx=3;
do{
printf("%d",x-=2);
}while(!
(--x));
}
A)1B)1-2
C)30D)是死循环
18、下面程序的输出结果是()。
main()
{inty=9;
for(;y>0;y--)
{if(y%3==0)
{printf("%d",--y);
continue;}
}
}
A)741B)852
C)963D)875421
19、以下程序段的输出结果是()。
intk,n,m;
n=10;m=1;k=1;
while(k<=n){m*=2;k+=4;}
printf("%d\n",m);
A)4B)16
C)8D)32
20、设有如下程序段:
inti=0,sum=1;
do
{sum+=i++;}
while(i<6);
printf("%d\n",sum);
上述程序段的输出结果是()。
A)11B)16
C)22D)15
21、执行下面程序后sum的值是()。
main()
{inti,sum=0;
for(i=1;i<6;i++)
sum+=i;
printf("%d\n",sum);
}
A)15B)14
C)不确定D)0
22、以下程序的输出结果是()。
#include
main()
{intcount,i=0;
for(count=1;count<=4;count++)
{i+=2;printf("%d",i);}
}
A)20B)246
C)2468D)2222
23、下面程序的输出结果是()。
main()
{unsignedintnum,k;
num=26;k=1;
do{
k*=num%10;
num/=10;
}while(num);
printf("%d\n",k);
}
A)2B)12
C)60D)18
24、运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()。
main()
{inti,x;
for(i=0;i<2;i++)
{scanf("%d",&x);
if(x++>5)printf("%d",x);
elseprintf("%d\n",x--);
}
}
A)7和5B)6和3
C)7和4D)6和4
25、阅读以下程序:
main()
{intx;
for(x=5;x>0;x--)
if(x--<5)printf("%d,",x);
elseprintf("%d,",x++);}
程序运行后的输出结果是()。
A)4,3,2B)4,3,1,
C)5,4,2D)5,3,1,
26、以下程序的功能是:
从键盘上输入若干个学生的成绩,统计并输出
最高成绩和最低成绩,当输入负数时结束输入。
请填空。
main()
{floatx,amax,amin;
scanf("%f",&x);
amax=x;
amin=x;
while(________)
{if(x>amax)amax=x;
if(______)amin=x;
scanf("%f",&x);
}
printf("\namax=%f\namin=%f\n",amax,amin);
}
A)x<=0B)x>0
x>aminx<=amin
C)x>0D)x>=0
x>aminx27、下面程序是计算n个数的平均值,请填空。
main()
{inti,n;
floatx,avg=0.0;
scanf("%d",&n);
for(i=0;i{scanf("%f",&x);
avg=avg+______;}
avg=________;
printf("avg=%f\n",avg);
}
A)iB)x
avg/iavg/n
C)xD)i
avg/xavg/n
28、在执行以下程序时,如果从键盘上输入:
ABCdef<回车>,
则输出为
#include
main()
{charch;
while((ch=getchar())!
='\n')
{if(ch>='A'&&ch<='Z')ch=ch+32;
elseif(ch>='a'&&ch<'z')ch=ch-32;
printf("%c",ch);
}
printf("\n");
}
A)ABCdefB)abcDEF
C)abcD)DEF
29、运行以下程序后,如果从键盘上输入:
6514<回车>,
则输出结果为
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=2
C)m=1D)m=0
30、下面程序的输出结果是()。
main()
{intn=4;
while(n--)printf("%d",n--);
}
A)20B)31
C)321D)210
31、下面程序的输出结果是()。
main()
{inti;
for(i=1;i<6;i++)
{if(i%2){printf("#");continue;}
printf("*");
}
printf("\n");
}
A)#*#*#B)#####
C)*****D)*#*#*
32、有如下程序
main()
{intx=23;
do
{printf("%d",x--);}
while(!
x);
}
该程序的执行结果是
A)321B)23
C)不输出任何内容D)陷入死循环
33、有如下程序
main()
{intn=9;
while(n>6){n--;printf("%d",n);}
}
该程序段的输出结果是
A)987B)876
C)8765D)9876
34、设有以下程序
main()
{intn1,n2;
scanf("%d",&n2);
while(n2!
=0)
{n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298,则输出结果为()。
A)892B)8921
C)89D)921
35、下面程序的运行结果是()。
main()
{inta,b;
a=-1;
b=0;
do{
++a;
++a;
b+=a;
}while(a<9);
printf("%d\n",b);
}
A)34B)24
C)26D)25
36、执行下面程序段后,k的值是()。
inti,j,k;
for(i=0,j=10;ik=i+j;
A)9B)11
C)8D)10
37、下面程序段的运行结果是()。
for(x=10;x>3;x--)
{if(x%3)x--;
--x;--x;
printf("%d",x);
}
A)63B)74
C)62D)73
38、下面程序段的运行结果是()。
for(i=1;i<=5;)
printf("%d",i);
i++;
A)12345B)1234
C)15D)无限循环
39、下面程序的运行结果是()。
main()
{ints=0,i=1;
while(s<=10)
{s=s+i*i;
i++;
}
printf("%d",--i);
}
A)4B)3
C)5D)6
40、下面程序段的运行结果是()。
intx=0,y=0;
while(x<15)y++,x+=++y;
printf("%d,%d",y,x);
A)20,7B)6,12
C)20,8D)8,20
41、下面程序段的运行结果是()。
intn=0;
while(n++<=2)
printf("%d",n);
A)012B)123
C)234D)错误信息
42、下面程序的运行结果是()。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d,%d\n",a,b);
}
A)3,11B)2,8
C)1,-1D)4,9
43、下面程序的运行结果是()。
main()
{intx=3,y=6,a=0;
while(x++!
=(y-=1))
{a+=1;
if(y}
printf("%d,%d,%d\n",x,y,a);
}
A)4,4,1B)5,5,1
C)4,4,3D)5,4,1
44、对下面程序段描述正确的是()。
intx=0,s=0;
while(!
x!
=0)s+=++x;
printf("%d",s);
A)运行程序段后输出0
B)运行程序段后输出1
C)程序段中的控制表达式是非法的
D)程序段循环无数次
45、以下程序的输出结果是()。
#include
main()
{
intnum=0;
while(num<=2)
{num++;
printf("%d\n",num);}
}
A)1B)1C)1D)1
222
33
4
46、以下程序段()。
x=-1;
do
{x=x*x;}
while(!
x);
A)是死循环B)循环执行两次
C)循环执行一次D)有语法错误
47、以下程序运行后的输出结果是()。
#include
main()
{ints=0,k;
for(k=7;k>=0;k--)
{switch(k)
{
case1:
case4:
case7:
s++;break;
case2:
case3:
case6:
break;
case0:
case5:
s+=2;break;}
}
printf("s=%d\n",s);
}
A)s=5B)s=1
C)s=3D)s=7
48、下列程序的输出结果是()。
main()
{inti,j,k;
for(i=0;i<=2;i++)
{for(k=1;k<=i;k++)printf("");
for(j=0;j<=3;j++)printf("*");
printf("\n");
}
}
A)****B)****
********
********
C)****D)***
*******
*******
49、以下程序段的执行结果是
inta,y;
a=10;y=0;
do
{a+=2;y+=a;
printf("a=%dy=%d\n",a,y);
if(y>20)break;
}while(a=14);
.
.
.
A)a=12y=12B)a=12y=12C)a=12y=12D)a=12y=12
a=14y=16a=16y=28a=14y=26
a=16y=20a=14y=44
a=18y=24
50、有如下程序
main()
{inti,sum=0;
for(i=1;i<=3;sum++)sum+=i;
printf("%d\n",sum);
}
该程序的执行结果是
A)6B)3
C)死循环D)0
51、以下程序运行后的输出结果是()。
main()
{inti=10,j=0;
do
{j=j+1;i--;}12345678
while(i>2);
printf("%d\n",j);
}
A)50B)52
C)51D)8
52、下面程序的运行结果是()。
main()
{inti;
for(i=1;i<=100;i++)
if((i*i>=150)&&(i*i<=200))
break;
printf("%d\n",i*i);
}
A)144B)255
C)169D)121
53、下面程序的运行结果是()。
main()
{intm=7,n=5,i=1;
do
{if(i%m==0);
if(i%n==0)
{printf("%d\n",i);break;}
i++;
}while(i!
=0);
}
A)7B)6
C)5D)4
54、下面程序段的输出结果是()。
x=3;
do{y=x--;
if(!
y){printf("*");continue;}
printf("#");
}while(x=2);
A)##B)##*
C)死循环D)输出错误信息
55、以下程序运行后的输出结果是()。
#include
main()
{inti,j;
for(i=4;i>=1;i--)
{printf("*");
for(j=1;j<=4-i;j++)
printf("*");
printf("\n");
}
}
A)*B)****C)*D)****
***********
********
*****
56、有以下程序
#include
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");
}
从第一列开始输入以下数据,代表一个回车符。
2473程序的输出结果是()。
A)668977B)668966
C)66778777D)6688766
57、当从键盘上输入字符“12134211”下面程序的
输出结果是()。
main()
{chars;
intv1=0,v2=0,v3=0,v4=0,k;
for(k=0;k<=7;k++)
{scanf("%c",&s);
switch(s)
{default:
v4++;
case'1':
v1++;
case'3':
v3++;
case'2':
v2++;}
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
}
A)v1=4,v2=2,v3=1,v4=1B)v1=4,v2=9,v3=3,v4=1
C)v1=5,v2=8,v3=6,v4=1D)v1=8,v2=8,v3=8,v4=8
58、有以下程序
main()
{inti,j;
for(j=10;j<11;j++)
{for(i=9;iif(!
(j%i))break;
if(i>=j-1)printf("%d",j);
}
}
输出结果是()。
A)11B)10
C)9D)1011
59、运行以下程序后,如果从键盘上输入china#<回车>,
则输出结果为
#include
main()
{intv1=0,v2=0;
charch;
while((ch=getchar())!
='#')
switch(ch)
{case'a':
case'h':
default:
v1++;
case'o':
v2++;
}
printf("%d,%d\n",v1,v2);
}
A)2,0B)5,0
C)5,5D)2,5
60、以下程序的输出结果是()。
main()
{inti,j,x=0;
for(i=0;i<2;i++)4
{x++;
for(j=0;j<3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
A)x=4B)x=8
C)x=6D)x=12
二、读程序输出结果:
1、程序运行时输入为:
2008<回车>时,则程序运行结果是:
#include