1-1 C语言产生的历史背景 1
第1章 C语言概述 1
1-2 C语言的特点 2
1-3 C程序的基本组成 2
1-4 本章小结 4
第2章 C语言的基础知识 6
2-1 数据类型 6
2-2 常量 6
2-2-1 整型常量 6
2-2-2 实型常量 7
2-2-3 字符常量 8
2-2-4 字符串常量 9
2-2-5 符号常量 9
2-3-1 变量的概念 10
2-3 变量 10
2-3-2 变量的定义与初始化 11
2-4 C语言的运算符 14
2-4-1 C运算符概述 14
2-4-2 C运算符的优先级与结合性 15
2-5 算术运算符与算术表达式 16
2-5-1 算术运算符 16
2-5-2 自增与自减运算符 16
2-5-3 算术表达式 17
2-5-4 表达式中数据间的混合运算与类型转换 18
2-6 赋值运算符和赋值表达式 20
2-6-1 赋值运算符 20
2-6-2 复合赋值运算符 20
2-8 本章小结 21
2-7 逗号运算符和逗号表达式 21
3-1 C语句概述 23
第3章 顺序结构程序设计 23
3-2 赋值语句 24
3-3 数据的输入/输出 25
3-3-1 字符数据的输入/输出 25
3-3-2 格式的输入/输出 26
3-4 程序举例 32
3-5 本章小结 33
习题 34
4-1-1 关系运算符 36
4-1-2 优先次序 36
4-1-3 关系表达式 36
4-1 关系运算符和关系表达式 36
第4章 选择结构程序设计 36
4-2 逻辑运算符和逻辑表达式 37
4-2-1 逻辑运算符 37
4-2-2 逻辑表达式 37
4-3 if语句 38
4-3-1 if语句的三种基本格式 38
4-3-2 if语句的嵌套 40
4-4 条件运算符?: 41
4-5 switch语句 42
4-6 程序举例 44
4-7 本章小结 47
习题 48
5-2-2 goto和if构成的循环 49
5-2-1 无条件转移语句goto 49
5-2 goto语句及用goto构成的循环 49
5-1 概述 49
第5章 循环结构程序设计 49
5-3 while循环 50
5-4 do...while循环 51
5-5 for循环 52
5-6 break语句和continue语句 54
5-6-1 break语句 54
5-6-2 continue语句 54
5-7 多重循环 56
5-8 程序举例 59
5-9 本章小结 65
5-9-1 编写循环程序可能遇到的几个问题 65
5-9-2 循环结构程序设计 68
习题 69
第6章 数组 70
6-1 一维数组 70
6-1-1 一维数组的定义 70
6-1-2 一维数组的初始化 70
6-1-3 一维数组元素的引用 71
6-1-4 一维数组应用举例 71
6-2 二维数组 79
6-2-1 二维数组的定义 79
6-2-2 二维数组的存储结构 80
6-2-3 二维数组的初始化 80
6-2-4 二维数组元素的引用 81
6-2-5 二维数组应用举例 82
6-3-2 字符数组的初始化 86
6-3-1 字符数组的定义 86
6-3 字符数组 86
6-3-3 字符数组的引用 87
6-3-4 字符串和字符串的结束标志 88
6-3-5 字符数组的输入/输出 88
6-3-6 字符串处理函数 89
6-3-7 字符数组应用举例 92
6-4 本章小结 95
习题 96
第7章 函数和预处理命令 97
7-1 概述 97
7-2 函数的定义 97
7-3-3 函数调用的方式 99
7-3-2 函数调用的规则 99
7-3-1 函数调用的格式 99
7-3 函数的调用 99
7-3-4 函数的传值调用 100
7-4 函数的返回值 100
7-4-1 返回语句return 100
7-4-2 void类型函数 101
7-5 对被调函数的声明 102
7-6 函数的嵌套调用 104
7-7 函数的递归调用 106
7-7-1 递归模型 107
7-7-2 递归的执行过程 107
7-8 数组作为函数的参数 109
7-8-1 数组元素作函数的参数 109
7-8-2 数组名作函数的参数 110
7-8-3 多维数组名作函数的参数 111
7-9-1 局部变量 112
7-9 局部变量和全局变量 112
7-9-2 全局变量 113
7-9-3 外部变量的声明 115
7-10 变量的存储类别 116
7-10-1 内部变量的存储类型 117
7-10-2 外部变量的存储类型 119
7-10-3 存储类型小结 120
7-1 内部函数和外部函数 121
7-11-1 内部函数 121
7-11-2 外部函数 121
7-12 编译预处理 122
7-12-1 宏定义 122
7-12-2 文件包含 126
7-12-3 条件编译 128
7-13 程序举例 130
7-14 本章小结 135
习题 136
第8章 指针 138
8-1 地址和指针的概念 138
8-2 指向变量的指针变量 139
8-2-1 指向变量的指针变量的定义 139
8-2-2 指针运算符 139
8-2-3 指针变量的引用 140
8-2-4 指针变量的初始化 141
8-2-5 指针变量的运算 141
8-2-6 指针变量作函数的参数 144
8-3 数组的指针和指向数组的指针变量 146
8-3-1 指向数组元素的指针变量的定义 146
8-3-2 通过指针引用数组元素 147
8-3-3 数组名作为函数的参数 149
8-4 指向含有n个元素的一维数组的指针变量 152
8-4-1 指向含有n个元素的一维数组的指针变量 152
8-4-2 通过指向一维数组的指针变量引用多维数组的元素 154
8-5 字符串的指针和指向字符串的指针变量 156
8-5-1 字符串的指针 156
8-5-2 指向字符串的指针变量的定义 157
8-5-3 指向字符串的指针变量的初始化 157
8-6 函数的指针和指向函数的指针变量 161
8-6-1 指向函数的指针变量的定义 161
8-6-2 用指向函数的指针变量调用函数 161
8-6-3 函数的指针作函数的参数 162
8-7 返回指针的函数 164
8-8-1 指针数组的定义 167
8-8 指针数组 167
8-8-2 指针数组的初始化 168
8-8-3 指针数组作指针型函数的参数 170
8-9 指向指针的指针 171
8-9-1 指向指针的指针变量的定义 172
8-9-2 main()函数的参数 174
8-10 本章小结 176
习题 180
第9章 结构体和共用体 181
9-1 结构体 181
9-1-1 结构类型定义 181
9-1-2 结构体类型变量的说明 181
9-2 结构体变量的引用 183
9-2-1 结构体变量的赋值 183
9-3 结构体数组 184
9-2-2 结构体变量的初始化 184
9-4 结构体指针变量 186
9-4-1 结构体指针变量的说明 186
9-4-2 结构体指针变量的使用 186
9-5 动态存储分配 189
9-6 链表结构 190
9-6-1 链表概述 190
9-6-2 单向链表的基本操作 192
9-7 共用体 200
9-7-1 共用体的定义 201
9-7-2 共用体变量的说明 201
9-7-3 共用体变量的赋值和使用 202
9-8 枚举类型 203
9-8-1 枚举类型的定义和枚举变量的说明 203
9-8-2 枚举类型变量的赋值和使用 204
9-8-3 枚举变量的输入/输出 205
9-9 程序举例 206
9-10 typedef定义新的类型标识符 207
9-11 本章小结 209
习题 211
第10章 文件 212
10-1 文件的基本概念 212
10-1-1 文件的分类 212
10-1-2 文件操作过程 213
10-1-3 文件缓冲区 213
10-2 文件类型指针 214
10-3 文件的打开与关闭 214
10-3-1 文件的打开函数fopen 214
10-4-1 字符读写函数 216
10-3-2 文件的关闭函数fclose 216
10-4 文件的读写 216
10-4-2 字符串读写函数 219
10-4-3 数据块读写函数 220
10-4-4 格式化读写函数 222
10-5 文件的随机读写 223
10-5-1 rewind函数 223
10-5-2 fseek函数 223
10-6 文件检测函数 224
10-6-1 文件结束检测函数feof 224
10-6-2 读写文件出错检测函数ferror 224
10-6-3 clearerr函数 224
10-8 本章小结 225
习题 225
10-7 C库文件 225
第11章 位运算 226
11-1 位运算符和位运算 226
11-1-1 位运算符 226
11-1-2 位运算 226
11-2 位段结构 231
11-2-1 位域的定义和位域变量的说明 231
11-2-2 位域的使用 232
11-3 本章小结 233
附录A C语言中的关键字 234
附录B 部分字符的ASCII码对照表 235
附录C 运算符的优先级与结合性 236
附录D Turbo C库函数 237
参考文献 253