当前位置:文档之家› CPrimerPlus第6版中文版勘误表

CPrimerPlus第6版中文版勘误表

CPrimerPlus第6版中文版勘误表
CPrimerPlus第6版中文版勘误表

注意:下面的勘误中,红色字体为修改后的文字,提请各位读者注意。

第 6 页,” 1.6 语言标准”中的第 3 行,将 1987 年修改为 1978 年。 第 22 页,” 2. main ()函数”中的第 1 行, int main (void ) 后面的分号( ; )删除。 第 24 页,“5. 声明”的第 10 行,也就 是一个变量、函数或其他实体的名称。 第 27 页,图 2.3 中,下划线应该只包含括号中的内容;第 2 段的第 4 行,而不是存储 在 源代码 中的指令。 第 30页,“2.5.4 打印多个值”的第 4行,双引 号后面的第 1 个变量。 第 34页,“2.7.3 程序状态”第 2段的第 4 行,要尽量忠实 于代码来模拟。 第 35页,“2.10 本章小结”第 2段的第 1句,声明 语句为变量指定变量名, 并标识该变量中存 储的数据类型;本页倒数第 2 行,即 检查程序每执行一步后所有变量的值。 第37页,“2.12编程练习”中第1题,把你的名和姓打印在一行……把你的 名和姓分别打印在 两行……把你的 名和姓打印在一行……把示例的内容换成你的 名字。 第 40 页,第 1 行,用于把英 磅常衡盎司转换为… … 第44页,“3.4 C 语言基本数据类型”的第 1句,本节将 详细介绍C 语言的基本属性类型……

第 46页,“5. 八进制和十六进制”的第 4句,十六进制数 3的二进制数 是 0011,十六进制数 5 的二进制数 是 0101;“6. 显示八进制和十六进制”的第 1 句,既可以使用 也可以 显示不同进制 的数;将“回忆一下……程序在执行完毕后不会立即关闭执行窗口”放到一个括号里。 第 47页,“2. 使用多种整数类型的原因”第 3句,过去的一台运行 Windows 3.x 的机器上。

第 53 页,图 3.5 下面的第 4 行“上面最后一个例子( printf ( “ ” a \\ is a

backslash. ” \n ” ); )” 第 56页,正文的第 2行和第 4行应该分别为 printf ( “me32 = %““d”“\n ”, me32); printf ( “me32 = %d\n ” , me32);

第 61 页,“无符号类型”的最后 1 句,相当于 unsigned int (即两者之间添加一个空格 )。

第 62 页,程序清单 3.8 中的第 1 行,将 //* typesize.c -- 打印类型大小 */ 中的第一个斜杠删 除。

第 63页,“3.6 参数和陷阱”第 2行, printf ( “ Hello,pal. ” )(即 Hello, 和 pal. 之间没有空 格)。

第 64 页,程序清单 3.10 中的第 1 行,使用 转义序列。 第 75 页,倒数第 8行, 何时使用圆括号 取决于运算对象是类型还是特定量。 第82页,第11行, . 格式字符串包含了两个待打印项 number 和pies 对应的 ..... 第83页,表4.4中的“ L”修饰符的含义介绍中,应该是示例: ” %L ”、“%10.4Le”

第 84 页,表 4.5 中的第 1 行,即,从字段的左侧开始打印该 项(即,应该只保留一个 项);在 “ 0”标记的含义中,添加一行: 示例:"%010d"和"%08.3f"。

第86页,第1段的第2行,……字段宽度是容纳 待打印数字所需的……; 倒数第4段中,根据%x 打印出1f,根据%打印出1F 第87页,“4.4.4转换说明的意义”第 2段,……读者认为原始值 被替换成转换后的值。

第89页,“参数传递”第2行,把变量n1、n2、n3和n4的值传递给程序(即,保留一个顿号)。 第 93页,第 5行的 2121.45 的字体应该与第 4行的 42 的字体保持一致;表 4.6 上面的最后一 行,对于

double 类型要使用 1 修饰符。

第 94 页,表中的第 3 行,把对应的数值存储为 unsigned short int 类型;把“ j ”转换说明的 示例

放到“ z ”转换说明中;在“ j ”转换说明的含义中添加:示例:” %jd”、” %ju”。

第95页,“3.scanf () 的返回值”上面一段的倒数第 3行,如果在格式字符串中把空格放到 %c

的前面 。

第98页,倒数第2段,strlen () 函数(声明在string.h 头文件中)可用于 ... 。

第 100 页,” 4.8 编程练习”中的第 2 题,将该题中的“名和姓”统一替换为“名字” ;并执行 以下 操作;第 3题,将 a 、 b 项中的“输入”替换为” The input is ”,将“或”替换为“ or”, 将末尾1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11. 12.

13. 14.

15. 16. 17. 18. 19. 20. 21. 22. 23. 24.

25.

26. 27. 28. 29. 30.

的分号换成点( . )。

31.第 105 页,第 8 行,由于 19.0 不小于 18.5 ,所以该条件为假。

32.第 107 页,程序清单 5.3 下面的第 1 行,首先把 68 赋给 jane 。

33.第 111 页,图 5.3 下面的第 1 行,如何让加法运算在除法运算之前执行。

34.第 117 页,程序清单 5.11 结束后的第 4 行,而 pre_b 是 b 递增之后的值。

35.第 118 页,倒数第 2 行,而不是( x * y) ++。

36.第 129 页,程序清单 5.15 的第 4 行, //1 小时的秒数。

37.第 134页,“ 5.11 编程练习”中的第 4题, 168.7 cm = 5 feet, 6.4 inches

38.第143页,正文第 2段,假设你想跳过输入到达第1个既不是空白字符也不是数字的位置

39.第 148页,倒数第 3行,高优先级组: < <= > >=(即在 <和<=之间有空格,在 >和>=之间有空格)

40.第 153 页,第 7 行的“ 15”与下一行的“ 28”左对齐。

41.第 161 页,“小结: do while 语句”中的倒数第 4 行,在expression 为假或 0 之前(注意要用

斜体)

42.第 167 页,程序清单 6.20 的名字应该是 power.c 程序(即删除一个 w)

43.第 170页,“ 6.15 复习题”第 1题,后 5行中使用的是前一行生成的 quack 的值。

44.第 175 页,第 10 题的第 3 句话,用户输入的上限整数等于或小于下限整数为止。

45.第 178 页,中间部分的文字中, if 语句指示几岁安及,如果刚读取的值( t emperature )小于 0。

46.第185页,正文第2段,特别要注意的是,如果kwh大于360;中间代码之后的第1句,也就

是说,该程序由一个 if else 语句组成(即, if 和 else 之间要有一个空格)

47.第 187页,正文倒数第 2 段,倒数第 3行, 2 和72、3和48、4和36。

48.第 196页,代码中第 2行,达到单词的末尾。

49.第 212页,复习题的第 4题,下列各表达式的值是多少。

50.第215页,第2题的第2句话,每行打印8个“字符-ASCII码”组合;第7题的a项中,10. 00 美元 /

小时。

51.第222页,“ 8.4重定向和文件”的第2句话,输入设备(我们假设)是键盘;“ 8.4.1UNIX、Linux

和DOS重定向”的上面一段,重定向的一个主要问题是它与操作系统有关;苹果OS X运行在UNIX上,故可用Terminal应用程序来使用 UNIX命令行模式。

52.第 224 页,“3. 组合重定向”中的第 2、 4、 6 行中,应该是分别是 ./ echo_eof < mywords >

savewords、./ echo_eof > savewords < mywords 、./ echo_eof < mywords > mywords ….; 第 13 行应该是 ./ echo_eof

53.第 225页,“小结:如何重定向输入和输出”中的 4行代码中,均在前面添加 ./

54.第227页,正文中间,该程序还是会把f视为n (即这里将“被”删除)。

55.第 245 页,倒数第 6 行中,程序中 starbar ()和 main()的定义形式相同。

56.第247页,“9.1.3 函数参数”中第 2段最后 1行,因此,可以调用 show_n_char(‘ ‘, 12)

(即两个单引号之间是一个空格)

57.第260页,第19行,因此,n乘以n-1的阶乘就得到n的阶乘。

58.第 268 页,程序清单 9.13 上面的一行,在 interchange ()中使用 u 和 v。

59.第 272 页,倒数第 7 行,让 interchange()访问这两个变量。

60.第273页,“变量:名称、地址和值”中第 3段第 2行,使用变量名即可获得变量的数值。

61.第276页,“9.11 编程练习” 第6题,把最小值放入第一个变量;第10题,编写一个 to_base_n()

函数接受两个参数,且第2个参数在2~10范围内,然后以第 2个参数……。

62.第 285 页,第 11 行, float rain[5][12]; (即 float 和 rain 之间有一个空格);图 10.1 上面

的一句话,则使用 rain[ 1][ 2];顺便将括号以及括号中的文字删除。

63.第289页,图10.3 上面一段的第 2行,这意味着加1后的地址是下一个元素的地址(即,将“把” 删

除)

64.第 290页,第 1 行, dates + 2 == &date s[2]

65.第295页,第3行,至于C语言,ar[i]和*(ar+ i )这两个表达式都是等价的。

66.第305页,正文倒数第3段,第2行,指向一个内含 3个int类型元素的数组;pa指向一个内

含 3 个 int 类型元素的数组。

67.第 307 页,程序清单 10.17 上面的一段,这样的变量稍后能以同样的方式用作 junk 。

68.第 316 页,第 6 题,在 a、 b、c 这 3 项的后面添加“ 的地址”

69.第 322 页,上面第 2 行代码,I am a symbolic string constant. (即,将 an 换成 a,将

old-fashioned 删除)

70.第 326 页,“ 5. 字符串数组”上面的一句,如果打算修改字符串, 就不要用指针指向字符串字面量;

“5. 字符串数组” 下面的一句, 创建一个字符数组通常很方便(即将“如果” 删除, 将“会” 换成通常)。

71.第 332 页,最后一段的第 1 句, fgets ( ) 函数返回指向 char 的指针。

72.第 336 页,图 11.3 中“输入语句”栏,将这三个均修改为scanf( “%5s”,name);

73.第 348 页,正文倒数第 2 段,并编写一个函数把输入的内容都转换成大写

74.第 356页,正文最后一段的第 1句,程序清单 11.28 中的程序用 sprintf( ) 把 3个项

75.第 358 页,第一行,该函数返回指向 s 字符串首次出现的 c 字符的指针

76.第 366 页,正文第 3 段,如果字符串仅以整数开头, at oi () 函数也能处理

77.第370页,第5题的e项,如果用*pc--替换*-- pc,会打印什么

78.第371页,“11.13编程练习”第1题,从输入中获取n个字符(即将“下”删除)

79.第 372页,第 8题,如果第 2个字符串包含在第1个字符串中;第10题,该程序应该应用该函数读取

每个输入的字符串,并显示处理后的结果;第 11 题,编写一个程序

80.第 374 页,第 2 段,内含这些字符值的字符串字面量就是一个对象,由于字符串字面量中的每个字

符都能被……

81.第 382页,“12.1.7 外部链接的静态变量”第 3行,放在所有函数的外面 (即将其中一个“在” 删除)

82.第 383 页,正文最后一段第 2 行,外部变量 Hocus 对 main() 和 magic() 均不可见

83.第 391 页,正文第 1 段,在这个文件中不要求写出该函数定义。

84.第 394 页,正文最后一段,都要包含 diceroll. h 头文件。

85.第 396 页,正文第 2 段,对于读取骰子的点数

86.第 406 页,正文第 3 段第 1 行,但是 memmove() 没有这样的要求。

87.第 407 页,将正文第 2 段删除。

88.第 422 页,中间的代码中,第 1 行和第 11 行应该是 ./ addaword

89.第423页,第4行,如果未遇到 EOF则返回之前传给它的第一个参数地址。

90.第 425 页,正文第 2 段, ftell() 函数返回类型是 long ,它返回的是参数指向文件的当前位置距文

件开始处的字节数。

91.第 426 页,“ 13.5.4 fgetpos() 和 fsetpos() 函数”中的正文第 3 段,该值描述了文件中的当前位

置距文件开头的字节数;第 5段,来设置文件指针指向偏移值后指定的位置。

92.第 427 页,第 2 段第 2 行,文件中的缓冲大小数据块就被拷贝到缓冲区中;图 13.2 的图题是 unget

c() 函数。

93.第 444页,程序清单 14.2 中,建立 book 模板

94.第 450 页,倒数第 5 行,如果 barney 是一个 guy 类型的结构变量,可以这样写;倒数第 3 行,结

构变量名并不是结构的地址,因此要在结构变量名前面加上 &运算符。

95.第 451 页,“14.6.2 用指针访问成员”第 3段正文,换句话说,指向结构的指针后面的 ->运算符和

结构变量名后面的 . 运算符工作方式相同;下一段,但是 him->ine 是该指针所指向结构的一个成员(即,将字母 e 去掉)。

96.第453页,正文第2段,使得指针 money指向变量stan ;下一段的第2行,结构变量名不是其地址的别

名。

97.第 470 页的代码中,将 $ booksave 修改为 $ ./ booksave

98.第 471 页第 5 行, rewind () 函数确保文件指针位于文件开始处。

99.第 474 页,“总结:结构和联合运算符”中,该运算符与结构变量或联合变量名一起使用,指定

结构变量或联合变量的一个成员。如果name是一个结构变量的名称 ....... 下面标识了该结构变量的这个成员;该运算符和指向结构或联合的指针一起使用,标识结构变量或联合变量的一个成员。

100.第 530 页,正文第 2 行和第 4 行的代码,开头应该是 print f (即当前少了字母 f )

101.第 533 页,倒数第 8 行,将第 1 句中的 getc(stdin) 和 getchar() 互换。

102.第 548页,倒数第 4行,即在原函数名后加上 f 或 l 后缀。

103.第 553 页,第 1 行, qsort() 原型中的第 4 个参数确定了比较函数的形式

104.第 574 页,将第 5 行代码 current = head; 删除;将第 7 行代码移动到原来第 5 行的位置;105.第 579 页,正文第 4 段,而不是一个指向节点的指针或一个结构;最后一行,防止多次包含一个头文件。

106.第 596 页,程序清单 17.7 上面这一行,包括 EnQueue() 函数中用到的 CopyToNode() 函数。107.第 611 页,第 12 行,如果在树中找到指定项,该返回返回 true 。

108.第614页,第 2行, AddItem() 、 In Tree () 和 DeleteItem() 。

109.第 631 页,第 4 题,重写 mall.c (程序清单 17. 9)

110.第633页,“A.2第2章复习题答案”中,第4题,第6行,把:=改成=,赋值用=,

111.第 636页,第 10题,第 4行: count ?\n ;(即将 ry 删除);” A.4 第 4章复习题答案” ,第 1 题的第 2句话,下一条 scanf ()语句在输入缓冲区查找重量时

112.第 646 页,最后一行, sacnf( “ %s” , &score) ;

113.第 650 页,第 8 题的 d 项, [10] = 101, 101, 101, [3] = 101];

114.第 669 页,“ 1. 逻辑表达式”中的第 2 行,两个表达式中至少有一个为真时, expression 1 || expression 2 的值就为真

115.第 679页,表 B.5.1 中,如果 exprs 为 1(或真),宏什么也不做。

c++primerplus中文版第六版源代码

C++ primer plus 中文版第六版源代码 第二章到第四章,后续继续更新……… 第二章 1:#include void main() { using namespace std; int carrots; carrots=25; cout<<"I have "; cout<

2:#include int stonetolb(int); int main() { using namespace std; int stone; cout<<"Enter the weight in stone: "; cin>>stone; int pounds=stonetolb(stone); cout< void main()

{ using namespace std; int carrots; carrots=25; cout<<"How many carrots do you have?"<>carrots; cout<<"Here are two more."; carrots=carrots+2; cout<<"Now you have "< using namespace std; void main() { cout<<"Come up and C++ me some time.";

C Primer Plus第6版编程练习答案

Chapter 2 Programming Exercises PE 2--‐1 /* Programming Exercise 2-1 */ #include <> int main(void) { printf("Gustav Mahler\n"); printf("Gustav\nMahler\n"); printf("Gustav "); printf("Mahler\n"); return 0; } PE 2--‐3 /* Programming Exercise 2-3 */ #include <> int main(void) { int ageyears; /* age in years */ int agedays; /* age in days */ /* large ages may require the long type */ ageyears = 101; agedays = 365 * ageyears; printf("An age of %d years is %d days.\n", ageyears, agedays); return 0; } PE 2--‐4 /* Programming Exercise 2-4 */ #include <> void jolly(void); void deny(void); int main(void) { jolly(); jolly(); jolly(); deny(); return 0; } void jolly(void) { printf("For he's a jolly good fellow!\n"); } void deny(void) { printf("Which nobody can deny!\n"); } PE 2--‐6 /* Programming Exercise 2-6 */ #include <> int main(void) { int toes; toes = 10; printf("toes = %d\n", toes);

C Primer Plus (第六版)中文版 6.16编程练习

//******************6.15复习题************************** //*********** 6 ************************** #include int main(void) { int i, j; for (i = 0; i < 4; i++) //外层循环控制行内层循环控制列 { for (j = 0; j < 8; j++) { printf("$"); } printf("\n"); } return 0; } //******************6.16 编程练习 ************************** //****************** 一 ************************** #include #define SIZE 26 int main(void) { char array[SIZE]; int index = 0; array[0] = 'a'; printf("%c", array[0]); for (index = 1; index < SIZE; index++) { array[index] = 'a' + index; printf("%c", array[index]); } return 0; } //****************** 二 ************************** #include int main(void)

{ int i, j;//i控制行,j控制列计数作用 for (i = 0; i < 5; i++) { for (j = 0; j < =i ; j++) { printf("$"); } printf("\n"); } return 0; } //****************** 三 ************************** #include int main(void) { int i;//外层循环控制行 int j;//内层循环控制列 char ch = 'F'; for (i = 0; i < 6; i++) { for (j = 0; j <= i; j++) printf("%c", ch-j ); printf("\n"); } return 0; } //****************** 四 ************************** #include int main(void) { int i;//外层循环控制行 int j;//内层循环控制列 char ch = 'A'; for (i = 0; i < 6; i++) { for (j = 0; j <= i; j++) printf("%c", ch++ ); printf("\n");

CPrimerPlus第6版中文版勘误表

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

C Primer Plus第6版中文版勘误表教学提纲

C P r i m e r P l u s第6版中文版勘误表

注意:下面的勘误中,红色字体为修改后的文字,提请各位读者注意。 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行“上面最后一个例子(printf(“Gramps sez, \”a \\ is a backslash.\”\n”);)” 14.第56页,正文的第2行和第4行应该分别为printf(“me32= %“ “d” “\n”, me32); printf(“me32 = %d\n”, me32); 15.第61页,“无符号类型”的最后1句,相当于unsigned int(即两者之间添加一个空格)。 16.第62页,程序清单3.8中的第1行,将//* typesize.c -- 打印类型大小*/中的第一个斜杠删除。 17.第63页,“3.6参数和陷阱”第2行,printf(“Hello,pal.”)(即Hello,和pal.之间没有空格)。 18.第64页,程序清单3.10中的第1行,使用转义序列。 19.第75页,倒数第8行,何时使用圆括号取决于运算对象是类型还是特定量。 20.第82页,第11行,……格式字符串包含了两个待打印项number和pies对应的…… 21.第83页,表4.4中的“L”修饰符的含义介绍中,应该是示例:”%L f”、“%10.4L e” 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”。

c++ primer plus(第六版)第二至第六章课后编程练习全部答案

第二章:开始学习C++ //ex2.1--display your name and address #include int main(void) { using namespace std; cout<<"My name is liao chunguang and I live in hunan chenzhou.\n”;} //ex2.2--convert the furlong units to yard uints-把浪单位换位码单位 #include double fur2yd(double); int main() { using namespace std; cout<<"enter the distance measured by furlong units:"; double fur; cin>>fur; cout<<"convert the furlong to yard"< void mice(); void see(); using namespace std; int main() { mice(); mice(); see(); see(); return 0; }

cprimerplus第六版课后编程练习答案

第二章:开始学习C++ n”; } < intmain() { usingnamespacestd; cout<<"Entertheautomobilegasolineconsumptionfigurein\n" <<""; doubleUS_style; cin>>US_style; cout<<"ConvertstoEuropeanstyle(milespergallon):"<

snack[0].calory=200; snack[1].brand="B"; snack[1].weight=; snack[1].calory=400; snack[2].brand="C"; snack[2].weight=; snack[2].calory=500; for(inti=0;i<3;i++) { cout<<"brand:"< intmain() { usingnamespacestd; constintSize=3; intsuccess[Size]; cout<<"Enteryoursuccessofthethreetimes40metersrunning:\n"; cin>>success[0]>>success[1]>>success[2]; cout<<"success1:"< #include intmain() { usingnamespacestd; arrayad={0}; cout<<"Enteryoursuccessofthethreetimes40metersrunning:\n"; cin>>ad[0]>>ad[1]>>ad[2]; cout<<"success1:"<

C primer plus(第五版)课后编程练习答案

第一章概览 编程练习 1.您刚刚被MacroMuscle有限公司(Software for Hard Bodies)聘用。该公司要进入欧洲市场,需要一个将英寸转换为厘米(1英寸=2.54 cm)的程序。他们希望建立的该程序可提示用户输入英寸值。您的工作是定义程序目标并设计该程序(编程过程的第1步和第2步)。 1.将英寸值转化为厘米值 2.显示“输入英寸值”->得到该值->转换为厘米值->存储->告知用户已结束 第二章C语言概述 编程练习 1.编写一个程序,调用printf()函数在一行上输出您的名和姓,再调用一次printf()函数在两个单独的行上输出您的名和姓,然后调用一对printf()函数在一行上输出您的名和姓。输出应如下所示(当然里面要换成您的姓名): Anton Bruckner Anton Bruckner Anton Bruckner 第一个输出语句 第二个输出语句 仍然是第二个输出语句 第三个和第四个输出语句 #include int main(void) { printf("He Jin\n"); printf("He\n"); printf("Jin\n"); printf("He Jin\n"); return(0); }

2.编写一个程序输出您的姓名及地址。 #include int main(void) { printf("Name:He Jin\n"); printf("Address:CAUC\n"); return(0); } 3.编写一个程序,把您的年龄转换成天数并显示二者的值。不用考虑平年( fractional year)和闰年(leapyear)的问题。 #include int main(void) { int age=22; printf("Age:%d\n",age); printf("Day:%d\n",age*356); return(0); } 4.编写一个能够产生下面输出的程序: For he's a jolly good fellow! For he's a jolly good fellow! For he's a jolly good fellow! Which nobody can deny! 程序中除了main()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次:另一个用于把最后一行输出一次。 #include void printf1(void); void printf2(void); int main(void) { printf1(); printf1(); printf1(); printf2(); return(0);

cprimerplus第六版第五章习题答案

//1 /* #include using namespace std; int main() { cout << "请输入一个较小的整数:"; int min; cin >> min; cout << "请输入一个较大的整数:"; int max; cin >> max; int he=0; for (int i = min; i <= max; i++) he = i + he; cout << "这两个数之间所有数相加后的和为:" << he< #include using namespace std;

const int Arsize = 101; int main() { array aa ; aa[1] = aa[0] = 1; for (int i = 2; i < Arsize; i++) aa[i] = i*aa[i - 1]; for (int i = 0; i < Arsize; i++) cout << i << "!=" << aa[i] << endl; system("pause"); return 0; }*/ //3 /* #include using namespace std; int main() { cout << "请输入一个数字" << endl; int m=0, n; do { cin >> n; m = m + n;

《 C++ Primer Plus (第 6 版)中文版》 勘误表

================================================================= *** 《C++ Primer Plus (第6 版)中文版》勘误表*** 作者:yangyang.gnu 联系:yangyang.gnu@https://www.doczj.com/doc/2213148257.html, 时间:2013-9-24 ================================================================= P268 错误: free_throws * pt; 修正: free_throws * pt = new free_throws; P291 错误:在这两个模板函数中,recycle(blot *) 被认为是更具体的 修正:在这两个模板函数中,recycle(blot *) 被认为是更具体的 P337 错误: staticconst LIMIT = 25; 修正: staticconst unsigned LIMIT = 25; P386 错误:t4 = t1 + t2 + t3 先转换为t4 = t1.operator+(t2 + t3) 再转换为t4 = t1.operator+(t2.operator+(t3)) 修正:t4 = t1 + t2 + t3 先转换为t4 = t1.operator+(t2) + t3 再转换为t4 = t1.operator+(t2).operator+(t3) P387 错误:.*:成员指针运算符 修正:->:成员指针运算符 P428 错误:String boston("Boston"); 修正:StringBadboston("Boston"); P431 错误:然后程序使用重载运算符>>列出了这些对象 修正:然后程序使用重载运算符<<列出了这些对象 P439 错误:最简单的办法是使用标准的trcmp()函数 修正:最简单的办法是使用标准的strcmp()函数 P440 错误:means.operator[][0] = 'r'; 修正:means.operator[](0) = 'r'; P439 错误:因为内置的>运算符返回的是一个布尔值 修正:因为内置的<运算符返回的是一个布尔值 P478 错误:Cow(const Cow c& ); 修正:Cow(const Cow & c); P478 错误:提供一个Stringlow()成员函数 修正:提供一个stringlow()成员函数

C primer plus(第6版)中文版编程练习答案第15章

1、 //tv.h #ifndef TV_H_ #define TV_H_ #include using namespace std; class Tv { friend class Remote; public: enum { Off, On }; enum { MinVal, MaxVal = 20 }; enum { Antenna, Cable }; enum { TV, DVD }; enum { USUAL, EXCHANGE }; Tv(int s = Off, int mc = 125) :state(s), volume(5), maxchannel(mc), channel(2), mode(Cable), input(TV){} ~Tv(){} void onoff(){ state = (state == On) ? Off : On; } bool ison()const{ return state == On; } bool volup(); bool voldown(); void chanup(); void chandown(); void set_mode(){ mode = (mode == Antenna) ? Cable : Antenna; } void set_input(){ input = (input == TV) ? DVD : TV; } void settings()const; void set_rmode(Remote &r); private: int state; int volume; int maxchannel; int channel; int mode; int input; }; class Remote { private:

C PRIMER PLUS 第六章正确答案

Chapter 6 PE 6-1 #include int main (void) { char az[26]; int count = 0; for (az[count] = 'a';az[count] < 'z';az[count] = az[count-1] + 1) count++; for (count = 0; count <= 25; count++) printf("%c ",az[count]); printf("\n"); return 0; }PE 6-2 #include int main (void) { int i,j; for(i=1;i<=5;i++) { for(j=1;j<=i;j++) printf("$"); printf("\n"); } return 0; } }PE 6-3 #include int main (void) { char i,j; for(i='F'; i>='A'; i--) { for(j=’F’; j>=i; j--) printf("%c",j); printf("\n"); } return 0; }

PE 6-4 #include int main (void) { char i,j,z,k,g; for(scanf("%c",&z),i='a'; i <= z; i++) { for(g = i; z - g > 0; g++) printf(" "); for(j= 'a'; j <= i; j++) printf("%c",j); for(k = i; k > 'a'; printf("%c",k)) k--; printf("\n"); } return 0; } PE 6-5 #include int main (void) { int lower, upper, index; int square, cube; printf("Enter starting integer: "); scanf("%d", &lower); printf("Enter ending integer: "); scanf("%d", &upper); printf("%5s %10s %14s\n", "num", "square", "cube"); for(;lower <= upper;lower++) { square = lower*lower; cube = square*lower; printf("%5d%10d%15d\n",lower,square,cube); } return 0; } PE 6-6 #include #include

《C Primer Plus》第六版 第十一章编程练习答案

1 #include #include #define SIZE 100 void input(char *, int ); int main(void) { char arr[SIZE]; int n; puts("input the number of n:"); scanf("%d", &n); getchar(); puts("input your string: "); input(arr, n); printf("%s\n", arr); getchar(); return 0; } void input(char *Arr, int len) { int i; for (i=0; i

#include #define SIZE 100 void input(char *, int ); int main(void) { char arr[SIZE]; int n; puts("input the number of n:"); scanf("%d", &n); getchar(); puts("input your string: "); input(arr, n); puts(arr); getchar(); return 0; } void input(char *Arr, int len) { int i; for (i=0; i #include #define SIZE 100

《C Primer Plus》第六版 第十二章编程练习答案

1. #include int critic(void ); int main(int argc, char *argv[]) { int num=56; int units; printf("How many pounds to a firkin of butter?\n"); scanf("%d",&units); while (units!=num) { units=critic(); } getchar(); return 0; } int critic() { int n; printf("No luck, my friend. Try again.\n"); scanf("%d", &n); return n; } 2. //***********pe12-2a.h*******// #include void set_mode(int mode); void get_info(); void show_info(); //**********pe12-2a.c*************// #include #include"pe12-2a.h"

int mode; float distance, fuel; void set_mode(int m) { if (m !=0 &&m !=1) { printf("Invalid mode specified. Mode 1(US) used.\n"); m=1; } mode=m; } void get_info() { if (0==mode) { printf("Enter distance traveled in kilometers: "); scanf("%f", &distance); printf("Enter fuel consumed in liters: "); scanf("%f", &fuel); } else { printf("Enter distance traveled in miles: "); scanf("%f", &distance); printf("Enter fuel consumed in gallons: "); scanf("%f", &fuel); } } void show_info() { float units; if (0==mode) { units=100* (fuel/distance); printf("Fuel consumed in liters: %.1f per 100 km\n", units); } else { units=distance/fuel; printf("Fuel consumed is %.1f miles per gallon\n", units); } }

C++_Primer_Plus(第六版)编程习题解答

Chapter 2 // pe2-2.cpp #include int main(void) { using namespace std; cout << "Enter a distance in furlongs: "; double furlongs; cin >> furlongs; double feet; feet = 220 * furlongs; cout << furlongs << " furlongs = " << feet << " feet\n"; return 0; } // pe2-3.cpp #include using namespace std; void mice(); void run(); int main() { mice(); mice(); run(); run(); return 0; } void mice() { cout << "Three blind mice\n"; } void run() { cout << "See how they run\n"; } // pe2-4.cpp #include

double C_to_F(double); int main() { using namespace std; cout << "Enter a temperature in Celsius: "; double C; cin >> C; double F; F = C_to_F(C); cout << C << " degrees Celsius = " << F << " degrees Fahrenheit\n"; return 0; } double C_to_F(double temp) { return 1.8 * temp + 32.0; } Chapter 3 // pe3-1.cpp #include const int Inch_Per_Foot = 12; int main(void) { using namespace std; // Note: some environments don't support the backspace character cout << "Please enter your height in inches: ___/b/b/b "; int ht_inch; cin >> ht_inch; int ht_feet = ht_inch / Inch_Per_Foot; int rm_inch = ht_inch % Inch_Per_Foot; cout << "Your height is " << ht_feet << " feet, "; cout << rm_inch << " inch(es).\n"; return 0; } // pe3-3.cpp #include const double MINS_PER_DEG = 60.0; const double SECS_PER_MIN = 60.0; int main() { using namespace std; int degrees; int minutes;

C++ primer plus 第六版 勘误表

P268 错误: free_throws * pt; 修正: free_throws * pt = new free_throws; P291 错误:在这两个模板函数中,recycle(blot *) 被认为是更具体的 修正:在这两个模板函数中,recycle(blot *) 被认为是更具体的 P337 错误: static const LIMIT = 25; 修正: static const unsigned LIMIT = 25; P386 错误:t4 = t1 + t2 + t3 先转为 t4 = t1.operator+(t2 + t3) 再转换为 t4 = t1.operator+(t2.operator+(t3)) 修正:t4 = t1 + t2 + t3 先转为 t4 = t1.operator+(t2) + t3 再转换为 t4 = t1.operator+(t2).operator+(t3) P387 错误:.*:成员指针运算符 修正:->:成员指针运算符 P428 错误:String boston("Boston"); 修正:StringBad boston("Boston"); P431 错误:然后程序使用重载运算符>>列出了这些对象 修正:然后程序使用重载运算符<<列出了这些对象 P439 错误:最简单的办法是使用标准的trcmp()函数 修正:最简单的办法是使用标准的strcmp()函数 P440 错误:means.operator[][0] = 'r'; 修正:means.operator[](0) = 'r'; P439 错误:因为内置的>运算符返回的是一个布尔值 修正:因为内置的<运算符返回的是一个布尔值 P478 错误:Cow(const Cow c& ); 修正:Cow(const Cow & c); P478 错误:提供一个Stringlow()成员函数 修正:提供一个stringlow()成员函数 P478 错误:提供String()成员函数 修正:提供stringup()成员函数P505 错误: 这意味着,即使基类不需要显式析构函数提供服务,也不应该依赖于默认构造函数 修正: 这意味着,即使基类不需要显式析构函数提供服务,也不应该依赖于默认构造析构 P508 错误:半长轴 修正:长半轴 P510 错误:void Move(int nx, ny) = 0 修正:virtual void Move(int nx, ny) = 0 P525 错误: Star::Star double() {...} Star::Star const char * () {...} 修正: Star::operator double() {...} Star::operator const char * () {...} P529 错误:派生类的有元函数 修正:派生类的友元函数 P532 错误:Cd(char * s1, char * s2, int n, double x); 修正:Cd(const char * s1, const char * s2, int n, double x); P532 错误:派生出一个Classic类,并添加一组char成员 修正:派生出一个Classic类,并添加一个char数组成员P532 错误:copy.Report() 修正:copy.Report(); P535 错误:所有元素度被初始化为指定值的数组 修正:所有元素都被初始化为指定值的数组 P544 错误:例如,在类声明中提出可以使用average()函数。和包含一样,要实现这样的目的,可以在公有Student::average()函数中使用私有Student::Average()函数。 修正:例如,对于类Student需要提供的Average()函数,与包含版本一样,私有继承版本同样可以借用valarray的size()和sum()方法来实现。 P549 错误:和私有私有继承一样 修正:和私有继承一样

相关主题
文本预览
相关文档 最新文档