第1章 程序设计基础 1
1.1 程序设计基本概念 1
1.2 结构化程序设计 5
1.3 C语言简介 11
1.3.1 C语言的历史 11
1.3.2 C语言的特点 12
1.3.3 C程序结构 14
1.3.4 C语言的词汇、数据类型、常量和变量 19
1.4 C程序的编译和运行 23
思考题与习题 25
第2章 数据类型(1)——基本数据类型和数组 26
2.1 基本数据类型 26
2.1.1 整型 26
2.1.2 实型 28
2.1.3 字符型 30
2.1.4 类型转换 32
2.2 基本的输入和输出库函数 34
2.3 运算符和表达式 44
2.3.1 算术运算符 44
2.3.2 关系运算符和逻辑运算符 46
2.3.3 位运算符和移位运算符 48
2.3.4 其他运算符 51
2.3.5 表达式 54
2.4 数组和字符串 60
2.4.1 数组的基本概念 60
2.4.2 一维数组 61
2.4.3 多维数组 64
2.4.4 字符串 66
思考题与习题 71
3.1 表达式语句和空语句 75
第3章 语句和控制结构 75
3.2 控制转移语句 77
3.3 顺序控制语句 79
3.4 选择控制语句 80
3.4.1 if条件选择语句 80
3.4.2 switch多路选择语句 87
3.5 重复控制语句 89
3.5.1 while语句 89
3.5.2 do_while语句 93
3.5.3 for语句 95
3.6 控制结构的嵌套 102
3.7 程序设计实例(1) 106
思考题与习题 125
第4章 数据类型(2)——指针 132
4.1 变量及其地址和内容 132
4.2.1 指针的基本概念 133
4.2 指针 133
4.2.2 指针变量的定义 134
4.2.3 指针变量和它所指的变量 135
4.3 指向数组元素的指针 138
4.4 指向数组的指针 148
4.5 指针数组 153
4.6 多级指针 157
思考题与习题 159
第5章 函数程序设计 161
5.1 库函数的使用 162
5.2 函数定义、函数调用、函数形参和函数说明 163
5.2.1 函数定义 163
5.2.2 函数调用 166
5.2.3 函数形参 167
5.2.4 函数说明 174
5.3 函数指针 176
5.4 递归函数 181
5.5 命令行参数 182
5.6 作用域与存储类 185
5.6.1 作用域 185
5.6.2 存储类 188
5.6.3 变量说明和定义 193
5.7 编译预处理命令简介 195
5.7.1 宏定义 196
5.7.2 文件包含 201
5.7.3 条件编译 202
5.8 程序设计实例(2) 206
思考题与习题 217
第6章 数据类型(3)——结构 220
6.1 结构 220
6.2 结构数组与指向结构的指针 225
6.3 链表 231
6.3.1 链表概述 231
6.3.2 内存的动态分配和释放库函数 233
6.3.3 链表操作 234
6.4 程序设计实例(3) 242
6.5 联合、位域、枚举和类型定义 255
6.5.1 联合 255
6.5.2 位域 259
6.5.3 枚举类型 260
6.5.4 typedef(类型定义) 263
思考题与习题 264
第7章 线性表上的程序设计 267
7.1 线性表的基本运算和存储结构 267
7.2 线性表的查找运算 270
7.2.1 顺序查找 271
7.2.2 二分查找 273
7.3 线性表的插入运算 275
7.4 线性表的删除运算 278
7.5 几种简单的内部排序方法 281
7.5.1 选择排序 281
7.5.2 插入排序 284
7.5.3 冒泡排序 286
7.6 栈和队列 290
7.6.1 栈 290
7.6.2 队列 294
思考题与习题 299
第8章 树与二叉树 301
8.1 树 301
8.1.1 树的基本概念 301
8.1.2 树的标准存储结构 303
8.1.3 树的遍历 304
8.2.1 二叉树的基本概念 307
8.2 二义树 307
8.2.2 二叉树的遍历 308
8.3 查找树上的基本操作 311
思考题与习题 318
第9章 数据类型(4)——文件 320
9.1 文件 320
9.1.1 文件的基本概念 320
9.1.2 文件的使用 322
9.2 基于数据文件的程序设计实例 331
思考题与习题 348
附录 350
A.1 Turbo C 2.0上机方法简介 350
A.2 C语言常用库函数 359
A.3 运算符表 372
A.4 常用字符与ASCII代码对照表 373