《21天学通C语言 第7版》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)琼斯,(美)艾特肯,(美)米勒著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2014
  • ISBN:9787115355379
  • 页数:445 页
图书介绍:本书是初学者学习C语言的经典教程。本版以循序渐进的方式介绍了C语言编程方面知识,并提供了丰富的实例和大量的练习。通过学习实例,并将所学的知识用于完成练习,读者将逐步了解、熟悉并精通C语言。本书针对初中级程序员编写,可作为学习C语言的教程或参考资料。

第1部分 C语言基础 1

第1课 初识C语言 1

1.1 C语言发展简史 1

1.2 为何要使用C语言 1

1.3 准备编程 2

1.4 程序开发周期 3

1.4.1 创建源代码 3

1.4.2 使用编辑器 3

1.4.3 编译源代码 4

1.4.4 链接以创建可执行文件 4

1.4.5 完成开发周期 5

1.5 第1个C程序 6

1.5.1 输入并编译hello.c 7

1.5.2 编译错误 8

1.5.3 链接器错误消息 9

1.6 小 结 9

1.7 答疑 9

1.8 课后研习 10

1.8.1 小测验 10

1.8.2 练习题 11

第2课 C程序的组成部分 12

2.1 简短的C程序 12

2.2 程序的组成部分 13

2.2.1 main()函数 13

2.2.2 #include和#define指令 13

2.2.3 变量定义 14

2.2.4 函数原型 14

2.2.5 程序语句 14

2.2.6 函数定义 15

2.2.7 程序的注释 15

2.2.8 使用花括号 16

2.2.9 运行程序 16

2.2.10 补充说明 16

2.3 学以致用 17

2.4 小结 18

2.5 答疑 19

2.6 课后研习 19

2.6.1 小测验 19

2.6.2 练习题 19

第3课 储存信息:变量和常量 21

3.1 计算机的内存 21

3.2 用变量储存信息 22

3.3 数值类型 23

3.3.1 变量声明 26

3.3.2 typedef关键字 26

3.3.3 初始化变量 26

3.4 常 量 27

3.4.1 字面常量 27

3.4.2 符号常量 28

3.5 小 结 31

3.6 答疑 32

3.7 课后研习 32

3.7.1 小测验 32

3.7.2 练习题 33

第4课 语句、表达式和运算符 34

4.1 语 句 34

4.1.1 在语句中留白 34

4.1.2 创建空语句 35

4.1.3 复合语句 35

4.2 理解表达式 36

4.2.1 简单表达式 36

4.2.2 复杂表达式 36

4.3 运算符 37

4.3.1 赋值运算符 37

4.3.2 数学运算符 37

4.3.3 运算符优先级和圆括号 41

4.3.4 子表达式的计算顺序 43

4.3.5 关系运算符 43

4.4 if语句 44

4.5 对关系表达式求值 49

4.6 逻辑运算符 51

4.7 详议真/假值 52

4.7.1 运算符的优先级 52

4.7.2 复合赋值运算符 54

4.7.3 条件运算符 54

4.7.4 逗号运算符 55

4.8 运算符优先级归纳 55

4.9 小 结 56

4.10 答疑 56

4.11 课后研习 57

4.11.1 小测验 57

4.11.2 练习题 57

第5课 函数 59

5.1 理解函数 59

5.1.1 函数定义 59

5.1.2 函数示例 59

5.2 函数的工作原理 61

5.3 函数和结构化程序设计 62

5.3.1 结构化程序设计的优点 63

5.3.2 规划结构化程序 63

5.3.3 自上而下的方法 64

5.4 编写函数 65

5.4.1 函数头 65

5.4.2 函数体 67

5.4.3 函数原型 71

5.5 给函数传递实参 72

5.6 调用函数 72

5.7 函数的位置 75

5.8 内联函数 75

5.9 小 结 76

5.10 答疑 76

5.11 课后研习 76

5.11.1 小测验 76

5.11.2 练习题 77

第6课 基本程序控制 78

6.1 数组:基本概念 78

6.2 控制程序的执行 79

6.2.1 for语句 79

6.2.2 嵌套for语句 83

6.2.3 while语句 85

6.2.4 嵌套while语句 88

6.2.5 do...while循环 89

6.3 嵌套循环 92

6.4 小 结 93

6.5 答疑 94

6.6 课后研习 94

6.6.1 小测验 94

6.6.2 练习题 94

第7课 信息读写基础 96

7.1 在屏幕上显示信息 96

7.1.1 print()函数 96

7.1.2 printf()的格式字符串 97

7.1.3 使用puts()显示消息 103

7.2 使用scanf()输入数值数据 104

7.3 三字符序列 108

7.4 小 结 109

7.5 答疑 109

7.6 课后研习 109

7.6.1 小测验 109

7.6.2 练习题 110

第2部分 C语言应用 112

第8课 数值数组 112

8.1 什么是数组 112

8.1.1 一维数组 113

8.1.2 多维数组 116

8.2 命名和声明数组 116

8.2.1 初始化数组 119

8.2.2 初始化多维数组 120

8.3 小 结 123

8.4 答疑 123

8.5 课后研习 124

8.5.1 小测验 124

8.5.2 练习题 124

第9课 指针 126

9.1 什么是指针 126

9.1.1 计算机的内存 126

9.1.2 创建指针 127

9.2 指针和简单变量 127

9.2.1 声明指针 127

9.2.2 初始化指针 128

9.2.3 使用指针 128

9.3 指针和变量类型 130

9.4 指针和数组 131

9.4.1 数组名 131

9.4.2 储存数组元素 131

9.4.3 指针算术 134

9.5 指针的注意事项 137

9.6 数组下标表示法和指针 137

9.7 给函数传递数组 137

9.8 小结 141

9.9 答疑 142

9.10 课后研习 142

9.10.1 小测验 142

9.10.2 练习题 143

第10课 字符和字符串 144

10.1 char数据类型 144

10.2 使用字符变量 145

10.3 使用字符串 147

10.3.1 字符数组 147

10.3.2 初始化字符数组 148

10.4 字符串和指针 148

10.5 未储存在数组中的字符串 148

10.5.1 在编译期分配字符串的空间 149

10.5.2 malloc()函数 149

10.5.3 malloc()函数的用法 150

10.6 显示字符串和字符 153

10.6.1 puts()函数 153

10.6.2 printf()函数 154

10.7 读取从键盘输入的字符串 154

10.7.1 用gets()函数输入字符串 154

10.7.2 用scanf()函数输入字符串 157

10.8 小 结 159

10.9 答疑 160

10.10 课后研习 160

10.10.1 小测验 160

10.10.2 练习题 161

第11课 结构、联合和typedef 163

11.1 简单结构 163

11.1.1 声明和定义结构 163

11.1.2 访问结构的成员 164

11.2 复杂结构 166

11.2.1 包含结构的结构 166

11.2.2 包含数组的结构 169

11.3 结构数组 171

11.4 初始化结构 173

11.5 结构和指针 175

11.5.1 包含指针成员的结构 175

11.5.2 创建指向结构的指针 177

11.5.3 使用指针和结构数组 179

11.5.4 给函数传递结构实参 181

11.6 联合 182

11.6.1 声明、定义并初始化联合 182

11.6.2 访问联合成员 183

11.7 用typedef创建结构的别名 187

11.8 小 结 187

11.9 答疑 187

11.10 课后研习 188

11.10.1 小测验 188

11.10.2 练习题 188

第12课 变量作用域 190

12.1 什么是作用域 190

12.1.1 演示作用域 190

12.1.2 作用域的重要性 192

12.2 创建外部变量 192

12.2.1 外部变量作用域 192

12.2.2 何时使用外部变量 192

12.2.3 extern关键字 193

12.3 创建局部变量 194

12.3.1 静态变量和自动变量 194

12.3.2 函数形参的作用域 196

12.3.3 外部静态变量 196

12.3.4 寄存器变量 197

12.4 局部变量和main()函数 197

12.5 如何使用存储类别 198

12.6 局部变量和块 198

12.7 小 结 199

12.8 答疑 200

12.9 课后研习 200

12.9.1 小测验 200

12.9.2 练习题 201

第13课 高级程序控制 203

13.1 提前结束循环 203

13.1.1 break语句 203

13.1.2 continue语句 205

13.2 goto语句 206

13.3 无限循环 208

13.4 switch语句 211

13.5 退出程序 218

13.6 小 结 219

13.7 答疑 219

13.8 课后研习 219

13.8.1 小测验 220

13.8.2 练习题 220

第14课 输入和输出 221

14.1 C语言和流 221

14.1.1 程序的输入/输出 221

14.1.2 什么是流 221

14.1.3 文本流和二进制流 222

14.1.4 预定义流 222

14.2 C语言的流函数 222

14.3 键盘输入 224

14.3.1 字符输入 224

14.3.2 行输入 228

14.3.3 格式化输入 230

14.4 屏幕输出 236

14.4.1 使用putchar()、putc()和fputc()输出字符 236

14.4.2 使用puts()和fputs()输出字符串 238

14.4.3 使用printf()和fprintf()格式化输出 239

14.5 何时使用fprinf() 243

14.6 小结 244

14.7 答疑 245

14.8 课后研习 245

14.8.1 小测验 245

14.8.2 练习题 246

第3部分 C语言进阶 247

第15课 指向指针的指针和指针数组 247

15.1 声明指向指针的指针 247

15.2 指针和多维数组 248

15.3 指针数组 254

15.3.1 复习字符串和指针 255

15.3.2 声明指向char类型的指针数组 255

15.3.3 示例 257

15.4 小 结 261

15.5 答疑 262

15.6 课后研习 262

15.6.1 小测验 262

15.6.2 练习题 262

第16课 函数指针和链表 264

16.1 函数指针 264

16.1.1 声明函数指针 264

16.1.2 初始化函数指针及其用法 265

16.2 链表 271

16.2.1 链表的基本知识 272

16.2.2 使用链表 273

16.2.3 简单链表示例 277

16.2.4 实现链表 279

16.3 小 结 285

16.4 答疑 285

16.5 课后研习 285

16.5.1 小测验 285

16.5.2 练习题 286

第17课 磁盘文件 287

17.1 将流与磁盘文件相关联 287

17.2 磁盘文件的类型 287

17.3 文件名 288

17.4 打开文件 288

17.5 读写文件数据 291

17.5.1 格式化输入和输出 291

17.5.2 字符输入和输出 294

17.5.3 直接文件输入/输出 296

17.6 文件缓冲:关闭和刷新文件 299

17.7 顺序文件访问和随机文件访问 300

17.7 1ftell()函数和rewind()函数 301

17.7.2 fseek()函数 303

17.8 检测文件末尾 305

17.9 文件管理函数 307

17.9.1 删除文件 307

17.9.2 重命名文件 308

17.9 3拷贝文件 308

17.10 临时文件 310

17.11 小 结 312

17.12 答疑 312

17.13 课后研习 313

17.13.1 小测验 313

17.13.2 练习题 313

第18课 操纵字符串 315

18.1 确定字符串长度 315

18.2 拷贝字符串 316

18.2.1 strcpy()函数 316

18.2.2 strncpy()函数 317

18.3 拼接字符串 319

18.3.1 strcat()函数 319

18.3.2 strncat()函数 320

18.4 比较字符串 321

18.4.1 比较字符串本身 322

18.4.2 比较部分字符串 323

18.5 查找字符串 324

18.5.1 strchr()函数 324

18.5.2 strrchr()函数 325

18.5.3 strcspn()函数 326

18.5.4 strspn()函数 327

18.5.5 strpbrk()函数 328

18.5.6 strstr()函数 328

18.6 将字符串转换为数字 329

18.6.1 将字符串转换为整型值 329

18.6.2 将字符串转换为long 330

18.6.3 将字符串转换为long long类型值 330

18.6.4 将字符串转换为浮点值 330

18.7 字符测试函数 331

18.8 小结 335

18.9 答疑 335

18.10 课后研习 336

18.10.1 小测验 336

18.10.2 练习题 336

第19课 函数的高级主题 338

19.1 给函数传递指针 338

19.2 void指针 341

19.3 带可变数目参数的函数 344

19.4 返回指针的函数 346

19.5 小结 348

19.6 答疑 348

19.7 课后研习 348

19.7.1 小测验 348

19.7.2 练习题 349

第20课 C语言的函数库 350

20.1 数学函数 350

20.1.1 三角函数 350

20.1.2 指数函数和对数函数 350

20.1.3 双曲线函数 351

20.1.4 其他数学函数 351

20.1.5 演示数学函数 351

20.2 处理时间 352

20.2.1 表示时间 352

20.2.2 时间函数 353

20.2.3 使用时间函数 355

20.3 错误处理 357

20.3.1 assert(()宏 357

20.3.2 errno.h头文件 359

20.3.3 perror()函数 359

20.4 查找和排序 361

20.4.1 用bsearch()函数进行查找 361

20.4.2 用qsort()函数进行排序 362

20.4.3 演示查找和排序 362

20.5 小 结 367

20.6 答疑 367

20.7 课后研习 367

20.7.1 小测验 367

20.7.2 练习题 368

第21课 管理内存 370

21.1 类型转换 370

21.1.1 自动类型转换 370

21.1.2 显示转换 372

21.2 分配内存存储空间 373

21.2.1 用malloc()函数分配内存 374

21.2.2 用calloc()函数分配内存 374

21.2.3 用realloc()函数分配更多内存 375

21.2.4 用free()函数释放内存 377

21.3 操控内存块 378

21.3.1 用memset()函数初始化内存 378

21.3.2 用memcpy()函数拷贝内存的数据 379

21.3.3 用memmove()函数移动内存的数据 379

21.4 位 380

21.4.1 移位运算符 381

21.4.2 按位逻辑运算符 382

21.4.3 求反运算符 383

21.4.4 结构中的位字段 383

21.5 小 结 384

21.6 答疑 384

21.7 课后研习 385

21.7.1 小测验 386

21.7.2 练习题 386

第22课 编译器的高级用法 388

22.1 多源代码文件编程 388

22.1.1 模块化编程的优点 388

22.1.2 模块化编程技术 388

22.1.3 模块化的组成部分 392

22.1.4 外部变量和模块化编程 392

22.2 C预处理器 393

22.2.1 #define预处理器指令 393

22.2.2 #include指令 397

22.2.3 #if、#elif、#else和#endif 397

22.2.4 使用#if...#endif帮助调试 398

22.2.5 避免多次包含头文件 399

22.2.6 #undef指令 399

22.3 预定义宏 400

22.4 命令行参数 400

22.5 小 结 402

22.6 答疑 402

22.7 课后研习 403

22.7.1 小测验 403

22.7.2 练习题 403

第4部分 附录 405

附录A ASCII表 405

附录B C/C++关键字 409

附录C 常用函数 411

附录D 参考答案 415