第1章 C语言程序设计概述 1
1.1 程序的概念 2
1.2 C语言的历史与特点 3
1.3 简单的C程序 4
1.4 变量 5
1.5 循环 7
1.6 选择 8
1.7 数组 10
1.8 函数 12
1.9 注释 14
1.10 运行程序 15
1.11 小结 17
习题1 17
第2章 数据类型、运算符和表达式 19
2.1 变量命名 20
2.2 计算机内数据的特点 20
2.3 整数 21
2.4 实数 24
2.5 字符 25
2.6 常用算术运算符 28
2.7 赋值运算符 29
2.8 自增和自减运算符 30
2.9 数据类型转换 32
2.10 小结 34
习题2 34
第3章 控制流 36
3.1 关系运算符 37
3.2 逻辑运算符 39
3.3 if语句 44
3.4 条件运算符 49
3.5 for语句 50
3.6 while语句 55
3.7 for语句与while语句的关系 58
3.8 break语句 59
3.9 嵌套循环 62
3.10 switch语句 65
3.11 小结 68
习题3 68
第4章 复合数据类型 72
4.1 数组 73
4.2 数组编程 77
4.3 二维数组 82
4.4 字符串 87
4.5 记录 91
4.6 枚举类型 95
4.7 typedef 99
4.8 小结 99
习题4 100
第5章 函数 104
5.1 定义函数 105
5.2 调用有返回值的函数 108
5.3 调用无返回值的函数 111
5.4 函数调用的原理 113
5.5 一维数组作参数 118
5.6 二维数组作参数 121
5.7 递归调用 124
5.8 小结 132
习题5 132
第6章 模块化设计初步 135
6.1 模块化设计实例:日历程序 136
6.2 作用域 143
6.3 变量的存储类别 146
6.4 外部函数与内部函数 152
6.5 小结 153
习题6 153
第7章 指针 156
7.1 指针的概念 157
7.2 使用指针 158
7.3 指针作函数参数 163
7.4 用指针处理一维数组 165
7.5 用指针处理多维数组 170
7.6 动态内存分配 177
7.7 动态内存分配实例 181
7.8 动态数据结构——线性单链表 189
7.9 链表应用的实例 199
7.10 指向函数的指针 208
7.11 指针和字符串 212
7.12 小结 217
习题7 218
第8章 I/O 222
8.1 ASCII文件 223
8.2 二进制文件 227
8.3 格式化输出函数prinff 231
8.4 格式化输入函数scanf 237
8.5 字符和字符串的输入输出 243
8.6 小结 245
习题8 245
第9章 位运算 248
9.1 位运算符与运算规则 249
9.2 位运算实例 252
9.3 小结 259
习题9 259
第10章 预处理 261
10.1 #include 262
10.2 #define 263
10.3 带参数的宏 264
10.4 条件编译 265
10.5 小结 268
习题10 268
第11章 接口与库 270
11.1 接口 271
11.2 解读接口time.h 272
11.3 接口的设计原则 277
11.4 接口设计的实例(BigNum.h) 278
11.5 库代码的实现(BigNum.c) 285
11.6 使用库解决问题 300
11.7 小结 301
习题11 302
第12章 算法初步 303
12.1 排序算法 305
12.2 查找算法 308
12.3 数值算法 311
12.4 状态转移表 316
12.5 小结 322
习题12 322
第13章 数据结构初步 324
13.1 数据结构的概念 325
13.2 抽象数据类型 328
13.3 队列 329
13.4 堆栈 339
13.5 堆栈的应用实例 346
13.6 小结 352
习题13 352
附录A 计算机的数据表示原理 354
附录B 数据类型的转换 363
附录C C语言的常量 367
附录D ASCII码对照表 369
附录E C语言的运算符 371
附录F C语言的关键字 373
附录G 常用的ANSI C库函数 377
附录H Turbo C 2.0集成环境 395
参考文献 401