第一章 C语言概述 1
1.1 C语言的起源与特点 1
1.1.1 C语言的起源 1
1.1.2 C语言的特点 1
1.2 C语言程序的格式 3
1.3 Turbo C2.0上机初步 5
1.3.1 准备程序 5
1.3.2 启动Turbo C进入集成开发环境 6
1.3.3 程序运行 10
第二章 C语言表达式 12
2.1 数据类型 12
2.2 常量 13
2.3 变量 14
2.3.1 整型变量 15
2.3.2 实型变量 16
2.3.3 字符变量 16
2.4 运算符和表达式 16
2.4.1 算术运算符和算术表达式 17
2.4.2 关系运算符及关系表达式 19
2.4.3 逻辑运算符及逻辑表达式 20
2.4.4 赋值运算符 22
习题 23
第三章 程序控制语句 24
3.1 if语句 24
3.1.1 简单的if语句 24
3.1.2 if-else语句 25
3.1.3 else if 语句 26
3.2 switch语句 28
3.3 for循环语句 32
3.4 while语句 34
3.5 do while语句 35
习题 39
第四章 函数 41
4.1 函数定义的一般形式 41
4.2 函数参数与函数的返回值 43
4.2.1 形式参数和实际参数 43
4.2.2 函数的返回值 44
4.3 函数调用的一般形式 44
4.3.1 函数调用的一般形式 44
4.3.2 函数调用的方式 44
4.3.3 库函数的调用 47
4.4 函数的嵌套调用 50
4.5 局部变量与全局变量 51
4.5.1 局部变量 51
4.5.2 全局变量 52
习题 54
第五章 指针和数组 57
5.1 指针变量与指针表达式 57
5.2 数组 59
5.2.1 一维数组 59
5.2.2 指向数组的指针 60
5.2.3 二维数组 61
5.3 字符串与字符串函数 62
5.3.1 字符串输入 62
5.3.2 字符串函数 63
5.3.3 字符串数组 64
5.4 数组初始化 66
5.4.1 数组初始化的一般形式 66
5.4.2 不定大小数组初始化 66
习题 68
第六章 结构与动态内存分配 70
6.1 结构类型和结构变量 70
6.1.1 结构类型的定义 70
6.1.2 结构变量的定义 71
6.1.3 结构变量的初始化 72
6.2 结构变量成员的引用 74
6.3 结构数组 76
6.3.1 结构数组的定义 76
6.3.2 结构数组的初始化 77
6.3.3 举例 77
6.4 结构指针 79
6.4.1 结构指针的定义 79
6.4.2 结构指针的使用 80
6.4.3 举例 81
6.5 动态内存分配 83
6.5.1 C语言程序的存贮空间的分配 83
6.5.2 动态内存分配 84
6.5.3 动态内存分配函数的使用 84
习题 85
第七章 数据结构概述 87
7.1 数据结构课程的形成与发展 88
7.2 数据结构 88
7.3 基本术语 90
习题 92
第八章 线性表 93
8.1 线性表的逻辑结构 93
8.2 线性表的顺序存贮结构 94
8.3 线性表的链式存贮结构 97
8.3.1 线性链表 97
8.3.2 循环链表 104
8.3.3 双向链表 105
习题 113
第九章 栈和队列 116
9.1 栈 116
9.1.1 栈的定义和基本操作 116
9.1.2 栈的表示和实现 116
9.1.3 链栈 120
9.1.4 栈的应用 122
9.2 栈与递归 123
9.3 队列 126
9.3.1 队列的定义和基本运算 126
9.3.2 队列的顺序存贮结构 126
9.3.3 链队列 129
习题 132
第十章 树 133
10.1 树的基本概念和术语 133
10.2 树的存贮结构 134
10.3 二叉树 136
10.3.1 二叉树的定义和性质 136
10.3.2 二叉树的存贮结构 139
10.3.3 二叉树的建立 140
10.4 遍历二叉树 142
10.4.1 遍历二叉树的定义及递归算法 142
10.4.2 遍历二叉树的非递归算法 143
10.5 二叉树的具体操作 146
10.5.1 排序二叉树 146
10.5.2 二叉树的插入操作 148
10.5.3 二叉树中元素的查找 150
10.5.4 从二叉树中删除一个成员 150
10.5.5 遍历一棵二叉树 153
10.6 哈夫曼树及哈夫曼编码 155
10.6.1 最优二叉树(哈夫曼树) 155
10.6.2 哈夫曼编码 159
10.7 二叉树的应用实例 161
习题 168
第十一章 图 169
11.1 图的概念 169
11.2 图的存贮表示 171
11.2.1 图的邻接矩阵表示 171
11.2.2 图的邻接表表示 174
11.3 图的遍历 177
11.3.1 图的深度优先遍历 177
11.3.2 图的宽度优先遍历 179
11.4 生成树与最小生成树 181
11.4.1 基本概念 181
11.4.2 prim算法的基本思想 181
11.4.3 prim算法的C语言实现 184
11.5 关键路径和最短路径 186
11.5.1 拓扑排序 186
11.5.2 关键路径 192
11.5.3 最短路径 194
习题 197
第十二章 分类与检索 199
12.1 基本概念 199
12.2 选择排序 200
12.3 插入排序 202
12.3.1 直接插入排序 202
12.3.2 二分法插入排序 203
12.4 快速排序 204
12.5 检索 207
习题 209
第十三章 数据结构应用举例 210
13.1 计划网络 210
13.1.1 网络计划的方法 210
13.1.2 关键路径及时间参数计算 212
13.1.3 计划网络程序的主要数据结构 213
13.1.4 计划网络程序的主要函数实现 216
13.1.5 计划网络源程序清单 220
13.2 用链表技术实现下拉式菜单 237
13.2.1 问题提出 237
13.2.2 软件中使用的标准函数 240
13.2.3 下拉式菜单软件包函数 244
13.2.4 下拉式菜单源程序 247
13.2.5 下拉式菜单程序的总结 258
第十四章 Turbo C 2.0集成开发环境 261
14.1 Turbo C 2.0的安装 261
14.1.1 用安装工具INSTALL在硬盘安装TC 261
14.1.2 手工安装TC 262
14.2 Trubo C 2.0集成开发环境简介 263
14.3 C程序的编辑和运行 264
14.3.1 源程序的建立和编辑 264
14.3.2 C程序的编译和运行 268
14.4 C程序的调试 273
14.5 设置TC工作环境 274
14.6 运行环境 279
14.7 调试技巧 280
附录 284
Turbo C 2.0主要库函数的格式和功能 284