第5章 循环语句与循环结构程序设计Word文档格式.docx
《第5章 循环语句与循环结构程序设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《第5章 循环语句与循环结构程序设计Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
main()
{inta,b,t;
scanf(“%d,%d”,&
a,&
b);
while()
{if(a>
b){t=a;
printf(“%d,%d\n”,a,b);
}A、!
a=bB、a!
=bC、a==bD、a=b
9、下面程序的功能是从键盘输入的一组字符中统计出大写字母个数m和小写字母个数n,并输出m,n中较大者,请选择填空。
#include<
stdio.h>
main()
{intm=0,n=0;
charc;
while((__)!
=’\n’)
{if(c>
=’A’&
&
c<
=’Z’)m++;
if(c>
’a’&
=’z’)n++;
printf(“%d\n”,m<
n?
___);
A.c==getchar()B.getchar()C.c=getchar()D.scanf(“%c”,c)
A.n:
mB.m:
nC.m:
mD.n:
n
10、下面程序的功能是将小写字母变成对应大写字母后的第二个字母。
其中y变成A,Z变成B。
填空
{charc;
while((c=getchar())!
=’a’&
=’z’)
{_______;
=’Z’&
=’Z’+2)
___________;
printf(“%c”,c);
A.c+=2B.c-=32C.c=c+32+2D.c-=30
A.c=’B’B.c=’A’C.c-=26D.c=c+26
11,下面程序的功能是在输入的一批正整数中求出最大者,输入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
12、下面程序的运行结果是()
{intnum=0;
while(num<
=2)
{num++;
printf(“%d\n”,num);
A.1B.1<
CR>
2C.1<
2<
3D.1<
3<
4
13.若运行以下程序时,从键盘输入2473<
则下面程序的运行结果是()
#include<
{intc;
switch(c-‘2’)
{case0:
case1:
putchar(c+4);
case2:
break;
case3:
putchar(c+3);
case4:
putchar(c+2);
printf(“\n”);
A.668977B.668966C.66778777D.6688766
14.C语言中while和do-while循环的主要区别是()
A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do–while的循环控制条件严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
15.以下程序段()
x=-1
do{x=x*x;
while(!
x);
A.是死循环B.循环执行二次C.循环执行一次D.有语法错误
16、以下描述中正确的是()
A.由于do-while循环中循环语句中只能是一条可执行语句,所以循环体内不能使用复合语句。
B.do-while循环由do开始,且while结束,在while(表达式)后面不能写分号。
C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作。
D.do-while循环中,根据情况可以省略while
17.若有以下后句
intx=3;
do{print("
%d\n"
x=2);
}while(!
(-x));
则上面程序段()
A.输入的是1B.输出的是1和-2C.输出的是3和0D.死循环
18.下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环,填空。
{longintnum;
scanf("
%ld"
&
num);
do{if(_____)printf("
%ld,num);
while(______);
A.num%100/10=3.Bnum/100%10=3C.num%10/10=3D.num/10%10=3
A.!
numB.num>
0=0C.!
num=0D.!
num!
=0
19.下面程序的运行结果是()
{inty=10;
do{y--;
}while(--y);
y--);
A.-1B.1C.8D.-8
20.下面程序的运行结果是()
intv0=0,v1=0,v2=0;
do{switch(c=getchar())
{case'
a'
:
case'
A'
e'
E'
i'
I'
0'
u'
U'
v1+=1;
default:
v0+=1;
v2+=1;
}while(c!
='
\n'
);
print(%d,%d,%d"
v0,v1,v2);
A.7,4,7B.8,4,8C.11,4,11D.12,4,12
21.下面程序的运行结果是()
{inta=1,b=10,
do{b-=a;
a++;
}while(b-,0);
a,b);
A.3.11B.2,8C.1,-1D.4,9
22.下面有关for循环的正确描述是()
A.for循环只能有于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环的循环体语句中,可以包含多条语句,但必须花括号括起来
23.对for(表达式1;
;
表达式3)可理解为()
A.for(表达式1;
0;
表达式3)
B.for(表达式1;
1;
表达式3)
C.for(表达式1;
表达式1;
D.for(表达式1;
表达式3;
24.若i为整型变量,则以下循环执行的次数是()
for(i=2;
i=0;
)printf(“%d”,i--)
A.无限次B.0次C.1次D.2次
25.以下for循环的语句是()
for(x=0,y=0;
(y=123)&
(x<
4);
x++);
A.是无限循环B.循环次数不定C.4次D.3次
26.以下不是无限循环的语句是()
A.for(y=0,x=1;
x>
++y;
x=I++)I=x;
B.for(;
;
x++=I);
C.while
(1){x++;
D.for(I=10;
I--)sum+=I;
27.以下程序段的运行结果是()
for(y=1;
y<
10;
)y=((x=3*y,x+1),x-1);
printf(“x=%d,y=%d”,x,y);
A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27
28.下面程序段的运行结果是()
for(x=3’x<
6;
x++)printf((x%2)?
(“**%d”):
(“##%d\n”),x);
A.**3B.##3C.##3D.**3##4
##4**4**4##5**5
**5##5
29.下列程序段不是死循环的是()
A.intI=100
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;
30.执行语句for(I=1;
I++<
4;
后变量I的值是( )
A.3;
B.4C.5D.不定
31.下面程序的功能是计算1到50中是7的倍数的数值之和,请选择填空。
Main()
{intI,sum=0;
for(I=1;
I<
=50;
I++)
if(______)sun+=I;
printf(“%d”,sum);
A.(int)(i/7)=i/7B.(int)i/7=i/7C.i%7+0D.i%7=0
32.下面程序的运行结果是( )
{inta;
for(a=1;
a<
=5;
a++
switch(a%5)
{case0:
printf(“*”);
case1;
printf(“#”);
case2:
printf(“&
”);
}}
33.下面程序的运行结果是( )
{intx,I;
I<
100;
{x=I;
NO.14
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
ptintf(“%d”,x);
A.3981B.4284C.2668D.2870
34.下面程序的运行结果是()
{intI,b,k=0;
{b=I%2;
while(b-->
=0)k++;
printf(“%d,%d”,k,b);
A.3,-1B.8-1C.3,0D.8,-2
35.以下正确的描述是()
A.continue语句的作用是结束整个循环的执行
B.只能在循环体内和switch语句体内使用break语句
C.在循环体内使用break或continue语句
D.从多层循环嵌套中退出时,只能使用goto语句
36.下面程序段()
for(t=1;
t<
=100;
t++)
{scanf(“%d”,&
if(x<
0)continue;
ptintf(“%3d”,t);
A.当x<
0时整个循环结束
B.x>
=0时什麽也不输出
C.printf函数永也不执行
D.最多允许输出100个非负整数
37.下面程序段()
x=3;
do{y=x--;
if(!
y){printf(“x”);
continue;
while(1<
=x<
A.将输出##B.将输出##*
C.是死循环D.含有不合法的控制表达式
38.以下是死循环的是()
A.for(I=1;
)
{if(++I%2==0)continue
if(++I%3==0)break;
B.I=32767;
{if(I<
0)break;
}while(++I);
C.for(I=1;
)if(++I<
10)continue;
D.i=1;
while(I--);
39.以下描述正确的是()
A.goto语句只能用于退出多层循环
B.switch语句中不能出现continue语句
C.只能用continue语句来终止本次循环
D.在循环中break语句不能独立出现
40.下面程序的运行结果是()
{intk=0;
charc=’A’;
do{switch(c++)
{case’A’:
k++;
case’B’:
k--;
case’C’:
k+=2;
case’D’:
k=k%2;
continue;
case’E’:
k=k*10;
k=k/3;
while(c<
’G’);
printf(“k=%d\n”,k);
A.k=3B.k=4C.k=2D.k=0
41.下面程序的运行结果是()
{inta,b;
for(a=1,b=1;
a++)
{if(b>
=20)break;
if(b%3==1){b+=3;
b=-5;
ptintf(“%d\n”,a);
A.7B.8C.9D.10
42.下面程序的运行结果是()
{intI,j,x=0;
for(I=0;
2;
{x++;
for(j=0;
j<
=3;
j++)
{if(j%2)continue;
x++;
ptintf(“x=%d\n”,x);
A.x=4B.x=8C.x=6D.x=12
43.下面程序的运行结果是()
{intI;
{if(I%2)printf(“*”);
elsecontinue;
printf(“$\n”);
A.*#*#*#$B.#*#*#*$C.*#*#$D.#*#*$
44.下面程序的运行结果是()
{intI,j,a=0;
{for(j=0;
if(j%2)break;
printf(“%d\n”,a);
A.4B.5C.6D.7
45.下面程序段是从键盘输入的字符中统计数字字符的
个数,用换行符结束循环。
请填空:
intn=0,c;
c=getchar();
{if()n++;
46.当运行以下程序时,从键盘输入right?
<
CR.>
则下
面程序的运行结果是:
sidio.h>
while((c=getchar()!
=’?
’)putchar(++c);
47.下面程序的运行结果是:
{inta,s,n,count;
a=2;
s=0;
n=1;
count=1;
while(count<
=7){n=n*a;
s=s+n;
++count;
printf(“s=%d”,d);
48.当运行以下程序时,从键盘输入China#<
则下面程序的运行结果是:
________________________
{intv1=0,v2=0;
charch;
while((ch=getchar()!
=’#’)
switch(ch)
{case‘a’:
case‘h’:
v1++
case‘o’:
v2++;
printf(“%d,%d\n”,v1,v2);
49.执行以下程序段以后,K值是:
________________
K=1;
n=263;
Do{k*=n%10;
n/=10;
}while(n);
50.下面程序段中循环体的执行次数是_______________
a=10;
b=0;
do{b+=2;
a-=2+b;
}while(a>
0);
51.下面程序段的运行结果是:
______________________
x=2;
do{printf(“*”);
x-;
}while(!
x==0);
52.下面程序段的运行结果是:
_____________________
I=1;
a=0;
s=1;
Do{a=a+s*I;
s=-s;
I++;
x<
=10);
Printf(“a=a%d”,a);
53.当运行以下程序时,从键盘输入12345-1<
则下面程序的行结果是:
____________________________
{intk=0,n;
do{scanf(“%d”,&
nn);
k+=n;
}while(n!
=-1);
printf(“k=%dn=%d=n”,kn);
54.下面程序的运行结果:
{intI,x,y;
I=x=y=0
do{++I;
If(I%2!
=0){x=x+I;
I++;
Y=y+I++;
}while(I<
=7);
printf(“x=%d,y=%d\n”,x,y);
55.下面程序的运行结果是______________________
{inta,b,I;
a=1;
b=3;
I=1;
do{printf("
a=(b-a)*2+b;
b=(a-b)*2+a;
if(I++%2==0)printf("
\n"
}while(b<
100);
56.当运行以下程序进,从键盘输入-10<
{inta,b,m,n;
m=n=1;
scanf(“%d%d”,&
do{if(a>
0){m=2*n;
b++;
else{n=m+n;
a+=2;
}while(a==b);
printf(“m=%dn=%d”,m,n);
57.鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。
For(x=1;
=29;
x++)
{y=30-x;
if(_______________)printf(“%d,%d\n”,x,y);
58.下面程序段的运行结果是:
——————————
I=-1;
-1<
=I<
1;
{a++;
printf(“%2d”,a);
peintf(“%2d”,I);
59.若for循环体用以下形式表示:
for(表达式1;
表达式2;
表达式3)循环体语句
则执行语句for(I=0;
3;
I++)printf(“*”);
时,表达式1
执行(______________________)次,表达式3执行(______________________)次。
60.下面程序的功能是计算1-3+5-7+…-99+
100的值,请填空。
{intI,t=1,s=0;
=101;
I+=2)
{____________;
s=s+t;
____________;
printf(“%d\n”,s);
61.下面程序的运行结果是:
_________________
{intI,t,sum=0;
for(t=I=1;
=10;
{sum+=t;
++I;
if(I%3==0)t=-I;
elset=I}
printf(“sum=%d”,sum);
62.下面程序的运行结果是:
switch(I%2)
I+=2;
printf(“#”)
63.下面程序的运行结果是:
_______________
intI,j=4;
for(I=j;
=2*j;
switch(I%j)
64.若从键盘输入65 14<
则下面程序的运行结果是:
__________________
{intm,n;
printf(“Enterm,n:
m,&
n);
while(m!
=n)
{while(m>
n)m-=n;
while(n>
m)n-=m;
printf(“m=%d\n”,m);
65.下面程序的运行结果是:
{inty,a;
y=2;
while(y-!
=-1)
{do{a*=y;
a++;
}while(y--);
printf(“%d,%d”,a,y);
66.下面程序的运行结果是:
{intI.j;
{if(I==0‖j==0‖I==3‖j==5)printf(“”);
elseprintf(““);
67.下面程序的运行结果是:
_______________
{intI,j:
for(I=4;
I>
=4;
I--)
{for(j=1;
=I;
j++)putchar(‘#’);
.
For(j=1;
=4-I;
j++)putchar(‘*’);
putchar(‘\n’);
68.下面程序的运行结果是:
{intI,k=0;
{k++;
while(k.<
I*I)
if(k%3=