浙大版《C语言程序设计》第四版(何钦铭颜晖) 第4章 循环结构 课后习题答案 您所在的位置:网站首页 do…while语句构成的循环只能用break语句退出 浙大版《C语言程序设计》第四版(何钦铭颜晖) 第4章 循环结构 课后习题答案

浙大版《C语言程序设计》第四版(何钦铭颜晖) 第4章 循环结构 课后习题答案

2024-06-11 15:06| 来源: 网络整理| 查看: 265

你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解,还可以在线答题。

WX20220412-135428@2x

一、选择题

1.以下程序段( )不能实现求 s = 1+2+...+n-1。

A.

int i, n, s=0; scanf("%d", &n); for(i=1; i0;++i){ s=s+i; }

答:D

解析:

选项 A、B、C 的代码都可以实现题目要求。但是选项 D 的代码执行起来是个死循环,i 的值从 n-1 开始,然后++i,循环的结束条件是 i>0,i 的值越加越大,一直大于 0,条件永远成立。实现的并不是从 1 累加到 n-1。

2.输入65 14 ,以下程序段的输出结果为( )。

int m, n; scanf("%d%d", &m,&n); while(m!=n) { while(m>n) m=m-n; while(n>m) n=n-m; } printf( "m=%d\n", m);

A. m=3 B. m=2 C. m=1 D. m=0

答:C

解析:

m 的初始值为 65,n 的初始值为 14。第一个while 的条件 m!=n,是成立的。执行里面的循环体。

第二个while 的条件 m >n,此时也是成立的,执行里面的循环体 m=m-n;执行后 m 的值为 51,因为是循环语句,要再次判断条件是否成立,m>n 依然成立,再执行一次循环体 m=m-n;执行后 m 的值为37。再次判断条件 m>n 依然成立,再一次执行循环体 m=m-n;执行后 m 的值为23。再次判断条件 m>n 依然成立,再一次执行循环体 m=m-n;执行后 m 的值为 9 。再次判断条件 m>n不成立,结束这个循环。

程序继续执行到第三个 while 循环,条件是 n>m,此时 m 的值为 9,n 的值为 14,条件成立,执行里面的循环体 n=n-m,执行后 n 的值为 5。再来判断循环条件 n>m,已经不成立了。结束这个循环。

此时里面的两个循环作为最外层的循环的循环体,结束这次执行之后,要再来判断最外层循环的条件 m!=n,此时 m 的值为 9,n 的值为 5。条件成立,要再次执行里面的循环体,就是两个里层循环。先看第二个循环条件 m>n,成立的,那吗执行里面的循环体 m=m-n,执行后 m 的值为 4,再来判断条件 m>n,已经不成立了,结束这个循环。

程序继续执行到第三个循环,条件是 n>m,此时 m 的值为 4,n 的值为 5,条件成立,执行里面的循环体 n=n-m,执行后 n 的值为 1。再来判断循环条件 n>m,已经不成立了。结束这个循环。

这两个循环执行结束后,要继续判断最外层的循环条件 m!=n,此时 m 的值为 4,n 的值为 1,条件成立,再次进去执行里面的两个内层循环。先来判断第二个循环条件 m>n,成立的,执行里面的循环体 m=m-n,执行后,m 的值为 3,再来判断条件 m>n,依然成立,执行里面的循环体 m=m-n,执行后,m 的值为2,再来判断条件 m>n,依然成立,执行里面的循环体 m=m-n,执行后,m 的值为 1。再来判断条件 m>n,此时已经不成立了。结束这个循环。

程序继续执行到第三个while循环,条件是 n >m,此时 m 的值为 1,n 的值也为 1。条件不成立,结束这个循环。

然后要再来判断外层循环的条件 m!=n,此时 m 的值为 1 ,n 的值也为 1。条件不成立,结束这个外层循环。

程序继续向下执行,打印输出语句,m 的值为 1。

3.C语言中 while 和 do-while 循环的主要区别是( )。

A. do-while 的循环体至少无条件执行一次

B. while 的循环控制条件比 do-while 的循环控制条件严格

C. do-while 允许从外部转到循环体内

D. do-while 的循环体不能是复合语句

答:A

解析:

while 循环是先判断条件,条件成立再执行循环体。

do-while 循环是先执行循环体,再判断条件是否成立。即使条件不成立,也已经执行一次循环体了。

4.下列叙述中正确的是( )。

A. break 语句只能用于 switch 语句体中

B. continue 语句的作用是使程序的执行流程跳出包含它的所有循环

C. break 语句只能用在循环体内和 switch 语句体内

D. 在循环体内使用 break 语句和 continue 语句的作用相同

答:C

解析:

break 语句可以使用在 switch 中。也可以使用在循环中,表示强制结束循环。

break 语句用在循环中表示强制结束循环,无论循环条件是否成立,循环都彻底的结束了。而 continue 语句,也是用于强制结束循环,但只是结束这一次循环,循环下次继续执行。

5.下列叙述中正确的是( )。

A. do-while 语句构成的循环不能用其他语句构成的循环来代替

B. do-while 语句构成的循环只能用 break 语句退出

C. 用 do-while 语句构成的循环,在 while 后的表达式为非零时结束循环

D. 用 do-while 语句构成的循环,在 while 后的表达式为零时结束循环

答:D

解析:

C 语言中的三种循环语句 for,while 和 do-while ,其实是可以互相替代的,只是写法不同。有些情况使用 for 循环比较方便,有些情况使用 while 比较方便,有些时候使用 do-while 比较方便。这三种循环的成立条件,都是非零,就会执行循环体。所以此题目的正确答案是选项 D。

6.下列程序段的输出结果是( )。

int i; for(i=1; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有