第5章循环程序习题110403.docx
《第5章循环程序习题110403.docx》由会员分享,可在线阅读,更多相关《第5章循环程序习题110403.docx(48页珍藏版)》请在冰豆网上搜索。
![第5章循环程序习题110403.docx](https://file1.bdocx.com/fileroot1/2022-11/19/4312c475-eb64-4e1f-bc3c-059e49ff1248/4312c475-eb64-4e1f-bc3c-059e49ff12481.gif)
第5章循环程序习题110403
第5章循环结构程序设计
5.1选择题
1.C语言中用于结构化程序设计的3种基本结构是_______。
[03C1-12答案:
A]
A)顺序结构、选择结构、循环结构
B)if,switch,break
C)for,while,do-while
D)if,for,continue
2.下列保留字中用于构成循环结构的是_______。
B
A)ifB)whileC)switchD)default
3.有以下程序,执行后输出结果是_______。
[03C1-24答案:
A]
main()
{
inti=0,s=0;
do{if(i%2){i++;continue;}
i++;s+=i;
}while(i<7);
printf("%d\n",s);
}
A)16B)12C)28D)21
4.有以下程序:
若要使程序的输出值为2,则应该从键盘给n输入的值是_______。
main()[03Q1-21答案:
B]
{
ints=0,a=1,n;
scanf("%d",&n);
do
{s+=1;a=a-2;
}while(a!
=n);
printf("%d\n",s);
}
A)-1B)-3C)-5D)0
5.若有如下程序段,其中s,a,b,c均已定义为整型变量,且a,c均已赋值(c大于0)。
s=a;
for(b=1;b<=c;b++)s=s+1;
则与上述程序段功能等价的赋值语句是__________。
[03Q1-22答案:
B]
A)s=a+b;B)s=a+c;C)s=s+c;D)s=b+c;
6.有以下程序:
程序运行后的输出结果是__________。
[03Q1-23答案:
C]
main()
{
intk=4,n=0;
for(;n{n++;
if(n%3!
=0)continue;
k--;
}
printf("%d,%d\n",k,n);
}
A)l,lB)2,2C)3,3D)4,4
7.要求以下程序的功能是计算:
main()
{
intn;floats;
s=1.0;
for(n=10;n>l;n--)
s=s+l/n:
printf("%6.4f\n",s);
}
程序运行后输出结果错误,导致错误结果的程序行是。
C
A)s=1.0;B)for(n=10;n>l;n--)
C)s=s+l/n;D)printf("%6.4f\n",s);
8.以下程序执行后sum的值是。
C
main()
{
inti,sum;
for(i=1;i<6;i++)sum+=i;
printf("%d\n",sum);
}
A)15 B)14 C)不确定 D)0
9.对do-while语言,错误的说法是。
C
A)可构成多重循环结构B)循环次数不可能为0
C)循环次数可能为0D)先执行后判断
10.对于while语句,错误的说法是。
B
A)用条件控制循环体的执行次数 B)循环体至少要执行一次
C)循环体有可能一次也不执行 D)循环体中可以包含若干条语句
11.在下列选项中,没有构成死循环的程序段是。
C
A)inti=100B)for(;;);
while
(1)
{
i=i%100+1;
if(i>100)break;
}
C)intk=1000;D)ints=36
do{++k}while(k>=1000);while(s);--s;
12.下列语句中,语法错误的是。
(不考虑语义) B
A)while(x=y)5; B)dox++while(x==10);
C)while(0); D)do2;while(a==b);
13.循环语句“for(x=0,y=0;(y!
=123)||(x<4);x++);”的循环执行。
A
A)无限次 B)不确定次 C)4次 D)3次
14.若i、j已定义为int类型,则以下程序段中的内循环体的执行次数是。
A
for(i=5;i;i--)
for(j=0;j<4;j++){……}
A)20 B)24 C)25 D)30
15.假定a和b为int型变量,则执行以下语句后b的值为。
D
a=1;b=10;
do{b-=a;a++;
}while(b--<0);
A)9 B)-2 C)-1 D)8
16.设x和y为int型变量,则执行下面的循环后,y的值为。
C
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
17.在C语言中,下列说法中正确的是。
D
A)不能使用“do语句while(条件)”的循环
B)“do语句while(条件)”的循环中必须使用“break”语句退出循环
C)“do语句while(条件)”的循环中,当条件非0时将结束循环
D)“do语句while(条件)”的循环中,当条件为0时将结束循环
18.若有以下程序段,w和k都是整型变量,则不能与该程序段等价的循环语句是。
C
w=k;
LB:
if(w==0)gotoLE;
w--;
printf("*"); gotoLB;
LE:
A)for(w=k;w!
=0;w--)printf("*");B)w=k;while(w--!
=0)prinif("*");
C)w=k;D)for(w=k;w;--w)printf("*");
do{w--;prinif("*");
}while(w!
=0);
19.设有程序如下,在运行该程序时,for语句中循环体的执行次数是。
C
#include
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
20.在下述选项时,没有构成死循环的程序是。
B
A)inti=1000;B)intk=100;
while
(1)do{++k;
{ i=i%1000+1;}while(k>=1000);
if(i>1000) break;
}
C)for(;;);D)ints=136;
while(s);--s;
21.假定a和b为int型变量,则执行下述语句组后,b的值为。
D
a=1; b=5;
do {b-=a; a++;
}while(b-->1);
A)1 B)-2 C)-1 D)0
22.以下叙述正确的是。
D
A)do-while语句构成的循环不能用其他语句构成的循环来代替
B)do-while语句构成的循环只能用break语句退出
C)do-while语句构成的循环,在while后的表达式为非零时结束循环
D)do-while语句构成的循环,在while后的表达式为零时结束循环
23.下面关于循环语句for、while、do-while的叙述中正确的是。
D
A)三种循环语句的循环体都必须放入一对花括号中
B)三种循环语句中都可以缺省循环终止条件表达式
C)三种循环语句的循环体都至少被无条件地执行一次
D)三种循环语句都可能出现无穷循环
24.有以下程序,执行此程序的输出结果是。
D
#include
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);
}
printf("\n");
}
A)28 B)27 C)42 D)41
25.执行下述程序的输出是。
B
#include
main()
{
inty=9;
for(;y>0;y--)
{ if(y%3==0)
{ printf("y%3==0"); continue; }
if(y!
=1)
printf("%c",' ');
else printf("\n");
}
}
A)741 B)852 C)963 D)875421
26.执行以下程序的输出结果是。
B
#include
main()
{
inti;
for(i='A';i<'r';i++,i++)
printf("%c",i+32);
printf("\n");
}
A)编译不通过 B)aceg C)acegi D)abcdefghi
27.以下不形成死循环的是。
D
A)for(;;x+=i);
B)while
(1)x++;
C)for(i=10;;i--)sum+=i;
D)for(;(c=getchar())!
='\n';)printf("%c",c);
28.执行下述程序的输出结果是。
B
#include
main()
{
intx=