C语言预赛练习之循环结构.docx
《C语言预赛练习之循环结构.docx》由会员分享,可在线阅读,更多相关《C语言预赛练习之循环结构.docx(46页珍藏版)》请在冰豆网上搜索。
C语言预赛练习之循环结构
C语言预赛练习之-循环结构
1、在C语言中,下列说明正确的是
A)不能使用do-while构成的循环
B)do-while构成的循环必须用break才能退出
C)do-while构成的循环,当while中的表达式值为非零时结束循环
D)do-while构成的循环,当while中的表达式值为零时结束循环
D
2、以下叙述正确的是
A)do-while语句构成的循环不能用其它语句构成的循环来代替
B)do-while语句构成的循环只能用break语句退出
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环
D)用do-while语句构成的循环,在while后的表达式为零时结束循环
D
3、若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是
for(i=5;i;i--)
for(j=0;j<4;j++){...}
A)20B)25
C)24D)30
A
4、设i,j,k均为int型变量,则执行完下面的for循环后,k的值为
for(i=0,j=10;i<=j;i++,j--)k=i+j;
A)12B)10
C)11D)9
B
5、当执行以下程序段时
x=-1;
do{x=x*x;}while(!
x);
A)循环体将执行一次
B)循环体将执行两次
C)循环体将执行无限次
D)系统将提示有语法错误
A
6、执行语句:
for(i=1;i++<4;);后变量i的值是
A)3B)4
C)5D)不定
C
7、要使以下程序段输出10个整数,请填入一个整数。
for(i=0;i<=___;printf("%d\n",i+=2));
A)17B)18
C)20D)21
B
8、若输入字符串:
abcde<回车>,则以下while循环体将执行多少次。
while((ch=getchar())=='e')printf("*");
A)5B)4
C)6D)1
B
9、t为int型,进入下面的循环之前,t的值为0
while(t=1){……}
则以下叙述中正确的是
A)循环控制表达式的值为0B)循环控制表达式的值为1
C)循环控制表达式不合法D)以上说法都不对
B
10、有以下程序段
intk=0;
while(k=1)k++;
while循环执行的次数是
A)无限次B)有语法错,不能执行
C)一次也不执行D)执行一次
A
11、C语言用()表示逻辑"真"值。
A)trueB)t或y
C)1D)0
C
12、语句while(!
e);中的条件!
e等价于()。
A)e==0B)e!
=1
C)e!
=0D)~e
A
13、以下for循环是()。
for(x=0,y=0;(y!
=123)&&(x<4);x++)
A)无限循环B)循环次数不定
C)执行4次D)执行3次
C
14、对于for(表达式1;;表达式3)可理解为()。
A)for(表达式1;0;表达式3)
B)for(表达式1;1;表达式3)
C)for(表达式1;表达式1;表达式3)
D)for(表达式1;表达式3;表达式3)
B
15、C语言中while和do-while循环的主要区别是()。
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件严格
C)do-while允许从外部转到循环体内
D)do-while的循环体不能是复合语句
A
16、下面关于for循环的正确描述是()。
A)for循环只能用于循环次数已经确定的情况
B)for循环的循环体可以是一个复合语句
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体不能是一个空语句
B
17、若i为整型变量,则以下循环语句的循环次数是()。
for(i=2;i==0;)
printf("%d",i--);
A)无限次B)0次
C)1次D)2次
B
18、以下叙述正确的是()。
A)continue语句的作用是结束整个循环的执行
B)只能在循环体内和switch语句体内使用break语句
C)在循环体内使用break语句或continue语句的作用相同
D)从多层循环嵌套中退出时,只能使用goto语句
B
19、对下面程序段,描述正确的是()。
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个非负整数
D
20、对下面程序段叙述的正确的是()。
intk=0;
while(k=0)k=k-1;
A)while循环执行10次B)无限循环
C)循环体一次也不被执行D)循环体被执行一次
C
21、若i,j已定义成int型,则以下程序段中内循环体的总
执行次数是()。
for(i=3;i;i--)
for(j=0;j<2;j++)
for(k=0;k<=2;k++)
{......}
A)18B)27
C)36D)30
A
22、下面程序段中,循环体的执行次数是()。
inta=10,b=0;
do{b+=2;a-=2+b;}while(a>=0);
A)4B)5
C)3D)2
C
23、在下列选项中,没有构成死循环的程序段是
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;
D
24、请读程序:
#include
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1)
{b+=3;
continue;
}
b-=5;
}
printf("%d\n",a);
}
上面程序的输出结果是
A)7B)8
C)9D)10
B
25、以下程序的输出结果是
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
D
26、若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
D
27、以下程序的输出结果是()。
#include
main()
{
inti;
for(i=1;i<=5;i++)
if(i%2)
printf("*");
elsecontinue;
printf("#");
printf("$\n");
}
A)***#$B)#*#*#*$
C)*#*#*#$D)**#*$
A
28、下面程序的输出结果是()。
main()
{inti;
for(i=1;i<=5;i++)
{if(i%2)printf("*");
elsecontinue;
printf("#");
}
printf("$\n");
}
A)*#*#*#$B)#*#*#*$
C)#*#*$D)*#*#$
A
29、以下程序段的输出结果是()。
intk,j,s;
for(k=2;k<6;k++,k++)
{s=1;
for(j=k;j<6;j++)
s+=j;}
printf("%d\n",s);
A)1B)9
C)11D)10
D
定义如下变量:
intn=10;
则下列循环的输出结果是()。
while(n>7)
{n--;printf("%d\n",n);}
A)10B)9C)10D)9
9898
8787
76
B
31、下面程序的输出结果是()。
main()
{intx=3;
do{
printf("%d",x-=2);
}while(!
(--x));
}
A)1B)1-2
C)30D)是死循环
B
32、下面程序的输出结果是()。
main()
{inty=9;
for(;y>0;y--)
{if(y%3==0)
{printf("%d",--y);
continue;}
}
}
A)741B)852
C)963D)875421
B
33、以下程序段的输出结果是()。
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
C
34、若有以下程序段,w和k都是整型变量:
w=k;
LB:
if(w==0)gotoLE;
w--;printf("*");
gotoLB;
LE:
则不能与上面程序段等价的循环语句是
A)for(w=k;w!
=0;w--)B)w=k;while(w--!
=0)
printf("*");printf("*");w++;
C)w=k;do{w--;D)for(w=k;w;--w)
printf("*");}while(w!
=0)printf("*");
C
35、设有如下程序段:
inti=0,sum=1;
do
{sum+=i++;}
while(i<6);
printf("%d\n",sum);
上述程序段的输出结果是()。
A)11B)16
C)22D)15
B
36、执行下面程序后sum的值是()。
main()
{inti,sum=0;
for(i=1;i<6;i++)
sum+=i;
printf("%d\n",sum);
}
A)15B)14
C)不确定D)0
A
37、以下程序的输出结果是()。
#include
main()
{intcount,i=0;
for(count=1;count<=4;count++)
{i+=2;printf("%d",i);}
}
A)20B)246
C)2468D)2222
C
38、下面程序的输出结果是()。
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
B
39、下面函数的功能是根据以下的公式,返回满足精度∈要求的π值,请填空。
π 1121231234
—=1+—+——+———+————+……
23353573579
main()
{doubleesp,s=0.0,t=1.0;
intn;
scanf("%f",&esp);
for(_________;t>esp;n++)
{__________;
t=n*t/(2*n+1);}
s=2*s;
printf("s=%f\n",s);
}
A)n=1B)t=1
s+=ts=s/t
C)t=1D)n=1.0
s=s+tt+=s
A
40、运行下面的程序,如果从键盘上分别输入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
A
41、阅读以下程序:
main()
{intx;
for(x=5;x>0;x--)
if(x--<5)printf("%d,",x);
elseprintf("%d,",x++);}
程序运行后的输出结果是()。
A)4,3,1B)4,3,1,
C)5,4,2D)5,3,1,
B
42、以下程序的功能是:
从键盘上输入若干个学生的成绩,统计并输出
最高成绩和最低成绩,当输入负数时结束输入。
请填空。
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>aminxD
43、下面程序是计算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
B
44、下面程序的输出结果是()。
main()
{
inti,k=0,a=0,b=0;
for(i=1;i<=4;i++)
{k++;
if(k%2==0){a=a+k;continue;}
b=b+k;
a=a+k;
}
printf("k=%da=%db=%d\n",k,a,b);
}
A)k=5a=10b=4B)k=3a=6b=4
C)k=4a=10b=3D)k=4a=10b=4
D
45、以下程序段的执行结果是()。
inti,j,m=0;
for(i=1;i<=15;i+=4)
for(j=3;j<=19;j+=4)
m++;
printf("%d\n",m);
A)12B)15
C)20D)25
C
46、下面程序的输出结果是()。
main()
{intx,i;
for(i=1;i<=50;i++)
{x=i;
if(++x%2==0)
if(x%3==0)
if(x%7==0)
printf("%d",i);
}
}
A)28B)27
C)42D)41
D
47、在执行以下程序时,如果从键盘上输入:
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
B
48、执行以下程序后,输出的结果是()。
main()
{inty=10;
do{y--;}
while(--y);
printf("%d\n",y--);
}
A)-1B)1
C)8 D)0
D
49、运行以下程序后,如果从键盘上输入:
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
C
50、下面程序的输出结果是()。
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d%d",x--,y);
}
A)10192B)9876
C)10990D)101091
D
51、下面程序的输出结果是()。
main()
{intn=4;
while(n--)printf("%d",n--);
}
A)20B)31
C)321D)210
A
52、下面程序的输出结果是()。
main()
{inti;
for(i=1;i<6;i++)
{if(i%2){printf("#");continue;}
printf("*");
}
printf("\n");
}
A)#*#*#B)#####
C)*****D)*#*#*
A
53、以下循环体的执行次数是
main()
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--)
printf("%d\n",i);
}
A)3B)2
C)1D)0
C
54、以下程序段的执行结果是
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
B
55、有如下程序
main()
{inti,sum=0;
for(i=1;i<=3;sum++)sum+=i;
printf("%d\n",sum);
}
该程序的执行结果是
A)6B)3
C)死循环D)0
C
56、有如下程序
main()
{intx=23;
do
{printf("%d",x--);}
while(!
x);
}
该程序的执行结果是
A)321B)23
C)不输出任何内容D)陷入死循环
B
57、有如下程序
main()
{intn=9;
while(n>6){n--;printf("%d",n);}
}
该程序段的输出结果是
A)987B)876
C)8765D)9876
B
58、函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)
请填空,完成求π的功能。
#include
main()
{doubles=0.0;longinti,n;
scanf("%ld",&n);
for(i=1;i<=n;i++)
s=s+_______;
s=(sqrt(6*s));
printf("s=%e",s);
}
A)1/i*iB)1.0/i*i
C)1.0/(i*i)D)1.0/(n*n)
C
59、以下程序运行后的输出结果是()。
main()
{inti=10,j=0;
do
{j=j+1;i--;}
while(i>2);
printf("%d\n",j);
}
A)50B)52
C)51D)8
D
60、设有以下程序
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
B
61、以下函数的功能是:
求x的y次方,请填空。
main()
{inti,x,y;
doublez;
scanf("%d%d",&x,&y);
for(i=1,z=x;iz=z*______;
printf("x^y=%e\n",z);
}
A)i++B)x++
C)xD)i
C
62、下面程序的运行结果是()。
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
C
63、下面程序的运行结果是()。
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
D
64、执行下面程序段后