第1章 程序设计基础 1
1.1 程序设计的基本概念 1
1.1.1 程序 1
1.1.2 算法与数据结构 2
1.2 程序设计的一般步骤 6
1.3 结构化程序设计方法 6
小结 7
习题1 7
第2章 C语言概述 8
2.1 C语言的发展及其特点 8
2.1.1 C语言的发展简史 8
2.1.2 C语言的特点 8
2.2 简单的C程序介绍 9
2.2.1 简单的C程序 9
2.2.2 C源程序的结构特点 11
2.2.3 C源程序的书写规则 11
2.3 运行C语言程序的基本步骤 11
小结 12
习题2 12
第3章 数据类型、运算符及表达式 13
3.1 C语言的数据类型 13
3.2 标识符与关键字 14
3.3 常量 14
3.3.1 整型常量 14
3.3.2 实型常量 15
3.3.3 字符型常量 16
3.3.4 字符串常量 17
3.3.5 符号常量 19
3.4 变量 20
3.4.1 变量的定义 20
3.4.2 变量的初始化 22
3.5 运算符及其表达式 24
3.5.1 算术运算符和算术表达式 25
3.5.2 赋值运算符和赋值表达式 28
3.5.3 关系运算符和关系表达式 30
3.5.4 逻辑运算符和逻辑表达式 31
3.5.5 条件运算符和条件表达式 33
3.5.6 逗号运算符和逗号表达式 34
3.5.7 位运算 35
3.5.8 指针运算符、sizeof运算符 37
3.6 运算符的优先级和结合性 38
3.7 表达式中数据类型的转换 39
小结 43
习题3 44
第4章 结构化的C语言程序设计 47
4.1 结构化程序设计概述 47
4.2 顺序结构程序设计 47
4.2.1 赋值语句、复合语句 47
4.2.2 字符输出函数 47
4.2.3 字符输入函数 48
4.2.4 格式化输出函数 49
4.2.5 格式化输入函数 51
4.2.6 顺序结构程序设计举例 53
4.3 选择结构程序设计 55
4.3.1 简单的if结构 55
4.3.2 if...else语句结构 56
4.3.3 if结构的嵌套 57
4.3.4 if...else...if语句结构 58
4.3.5 switch结构 59
4.3.6 选择结构程序设计举例 60
4.4 循环结构程序设计 61
4.4.1 goto语句 61
4.4.2 while语句 61
4.4.3 do...while语句 62
4.4.4 for语句 63
4.4.5 3种循环语句的比较 65
4.4.6 循环嵌套 65
4.4.7 break语句 66
4.4.8 continue语句 66
4.4.9 空语句 67
4.4.10 循环结构程序设计举例 67
小结 69
习题4 69
第5章 数组 74
5.1 一维数组的定义和引用 74
5.1.1 一维数组的定义 74
5.1.2 一维数组元素的引用 75
5.1.3 一维数组的初始化 77
5.1.4 一维数组程序举例 77
5.2 二维数组 80
5.2.1 二维数组的定义 80
5.2.2 二维数组元素的引用 81
5.2.3 二维数组的初始化 81
5.2.4 二维数组程序举例 82
5.3 字符数组 86
5.3.1 字符数组的定义 86
5.3.2 字符数组的初始化 86
5.3.3 字符数组的引用 87
5.3.4 字符串 87
5.3.5 字符串的输入输出 88
5.3.6 字符串操作函数 91
5.3.7 字符数组应用举例 92
小结 95
习题5 96
第6章 函数 100
6.1 函数概述 100
6.1.1 函数的定义 102
6.1.2 函数的调用 104
6.1.3 变量的生命期及作用域 108
6.2 函数参数传递 115
6.2.1 值传递 118
6.2.2 地址传递 119
6.3 递归函数 126
6.4 内部函数与外部函数 131
小结 133
习题6 134
第7章 指针 139
7.1 指针与指针变量的概念 139
7.1.1 指针的概念 139
7.1.2 指针变量 139
7.2 指针变量的定义和引用 141
7.2.1 指针变量的定义 141
7.2.2 指针变量的赋值 141
7.2.3 指针变量的引用 142
7.3 指针和地址运算 145
7.4 指针与数组 147
7.4.1 指针变量与数组 147
7.4.2 指针变量在一维数组中的应用 149
7.4.3 指针变量在多维数组中的应用 150
7.5 指针与字符串 154
7.6 指针数组与多级指针 157
7.6.1 指针数组的定义 157
7.6.2 指针数组的使用 157
7.6.3 多级指针 159
7.7 指针变量与函数 161
7.7.1 函数的操作方式与指针变量 161
7.7.2 指针型函数的定义与使用 161
7.7.3 函数指针的定义与使用 162
7.7.4 与指针有关的函数参数传递方式 164
7.7.5 带参数的main函数和命令行参数 168
7.8 指针与动态内存分配 169
7.8.1 动态存储的概念 169
7.8.2 C语言的动态存储管理方式 170
小结 171
习题7 172
第8章 结构体与共用体 177
8.1 结构体类型和结构体变量 177
8.1.1 结构体类型的定义 177
8.1.2 结构体变量的定义 178
8.1.3 结构体变量的引用 179
8.1.4 结构体变量的初始化 180
8.2 结构体数组 181
8.2.1 结构体数组的定义 181
8.2.2 结构体数组的引用 181
8.2.3 结构体数组的初始化 182
8.3 结构体类型指针 183
8.3.1 指向结构体变量的指针 183
8.3.2 指向结构体数组的指针 185
8.3.3 结构体变量和指向结构体指针作为函数参数 185
8.4 动态内存分配 187
8.5 共用体 189
8.5.1 共用体类型的定义 189
8.5.2 共用体变量的定义 190
8.5.3 共用体变量的引用和初始化 190
8.6 枚举类型 191
8.6.1 枚举类型的说明 192
8.6.2 枚举型变量的定义 192
8.7 用typedef定义类型 194
小结 195
习题8 196
第9章 文件 200
9.1 文件概述 200
9.1.1 文件的概念 200
9.1.2 文件类型指针 202
9.2 文件的打开与关闭 203
9.2.1 文件的打开 203
9.2.2 文件的关闭 205
9.3 文件的读写 206
9.3.1 文件尾测试函数 206
9.3.2 读/写字符函数 206
9.3.3 读/写字符串函数 208
9.3.4 读/写数据函数 210
9.3.5 格式读/写函数 212
9.4 其他函数 213
9.4.1 文件头定位函数 213
9.4.2 文件随机定位函数 214
9.4.3 出错检测函数 215
小结 215
习题9 215
第10章 编译预处理 217
10.1 宏定义 217
10.1.1 不带参数的宏定义 217
10.1.2 带参数的宏定义 219
10.2 文件包含处理 221
10.3 条件编译 223
小结 226
习题10 227
附录A C语言的字符集-ASC II字符表 228
附录B C语言的关键字 229
附录C C语言的库函数 230
附录D Turbo C常见英文错误提示及含义 237
附录E 习题参考答案 241
参考文献 258