循环结构习题有答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)为假,则终止循环执行。

相关文档
最新文档