第1章 C语言概述 1
1.1 C语言的起源和发展 1
1.2 C语言的特点 1
1.3 C程序的基本结构 2
1.3.1 C语言的基本词汇 2
1.3.2 语句 4
1.3.3 函数 5
1.3.4 标准库 7
1.3.5 C源程序的结构特点 7
1.4 简单的C程序设计 8
1.4.1 格式输出函数printf() 8
1.4.2 格式输入函数scanf() 11
1.4.3 字符输出函数putchar() 14
1.4.4 字符输入函数getchar() 14
1.4.5 赋值语句 15
1.5 C程序的编译与运行 15
1.5.1 C程序的运行 15
1.5.2 C语言常用编程平台Turbo C及Visual C++ 16
1.6 典型程序举例 19
1.7 上机指导 20
1.8 习题 21
第2章 数据类型 26
2.1 C语言的数据类型 26
2.1.1 数据类型 26
2.1.2 数据类型的存储方式与取值范围 27
2.2 常量 28
2.2.1 常量和符号常量 28
2.2.2 整型常量 29
2.2.3 实型常量 30
2.2.4 字符型常量 31
2.2.5 字符串常量 32
2.3 变量 32
2.3.1 变量的类型 32
2.3.2 变量的声明 33
2.3.3 变量的初始化 34
2.4 运算符和表达式 35
2.4.1 算术运算 36
2.4.2 关系运算 38
2.4.3 逻辑运算 39
2.4.4 赋值运算符 40
2.4.5 其他运算符 41
2.5 各类数值型数据间的混合运算 43
2.6 典型程序举例 44
2.7 上机指导 46
2.8 习题 48
第3章 C程序的流程控制 51
3.1 算法 51
3.1.1 算法的概念 51
3.1.2 算法的组成要素 51
3.1.3 算法的描述 52
3.2 选择型程序设计 54
3.2.1 if语句 55
3.2.2 switch语句 61
3.3 循环型程序设计 63
3.3.1 while循环 63
3.3.2 do-while循环 65
3.3.3 for循环 66
3.3.4 循环的嵌套 67
3.3.5 break、continue、goto语句 68
3.4 典型程序举例 70
3.5 上机指导 73
3.6 习题 75
第4章 函数 81
4.1 结构化程序设计方法 81
4.2 函数定义与声明 81
4.2.1 函数定义 81
4.2.2 函数调用与声明 86
4.3 变量的存储类型和作用域 89
4.3.1 变量的存储类型 89
4.3.2 变量的作用域 91
4.4 函数之间的数据传递 96
4.4.1 形参与实参相结合方式 96
4.4.2 函数返回值方式 99
4.4.3 全局变量方式 100
4.5 函数的嵌套调用和递归调用 101
4.5.1 嵌套调用 102
4.5.2 递归调用 103
4.6 内部函数和外部函数 104
4.6.1 内部函数 104
4.6.2 外部函数 105
4.7 多文件的程序开发方法 106
4.7.1 运用项目文件 106
4.7.2 运用文件包含语句 106
4.8 典型程序举例 107
4.9 上机指导 111
4.10 习题 113
第5章 编译预处理 120
5.1 宏定义 120
5.1.1 符号常量 120
5.1.2 带参宏定义 121
5.1.3 终止宏定义 123
5.1.4 书写#define语句的注意事项 123
5.2 文件包含 124
5.3 条件编译 126
5.4 典型程序举例 129
5.5 上机指导 130
5.6 习题 132
第6章 数组 135
6.1 一维数组的定义和初始化 135
6.1.1 一维数组的定义 135
6.1.2 一维数组的初始化 136
6.1.3 数组元素的引用 137
6.2 二维数组和多维数组 139
6.2.1 二维数组及多维数组的定义及存储 139
6.2.2 二维数组的初始化 140
6.2.3 二维数组的引用 141
6.3 字符数组和字符串 142
6.3.1 字符数组的定义 142
6.3.2 字符数组的初始化 143
6.3.3 字符数组的引用 143
6.3.4 字符串的表示 144
6.3.5 字符数组的输入输出 145
6.3.6 字符串处理函数 147
6.4 数组作为函数参数 150
6.4.1 数组元素作为函数参数 150
6.4.2 数组名作为函数参数 151
6.5 典型程序举例 152
6.5.1 一维数组 152
6.5.2 以二维数组作为函数参数 153
6.5.3 使用字符数组 154
6.6 上机指导 155
6.7 习题 158
第7章 指针 163
7.1 指针的概念 163
7.1.1 地址与指针 163
7.1.2 指针的定义 165
7.1.3 指针变量的引用 166
7.1.4 指针运算 168
7.1.5 多级指针 171
7.2 指针与数组 173
7.2.1 指针与一维数组 173
7.2.2 指针与二维数组 175
7.2.3 指向数组的指针 176
7.2.4 指针数组 177
7.3 指针与字符串 179
7.3.1 用字符数组存放一个字符串 179
7.3.2 用指针指向一个字符串 179
7.4 指针与函数 181
7.4.1 指针作为函数参数 182
7.4.2 函数指针 186
7.4.3 指针函数 187
7.5 典型程序举例 188
7.6 上机指导 190
7.7 习题 193
第8章 结构、联合及枚举类型 197
8.1 结构的概念及定义 197
8.1.1 结构的概念 197
8.1.2 结构的定义 197
8.2 结构变量的定义及使用 199
8.2.1 结构变量的定义 199
8.2.2 结构变量的存储 200
8.2.3 结构变量的引用 200
8.2.4 结构变量的初始化 201
8.2.5 结构的输入输出 202
8.3 结构数组 203
8.3.1 结构数组的定义 203
8.3.2 结构数组的初始化 204
8.3.3 结构数组的访问 204
8.4 指向结构的指针 206
8.4.1 结构指针的定义 206
8.4.2 结构指针的初始化 207
8.4.3 用指针访问结构成员 207
8.5 结构作为函数参数 209
8.5.1 结构变量作为函数参数 209
8.5.2 结构指针作为函数参数 210
8.6 链表 212
8.6.1 动态存储管理及链表 212
8.6.2 常用内存管理函数 213
8.6.3 链表的基本操作 215
8.7 联合 219
8.7.1 联合的概念 219
8.7.2 联合的定义 219
8.7.3 联合变量的声明与引用 220
8.8 枚举类型 223
8.8.1 枚举的定义 224
8.8.2 枚举变量的声明 224
8.8.3 枚举变量的使用 225
8.9 类型定义 226
8.9.1 类型定义及使用 226
8.9.2 使用类型定义的几点说明 227
8.10 典型程序举例 227
8.10.1 结构与联合 227
8.10.2 枚举 229
8.10.3 链表 230
8.11 上机指导 231
8.12 习题 233
第9章 位运算 238
9.1 位运算 238
9.1.1 按位与运算符“&” 238
9.1.2 按位或运算符“|” 240
9.1.3 异或运算符“^” 241
9.1.4 取反运算符“~” 243
9.1.5 左移运算符“〈〈” 243
9.1.6 右移运算符“〉〉” 243
9.2 位域 245
9.2.1 位域的概念及定义方法 245
9.2.2 位域变量声明及位域的引用 246
9.3 典型程序举例 248
9.4 上机指导 249
9.5 习题 250
第10章 文件 253
10.1 文件概述 253
10.1.1 文件的概念 253
10.1.2 缓冲文件系统和非缓冲文件系统 254
10.1.3 文件指针 254
10.2 文件的打开与关闭 255
10.2.1 文件的打开(fopen函数) 255
10.2.2 文件的关闭(fclose函数) 256
10.3 文件的读写 257
10.3.1 字符读写函数(fgetc和fputc) 257
10.3.2 字符串读写函数(fgets和fputs) 259
10.3.3 数据块读写函数(fread和fwrite) 260
10.3.4 格式化读写函数(fscanf和fprintf) 262
10.4 文件的随机读写 263
10.4.1 rewind函数 263
10.4.2 fseek函数 264
10.4.3 ftell函数 265
10.5 文件检测 265
10.5.1 文件结束检测函数feof() 265
10.5.2 读写文件出错检测函数ferror() 266
10.5.3 清除标志函数clearerr() 266
10.6 典型程序举例 266
10.7 上机指导 268
10.8 习题 272
第11章 C++入门 276
11.1 C++概述 276
11.2 简单的C++程序 277
11.3 C++对C的扩充 277
11.3.1 C++的输入输出 277
11.3.2 变量的引用 279
11.3.3 变量的作用域 281
11.3.4 内联函数 282
11.3.5 函数重载 283
11.3.6 带默认参数的函数 284
11.3.7 动态存储分配 286
11.4 面向对象概念 287
11.5 类和对象的定义 287
11.5.1 类的定义 287
11.5.2 对象的定义 289
11.6 对象的初始化 291
11.6.1 构造函数 291
11.6.2 析构函数 292
11.7 继承与派生 293
11.7.1 继承与派生的概念 294
11.7.2 派生类的定义格式 294
11.7.3 派生类的3种继承方式 295
10.7.4 派生类的构造函数和析构函数 297
11.8 运算符重载 299
11.9 多态性与虚函数 301
11.10 典型程序举例 303
11.11 上机指导 306
11.12 习题 313
附录A 常用字符与ASCII码对照表 319
附录B 运算符的优先级与结合性 320
附录C Turbo C 2.0常用库函数 321
附录D 参考答案 326
参考文献 333