第1章 C/C++程序设计基础 1
1.1 程序实例 1
1.2 C/C++语言概述 3
1.2.1 C/C++的产生和发展 3
1.2.2 C/C++的特点 4
1.3 程序的实现 5
1.3.1 程序的开发过程 5
1.3.2 Visual C++6.0集成开发环境的使用 6
1.3.3 Visual C++2008集成开发环境的使用 9
1.4 数据的输入/输出 11
1.4.1 I/O流 11
1.4.2 预定义的插入符和提取符 11
1.4.3 简单的I/O格式控制 14
1.4.4 案例:输出字符画 15
小结 16
习题 16
第2章 数据类型和表达式 18
2.1 字符集、标识符与关键字 18
2.1.1 字符集 18
2.1.2 标识符与关键字 18
2.2 数据类型 19
2.3 常量与变量 20
2.3.1 常量 20
2.3.2 变量 21
2.3.3 符号常量 22
2.4 基本数据类型 23
2.4.1 整数数据 23
2.4.2 实型数据 25
2.4.3 字符型数据 27
2.5 运算符与表达式 27
2.5.1 算术运算符与算术表达式 27
2.5.2 自增/自减运算 28
2.5.3 赋值运算符与赋值表达式 29
2.5.4 逗号运算符与逗号表达式 30
2.5.5 求字节运算符sizeof 30
2.5.6 运算符的优先级和结合性 30
2.6 数据类型转换的规则 31
2.6.1 类型自动转换 31
2.6.2 赋值转换 32
2.6.3 强制类型转换 32
2.7 案例:学生的总分及平均分计算 32
小结 33
习题 33
第3章 控制结构 35
3.1 算法 35
3.1.1 算法的概念 35
3.1.2 算法的描述 35
3.1.3 三种基本结构 36
3.1.4 算法的特性 37
3.2 顺序结构程序设计 37
3.2.1 简单语句 37
3.2.2 复合语句 39
3.3 选择结构程序设计 39
3.3.1 关系运算与逻辑运算 40
3.3.2 条件运算符 42
3.3.3 if语句 42
3.3.4 案例:成绩等级判定(一) 44
3.3.5 switch语句 45
3.3.6 案例:成绩等级判定(二) 46
3.4 循环结构程序设计 47
3.4.1 while循环结构 48
3.4.2 案例:计算平均成绩(一) 49
3.4.3 do...while循环结构 50
3.4.4 for循环结构 51
3.4.5 案例:计算平均成绩(二) 52
3.4.6 循环的嵌套 53
3.5 跳转语句 55
3.5.1 continue语句 55
3.5.2 break语句 55
3.5.3 goto语句 57
3.6 案例:小型计算器(一) 57
小结 58
习题 59
第4章 函数(一) 61
4.1 初识函数 61
4.1.1 函数的分类 61
4.1.2 函数的定义 63
4.2 函数的参数和函数的值 64
4.2.1 形式参数和实际参数 64
4.2.2 函数的返回值 66
4.3 函数的调用 66
4.3.1 函数调用的一般形式 66
4.3.2 函数调用方式 67
4.3.3 函数原型 69
4.3.4 函数调用的执行过程 72
4.3.5 函数的嵌套调用 72
4.4 函数的递归调用 73
4.5 案例:小型计算器(二) 76
小结 78
习题 78
第5章 数组 81
5.1 一维数组 81
5.1.1 一维数组的定义 82
5.1.2 一维数组元素的引用 83
5.1.3 一维数组的初始化 84
5.1.4 案例:排序算法 86
5.2 二维数组 89
5.2.1 二维数组的定义 89
5.2.2 二维数组元素的引用 89
5.2.3 二维数组的初始化 91
5.2.4 案例:简单学生成绩管理 93
5.3 字符串与字符数组 95
53.1 字符数组的定义 95
5.3.2 字符串和字符串结束标志 95
5.3.3 字符数组的初始化 95
5.3.4 字符数组的引用 96
5.3.5 字符数组的输入/输出 97
5.3.6 字符串处理函数 100
5.3.7 案例:输入课程的名称按字母顺序排列输出 102
小结 103
习题 104
第6章 指针与引用 107
6.1 指针 107
6.2 指针变量 108
6.2.1 指针变量的定义 108
6.2.2 指针运算符与指针变量赋初值 109
6.2.3 指针变量的赋值运算 110
6.3 指向指针的指针 111
6.4 指针与数组 112
6.4.1 指向数组的指针 112
6.4.2 指针变量的运算 113
6.4.3 指针与字符串 116
6.4.4 指针数组 117
6.4.5 案例:统计学生成绩 118
6.5 引用 119
6.6 动态存储分配 120
6.7 案例:动态存储任意行杨辉三角 122
小结 123
习题 123
第7章 函数(二) 126
7.1 函数的参数传递 126
7.1.1 值传递 126
7.1.2 引用传递 128
7.1.3 数组名作函数参数 130
7.1.4 案例:在不同函数中共享数据 133
7.2 函数与指针 134
7.2.1 指针函数 134
7.2.2 指向函数的指针 136
7.3 内联函数 137
7.4 函数重载 138
7.5 带有缺省参数值的函数 140
7.6 变量的作用域、生存期和存储类别 141
7.6.1 变量的作用域 141
7.6.2 变量的生存期与存储类别 143
7.6.3 内部函数与外部函数 146
7.7 名字空间 147
7.8 案例:小型计算器(三) 148
7.9 案例:学生成绩管理(一) 150
小结 152
习题 153
第8章 编译预处理 154
8.1 宏定义 154
8.2 文件包含 159
8.3 条件编译 160
小结 162
习题 163
第9章 自定义数据类型 165
9.1 结构体 165
9.1.1 结构体类型的声明 165
9.1.2 结构体类型变量 167
9.1.3 结构体类型变量的初始化 168
9.1.4 结构体类型变量的引用 169
9.1.5 结构体类型数组 170
9.1.6 指向结构体类型数据的指针 173
9.1.7 结构体与函数 174
9.2 枚举类型 179
9.3 用typedef定义类型 181
9.4 位运算 181
9.5 案例:学生成绩管理(二) 182
小结 184
习题 185
第10章 类和对象 188
10.1 面向对象方法的基本特征 188
10.1.1 一个简单的面向对象的C++程序 188
10.1.2 基本概念 189
10.2 类与对象 190
10.2.1 类的声明 190
10.2.2 类的成员函数 191
10.2.3 对象 193
10.2.4 数据封装 194
10.3 构造函数与析构函数 195
10.3.1 构造函数 195
10.3.2 拷贝构造函数 196
10.3.3 析构函数 199
10.4 对象数组和对象指针 200
10.4.1 对象数组 200
10.4.2 指向对象的指针 202
10.4.3 this指针 203
10.4.4 对象的动态建立与释放 206
10.5 类的静态成员 207
10.5.1 静态数据成员 207
10.5.2 静态成员函数 208
10.6 类的组合 209
10.7 友元 210
10.7.1 友元函数 211
10.7.2 友元函数为其他类的成员函数 211
10.7.3 友元类 212
10.8 案例:小型计算器(四) 214
10.9 案例:学生成绩管理(三) 215
小结 217
习题 217
第11章 继承和多态 220
11.1 类的继承 220
11.1.1 派生类的声明 221
11.1.2 派生类的生成过程 222
11.1.3 派生类的构造函数和析构函数 224
11.1.4 多继承 227
11.1.5 赋值兼容规则 232
11.2 多态性 233
11.2.1 虚函数 234
11.2.2 纯虚函数与抽象类 236
11.3 运算符重载 238
11.3.1 运算符重载为一般函数 238
11.3.2 运算符重载为友元函数 239
11.3.3 运算符重载为成员函数 240
11.4 模板 242
11.4.1 模板的概念 242
11.4.2 函数模板的写法 242
11.4.3 类模板的写法 243
11.5 案例:人员信息管理 244
小结 247
习题 248
第12章 C++流 249
12.1 流的概念 249
12.2 I/O格式的控制 251
12.2.1 ios类中的格式化常量 251
12.2.2 ios类中的成员函数 252
12.2.3 预定义的操纵算子 254
12.3 文件流 255
12.3.1 文件的概念 255
12.3.2 打开及关闭文件 256
12.3.3 文本文件的访问操作 257
12.3.4 二进制文件的访问操作 260
12.4 字符串流 261
12.5 案例:用文件存储学生成绩 262
小结 264
习题 264
附录A ASCII字符编码一览表 265
附录B 运算符的优先级和结合性一览表 267
参考文献 269