第1章 C语言概述及程序设计基础 1
1.1 C语言的发展及特点 1
1.1.1 C语言的发展 1
1.1.2 C语言的特点 1
1.2 C语言程序的基本结构 2
1.2.1 C语言程序的基本结构 2
1.2.2 C语言的关键字 4
1.3 编译预处理 5
1.3.1 宏定义 5
1.3.2 文件包含 10
1.3.3 条件编译 10
1.4 程序设计基础 12
1.4.1 算法概念 12
1.4.2 算法的表示 13
1.4.3 程序的三种基本结构 15
1.4.4 程序的书写风格和书写格式 16
1.5 Visual C++6.0编程环境 17
1.6 本章小结 21
习题一 22
第2章 简单的C语言编程 24
2.1 标识符 24
2.1.1 字符集 24
2.1.2 标识符概述 24
2.1.3 标识符分类 25
2.2 C语言的数据类型 26
2.2.1 数据类型的概念与分类 26
2.2.2 数据类型的作用 27
2.2.3 整型数据 27
2.2.4 实型数据 30
2.2.5 字符型数据 32
2.3 常量与变量 34
2.3.1 常量 34
2.3.2 符号常量 35
2.3.3 变量 35
2.3.4 变量的初始化 35
2.4 C语言语句 36
2.4.1 C语句概述 36
2.4.2 语句分类 37
2.5 表达式与赋值语句 38
2.5.1 运算符 38
2.5.2 表达式 42
2.5.3 赋值语句 42
2.5.4 类型转换 43
2.6 位运算 44
2.6.1 位运算符与位运算 44
2.6.2 位域 47
2.7 格式化输入与输出 49
2.7.1 格式化输出 49
2.7.2 格式化输入 52
2.8 字符数据的输入与输出 54
2.8.1 字符输出 54
2.8.2 字符输入 55
2.9 本章小结 55
习题二 56
第3章 选择结构程序设计 59
3.1 关系运算符和关系表达式 59
3.1.1 关系运算符及其优先级 59
3.1.2 关系表达式 59
3.2 逻辑运算符及逻辑表达式 60
3.2.1 逻辑运算符及其优先级 60
3.2.2 逻辑表达式 61
3.3 条件运算符与条件表达式 62
3.3.1 条件运算符及其优先级 62
3.3.2 条件表达式 62
3.4 if语句 63
3.4.1 简单if语句 63
3.4.2 双分支if语句 64
3.4.3 多分支if语句 65
3.4.4 if语句使用说明 66
3.5 switch语句 66
3.6 选择结构的嵌套 69
3.7 应用举例 73
3.8 本章小结 74
习题三 74
第4章 循环结构程序设计 77
4.1 概述 77
4.2 while语句 77
4.3 do…while语句 79
4.4 for语句 80
4.5 三种循环语句的比较 83
4.6 改变循环执行的状态 84
4.6.1 break语句 84
4.6.2 continue语句 85
4.6.3 break语句和continue语句的区别 86
4.7 多重循环 87
4.8 应用举例 89
4.9 本章小结 92
习题四 92
第5章 数组 95
5.1 数组和数组元素 95
5.2 一维数组 95
5.2.1 一维数组的定义和引用 96
5.2.2 一维数组的初始化 97
5.2.3 一维数组应用举例 97
5.3 二维数组 101
5.3.1 二维数组的定义与引用 101
5.3.2 二维数组的初始化 102
5.3.3 二维数组应用举例 103
5.4 字符数组 106
5.4.1 字符数组的定义与引用 107
5.4.2 字符数组的初始化 107
5.4.3 字符数组的输入和输出 108
5.4.4 字符处理函数 110
5.4.5 字符数组应用举例 113
5.5 本章小结 114
习题五 114
第6章 函数 116
6.1 模块化程序设计 116
6.1.1 模块化程序设计概述 116
6.1.2 函数概述 117
6.2 函数的分类与定义 118
6.2.1 函数的分类 118
6.2.2 函数的定义 118
6.3 函数的调用与执行 120
6.3.1 函数的调用 120
6.3.2 函数说明语句 122
6.3.3 函数的参数与参数传递 123
6.3.4 函数的返回值 124
6.3.5 函数的执行 125
6.4 数组作为函数参数 125
6.4.1 数组元素作函数参数 125
6.4.2 数组名作为函数参数 126
6.5 函数的嵌套调用与递归调用 129
6.5.1 函数的嵌套调用 129
6.5.2 函数的递归调用 131
6.6 变量的作用域 135
6.6.1 局部变量 135
6.6.2 全局变量 137
6.7 变量的存储类别 139
6.7.1 变量的存储方式 139
6.7.2 变量的存储类别 140
6.8 内部函数和外部函数 144
6.8.1 内部函数 144
6.8.2 外部函数 144
6.9 应用举例 146
6.10 本章小结 149
习题六 149
第7章 结构体与共用体 151
7.1 结构体类型及变量的定义 151
7.1.1 结构体概述 151
7.1.2 结构体类型的定义 151
7.1.3 结构体变量的定义 152
7.2 结构体变量的初始化和引用 153
7.2.1 结构体变量的引用 153
7.2.2 结构体变量的初始化 154
7.3 结构体数组 155
7.3.1 结构体数组的定义 155
7.3.2 结构体数组的初始化 155
7.3.3 结构体数组的应用 156
7.4 共用体 157
7.4.1 共用体的概念 157
7.4.2 共用体变量的定义 158
7.4.3 共用体变量的引用 159
7.4.4 共用体类型数据的特点 159
7.4.5 共用体变量的应用 160
7.5 枚举类型 161
7.5.1 枚举类型的定义和枚举变量的说明 161
7.5.2 枚举类型变量的赋值和使用 162
7.6 用typedef定义用户自定义类型 163
7.7 本章小结 164
习题七 165
第8章 指针 166
8.1 指针的定义 166
8.1.1 地址与变量的地址 166
8.1.2 指针与指针变量 167
8.2 指针变量的定义和使用 169
8.2.1 指针变量的定义 169
8.2.2 指针变量的赋值 170
8.2.3 指针变量的运算 171
8.2.4 指针变量的进一步说明 176
8.3 指针与数组 177
8.3.1 指向数组元素的指针变量 177
8.3.2 指向数组的指针 181
8.3.3 指针数组 185
8.4 指针与字符串 186
8.4.1 字符串的表示 187
8.4.2 字符串指针变量 187
8.4.3 字符串指针变量与字符数组的区别 188
8.4.4 用指针数组表示字符串组 189
8.5 指针变量作为函数参数 190
8.5.1 形参是指针变量,实参是变量的地址 190
8.5.2 形参是指针变量,实参是指针变量 193
8.5.3 数组或指针变量作为函数的参数 195
8.5.4 指针数组作为函数的参数 199
8.6 指向函数的指针变量与指针型函数 200
8.6.1 指向函数的指针变量 200
8.6.2 指针型函数 201
8.7 二重指针与带参数的 main函数 202
8.7.1 二重指针与指针数组的关系 202
8.7.2 main函数的参数 204
8.8 结构指针变量的说明和使用 206
8.8.1 指向结构变量的指针 206
8.8.2 指向结构数组元素的指针 207
8.8.3 结构指针变量作函数参数 209
8.9 动态存储分配与链表 210
8.9.1 动态存储分配 210
8.9.2 链表的概念与表示 212
8.9.3 链表的操作 213
8.10 应用举例 217
8.11 本章小结 221
习题八 222
第9章 文件 223
9.1 C文件的概念 223
9.1.1 文件与文件名 223
9.1.2 文件分类 224
9.1.3 文件缓冲区 225
9.1.4 文件类型指针 226
9.2 打开与关闭文件 227
9.2.1 fopen函数 227
9.2.2 fclose函数 229
9.3 顺序读写文件数据 230
9.3.1 读写字符函数fgetc和fputc 230
9.3.2 读写字符串函数fgets和fputs 233
9.3.3 格式化读写函数fscanf和fprintf 236
9.3.4 读写块数据函数fread和fwrite 238
9.4 随机读写文件数据 239
9.4.1 文件读写位置定位 240
9.4.2 随机读写函数 240
9.5 文件检测函数 241
9.5.1 文件结束检测函数 241
9.5.2 读写文件出错检测函数 242
9.5.3 文件出错标志和文件结束标志置0函数 242
9.6 应用举例 242
9.7 本章小结 246
习题九 247
附录A ASCⅡ表(American Standard Code for Information Interchange) 251
附录B C语言的保留字 253
附录C C语言运算符和结合性 254
附录D C语言常用语法提要 256
附录E C语言常用库函数 258
参考文献 264