《C 语言程序设计》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:苏小红,王宇颖,孙志岗等编著;蒋宗礼主审
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2011
  • ISBN:9787040319095;9787894697158
  • 页数:439 页
图书介绍:

第1章 为什么要学C语言 1

1.1 引言 1

1.2 游戏、黑客和C语言 1

1.3 C语言,不老的传说 4

1.4 C语言的爱与恨 5

1.5 C语言教给我们的事 6

1.6 什么是“编程” 7

1.7 本章小结 8

习题1 8

第2章 C数据类型 9

2.1 常量与变量 9

2.1.1 常量 9

2.1.2 变量 11

2.2 简单的屏幕输出 13

2.3 数据类型 14

2.4 如何计算变量或数据类型所占内存空间的大小 16

2.5 变量的赋值和赋值运算符 18

2.6 本章扩充内容 19

2.7 本章知识点小结 22

2.8 本章常见错误小结 23

习题2 23

本章实验题 24

第3章 简单的算术运算和表达式 25

3.1 C运算符和表达式 25

3.1.1 算术运算符和表达式 25

3.1.2 复合的赋值运算符 28

3.1.3 增1和减1运算符 29

3.2 宏常量与宏替换 31

3.3 const常量 34

3.4 自动类型转换与强制类型转换运算符 35

3.5 常用的标准数学函数 38

3.6 本章知识点小结 40

3.7 本章常见错误小结 41

习题3 42

本章实验题 43

第4章 键盘输入和屏幕输出 44

4.1 单个字符的输入/输出 44

4.1.1 字符常量 44

4.1.2 字符的输入/输出 45

4.2 数据的格式化屏幕输出 47

4.3 数据的格式化键盘输入 50

4.4 本章扩充内容 54

4.5 本章知识点小结 57

4.6 本章常见错误小结 58

习题4 59

本章实验题 61

第5章 选择控制结构 62

5.1 生活中与计算机中的问题求解方法 62

5.2 算法的概念及其描述方法 64

5.2.1 算法的概念 64

5.2.2 算法的描述方法 65

5.3 关系运算符与关系表达式 66

5.4 用于单分支控制的条件语句 68

5.5 用于双分支控制的条件语句 69

5.6 条件运算符和条件表达式 69

5.7 用于多分支控制的条件语句 70

5.8 用于多路选择的switch语句 75

5.9 逻辑运算符和逻辑表达式 80

5.10 本章扩充内容 83

5.10.1 程序测试 83

5.10.2 对输入非法字符的检查与处理 92

5.10.3 位运算符 95

5.11 本章知识点小结 98

5.12 本章常见错误小结 99

习题5 101

本章实验题 102

第6章 循环控制结构 104

6.1 循环控制结构与循环语句 104

6.2 计数控制的循环 114

6.3 条件控制的循环 116

6.4 嵌套循环 126

6.5 流程的转移控制 133

6.5.1 goto语句 133

6.5.2 break语句 133

6.5.3 continue语句 135

6.5.4 函数exit() 137

6.6 本章扩充内容 140

6.6.1 结构化程序设计的核心思想 140

6.6.2 常用的程序调试与排错方法 141

6.6.3 类型溢出 142

6.7 本章知识点小结 144

6.8 本章常见错误小结 145

习题6 146

本章实验题 152

第7章 函数 155

7.1 分而治之与信息隐藏 155

7.2 函数的定义 156

7.2.1 函数的分类 156

7.2.2 函数的定义 157

7.3 向函数传递值和从函数返回值 158

7.3.1 函数调用 158

7.3.2 函数原型 160

7.3.3 函数封装与防御性程序设计 162

7.3.4 函数设计的基本原则 171

7.4 递归函数 171

7.4.1 递归问题的提出 171

7.4.2 递归函数 174

7.5 变量的作用域和存储类型 179

7.5.1 变量的作用域 179

7.5.2 变量的存储类型 181

7.6 模块化程序设计 189

7.6.1 模块分解的基本原则 189

7.6.2 自顶向下、逐步求精 189

7.6.3 模块化程序设计实例 191

7.7 本章扩充内容 197

7.8 本章知识点小结 200

7.9 本章常见错误小结 201

习题7 202

本章实验题 205

第8章 数组 206

8.1 一维数组的定义和初始化 206

8.2 二维数组的定义和初始化 211

8.3 向函数传递一维数组 215

8.4 排序和查找 220

8.5 向函数传递二维数组 234

8.6 本章知识点小结 238

8.7 本章常见错误小结 239

习题8 240

本章实验题 247

第9章 指针 248

9.1 变量的内存地址 248

9.2 指针变量的定义和初始化 249

9.3 间接寻址运算符 253

9.4 按值调用与按地址调用 255

9.5 用指针变量作函数参数的程序实例 261

9.6 函数指针及其应用 264

9.7 本章知识点小结 273

9.8 本章常见错误小结 273

习题9 274

本章实验题 276

第10章 字符串 278

10.1 字符串常量 278

10.2 字符串的存储 278

10.3 字符指针 280

10.4 字符串的访问和输入/输出 281

10.4.1 如何访问字符串中的单个字符 281

10.4.2 字符串的输入/输出 281

10.5 字符串处理函数 286

10.6 向函数传递字符串 290

10.7 本章扩充内容 294

10.7.1 从函数返回字符串指针 294

10.7.2 const类型限定符 297

10.7.3 字符处理函数 298

10.7.4 数值字符串向数值的转换 304

10.8 本章知识点小结 306

10.9 本章常见错误小结 306

习题10 308

本章实验题 310

第11章 指针和数组 312

11.1 指针和一维数组间的关系 312

11.2 指针和二维数组间的关系 319

11.3 指针数组及其应用 326

11.3.1 指针数组用于表示多个字符串 326

11.3.2 指针数组用于表示命令行参数 333

11.4 本章扩充内容 334

11.4.1 C程序的内存映像 334

11.4.2 动态内存分配函数 335

11.4.3 长度可变的一维动态数组 337

11.4.4 长度可变的二维动态数组 339

11.4.5 常见的内存错误及其对策 341

11.4.6 缓冲区溢出攻击 351

11.5 本章知识点小结 353

11.6 本章常见错误小结 354

习题11 354

本章实验题 358

第12章 结构体和共用体 360

12.1 从基本数据类型到抽象数据类型 360

12.2 结构体的定义 361

12.2.1 为什么要定义结构体类型 361

12.2.2 结构体变量的定义 363

12.2.3 用typedef定义数据类型 365

12.2.4 结构体变量的初始化 366

12.2.5 嵌套的结构体 366

12.2.6 结构体变量的引用 368

12.2.7 结构体所占内存的字节数 372

12.3 结构体数组的定义和初始化 373

12.3.1 结构体数组的定义 373

12.3.2 结构体数组的初始化 374

12.4 结构体指针的定义和初始化 376

12.4.1 指向结构体变量的指针 376

12.4.2 指向结构体数组的指针 377

12.5 向函数传递结构体 377

12.6 共用体 384

12.7 本章扩充内容 387

12.7.1 枚举数据类型 387

12.7.2 动态数据结构——单向链表 388

12.8 本章知识点小结 398

12.9 本章常见错误小结 399

习题12 400

本章实验题 401

第13章 文件操作 403

13.1 二进制文件和文本文件 403

13.2 文件的打开和关闭 405

13.3 按字符读写文件 406

13.4 按格式读写文件 413

13.5 按数据块读写文件 419

13.6 本章扩充内容 424

13.6.1 文件的随机读写 424

13.6.2 标准输入/输出重定向 427

13.7 本章知识点小结 428

13.8 本章常见错误小结 429

习题13 429

本章实验题 429

附录A C关键字 432

附录B Visual C++下基本数据类型的取值范围 433

附录C C运算符的优先级与结合性 434

附录D 常用字符与ASCII值对照表 435

参考文献 437