南昌大学C++第六章.docx
《南昌大学C++第六章.docx》由会员分享,可在线阅读,更多相关《南昌大学C++第六章.docx(23页珍藏版)》请在冰豆网上搜索。
![南昌大学C++第六章.docx](https://file1.bdocx.com/fileroot1/2022-12/29/7d2b41a0-8657-4fef-ab57-03b708929b95/7d2b41a0-8657-4fef-ab57-03b708929b951.gif)
南昌大学C++第六章
第6章循环控制
1、设变量已正确定义,则以下能正确计算f=n!
的程序段是
A)f=0; B)f=1;
for(i=1;i<=n;i++)f*=i; for(i=1;i
C)f=1; D)f=1;
for(i=n;i>1;i++)f*=i; for(i=n;i>=2;i--)f*=i;
[D] 教师批改:
D
2、有以下程序
main()
{int k=5,n=0;
while(k>0)
{ switch(k)
{ default :
break;
case 1 :
n+=k;
case 2 :
case 3 :
n+=k;
}
k--;
}
printf("%d\n",n);
}
程序运行后的输出结果是
A)0
B)4
C)6
D)7
[D] 教师批改:
D
3、有以下程序
main()
{
int a=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
[B] 教师批改:
B
4、有以下程序
main()
{int s=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
[B] 教师批改:
B
5、若有如下程序段,其中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;
[B] 教师批改:
B
6、有以下程序
main()
{int k=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
[C] 教师批改:
C
7、要求以下程序的功能是计算:
main()
{int n; float s;
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);
[C] 教师批改:
C
8、有以下程序
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
[A] 教师批改:
A
9、有以下程序
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
[A] 教师批改:
A
10、以下程序的功能是:
按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
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);
[A] 教师批改:
A
11、有以下程序段
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
[D] 教师批改:
D
12、以下程序中,while循环的循环次数是
main()
{int i=0;
while(i<10)
{ if(i<1) continue;
if(I==5) break;
i++;
}
......
}
A)1
B)10
C)6
D)死循环,不能确定次数
[D] 教师批改:
D
13、以下程序的输出结果是
main()
{int a=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
[A] 教师批改:
A
14、以下程序的输出结果是
#include
main()
{int i=0,a=0;
while(i<20)
{ for(;;)
{if((i%10)==0) break;
else i--;
}
i+=11; a+=i;
}
printh("%d\n",a);
}
A)21
B)32
C)33
D)11
[B] 教师批改:
B
15、t为int类型,进人下面的循环之前,t的值为0
while(t=l)
{…… }
则以下叙述中正确的是
A)循环控制表达式的值为0
B)循环控制表达式的值为1
C)循环控制表达式不合法
D)以上说法都不对
[D] 教师批改:
B
16、以下程序的输出结果是
main()
{ int num=0;
while(num<=2)
{ num++; printf(“%d\n”,num);
}
A)1
2
3
4 B)1
2
3
C)1
2 D)1
[B] 教师批改:
B
17、以下程序的输出结果是
main()
{ int a,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
[D] 教师批改:
D
18、有以下程序段
int k=0
while(k=1)k++;
while 循环执行的次数是
A)无限次
B)有语法错,不能执行
C)一次也不执行
D)执行1次
[A] 教师批改:
A
19、以下程序执行后sum的值是
min()
{int i, sum;
for(i=1;i<6;i++)sum+=i;
printf(“%d\n”,sum);
}
A)15
B)14
C)不确定
D)0
[C] 教师批改:
C
20、有以下程序段
int x=3
do
{ printf(“%d”,x-=2); }
while(!
(--x));
其输出结果是
A)中1
B)3 0
C)1 -2
D)死循环
[C] 教师批改:
C
21、有如下程序
main0
{ int i,sum;
for(i=1;i<=3;sum++) sum+=i;
printf(“%d\n”,sum);
}
该程序的执行结果是A)6 B)3
C)死循环 D)0
[C] 教师批改:
C
22、有如下程序
main0
{ int x=23;
do
{ printf(“%d”,x--);}
while(!
x);
}
该程序的执行结果是A)321 B)23
C)不输出任何内容 D)陷入死循环
[B] 教师批改:
B
23、有如下程序
main0
{ int n=9;
while(n>6) {n--;printf(“%d”,n);}
}
该程序段的输出结果是A)987 B)876
C)8765 D)9876
[B] 教师批改:
B
24、以下循环体的执行次数是
main()
{inti,j;
for(i=0,j=1; i<=j+1;i+=2,j--)printf("%d\n",i);
}A)3 B)2
C)1 D)0
[C] 教师批改:
C
25、以下叙述正确的是A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
[D] 教师批改:
D
26、以下程序段的执行结果是
int a,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=12
a=14y=16
a=16y=20
a=18y=24 B)a=12y=12
a=16y=28
C)a=12y=12 D)a=12y=12
a=14y=26
a=14y=44
[B] 教师批改:
B
27、以下程序的输出结果是
main( )
{ int x=10,y=10,I;
for(i=0;x>8;y=++i)
printf("%d,%d",x--,y);
}A)10192 B)9876
C)10990 D)101091
[D] 教师批改:
D
28、以下程序的输出结果是
main( )
{ int n=4;
while(n--)printf("%d",--n);
}A)2 0 B)3 1
C)3 2 1 D)2 1 0
[A] 教师批改:
A
29、以下程序的输出结果是
main( )
{ int i;
for(i=1;i<6;i++)
{ if(i%2){printf("#");continue;}
printf("*");
}
printf("\n");
}A)#*#*# B)#####
C)***** D)*#*#*
[A] 教师批改:
A
30、执行以下程序段时
X=-1;
do {x=x*x; } while(!
x);A)循环体将执行一次 B)循环体将执行两次
C)循环体将执行无限次 D)系统将提示有语法错误
[A] 教师批改:
A
31、执行以下程序后,输出的结果是
main()
{ int y=10;
do {y--;} while(--y);
printf("%d\n",y--);
}
A)-1
B)1
C)8
D)0
[D] 教师批改:
D
32、在下列选项中,没有构成死循环的程序段是
A)int i=100
while
(1)
{ i=i%100+1;
if(i>100)break;
} B)for(;;);
C)intk=1000;
do{++k;}while(k>=10000); D)ints=36;
while(s);--s;
[C] 教师批改:
C
33、执行语句:
for(i=l:
i++<4:
);后,变量i的值是
A)3
B)4
C)5
D)不定
[C] 教师批改:
C
34、以下程序的输出结果是
main()
{ int i,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);
}
A)x=4
B)x=8
C)x=6
D)x=12
[B] 教师批改:
B
35、运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为:
main()
{ int m,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=3
B)m=2
C)m=1
D)m=1
[C] 教师批改:
C
36、设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
[C] 教师批改:
C
37、假定a和b为int型变量,则执行以下语句后b的值为
a=1;b=10;
do{b-=a; a++; }while(b--<0);
A)9
B)-2
C)-1
D)8
[D] 教师批改:
D
38、设j为int型变量,则下面for循环语句的执行结果是
for(j=10;j>3;j--)
{ if(j%3)j--;
--j; --j;
printf("%d ",j);
}
A)6 3
B)7 4
C)6 2
D)7 3
[B] 教师批改:
B
39、若ij已定义为int类型,则以下程序段中内循环体的总的执行次数是
for(i=5;i;i--)
for(j=0;j<4;j++){...}
A)20
B)25
C)24
D)30
[A] 教师批改:
A
40、执行下面的程序后,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
[B] 教师批改:
B
41、以下程序段的输出结果是
intx=3;
do { printf("%3d",x-=2);}while(!
(--x));A)1 B)30
C)1-2 D)死循环
[C] 教师批改:
C
42、下面的程序
main()
{intx=3;
do{
printf("%d\n",X-=2);
}while(!
(--x));
}A)输出的是1 B)输出的是1和-2
C)输出的是3和0 D)是死循环
[B] 教师批改:
B
43、下面程序的输出是
main()
{inty=9;
for(;y>0;y--)
{if(y%3==0)
{printf("%d",--y);continue;}
}
}A)741 B)852
C)963 D)875421
[B] 教师批改:
B
44、若x是int型变量,且有下面的程序片段:
for(x=3;x<6;x++)printf((x%2)?
("**%d"):
("##%d\n"),x);
上面程序片段的输出结果是A)**3
##4
**5 B)##3
**4
##5
C)##3
**4##5 D)**3##4
**5
[D] 教师批改:
D
45、请读程序片段:
#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)7 B)8
C)9 D)10
[B] 教师批改:
B
46、请读程序:
#include
main()
{intmun=0;
while(num<=2)
{num++;printf("%d\n",num);}
}
上面程序的输出结果是A)1
2
3
4 B)1
2
3
C)1
2 D)1
[C] 教师批改:
C
47、请读程序:
#include
#include
main()
{floatx,y,z;
scan("%f%f",&x,&y);
z=x/y;
while
(1)
{if(fabs(z)>1.0)
{x=y;y=z;z=x/y;}
elsebreak
}
printf("%f\n",y);
}
若运行时从键盘上输入3.62.4(表示回车),则输出的结果是A)1.500000 B)1.600000
C)2.000000 D)2.400000
[B] 教师批改:
B
48、执行下面程序片段的结果是()
intx=23;
do
{printf("%2d",x--);}
while(!
x);A)打印出321 B)打印出23
C)不打印任何内容 D)陷入死循环
[B] 教师批改:
B
49、语句while(!
E);中的条件!
E等价于() 。
A)E==0 B)E!
=1
C)E!
=0 D)~E
[A] 教师批改:
A
50、C语言中()。
A)不能使用do-while语句构成的循环 B)do-while语句构成的循环必须用break语句才能退出
C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环
[D] 教师批改:
D
51、以下程序的输出结果是()。
#include
main()
{ int i;
for(i=1;i<=5;i++) {
if(i%2) printf("*");
else continue; printf("#");