注意:下面的勘误中,红色字体为修改后的文字,提请各位读者注意。
1. 第 6 页,” 1.6 语言标准”中的第 3 行,将 1987 年修改为 1978 年。
2. 第 22 页,” 2. main()函数”中的第 1 行,int main (void)后面的分号(;)删除。
3. 第 24 页,“5. 声明”的第 10 行,也就是一个变量、函数或其他实体的名称。
4. 第 27 页,图 2.3 中,下划线应该只包含括号中的内容;第 2 段的第 4 行,而不是存储在源代码
中的指令。
5. 第 30 页,“2.5.4 打印多个值”的第 4 行,双引号后面的第 1 个变量。
6. 第 34 页,“2.7.3 程序状态”第 2 段的第 4 行,要尽量忠实于代码来模拟。
7. 第 35 页,“2.10 本章小结”第 2 段的第 1 句,声明语句为变量指定变量名,并标识该变量中存储
的数据类型;本页倒数第 2 行,即检查程序每执行一步后所有变量的值。
8. 第 37 页,“2.12 编程练习”中第 1 题,把你的名和姓打印在一行……把你的名和姓分别打印在两
行……把你的名和姓打印在一行……把示例的内容换成你的名字。
9. 第 40 页,第 1 行,用于把英磅常衡盎司转换为……
10. 第 44 页,“3.4 C 语言基本数据类型”的第 1 句,本节将详细介绍 C 语言的基本属性类型……
11. 第 46 页,“5. 八进制和十六进制”的第 4 句,十六进制数 3 的二进制数是 0011,十六进制数 5 的
二进制数是 0101;“6.显示八进制和十六进制”的第 1 句,既可以使用也可以显示不同进制的数;
将“回忆一下……程序在执行完毕后不会立即关闭执行窗口”放到一个括号里。
12. 第 47 页,“2.使用多种整数类型的原因”第 3 句,过去的一台运行 Windows 3.x 的机器上。
13. 第 53 页,图 3.5 下面的第 4 行“上面最后一个例子(prin(“Gramps sez, \”a \ is a backslash.\”\
n”);)”
14. 第 56 页,正文的第 2 行和第 4 行应该分别为 prin(“me32 = %“ “d” “”, me32); prin(“me32 =
%d”, me32);
15. 第 61 页,“无符号类型”的最后 1 句,相当于 unsigned int(即两者之间添加一个空格)。
16. 第 62 页,程序清单 3.8 中的第 1 行,将//* typesize.c -- 打印类型大小*/中的第一个斜杠删除。
17. 第 63 页,“3.6 参数和陷阱”第 2 行,prin(“Hello,pal.”)(即 Hello,和 pal.之间没有空格)。
18. 第 64 页,程序清单 3.10 中的第 1 行,使用转义序列。
19. 第 75 页,倒数第 8 行,何时使用圆括号取决于运算对象是类型还是特定量。
20. 第 82 页,第 11 行,……格式字符串包含了两个待打印项 number 和 pies 对应的……
21. 第 83 页,表 4.4 中的“L”修饰符的含义介绍中,应该是示例:”%Lf”、“%10.4Le”
22. 第 84 页,表 4.5 中的第 1 行,即,从字段的左侧开始打印该项(即,应该只保留一个项);在
“0”标记的含义中,添加一行:示例:"%010d"和"%08.3f"。
23. 第 86 页,第 1 段的第 2 行,……字段宽度是容纳待打印数字所需的……;倒数第 4 段中,根据
%x 打印出 1f,根据%X 打印出 1F
24. 第 87 页,“4.4.4 转换说明的意义”第 2 段,……读者认为原始值被替换成转换后的值。
25. 第 89 页,“参数传递”第 2 行,把变量 n1、n2、n3 和 n4 的值传递给程序(即,保留一个顿号)。
26. 第 93 页,第 5 行的 2121.45 的字体应该与第 4 行的 42 的字体保持一致;表 4.6 上面的最后一行,
对于 double 类型要使用 1 修饰符。
27. 第 94 页,表中的第 3 行,把对应的数值存储为 unsigned short int 类型;把“j”转换说明的示例放
到“z”转换说明中;在“j”转换说明的含义中添加:示例:”%jd”、”%ju”。
28. 第 95 页,“3.scanf( )的返回值”上面一段的倒数第 3 行,如果在格式字符串中把空格放到%c 的前
面。