第0章 从0开始 1
0.1 什么是C语言 2
0.2 习题 4
第1章 C的概述 5
1.1 编程和准备 5
1.2 程序输出 7
1.3 变量、表达式和赋值 10
1.4 #define和#include的用法 13
1.5 printf()和scanf()的用法 17
1.6 控制流 21
1.7 getchar()和putchar()的用法 29
1.8 函数 35
1.9 数组、串和指针 40
1.10 文件 53
1.11 实例:随机数和最佳算法 58
1.12 小结 63
1.13 习题 64
2.1 字符和记号 68
第2章 语法和词法 68
2.2 语法规则 70
2.3 标识符 73
2.4 关键字 74
2.5 运算符和分隔符 74
2.6 串 75
2.7 注释 76
2.8 常量 77
2.10 习题 78
2.9 小结 78
第3章 说明、表达式、赋值、数据类型 80
3.1 说明 80
3.2 基本数据类型 81
3.3 表达式、语句和赋值 83
3.4 数据类型int 85
3.5 用int数据的算术运算符 87
3.6 整型变量的加1和减1运算符 90
3.7 整型short、long和unsigned 92
3.8 浮点型 94
3.9 数学函数 98
3.10 数据类型char 99
3.11 赋值运算符 102
3.12 转换和强制转换 103
3.13 常量 106
3.14 十六进制和八进制常量 107
3.15 求值顺序 111
3.16 小结 111
3.17 习题 112
第4章 控制流 118
4.1 关系运算符、相等运算符和逻辑运算符 118
4.2 关系运算符和表达式 119
4.3 相等运算符和表达式 122
4.4 逻辑运算符和表达式 124
4.5 复合语句 129
4.6 空语句 130
4.7 if和if_else语句 130
4.8 while语句 136
4.9 for语句 138
4.10 实例:布尔变量 140
4.11 逗号运算符 141
4.12 do语句 143
4.13 实例:FIBONACCI数 145
4.14 实例:素数 147
4.15 小结 149
4.16 习题 150
第5章 函数 161
5.1 函数定义 161
5.2 return语句 164
5.3 函数调用和值传递 169
5.4 类型说明符void 171
5.5 实例:初等统计 172
5.6 作用域规则 175
5.7 平行和嵌套程序块 177
5.8 存储类auto 178
5.9 存储类extern 179
5.10 存储类register 182
5.11 存储类static 183
5.12 静态外部变量 184
5.13 小结 186
5.14 习题 187
6.1 goto语句 194
第6章 转移语句、按位表达式和枚举类型 194
6.2 break和continue语句 196
6.3 switch语句 198
6.4 条件运算符 199
6.5 按位运算符及其表达式 201
6.6 掩码 204
6.7 合并与分解 205
6.8 枚举类型 207
6.9 实例:“纸、石头、剪子”的游戏 210
6.10 小结 216
6.11 习题 217
第7章 指针、数组和串 224
7.1 指针 224
7.2 函数的指针参数 227
7.3 一维数组 229
7.4 指针与数组的关系 232
7.5 用作函数参量的数组 234
7.6 实例:冒泡排序 235
7.7 实例:合并与合并排序 237
7.8 串 241
7.9 实例:单词计数 246
7.10 多维数组 248
7.11 指针数组 250
7.12 main()的参量 255
7.13 不等长数组 256
7.14 小结 258
7.15 习题 259
第8章 递归、函数参量及预处理器 266
8.1 递归 266
8.2 实例:快速排序 270
8.3 实例:求第k个顺序元素 275
8.4 函数参量 276
8.5 实例:用二分法求函数的根 277
8.6 预处理器 281
8.7 实例:qsort()的应用 288
8.8 小结 290
8.9 习题 291
第9章 结构、联合和类型定义 299
9.1 typedef的应用 299
9.2 结构 301
9.3 结构成员的存取 305
9.4 结构与函数 306
9.5 运算符的优先级和结合律:总结 310
9.6 实例:复数算术 311
9.7 实例?学生记录 314
9.8 联合 316
9.9 字段 319
9.10 结构的初始化 321
9.11 实例:玩扑克 322
9.12 小结 325
9.13 习题 326
第10章 结构和表处理 332
10.1 引用自身的结构 332
10.2 线性链表 334
10.3 表运算 336
10.4 一些表处理函数 340
10.5 栈 345
10.6 实例:波兰表示法和栈计算 348
10.7 二叉树 350
10.8 普通链表 355
10.9 小结 360
10.10 习题 361
第11章 输入/输出和UNIX环境 367
11.1 输出函数printf() 367
11.2 输入函数scanf() 372
11.3 相关联的函数fprintf()、sprintf()、fscanf()和sscanf() 375
11.4 文件 376
11.5 ctype.h中的宏 382
11.6 实例:压缩C程序 383
11.7 文件描述字 输入/输出 388
11.8 UNIX中的重定向和管道传送 393
11.9 实例:打印目录 394
11.10 ce编译器 399
11.11 C验证器lint 403
11.12 C的整齐打印命令cb 404
11.13 命令make 405
11.14 C的前景:结论性评注 406
11.15 小结 408
11.16 习题 410
附录 ASCII字符码 413
索引 部分程序和函数 414