第317页 | C Primer Plus 中文版 | 阅读 ‧ 电子书库

同步阅读进度,多语言翻译,过滤屏幕蓝光,评论分享,更多完整功能,更好读书体验,试试 阅读 ‧ 电子书库

A.6 第6章

1.2, 7, 70, 64, 8, 2

2.它会产生以下输出:

36 18 9 4 2 1

如果value是double类型,那么value变得小于1时判断条件仍会保持为真。循环会一直执行,直到由于浮点数下溢而产生0值。另外,此时%3d说明符也是不正确的。

5.第4行:应该是list[10]。

第6行:逗号应该为分号。第6行:i的范围应该是从0到9,而不是从1到10。第9行:逗号应该为分号。第9行:>=应该是<=。否则,当i为1时,循环永远不会结束。第10行:在第9行和第10行之间应该还有一个花括号。一个花括号结束复合语句,另一个结束程序。在这两个花括号之间应该有这样一行代码:return 0;。

下面是一个正确的版本:

6.下面是一种方法:

7.a.它会产生以下输出:

b.它会产生以下输出:

8.a.它会产生以下输出:

b.它会产生以下输出:Hp!xftu-!zpvoc.它会产生以下输出:Go west, youngd.它会产生以下输出:Go west, youn

9.我们得到的输出如下:

10.a.mint

b.10个元素。c.类型为double的值。d.ii是正确的,mint[2]是一个类型为double的值,&mint[2]是它在内存中的位置。

11.因为第一个元素的索引为0,所以循环的范围应该从0到SIZE-1,而不是从1到SIZE。但是这样改变会使第一个元素被赋值为0而不是2。所以要这样重写这个循环:

类似地,也应该改变第二个循环的限制条件。另外,应该在数组名后使用数组索引:

错误的循环限制条件的一个危险的方面在于程序可以运行,但是因为它把数据放在不正确的地方,所以可能在未来的某个时刻不能运行,这样就形成了一种程序中的定时炸弹。

12.函数应该把返回类型声明为long,并包含一个返回long值的return语句。

13.把num的类型指派为long,这样可以确保运算是long运算而不是int运算。在int为16位的系统上,两个int值相乘的结果在返回之前会被截尾为一个int值,这样就可能丢失数据。

14.输出如下:

请支持我们,让我们可以支付服务器费用。
使用微信支付打赏


上一页 · 目录下一页


下载 · 书页 · 阅读 ‧ 电子书库