循环结构测试.docx
《循环结构测试.docx》由会员分享,可在线阅读,更多相关《循环结构测试.docx(21页珍藏版)》请在冰豆网上搜索。
循环结构测试
C语言之循环结构测试
一、选择题
<1)有以下程序段
intn,t=1,s=0。
scanf("%d",&n>。
do{s=s+t。
t=t-2。
}while(t!
=n>。
为使此程序段不陷入死循环,从键盘输入的数据应该是
A)任意正奇数
B)任意负偶数
C)任意正偶数
D)任意负奇数
<2)设变量已正确定义,则以下能正确计算f=n!
的程序段是
A)f=0。
B)f=1。
for(i=1。
i<=n。
i++>f*=i。
for(i=1。
ii++>f*=i。
b5E2RGbCAP
C)f=1。
D)f=1。
for(i=n。
i>1。
i++>f*=i。
for(i=n。
i>=2。
i-->f*=i。
p1EanqFDPw
<3)有以下程序
main(>
{intk=5,n=0。
while(k>0>
{switch(k>
{default:
break。
case1:
n+=k。
case2:
case3:
n+=k。
}
k--。
}
printf("%d\n",n>。
}
程序运行后的输出结果是
A)0
B)4
C)6
D)7
<4)有以下程序
main(>
{
inta=1,b。
for(b=1。
b<=10。
b++>
{
if(a>=8>break。
if(a%2==1>{a+=5。
continue。
}
a-=3。
}
printf("%d\n",b>。
}
程序运行后的输出结果是
A)3
B)4
C)5
D)6
(5>有以下程序
main(>
{ints=0,a=1,n。
scanf("%d",&n>。
do
{s+=1。
a=a-2。
}
while(a!
=n>。
printf("%d\n",s>。
}
若要使程序的输出值为2,则应该从键盘给n输入的值是
A>-1
B>-3
C>-5
D>0
(6>若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0>
s=a。
for(b=1。
b<=c。
b++>s=s+1。
则与上述程序段功能等价的赋值语句是
A>s=a+b。
B>s=a+c。
C>s=s+c。
D>s=b+c。
(7>有以下程序
main(>
{intk=4,n=4。
for(。
n>
{n++。
if(n%3!
=0>continue。
k--。
}
printf("%d,%d\n",k,n>。
}
程序运行后的输出结果是
A>1,1
B>2,2
C>3,3
D>4,4
(8>要求以下程序的功能是计算:
main(>
{intn。
floats。
s=1.0。
for(n=10。
n>1。
n-->
s=s+1/n。
print("%6.4f\n",s>。
}
程序运行后输出结果错误,导致错误结果的程序行是
A>s=1.0。
B>for(n=10。
n>1。
n-->
C>s=s+1/n。
D>printf("%6.4f/n",s>。
(9>有以下程序
main(>
{inti。
for(i=0。
i<3。
i++>
switch(i>
{case1:
printf("%d",i>。
case2:
printf("%d",i>。
default:
printf("%d",i>。
}
}
执行后输出结果是
A>011122
B>012
C>012020
D>120
(10>有以下程序
main(>
{inti=0,s=0。
do{
if(i%2>{i++。
continue。
}
i++。
s+=i。
}while(i<7>。
printf("%d\n",s>。
}
执行后输出结果是
A>16
B>12
C>28
D>21
(11>以下程序的功能是:
按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
DXDiTa9E3d
main(>
{intn,k。
floatscore,sum,ave。
sum=0.0。
for(n=1。
n<=10。
n++>
{for(k=1。
k<=4。
k++>
{scanf(“%f”,&score>。
sum+=score。
}
ave=sum/4.0。
printf(“NO%d:
%f\n”,n,ave>。
}
}
上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。
这条语句是
A>sum=0.0。
B>sum+=score。
C>ave=sun/4.0。
D>printf(“NO%d:
%f\n”,n,ave>。
(12>有以下程序段
intn=0,p。
do{scanf(“%d”,&p>。
n++。
}while(p!
=12345&&n<3>。
此处do—while循环的结束条件是
A>P的值不等于12345并且n的值小于3
B>P的值等于12345并且n的值大于等于3
C>P的值不等于12345或者n的值小于3
D>P的值等于12345或者n的值大于等于3
(13>以下程序中,while循环的循环次数是
main(>
{inti=0。
while(i<10>
{if(i<1>continue。
if(I==5>break。
i++。
}
......
}
A>1
B>10
C>6
D>死循环,不能确定次数
(14>以下程序的输出结果是
main(>
{inta=0,i。
for(i=。
i<5。
i++>
{switch(i>
{case0:
case3:
a+=2。
case1:
case2:
a+=3。
default:
a+=5。
}
}
printf("%d\n",a>。
}
A>31
B>13
C>10
D>20
(15>以下程序的输出结果是
#include
main(>
{inti=0,a=0。
while(i<20>
{for(。
。
>
{if((i%10>==0>break。
elsei--。
}
i+=11。
a+=i。
}
printh("%d\n",a>。
}
A>21
B>32
C>33
D>11
(16>t为int类型,进人下面的循环之前,t的值为0
while(t=l>
{……}
则以下叙述中正确的是
A>循环控制表达式的值为0
B>循环控制表达式的值为1
C>循环控制表达式不合法
D>以上说法都不对
(17>以下程序的输出结果是
main(>
{intnum=0。
while(num<=2>
{num++。
printf(“%d\n”,num>。
}
A>1B>1C>1D>l
222
33
4
(18>以下程序的输出结果是
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>101
B>6
C>5
D>4
(19>有以下程序段
intk=0
while(k=1>k++。
while循环执行的次数是
A>无限次
B>有语法错,不能执行
C>一次也不执行
D>执行1次
(20>以下程序执行后sum的值是
A>15
B>14
C>不确定
D)0
min(>
{inti,sum。
for(i=1。
i<6。
i++>sum+=i。
printf(“%d\n”,sum>。
}
(21>有以下程序段
intx=3
do
{printf(“%d”,x-=2>。
}
while(!
(--x>>。
其输出结果是
A>中1
B>30
C>1-2
D>死循环
(22>有如下程序
main0
{inti,sum。
for(i=1。
i<=3。
sum++>sum+=i。
printf(“%d\n”,sum>。
}
该程序的执行结果是
A>6
B>3
C>死循环
D>0
(23>有如下程序
main0
{intx=23。
do
{printf(“%d”,x-->。
}
while(!
x>。
}
该程序的执行结果是
A>321
B>23
C>不输出任何内容
D>陷入死循环
(24>有如下程序
main0
{intn=9。
while(n>6>{n--。
printf(“%d”,n>。
}
}
该程序段的输出结果是
A>987
B>876
C>8765
D>9876
(25>以下循环体的执行次数是
A>3B>2C>1D>0RTCrpUDGiT
main(>
{inti,j。
for(i=0,j=1。
i<=j+1。
i+=2,j-->printf("%d\n",i>。
}
(26>以下叙述正确的是
A>do-while语句构成的循环不能用其它语句构成的循环来代替。
B>do-while语句构成的循环只能用break语句退出。
C>用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D>用do-while语句构成的循环,在while后的表达式为零时结束循环。
(27>以下程序段的执行结果是
A>a=12y=12B>a=12y=12
a=14y=16 a=16y=28
a=16y=20
a=18y=24
C>a=12y=12D>a=12y=12
a=14y=26
a=14y=44
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>。
(28>以下程序的输出结果是
A>10192
B>9876
C>10990
D>101091
main(>
{intx=10,y=10,I;
for(i=0;x>8;y=++i>
printf("%d,%d",x--,y>;
}
(29>以下程序的输出结果是
A>20
B>31
C>321
D>210
main(>
{intn=4;
while(n-->printf("%d",--n>;
}
(30>以下程序的输出结果是
A>#*#*#
B>#####
C>*****
D>*#*#*
main(>
{inti;
for(i=1;i<6;i++>
{if(i%2>{printf("#">;continue;}
printf("*">;
}
printf("\n">;
}
(31>执行以下程序段时
A>循环体将执行一次
B>循环体将执行两次
C>循环体将执行无限次
D>系统将提示有语法错误
X=-1。
do{x=x*x。
}while(!
x>。
(32>执行以下程序后,输出的结果是
A>-1B>1C>8D>05PCzVD7HxA
main(>
{inty=10。
do{y--。
}while(--y>。
printf("%d\n",y-->。
}
(33>在下列选项中,没有构成死循环的程序段是
A>inti=100 B>for(。
。
>。
jLBHrnAILg
while(1>
{i=i%100+1。
if(i>100>break。
}
C>intk=1000。
D>ints=36。
xHAQX74J0X
do{++k。
}while(k>=10000>。
while(s>。
--s。
LDAYtRyKfE
(34>执行语句:
for(i=l:
i++<4:
>。
后,变量i的值是
A>3
B>4
C>5
D>不定
(35>以下程序的输出结果是
A>x=4B>x=8C>x=6D>x=12Zzz6ZB2Ltk
main(>
{inti,j,x=0。
for(i=0。
i<2。
i++>
{x++。
for(j=0。
j<=3。
j++>
{if(j%2>continue。
x++。
}
x++。
}
printf("x=%d\n",x>。
}
(36>运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为:
A>m=3B>m=2C>m=1 D>m=1dvzfvkwMI1
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>。
}
(37>设x和y均为int型变量,则执行下的循环后,y值为
for(y=1,x=1。
y<=50。
y++>
{if(x>=10>>break。
if(x%2==1>
{x+=5。
continue。
}
x-=3。
}
A>2 B>4 C>6 D>8
(38>假定a和b为int型变量,则执行以下语句后b的值为
a=1。
b=10。
do
{b-=a。
a++。
}
while(b--<0>。
(39>设j为int型变量,则下面for循环语句的执行结果是
for(j=10。
j>3。
j-->
{if(j%3>j--。
--j。
--j。
printf("%d",j>。
}
A>63
B>74
C>62
D>73
(40>若ij已定义为int类型,则以下程序段中内循环体的总的执行次数是
for(i=5。
i。
i-->
for(j=0。
j<4。
j++>{...}
A>20
B>25
C>24
D>30
(41>执行下面的程序后,a的值为
main(>
{inta,b。
for(a=1,b=1。
a<=100。
a++>
{if(b>=20>break。
if(b%3==1>{b+=3。
continue。
}
b-=5。
}}
A>7
B>8
C>9
D>10
(42>以下程序段的输出结果是
intx=3。
do{printf("%3d",x-=2>。
}while(!
(--x>>。
A>1
B>30
C>1-2
D>死循环
(43>定义如下变量:
intn=10。
则下列循环的输出结果是
while(n>7>
{n--。
printf("%d\n",n>。
}
A>10B>9C>10D>9
9898
8787
76
(44>下面的程序
A>输出的是1
B>输出的是1和-2
C>输出的是3和0
D>是死循环
main(>
{intx=3。
do{
printf("%d\n",X-=2>。
}while(!
(--x>>。
}
(45>下面程序的输出是
A>741
B>852
C>963
D>875421
main(>
{inty=9。
for(。
y>0。
y-->
{if(y%3==0>
{printf("%d",--y>。
continue。
}
}.
}
(46>若x是int型变量,且有下面的程序片段:
for(x=3。
x<6。
x++>printf((x%2>?
("**%d">:
("##%d\n">,x>。
rqyn14ZNXI
上面程序片段的输出结果是
A>**3B>##3C>##3D>**3##4EmxvxOtOco
##4**4**4##5**5SixE2yXPq5
**5##5
(47>请读程序片段:
#include
main(>
{inta,b。
for(a=1。
b=1。
a<=100。
a++>
{if(b>=20>break。
if(b%3==1>
{b+=3。