第1章 C语言程序设计概述 1
1.1 程序的概念 2
1.2 C语言的历史与特点 2
1.3 简单的C程序 4
1.4 变量 5
1.5 循环 6
1.6 选择 8
1.7 数组 9
1.8 函数 11
1.9 注释 13
1.10 运行程序 14
1.11 小结 15
习题1 16
第2章 数据类型、运算符和表达式 18
2.1 变量的声明与命名 19
2.2 计算机内数据的特点 19
2.3 整数 20
2.4 实数 23
2.5 字符 24
2.6 常用算术运算符 27
2.7 赋值运算符 28
2.8 自增运算符和自减运算符 29
2.9 数据类型转换 30
2.10 小结 32
习题2 33
第3章 控制流 35
3.1 关系运算符 36
3.2 逻辑运算符 38
3.3 if语句 42
3.4 条件运算符(?:) 48
3.5 for语句 49
3.6 while语句 54
3.7 for语句与while语句的关系 57
3.8 break语句 57
3.9 嵌套循环 60
3.10 switch语句 62
3.11 小结 66
习题3 67
第4章 复合数据类型 70
4.1 一维数组 71
4.2 一维数组编程 75
4.3 二维数组 80
4.4 字符串简介 84
4.5 记录 88
4.6 枚举类型 92
4.7 typedef 96
4.8 小结 96
习题4 97
第5章 函数 100
5.1 定义函数 101
5.2 调用有返回值的函数 104
5.3 调用无返回值的函数 107
5.4 函数调用的原理 109
5.5 一维数组作参数 113
5.6 二维数组作参数 117
5.7 递归调用 119
5.8 小结 128
习题5 128
第6章 模块化设计初步 131
6.1 模块化设计实例:日历程序 132
6.2 作用域 138
6.3 变量的存储类别 141
6.4 外部函数与内部函数 147
6.5 小结 147
习题6 148
第7章 指针 150
7.1 指针的概念 151
7.2 使用指针 152
7.3 指针作函数参数 156
7.4 用指针处理一维数组 158
7.5 用指针处理多维数组 163
7.6 动态内存分配 169
7.7 动态内存分配实例 172
7.8 动态数据结构——线性单链表 179
7.9 链表应用的实例 186
7.10 指向函数的指针 195
7.11 指针、字符数组和字符串 198
7.12 主函数的返回值与参数 203
7.13 小结 204
习题7 205
第8章 I/O 209
8.1 ASCII文件 210
8.2 二进制文件 214
8.3 格式化输出函数printf 219
8.4 格式化输入函数scanf 223
8.5 字符和字符串的输入输出 229
8.6 小结 231
习题8 231
第9章 位运算 233
9.1 位运算符 234
9.2 位运算实例 236
9.3 小结 242
习题9 243
第10章 预处理 245
10.1 #include 246
10.2 #define 247
10.3 带参数的宏 248
10.4 条件编译 249
10.5 小结 252
习题10 252
第11章 接口与库 254
11.1 接口 255
11.2 解读接口time.h 256
11.3 接口的设计原则 260
11.4 接口设计的实例(BigNum.h) 261
11.5 库代码的实现(BigNum.c) 268
11.6 使用库解决问题 282
11.7 小结 283
习题11 284
第12章 算法初步 285
12.1 排序算法 286
12.2 查找算法 290
12.3 数值算法 292
12.4 状态转移表 297
12.5 小结 303
习题12 303
第13章 数据结构初步 304
13.1 数据结构的概念 305
13.2 抽象数据类型 308
13.3 队列 308
13.4 堆栈 317
13.5 堆栈的应用实例 324
13.6 小结 329
习题13 329
附录A 计算机的数据表示原理 331
附录B 数据类型的转换 339
附录C C语言的常量 342
附录D ASCII码对照表 344
附录E C语言的运算符 346
附录F C语言的关键字 348
附录G 常用的ANSI C库函数 352
附录H 集成环境Dev-C++简介 367
参考文献 378