第一章 C语言概述 1
1.1 HELLO程序:C语言程序结构 1
1.2 求平方和程序:变量、算术式和循环 3
1.3 天气程序:键盘输入语句,变量地址和带符号常量 6
1.4 排序程序:数组,函数返回值和指针 7
1.5 SENTENCE程序:文件的输入/输出、字符和I/O重新定向 9
1.6 REVERSE程序:字符数组、串和分别编译 11
1.7 CURVE程序:数据类型定义和结构的使用 14
1.8 NOTABS程序:switch、BREAK语句和更复杂的循环 17
1.9 小结 20
第二章 C语言的有效使用 22
2.1 文件I/O:三个复制文件的程序 22
2.2 ASCII文件和二进制文件 27
2.3 位操作:对字处理器文件的处理 32
2.4 十六进制表示 34
2.5 其它位操作及宏的使用 35
2.6 执行顺序的控制:操作符的优先关系 37
2.7 工具包(Toolkit)的引入 39
2.8 小结 44
3.1 VIEW程序的说明 45
第三章 查看ASCII文件 45
3.2 VIEW的伪代码 46
3.3 实现VIEW 50
3.4 VIEW程序清单 57
3.5 调试VIEW程序 72
3.6 测量VIEW的性能 89
3.7 改进VIEW 91
第四章 十六进制的转储文件 94
4.1 FILEDUMP程序的说明 94
4.2 FILEDUMP的伪代码 95
4.3 FILEDUMP程序 96
4.4 调试FILEDUMP 104
4.5 FILEDUMP的性能 107
4.6 改进 107
4.7 提高FILEDUMP的性能 107
4.8 小结 113
第五章 分类工具 114
5.1 内部分类算法:插入法和快速分类算法 114
5.2 通用内部分类函数memsort 120
5.3 memsort的性能分析 125
5.4 对memsort的改进 125
5.5 应用:对文本行进行分类 126
5.6 MERGE1外部分类算法 132
5.7 MERGE1源文件 134
5.8 MERGE2:通用的外部分类程序 142
5.9 MERGE2源文件 143
5.10 检测MERGE2的性能 152
第六章 BTREE:一个索引文件模块 154
6.1 几个概念 154
6.2 BTREE模块的功能说明 158
6.3 BTREE伪代码 158
6.4 异常和设计选择 162
6.5 BTREE程序清单 163
6.6 BTREE分析 198
6.7 测试BTREE 199
6.8 一个简单的应用 199
6.9 小结 206
第七章 面向IBM PC的低级工具包 207
7.1 汇编语言工具 207
7.2 测试汇编函数 220
7.3 使工具包适合于其它的编译器和汇编器 226
7.4 使用其它的存储模型 231
7.5 对swint的支持 232
7.6 访问DOS 233
7.7 键盘输入 237
7.8 VIDEO输出函数 242
7.9 直接屏幕输出 248
7.10 时间统计函数 255
7.11 文件I/O库函数的通用化 256
7.12 使用和修改工具包 260
7.13 小结 260
第八章 终端仿真程序 262
8.1 终端仿真程序的工作 262
8.2 一个基本的终端仿真程序 263
8.3 TTYI如何工作 268
8.4 改进TTY1的性能 271
8.5 TTY程序的说明 272
8.6 TTY2源文件 273
8.7 编译、测试和测量TTVz 289
8.8 改进 290
8.9 小结 291
第九章 结束语 292
9.1 使用C的其余部分:优化 292
9.2 处理control-Break 294
9.3 处理致命错误 297
9.4 小结 301