循环结构习题有答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6章循环结构程序设计
1.以下叙述正确的是()
A、do-while语句构成的循环不能用其它语句构成的循环代替。
B、d o-while语句构成的循环只能用break语句退出。
C、用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D、用do-while语句构成的循环,在while后的表达式为零时结束循环。
答案:D
2.以下程序的输出结果是( )
A、10,1 9,2
B、9,8 7,6
C、10,9 9,0
D、10,10 9,1
main( )
{int x=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d,%d",x--,y);
}
答案:D
注解:循环执行2次,由x控制循环的执行次数;输出值为两次循环过程中x每次的自减值和y在for语句的第三个表达式中得到的i自增变化后的值。
3.以下程序的输出结果是( )
A、2 0
B、3 1
C、3 2 1
D、2 1 0
main( )
{ int n=4;
while(n--) printf("%d ",--n);
}
答案:A
4.以下程序的输出结果是( )
A、#*#*#
B、#####
C、*****
D、*#*#*
main( )
{ int i;
for(i=1;i<6;i++)
{ if(i%2) {printf("#");continue;}
printf("*");
}
printf("\n");
}
答案:A
注解:循环控制变量i的值从1变化到5,i为1、3、5时,i%2为1,if语句的条件为真,则执行if后的子句,输出#,然后执行continue语句,终止本次循环的执行,进入下一轮循环,i为2、4时,i%2为0,if语句的条件为假,则if后的子句并不执行,直接输出*,所以最后的输出为#*#*#。
5.以下程序的输出结果是( )
A、编译不通过,无输出
B、aceg
C、acegi
D、abcdefghi
main( )
{ int i;
for(i='A';i<'I';i++,i++) printf("%c",i+32);
printf(" \n");
}
答案:B
注解:循环控制变量i的取值为A、C、E、G,将它们转化为小写字母的格式输出。
6.以下循环体的执行次数是()
A、3
B、2
C、1
D、0
main( )
{ int i,j;
for(i=0,j=1; i<=j+1; i+=2, j--) printf("%d \n",i);
}
答案:C
注解:循环执行过程如下:(1)i=0,j=1时,i<=j+1条件成立,执行循环体一次;(2)i+=2, j--,则i=2,j=0,i<=j+1条件不成立,循环结束,所以循环次数为1次。
7.以下程序段的执行结果是()
A、a=12 y=12
B、a=12 y=12
a=14 y=16 a=16 y=28
a=16 y=20 a=18 y=24
C、a=12 y=12
D、a=12 y=12
a=14 y=26 a=14 y=44
int a,y;
a=10;y=0;
do
{ a+=2;y+=a;
printf("a=%d y=%d\n",a,y);
if(y>20) break;
} while(a=14);
答案:C
注解:程序段的执行过程如下:进入循环,执行循环体,输出a=12 y=12,判断if语句的条件y>20,不成立,循环的条件是赋值表达式,一直为真;再次进入循环,执行循环体,输出a=14 y=26,判断if语句的条件y>20,条件成立,则执行break;语句,跳出整个循环的执行。
8.有如下程序
main( )
{ int i,sum;
for(i=1;i<=3;sum++) sum+=i;
printf("%d\n",sum);
}
该程序的执行结果是()
A、6
B、3
C、死循环
D、0
答案:C
注解:在for循环中,循环终止的条件是i<=3,而i的初值是1,在循环体中并没有改变i的值,所以是死循环。
9.有如下程序
main( )
{ int x=23;
do
{ printf("%d",x--);}while(!x);}
该程序的执行结果是()
A、321
B、23
C、不输出任何内容
D、陷入死循环
答案:B
注解:对do-while循环,首先执行循环体,输出23,然后再判断条件,执行一次循环后x的值为22,!x的值为0,条件为假,退出循环的执行。
10.有如下程序
main( )
{ int n=9;
while(n>6) {n--;printf("%d",n);}
}
该程序段的输出结果是()
A、987
B、876
C、8765
D、9876
答案:B
注解:循环执行的条件是n>6,n的初值是9,执行一次循环体,n的值自减1,输出自减后的值,循环体执行三次后,n的值减为6时,条件不满足,退出循环的执行,所以输出876。
11.有以下程序段
int k=0;
while(k=1) k++;
while 循环执行的次数是()
A、无限次
B、有语法错,不能执行
C、一次也不执行
D、执行1次
答案:A
注解:while循环的条件是赋值表达式x=1,此表达式的值恒为1,则此循环是一个死循环,所以执行的次数是无限次。
12.以下程序执行后sum的值是()
A、15
B、14
C、不确定
D、0
min( )
{ int i,sum;
for(i=1;i<6;i++) sum+=i;
printf("%d\n",sum);
}
答案:C
注解:因为变量sum没有初值,所以它的初值是不确定的,则最后它的值是不确定的。
13.有以下程序段
int x=3;
do
{ printf("%d",x-=2);}while (!(--x));}
其输出结果是()
A、1
B、3 0
C、1 –2
D、死循环
答案:C
注解:do-while循环体先执行第一次,输出表达式x-=2的值为1,x 的值减为1,然后判断条件!(--x)为真,则第二次执行循环体,输出表达式x-=2的值为-1,x的值减为-1,再判断条件!(--x)为假,则终止循环执行。