第1章 C语言概论 1
1.1 C语言的主要特征 1
1.2 C语言的程序结构 2
1.3 C语言的运行环境简介 4
1.3.1 Turbo C 2.0集成开发环境 4
1.3.2 Visual C++ 6.0开发环境 7
第2章 基本数据类型、运算符和表达式 10
2.1 基本概念 11
2.1.1 C语言字符集 11
2.1.2 标识符 11
2.1.3 关键字 12
2.1.4 常量 12
2.1.5 变量 12
2.2 基本数据类型 13
2.2.1 整型数据 13
2.2.2 实型数据 14
2.2.3 字符型数据 15
2.3 运算符与表达式 17
2.3.1 算术运算符和算术表达式 17
2.3.2 赋值运算符和赋值表达式 21
2.3.3 关系运算符和关系表达式 22
2.3.4 逻辑运算符和逻辑表达式 24
2.3.5 其他运算符 25
2.4 变量的初始化 27
2.5 类型转换 27
2.5.1 自动转换 28
2.5.2 强制类型转换 29
2.6 类型定义 30
第3章 数据的输入输出 32
3.1 数据的输入 32
3.1.1 字符输入函数 32
3.1.2 格式输入函数scanf 33
3.2 数据的输出 36
3.2.1 字符输出函数 36
3.2.2 格式输出函数printf 37
第4章 语句 44
4.1 算法和结构化程序设计 44
4.1.1 算法的概念与举例 44
4.1.2 算法的特性 46
4.1.3 算法的表示 46
4.1.4 结构化程序设计 47
4.2 语句的分类、表达式语句、空语句和复合语句 51
4.2.1 语句的分类 52
4.2.2 表达式语句 52
4.2.3 空语句和复合语句 53
4.3 选择语句 54
4.3.1 if语句 54
4.3.2 if语句的嵌套 56
4.3.3 switch语句 57
4.4 循环语句 59
4.4.1 while语句 60
4.4.2 do-while语句 61
4.4.3 for语句 62
4.4.4 循环的嵌套 65
4.4.5 break语句 66
4.4.6 continue语句 67
4.5 转向语句(goto语句) 68
4.6 程序举例 69
4.6.1 穷举法 69
4.6.2 迭代法 70
第5章 函数 81
5.1 函数的定义和说明 83
5.1.1 函数定义的方法 83
5.1.2 函数类型与函数的返回值 85
5.1.3 对被调用函数的说明和函数原型 88
5.2 函数的调用 89
5.2.1 函数调用的一般形式 90
5.2.2 函数调用的方式 91
5.3 函数的参数 91
5.4 函数的嵌套调用和递归调用 94
5.4.1 函数的嵌套调用 94
5.4.2 递归 96
5.5 变量的作用域及其存储类型 103
5.5.1 变量的生存期与作用域 103
5.5.2 变量的存储类型 104
5.5.3 局部变量 104
5.5.4 全局变量 108
5.5.5 存储类型小结 111
5.6 内部函数、外部函数、系统函数 113
5.6.1 内部函数(又称静态函数) 114
5.6.2 外部函数 114
5.6.3 多个源程序文件的编译和连接 115
5.6.4 系统函数 117
第6章 C语言预处理程序 119
6.1 C语言的预处理命令和预定义宏名 119
6.2 宏替换 120
6.2.1 不带参数的宏替换 120
6.2.2 带参数的宏替换 122
6.2.3 使用宏替换应注意的问题 123
6.3 文件包含 124
6.4 条件编译 126
第7章 数组 131
7.1 一维数组 131
7.1.1 一维数组的定义和引用 131
7.1.2 一维数组的初始化 132
7.2 二维数组 136
7.2.1 二维数组的定义和引用 136
7.2.2 二维数组的初始化 137
7.3 多维数组 138
7.3.1 多维数组的定义、使用与存储 138
7.3.2 多维数组的初始化 139
7.4 字符数组与字符串 140
7.4.1 字符数组与字符串 140
7.4.2 字符数组的初始化 141
7.4.3 字符数组的输入输出 142
7.4.4 字符串处理函数 145
7.5 数组作为函数参数 147
7.5.1 数组元素作为函数参数 147
7.5.2 数组名作为函数参数 147
第8章 结构体和共用体 154
8.1 结构体类型与变量的定义 154
8.1.1 先定义结构体类型,再定义变量 155
8.1.2 在定义结构体类型的同时定义结构体变量 155
8.1.3 在定义无名结构体类型的同时直接定义结构体变量 156
8.2 结构体类型变量的引用 157
8.3 结构体变量的初始化 159
8.4 结构体与数组 159
8.4.1 结构体数组的定义 159
8.4.2 结构体数组的初始化 160
8.5 结构与函数 161
8.5.1 结构体的成员作函数的参数 161
8.5.2 结构体指针作函数的参数 162
8.5.3 结构体作为函数的参数 162
8.6 共用体 164
8.6.1 共用体的概念 164
8.6.2 共用体变量的引用 165
8.6.3 共用体变量的使用 165
8.7 枚举 167
8.8.自定义类型 168
第9章 指针 170
9.1 指针的基本概念 170
9.2 指针变量 171
9.2.1 指针变量的定义 171
9.2.2 指针变量的引用 171
9.2.3 指针运算 174
9.3 指针与结构 174
9.3.1 结构体指针的定义 174
9.3.2 用指针处理链表 176
9.4 指针与函数 181
9.4.1 指针变量作为函数参数 181
9.4.2 函数的指针 182
9.4.3 返回指针值的函数 184
9.5 指针与数组 185
9.5.1 数组指针变量的定义与引用 185
9.5.2 多维数组的指针 187
9.5.3 字符串与指针 189
9.5.4 指向指针的指针 192
第10章 位运算 194
10.1 位运算符与位运算 194
10.1.1 非移位运算符 194
10.1.2 非移位运算符的应用 195
10.1.3 移位运算符 197
10.1.4 位运算赋值运算符 198
10.1.5 数据的字长 198
10.2 程序举例 198
10.3 位段 199
第11章 文件 202
11.1 有关文件的概念 202
11.1.1 文本文件和二进制文件 202
11.1.2 设备文件 202
11.1.3 流 203
11.1.4 缓冲文件系统与非缓冲文件系统 203
11.1.5 文件指针 204
11.2 文件的打开与关闭 204
11.2.1 文件的打开 204
11.2.2 文件的关闭 205
11.3 文件的读写 206
11.3.1 文件的字符读写函数(fgetc和fputc) 206
11.3.2 文件的字符串读写函数(fgets和fputs) 208
11.3.3 文件的数据块读写函数(fread和fwrite) 210
11.3.4 文件的格式化读写函数(fscanf和fprintf) 212
11.4 文件的定位 212
11.4.1 rewind函数 212
11.4.2 fseek函数 213
11.4.3 ftell函数 214
11.5 文件的错误检测 215
11.5.1 ferror函数 215
11.5.2 clearerr函数 216
11.6 小结 216
第12章 C++简介 217
12.1 面向对象的程序设计语言 217
12.2 类与对象 219
12.2.1 类的定义 219
12.2.2 对象的定义 221
12.2.3 构造函数(constructor)与对象变量的初始化 222
12.2.4 析构函数(destructor)与对象变量的释放 223
12.2.5 消息(message)与对象变量的引用 224
12.3 继承性 225
12.4 多态性 228
12.4.1 函数重载 228
12.4.2 运算符重载 230
12.4.3 虚拟函数 232
附录1 ASCII字符编码一览表 234
附录2 运算符的优先级及其结合性 235
附录3 C库函数 236
附录4 C++的基本数据类型 246