浙大版《C语言程序设计》第四版(何钦铭颜晖) 第4章 循环结构 课后习题答案 | 您所在的位置:网站首页 › do…while语句构成的循环只能用break语句退出 › 浙大版《C语言程序设计》第四版(何钦铭颜晖) 第4章 循环结构 课后习题答案 |
你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解,还可以在线答题。 一、选择题 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 实验室设备网 版权所有 |