在线客服
C Primer Plus中文版(第五版)图书
人气:102

C Primer Plus中文版(第五版)

作为核心计算机技术成熟,完整的参考书籍,C Primer Plus系列历经十数年不衰,因为它能够满足那些渴望通过理解相关技术继续深造的程序员和开发者的需要。

内容简介

《C Primer Plus(第5版)(中文版)》共17章。第1、2章学习C语言编程所需的预备知识。第3到15章介绍了C语言的相关知识,包括数据类型、格式化输入输出、运算符、表达式、流程控制语句、函数、数组和指针、字符串操作、内存管理、位操作等等,知识内容都针对C99标准;另外,第10章强化了对指针的讨论,第12章引入了动态内存分配的概念,这些内容更加适合读者的需求。第16章和第17章讨论了C预处理器和C库函数、高级数据表示(数据结构)方面的内容。附录给出了各章后面复习题、编程练习的答案和丰富的C编程参考资料。

编辑推荐

作为核心计算机技术成熟,完整的参考书籍,C Primer Plus系列历经十数年不衰,因为它能够满足那些渴望通过理解相关技术继续深造的程序员和开发者的需要。

通过学习《C Primer Plus(第五版)中文版》,你将奠定坚实的C编程基础。与以前的版本一样,作者的目标仍旧是为读者提供一本入门性、条理清晰、见解深刻的C语言教程。作者把编程概念和C语言的细节很好地融合在一起,通过大量短小精焊的范例演示一两个概念,为读者提供了很好的练习机会,有助于读者迅速掌握所讲的知识。

每章都提供了复习题和编程练习,进一步强调了重要的信息,有助于读者消化那些难于理解的概念。

《C Primer Plus(第五版)中文版》不仅适用于希望系统学习C语言编程的学生,也适用于那些精通其他高级语言编程,但渴望更好地掌握C语言这门核心语言的开发人员。

作者简介

Stephen Prata,在加利福尼亚州的Kentfield的Marin学院教授天文学、物理学和程序设计课程。他在加州工业学院获得学士学位,从加州大学伯克利分校获得博士学位。他接触计算机,始于对星河的计算机建模。Stephen已经编写或与他人合作编写了十多本书。其中包括C Primer Plus和Unix Prinmer Plus.

目录

目 录

第1章 概览 1

1.1 C语言的起源 1

1.2 使用C语言的理由 1

1.2.1 设计特性 1

1.2.2 高效性 2

1.2.3 可移植性 2

1.2.4 强大的功能和灵活性 2

1.2.5 面向编程人员 3

1.2.6 缺点 3

1.3 C语言的发展方向 3

1.4 计算机工作的基本原理 4

1.5 高级计算机语言和编译器 4

1.6 使用C语言的7个步骤 5

1.6.1 第1步:定义程序目标 5

1.6.2 第2步:设计程序 6

1.6.3 第3步:编写代码 6

1.6.4 第4步:编译 6

1.6.5 第5步:运行程序 6

1.6.6 第6步:测试和调试程序 7

1.6.7 第7步:维护和修改程序 7

1.6.8 总结 7

1.7 编程机制 7

1.7.1 目标代码文件、可执行文件和库 8

1.7.2 UNIX系统 9

1.7.3 Linux系统 10

1.7.4 集成开发环境(Windows系统下) 10

1.7.5 IBM PC的DOS编译器 11

1.7.6 Macintosh上的C 11

1.8 语言标准 11

1.8.1 第1个ANSI/ISO C标准 12

1.8.2 C99标准 12

1.9 本书的组织结构 12

1.10 本书体例 13

1.10.1 字体 13

1.10.2 屏幕输出 13

1.11 总结 14

1.12 复习题 14

1.13 编程练习 14

第2章 C语言概述 15

2.1 C语言的一个简单实例 15

2.2 实例说明 16

2.2.1 及时遍 快速简介 16

2.2.2 第二遍 程序细节 17

2.3 一个简单程序的结构 22

2.4 使程序可读的技巧 23

2.5 更进一步 24

2.5.1 说明 24

2.5.2 多个声明 24

2.5.3 乘法 24

2.5.4 输出多个值 25

2.6 多个函数 25

2.7 调试 26

2.7.1 语法错误 26

2.7.2 语义错误 27

2.7.3 程序状态 28

2.8 关键字和保留标识符 28

2.9 关键概念 29

2.10 总结 29

2.11 复习题 30

2.12 编程练习 31

第3章 数据和C 32

3.1 示例程序 32

3.2 变量与常量数据 34

3.3 数据:数据类型关键字 34

3.3.1 整数类型与浮点数类型 35

3.3.2 整数 35

3.3.3 浮点数 36

3.4 C数据类型 36

3.4.1 int类型 36

3.4.2 其他整数类型 39

3.4.3 使用字符:char类型 42

3.4.4 _Bool类型 46

3.4.5 可移植的类型:inttypes.h 46

3.4.6 float、double和long double类型 47

3.4.7 复数和虚数类型 50

3.4.8 其他类型 50

3.4.9 类型大小 52

3.5 使用数据类型 53

3.6 参数和易犯的错误 54

3.7 另一个例子:转义序列 55

3.7.1 过程分析 55

3.7.2 刷新输出 56

3.8 关键概念 56

3.9 总结 56

3.10 复习题 57

3.11 编程练习 58

第4章 字符串和格式化输入/输出 60

4.1 前导程序 60

4.2 字符串简介 61

4.2.1 char数组类型和空字符 61

4.2.2 使用字符串 62

4.2.3 strlen()函数 63

4.3 常量和C预处理器 64

4.3.1 const修饰符 66

4.3.2 系统定义的明显常量 66

4.4 研究和利用printf()和scanf() 67

4.4.1 printf()函数 68

4.4.2 使用printf() 68

4.4.3 printf()的转换说明修饰符 70

4.4.4 转换说明的意义 73

4.4.5 使用scanf() 78

4.4.6 printf()和scanf()的修饰符 81

4.4.7 printf的用法提示 82

4.5 关键概念 83

4.6 总结 83

4.7 复习题 84

4.8 编程练习 85

第5章 运算符、表达式和语句 87

5.1 循环简介 87

5.2 基本运算符 89

5.2.1 赋值运算符:= 89

5.2.2 加法运算符: 90

5.2.3 减法运算符:- 90

5.2.4 符号运算符:-和 90

5.2.5 乘法运算符: 91

5.2.6 除法运算符:/ 92

5.2.7 运算符的优先级 93

5.2.8 优先级和求值顺序 94

5.3 其他运算符 95

5.3.1 sizeof运算符和size_t类型 95

5.3.2 取模运算符:% 96

5.3.3 增量和减量运算符: 和-- 97

5.3.4 减量:-- 100

5.3.5 优先级 100

5.3.6 不要太聪明 101

5.4 表达式和语句 102

5.4.1 表达式 102

5.4.2 语句 102

5.4.3 复合语句(代码块) 104

5.5 类型转换 105

5.6 带有参数的函数 107

5.7 一个示例程序 109

5.8 关键概念 110

5.9 总结 110

5.10 复习题 111

5.11 编程练习 113

第6章 C控制语句:循环 115

6.1 再探while循环 115

6.1.1 程序注解 116

6.1.2 C风格的读循环 117

6.2 while语句 118

6.2.1 终止while循环 118

6.2.2 循环何时终止 118

6.2.3 while:入口条件循环 119

6.2.4 语法要点 119

6.3 比较大小:使用关系运算符和表达式 120

6.3.1 什么是真 122

6.3.2 还有什么是真 122

6.3.3 真值的问题 123

6.3.4 新的_Bool类型 124

6.3.5 关系运算符的优先级 125

6.4 不确定循环与计数循环 127

6.5 for循环 128

6.6 更多赋值运算符: =、-=、=、/=和%= 132

6.7 逗号运算符 133

6.8 退出条件循环:do while 136

6.9 选择哪种循环 138

6.10 嵌套循环 138

6.10.1 程序讨论 139

6.10.2 嵌套变化 139

6.11 数组 140

6.12 使用函数返回值的循环例子 142

6.12.1 程序讨论 144

6.12.2 使用具有返回值的函数 144

6.13 关键概念 145

6.14 总结 145

6.15 复习题 146

6.16 编程练习 149

第7章 C控制语句:分支和跳转 152

7.1 if语句 152

7.2 在if语句中添加else关键字 154

7.2.1 另一个例子:介绍getchar()和putchar() 155

7.2.2 ctype.h系列字符函数 157

7.2.3 多重选择else if 158

7.2.4 把else与if配对 160

7.2.5 多层嵌套的if 161

7.3 获得逻辑性 164

7.3.1 改变拼写法:iso646.h头文件 166

7.3.2 优先级 166

7.3.3 求值的顺序 166

7.3.4 范围 167

7.4 一个统计字数的程序 168

7.5 条件运算符?: 170

7.6 循环辅助手段:continue和break 172

7.6.1 continue语句 172

7.6.2 break语句 174

7.7 多重选择:switch和break 175

7.7.1 使用switch语句 177

7.7.2 只读取一行的首字符 178

7.7.3 多重标签 178

7.7.4 switch和if else 180

7.8 goto语句 180

7.9 关键概念 183

7.10 总结 183

7.11 复习题 184

7.12 编程练习 186

第8章 字符输入/输出和输入确认 188

8.1 单字符I/O:getchar()和putchar() 188

8.2 缓冲区 189

8.3 终止键盘输入 190

8.3.1 文件、流和键盘输入 190

8.3.2 文件结尾 191

8.4 重定向和文件 192

8.5 创建一个更友好的用户界面 196

8.5.1 使用缓冲输入 196

8.5.2 混合输入数字和字符 198

8.6 输入确认 200

8.6.1 分析程序 203

8.6.2 输入流和数值 204

8.7 菜单浏览 204

8.7.1 任务 205

8.7.2 使执行更顺利 205

8.7.3 混合字符和数值输入 207

8.8 关键概念 209

8.9 总结 209

8.10 复习题 210

8.11 编程练习 210

第9章 函数 212

9.1 函数概述 212

9.1.1 编写和使用一个简单的函数 213

9.1.2 程序分析 214

9.1.3 函数参数 215

9.1.4 定义带有参数的函数:形式参量 216

9.1.5 带参数函数的原型声明 217

9.1.6 调用带有参数的函数:实际参数 217

9.1.7 黑盒子观点 218

9.1.8 使用return从函数中返回一个值 218

9.1.9 函数类型 221

9.2 ANSI C的函数原型 221

9.2.1 产生的问题 222

9.2.2 ANSI的解决方案 222

9.2.3 无参数和不确定参数 224

9.2.4 函数原型的优点 224

9.3 递归 224

9.3.1 递归的使用 224

9.3.2 递归的基本原理 226

9.3.3 尾递归 226

9.3.4 递归和反向计算 228

9.3.5 递归的优缺点 229

9.4 多源代码文件程序的编译 230

9.4.1 UNIX 230

9.4.2 Linux 230

9.4.3 DOS命令行编译器 230

9.4.4 Windows和Macintosh编译器 230

9.4.5 头文件的使用 231

9.5 地址运算符:& 233

9.6 改变调用函数中的变量 235

9.7 指针简介 236

9.7.1 间接运算符: 237

9.7.2 指针声明 237

9.7.3 使用指针在函数间通信 238

9.8 关键概念 241

9.9 总结 242

9.10 复习题 242

9.11 编程练习 243

第10章 数组和指针 244

10.1 数组 244

10.1.1 初始化 244

10.1.2 指定初始化项目(C99) 248

10.1.3 为数组赋值 249

10.1.4 数组边界 249

10.1.5 指定数组大小 250

10.2 多维数组 251

10.2.1 初始化二维数组 253

10.2.2 更多维数的数组 254

10.3 指针和数组 254

10.4 函数、数组和指针 256

10.4.1 使用指针参数 258

10.4.2 评论:指针和数组 260

10.5 指针操作 260

10.6 保护数组内容 263

10.6.1 对形式参量使用const 264

10.6.2 有关const的其他内容 265

10.7 指针和多维数组 267

10.7.1 指向多维数组的指针 268

10.7.2 指针兼容性 269

10.7.3 函数和多维数组 270

10.8 变长数组(VLA) 273

10.9 复合文字 276

10.10 关键概念 278

10.11 总结 278

10.12 复习题 279

10.13 编程练习 281

第11章 字符串和字符串函数 282

11.1 字符串表示和字符串I/O 282

11.1.1 在程序中定义字符串 283

11.1.2 指针和字符串 288

11.2 字符串输入 289

11.2.1 创建存储空间 289

11.2.2 gets()函数 289

11.2.3 fgets()函数 291

11.2.4 scanf()函数 292

11.3 字符串输出 293

11.3.1 puts()函数 293

11.3.2 fputs()函数 294

11.3.3 printf()函数 294

11.4 自定义字符串输入/输出函数 295

11.5 字符串函数 297

11.5.1 strlen()函数 297

11.5.2 strcat()函数 298

11.5.3 strncat()函数 299

11.5.4 strcmp()函数 299

11.5.5 strncmp()变种 303

11.5.6 strcpy()和strncpy()函数 303

11.5.7 sprintf()函数 307

11.5.8 其他字符串函数 307

11.6 字符串例子:字符串排序 309

11.6.1 排序指针而不是字符串 310

11.6.2 选择排序算法 310

11.7 ctype.h字符函数和字符串 311

11.8 命令行参数 312

11.8.1 集成环境下的命令行参数 314

11.8.2 Macintosh的命令行参数 314

11.9 把字符串转换为数字 314

11.10 关键概念 316

11.11 总结 316

11.12 复习题 317

11.13 编程练习 319

第12章 存储类、链接和内存管理 321

12.1 存储类 321

12.1.1 作用域 321

12.1.2 链接 323

12.1.3 存储时期 323

12.1.4 自动变量 324

12.1.5 寄存器变量 326

12.1.6 具有代码块作用域的静态变量 327

12.1.7 具有外部链接的静态变量 328

12.1.8 具有内部链接的静态变量 331

12.1.9 多文件 332

12.2 存储类说明符 332

12.3 存储类和函数 334

12.4 随机数函数和静态变量 335

12.5 掷骰子 337

12.6 分配内存:malloc()和free() 340

12.6.1 free()的重要性 343

12.6.2 函数calloc() 343

12.6.3 动态内存分配与变长数组 344

12.6.4 存储类与动态内存分配 344

12.7 ANSI C的类型限定词 345

12.7.1 类型限定词const 345

12.7.2 类型限定词volatile 347

12.7.3 类型限定词restrict 347

12.7.4 旧关键字的新位置 348

12.8 关键概念 348

12.9 总结 349

12.10 复习题 350

12.11 编程练习 351

第13章 文件输入/输出 354

13.1 和文件进行通信 354

13.1.1 文件是什么 354

13.1.2 文本视图和二进制视图 355

13.1.3 I/O级别 355

13.1.4 标准文件 355

13.2 标准I/O 356

13.2.1 检查命令行参数 357

13.2.2 fopen()函数 357

13.2.3 getc()函数和putc()函数 358

13.2.4 文件结尾 358

13.2.5 fclose()函数 359

13.2.6 标准文件指针 359

13.3 一个简单的文件压缩程序 360

13.4 文件I/O:fprintf()、fscanf()、fgets()和fputs()函数 361

13.4.1 fprintf()和fscanf()函数 361

13.4.2 fgets()和fputs()函数 362

13.4.3 注释:gets()函数和fgets()函数 364

13.5 随机存取:fseek()和ftell()函数 364

13.5.1 fseek()和ftell()如何工作 365

13.5.2 二进制模式和文本模式 366

13.5.3 可移植性 366

13.5.4 fgetpos()和fsetpos()函数 367

13.6 标准I/O内幕 367

13.7 其他标准I/O函数 368

13.7.1 int ungetc(int c,FILE fp)函数 368

13.7.2 int fflush()函数 368

13.7.3 int setvbuf()函数 368

13.7.4 二进制I/O:fread()和fwrite()函数 369

13.7.5 size_t fwrite()函数 369

13.7.6 size_t fread()函数 370

13.7.7 int feof(FILE fp)和int ferror(FILE fp)函数 370

13.7.8 一个fread()和fwrite()的例子 370

13.7.9 使用二进制I/O进行随机存取 372

13.8 关键概念 374

13.9 总结 374

13.10 复习题 375

13.11 编程练习 376

第14章 结构和其他数据形式 378

14.1 示例问题:创建图书目录 378

14.2 建立结构声明 379

14.3 定义结构变量 380

14.3.1 初始化结构 381

14.3.2 访问结构成员 381

14.3.3 结构的指定初始化项目 382

14.4 结构数组 382

14.4.1 声明结构数组 384

14.4.2 标识结构数组的成员 384

14.4.3 程序讨论 385

14.5 嵌套结构 385

14.6 指向结构的指针 387

14.6.1 声明和初始化结构指针 388

14.6.2 使用指针访问成

网友评论(不代表本站观点)

来自***(匿**的评论:

经典确实是经典,对于一些可能注意不到的问题,直接点出来了!

2017-02-28 14:12:43
来自阿布霍**的评论:

K&R 和 C Primer Plus都是经典的C语言教程,适合C语言初学或巩固,C Primer Plus很详细,实例也多,适合自学

2014-07-21 21:08:19
来自无昵称**的评论:

很长时间很有接触C语言了,一些概念和编程的习惯又都生疏。可是看完C Primer Plus后,很多知识都非常从容的接受,并没觉得很难。是一本好书,值得推荐!

2012-03-12 13:58:09
来自无昵称**的评论:

看了将近一半了。因为已经学过,所以很容易看懂。语言幽默风趣,挺不错的。讲的东西也很具体,做起后面的练习很顺手,基本上没怎么错过。不过这本书如果完全是没接触过的话,这本书的排版可能会让新人摸不着头脑。总之还是推荐这本书的,很不错~

2013-07-14 15:47:34
来自无昵称**的评论:

看过几个版本的C语言教材,这本书写的是最好的,搭配《C和指针》,《C陷阱》,《C专家编程》,可以让C的水平到一个新的层次。

2011-12-18 10:37:05
来自无昵称**的评论:

很不错的一本关于C语言从入门到精通的一本书,书中解释得很详细,适合C语言爱好者

2016-07-19 23:57:46
来自无昵称**的评论:

堪称是学习C语言的圣经了吧 书讲的很详细 如果之前看过谭浩强的C语言书 那么这本书将是加深和提高C的必备良品。书的讲的很细,但是却不枯燥,琐碎细致的知识被作者娓娓道来,很不错。

2012-03-06 20:19:12
来自天烬云**的评论:

做为c语言初学的推荐用书之一 其经典程度是毋庸置疑的 这本书可是实实在在的砖书 能学好这本书 那就证明你的c基础相当可以了 全面讲解了c 这可是一本不可多得的好书 不过我觉得看书的同时 应该配上上机操作 这样可以加深记忆

2013-11-13 09:52:26
来自无昵称**的评论:

这本书很适合自学,上学年我已经在学校修过这个课程了,感觉不太理解,能编写的只是简单几个程序。上网经人推荐这本书。看了电子档觉得非常不错。不像中国人编写的书那样———写给会的人看。这书会的人也可以看,作为查询的时候看也行。非常不错

2014-06-16 14:13:05
来自无昵称**的评论:

这本书,真的是很经典啊,见解独特...而且很全面..如果想深入学习C语言,光有谭浩强的一本C语言程序设计是不够的,这本也应该买,,谭浩强那本是纯正的入门书籍,这本的话,入门之后继续学习倒是一本无比的经典啊...

2011-08-17 17:26:36
来自无昵称**的评论:

老外写的经典C语言书,真的不错!值得推荐,刚好适合我等没多少编程基础的人学习,建议最好结合英文版,估计中文版多少会有印刷错误。

2016-11-11 08:24:09
来自microca**的评论:

之前看的是谭浩强的C,里面各种错误各种落后的语法。后来同学推荐读这本Primer Plus,发现这才是真正的好书。里面不仅有C99的相关规范,而且讲解详细,是学习C的不可多得的教材。值得推荐。

2013-03-06 15:51:43
来自无昵称**的评论:

个人感觉,比谭老写的要生动些,给人一种带入感!感觉迫不及待要去学习,生动有趣,不错的C入门书籍。

2012-07-11 20:35:53
来自无昵称**的评论:

很优秀的一本书,详细的讲解了C语言的方方面面,内容详实,个人感觉比谭浩强老师的书好些,不过都是很经典的C语言毕看书籍!

2016-06-19 13:47:36
来自伊吕波**的评论:

语言风趣 对c语言的介绍也很丰富 因为是第五版的原因 比起第六版稍有点旧 但是对于c语言中的各种问题都有很好的解释 并且安排的内容也很有层次感 读起来不会觉得单一乏味 而且它还是头一本可以让我读着笑出来的教材书

2014-03-09 09:15:03
来自无昵称**的评论:

如果你刚接触,建议你看这本C Prime Plus,书中讲解的非常的清晰,代码中的错误几乎没有,但是唯一的缺憾就是书中有些描述出现了低级错误,在字符串那一章有好几处,由于编写人员的疏忽,写错了一些东西,但是总体而言,非常适合初学者。

2012-03-07 16:42:18
来自无昵称**的评论:

自从接触编程以来,在寻求一本比较全面,而且比较能深入浅出的讲解的书,最终入手了这本C Primer Plus,刚入手,正在仔细研读,希望对编程能有一个更加深入的了解和运用。

2015-01-14 16:26:04
来自无昵称**的评论:

无论是初学者还是资深的C语言程序员,无疑这本书都是一本非常有价值的书,本书涵盖的例子很好很经典,知识点讲的也很透彻,是每一个要从事C语言工作或是深入学习C语言的计算机人员不可或缺的一本好书!

2012-07-07 10:33:18
来自**(匿名**的评论:

想了解一下这种神奇的语言,都说这是这个领域的经典书籍,买来翻一翻。只是因为是文科生,课程是VB,但是一点也没学。想看一看本人知识体系之外的新内容。当当优惠很给力,和室友一起凑单买了不少书。

2017-04-27 16:44:40
来自无昵称**的评论:

很有帮助。c primer plus虽然是一部很经典的书籍,但是他所讲述的内容是适用于大部分C的理论。基本上不会针对某一种编译器该怎么写,有一个比较清晰的代码。这种基础理论对于新手来说,可能切入的太快,太直接。令人觉得云山雾罩。

2015-01-03 18:58:31
来自zhoujiu**的评论:

C语言只是我的一种业余爱好,平时没事时,随手翻翻,因此看过不少这方面的书,不为别的,只为保持一种思维的头脑,买这本书也是这样。书的内容丰富,除了了解C语言规范以外,有许多细节和技巧方面的描述,更有编程思想方面的讲解,看了很受启发。

2012-04-14 16:23:49
来自无昵称**的评论:

  作为核心计算机技术成熟,完整的参考书籍,Primer Plus系列历经十数年不衰,因为它能够满足那些渴望通过全面理解相关技术继续深造的程序员和开发者的需要。通过学习《C Primer Plus(第五版)中文版》,你将奠定坚实的C编程基础。

2012-04-12 10:39:01
来自无昵称**的评论:

《C Primer Plus(第五版)中文版》分17章全面讲述了C语言编程的相关概念和知识,作者把编程概念和C语言的细节很好地融合在一起。每章都提供了复习题和编程练习。不仅适用于系统学习C语言编程的学生,也适用于希望更好掌握C语言的程序开发人员。通过学习本书,可以奠定坚实的C编程基础

2011-12-10 18:01:23
来自匿名用**的评论:

经典。。大一c语言入门教材,十分详细,详细到你想睡觉!但是不得不说对于初学者来说这本书十分友好。多亏了这本书我的数据结构课设才能得到比我军训分数(90+也是我在数据结构课设出分之前唯一一个90+)更高的分数。

2017-07-19 14:37:06
来自无昵称**的评论:

我刚看到字符串,作为一个自学者,感觉还是挺浅显易懂的,而且我还对照了另外一本C的内容,这本更加透彻,并且更加平易近人。但是美中不足的是,可能不是正版,纸张很薄,也没有包装。有点失望?。其他错别字什么的还没有发现到。

2016-01-07 22:07:05

免责声明

更多相关图书