第1章 入门 1
1.1 引言 1
1.2 C语言 9
1.3 C编译系统的使用 20
1.4 小结 25
1.5 练习题 27
1.6 上机实验题 29
第2章 词法元素、运算符和C系统 31
2.1 词法元素 32
2.2 运算符与表达式 36
2.3 例子 38
2.4 C系统 40
2.5 常见编程错误 44
2.6 小结 45
2.7 练习题 47
2.8 上机实验题 51
第3章 选择控制结构 53
3.1 引言 52
3.2 条件表达式 54
3.3 if选择结构 57
3.4 if_else选择结构 58
3.5 switch多情形选择结构 67
3.6 嵌套选择结构 70
3.7 自顶向下,逐步求精 72
3.8 常见编程错误 78
3.9 小结 79
3.10 练习题 81
3.11 上机实验题 85
第4章 重复控制结构 86
4.1 while语句 86
4.2 for语句 92
4.3 do语句 93
4.4 break和continue语句 94
4.5 问题求解:求小于n的所有素数 97
4.6 复杂程序控制 99
4.7 算法* 101
4.8 常见编程错误 103
4.9 小结 103
4.10 练习题 105
4.11 上机实验题 107
第5章 函数 108
5.1 函数的使用 108
5.2 函数的定义 110
5.3 函数的返回 112
5.4 函数的声明 114
5.5 问题求解 114
5.6 结构化程序设计 117
5.7 作用域 121
5.8 递归 124
5.9 程序结构图* 125
5.10 常见编程错误 126
5.11 小结 126
5.12 练习题 129
5.13 上机实验题 132
第6章 字符处理 133
6.1 数据类型char 133
6.2 getchar()和putchar()用法 134
6.3 ctype.h中的宏 136
6.4 问题求解 137
6.5 程序验证:asert()宏的用法* 139
6.6 系统问题 140
6.7 常见编程错误 140
6.8 小结 140
6.9 练习题 142
6.10 上机实验题 144
第7章 基本数据类型 145
7.1 声明和表达式 145
7.2 基本数据类型 146
7.3 字符和数据类型char 147
7.4 int、short、long和unsigned 148
7.5 浮点类型 149
7.6 sizeof()运算符 150
7.7 数学函数 150
7.8 类型转换 152
7.9 问题求解 153
7.10 常见编程错误 155
7.11 小结 156
7.12 练习题 158
7.13 上机实验题 159
第8章 枚举类型和typedef 160
8.1 枚举类型 160
8.2 typedef的用法 162
8.3 例子:石头、剪刀、布 162
8.4 常见编程错误 169
8.5 系统考虑 169
8.6 小结 169
8.7 练习题 170
8.8 上机实验题 171
第9章 数组 173
9.1 数组 173
9.2 数组使用举例 174
9.3 把数组传给函数 177
9.4 排序 179
9.5 查找 180
9.6 问题求解 182
9.7 二维数组 186
9.8 常见编程错误 188
9.9 小结 189
9.10 练习题 189
9.11 上机实验题 190
第10章 指针 191
10.1 指针 192
10.2 指针与函数引用调用 193
10.3 指针与数组 196
10.4 问题求解 197
10.5 常见编程错误 199
10.6 小结 199
10.7 练习题 200
10.8 上机实验题 202
第11章 字符串 203
11.1 字符串 203
11.2 例子 204
11.3 用指针处理串 206
11.4 标准库中串处理函数 209
11.5 把参数传给main() 210
11.6 字符串转换函数 211
11.7 问题求解 212
11.8 常见编程错误 213
11.9 小结 214
11.10 练习题 215
11.11 上机实验题 215
第12章 存储类型与类型限定符 216
12.1 存储类型 216
12.2 存储类型extern 217
12.3 存储类型register 218
12.4 存储类型static 219
12.5 存储类型const 220
12.6 小结 223
12.7 练习题 224
第13章 递归 227
13.1 递归 227
13.2 递归与迭代 232
13.3 分而治之方法 233
13.4 问题求解:梵塔 235
13.5 小结 237
13.6 练习题 237
13.7 上机实验题 238
第14章 结构与抽象数据类型 239
14.1 结构 239
14.2 结构与函数 242
14.3 在结构声明中使用typedef 244
14.4 结构数组与结构指针 245
14.5 问题求解:学生记录 248
14.6 自引用指针 252
14.7 线性链表 253
14.8 联合 257
14.9 位运算与位字段 259
14.10 问题求解 261
14.11 常见编程错误 265
14.12 小结 265
14.13 练习题 267
14.14 上机实验题 268
第15章 人机交互与菜单驱动程序设计 269
15.1 界面与人机交互 269
15.2 菜单设计 270
15.3 问题求解 277
15.4 事件驱动* 283
15.5 信号处理* 285
15.6 问题求解* 287
15.7 小结 289
15.8 练习题 290
15.9 上机实验题 291
第16章 文件处理 292
16.1 文件和流 294
16.2 建立顺序文件 295
16.3 顺序文件的读取 300
16.4 顺序文件的修改 303
16.5 建立随机存取文件 306
16.6 随机文件存取 309
16.7 例子:学生成绩管理 313
16.8 常见编程错误 320
16.9 小结 321
16.10 练习题 324
16.11 上机实验题 325
第17章 C语言的其他专题* 326
17.1 预处理 326
17.2 变长参数与inline 332
17.3 动态内存分配:函数calloc和realloc 335
17.4 无条件转移:goto语句 337
17.5 练习题 338
17.6 上机实验题 339
附录 340
A ASCII字符集 340
B 运算符的优先级与结合性 341
C 函数printf()与scanf()详解 342
D C语言常用函数 350
参考资料 361