第1章 C语言概述 1
1.1 C语言的由来和发展 1
1.1.1 程序设计语言 1
1.1.2 C语言的发展 3
1.2 C语言的特点 4
1.3 C语言的程序结构 5
1.3.1 一个C语言的示范程序 5
1.3.2 C程序的结构 7
1.4 利用Turbo C系统运行C程序 8
1.4.1 Turbo C系统简介 8
1.4.2 运行C程序的步骤 15
1.5 习题 19
第2章 数据类型、运算符与表达式 20
2.1 C语言的数据类型 20
2.2 常量和变量 21
2.2.1 常量 21
2.2.2 变量 22
2.2.3 变量声明和初始化 22
2.2.4 变量赋值 23
2.3 整数类型 24
2.3.1 整型常量 24
2.3.2 整型变量 24
2.4 实数类型 25
2.4.1 实型常量 25
2.4.2 实型变量 25
2.5 字符类型 25
2.5.1 字符型常量 25
2.5.2 字符型变量 27
2.6 运算符与表达式 29
2.6.1 算术运算符和算术表达式 29
2.6.2 逗号运算符和逗号表达式 33
2.6.3 条件运算符和条件表达式 34
2.6.4 不同类型数据之间的转换 36
2.7 习题 38
第3章 数据的输入和输出 41
3.1 字符型数据的输入输出函数 41
3.1.1 putchar函数 41
3.1.2 getchar函数 42
3.1.3 puts函数和gets函数 43
3.2 格式输入输出函数 44
3.2.1 printf函数 44
3.2.2 scanf函数 51
3.3 习题 56
第4章 结构化程序设计 59
4.1 程序的3种基本结构 59
4.2 选择结构程序设计 60
4.2.1 关系运算符和关系表达式 61
4.2.2 逻辑运算符和逻辑表达式 61
4.2.3 if语句 63
4.2.4 switch语句 68
4.2.5 应用举例 71
4.2.6 本节小结 73
4.3 循环结构程序设计 73
4.3.1 goto语句 73
4.3.2 while语句 75
4.3.3 do-while语句 78
4.3.4 for语句 80
4.3.5 循环的嵌套 83
4.3.6 break语句和continue语句 86
4.3.7 程序举例 88
4.3.8 本节小结 89
4.4 编译预处理 90
4.4.1 宏定义 90
4.4.2 文件包含 93
4.4.3 条件编译 95
4.4.4 本节小结 96
4.5 习题 97
第5章 函数 101
5.1 函数的定义和调用 101
5.1.1 函数的定义 101
5.1.2 函数的调用 103
5.2 函数的参数与返回值 105
5.2.1 形式参数和实际参数 105
5.2.2 函数的返回值 106
5.3 函数的嵌套调用与递归调用 108
5.3.1 函数的嵌套调用 108
5.3.2 函数的递归调用 111
5.4 局部变量与全局变量 114
5.4.1 局部变量 114
5.4.2 全局变量 115
5.4.3 变量的存储类别 117
5.5 内部函数与外部函数 121
5.5.1 内部函数 121
5.5.2 外部函数 121
5.6 习题 122
第6章 数组 124
6.1 一维数组 124
6.1.1 一维数组的定义 124
6.1.2 一维数组元素的引用 125
6.1.3 一维数组的初始化 126
6.1.4 一维数组的应用举例 126
6.2 二维数组 129
6.2.1 二维数组的定义 129
6.2.2 二维数组元素的引用 129
6.2.3 二维数组的初始化 130
6.2.4 二维数组的应用举例 131
6.3 字符数组 132
6.3.1 字符数组的定义、引用和初始化 132
6.3.2 字符串处理函数 135
6.3.3 字符串应用举例 138
6.4 习题 141
第7章 指针类型 146
7.1 指针概述 146
7.1.1 变量的地址 146
7.1.2 指针的类型和指针变量 147
7.1.3 指针运算符和地址运算符 149
7.2 指针与数组 152
7.2.1 一维数组的指针 152
7.2.2 二维数组的指针 157
7.2.3 指向字符串的指针 159
7.2.4 指向一维数组的指针 163
7.2.5 指针数组与main函数中的参数 164
7.3 指针与函数 167
7.3.1 指针作为函数的参数 167
7.3.2 返回指针值的函数 170
7.3.3 指向函数的指针 172
7.4 应用举例 174
7.5 习题 177
第8章 结构体与共用体 180
8.1 结构体 180
8.1.1 结构体类型的说明 180
8.1.2 结构体变量的定义、引用和初始化 180
8.1.3 用结构体变量作为函数的参数 183
8.2 结构体数组 184
8.2.1 定义结构体数组 184
8.2.2 结构体数组的初始化 184
8.2.3 结构体数组的应用 185
8.3 结构体指针 186
8.3.1 指向结构体变量的指针 186
8.3.2 用指向结构体变量的指针作为函数的参数 187
8.3.3 用指针处理链表 188
8.4 共用体 195
8.4.1 共用体的概念 195
8.4.2 共用体类型的定义 196
8.4.3 共用体类型变量的定义 196
8.4.4 共用体变量的引用 197
8.5 枚举类型 199
8.5.1 枚举类型的定义 199
8.5.2 枚举变量的定义 200
8.6 用typedef定义类型 201
8.6.1 定义基本类型的别名 201
8.6.2 定义自定义的数据类型的别名 202
8.7 习题 203
第9章 位运算 206
9.1 位运算符 206
9.1.1 按位与运算符 206
9.1.2 按位或运算符 207
9.1.3 按位异或运算符 208
9.1.4 取反运算符 209
9.1.5 左移运算符 209
9.1.6 右移运算符 210
9.2 位运算的复合赋值运算符 211
9.2.1 复合赋值运算符 211
9.2.2 位运算符的优先级 211
9.3 习题 212
第10章 文件 214
10.1 C文件概述 214
10.1.1 文件的分类 214
10.1.2 文件指针 214
10.2 文件的打开与关闭 215
10.2.1 文件的打开 215
10.2.2 文件的关闭 216
10.3 文件的输入输出操作 217
10.3.1 字符输入输出函数 217
10.3.2 字符串输入输出函数 219
10.3.3 数据输入输出函数 220
10.3.4 格式化输入输出函数 222
10.4 文件定位函数与随机读写 223
10.4.1 文件定位函数 223
10.4.2 随机读写 224
10.5 习题 225
附录Ⅰ C语言中的关键字 226
附录Ⅱ 运算符的优先级别和结合方向 227
附录Ⅲ 常用字符与ASCII码对照表 229
附录Ⅳ 常用的Turbo C库函数 230
参考文献 234