第1章 应试指南 1
1.1 二级C++语言考试大纲(最新版) 1
1.1.1 公共基础知识 1
1.1.2 C++语言程序设计 2
1.2 笔试方法和技巧 4
1.3 机试方法和技巧 7
第2章 数据结构与算法 11
2.1 算法的基本概念 12
2.1.1 考点1:算法的定义 12
2.1.2 考点2:算法复杂度 12
2.2 数据结构的定义 13
2.2.1 考点1:什么是数据结构 13
2.2.2 考点2:数据结构的图形表示 15
2.3 线性表 15
2.3.1 考点1:线性表 15
2.3.2 考点2:线性表的顺序存储结构 15
2.3.3 考点3:线性表的插入和删除操作 16
2.4 栈 16
2.4.1 考点1:什么是栈 16
2.4.2 考点2:栈的顺序存储结构 17
2.4.3 考点3:栈的插入和删除运算 17
2.5 队列 17
2.5.1 考点1:什么是队列 18
2.5.2 考点2:队列的顺序存储结构 18
2.5.3 考点3:队列的插入和删除运算 18
2.6 线性单链表、双向链表与循环链表 19
2.6.1 考点1:线性单链表 19
2.6.2 考点2:循环链表 20
2.6.3 考点3:双向链表 20
2.6.4 考点4:链表的基本操作 20
2.7 树 21
2.7.1 考点1:树的定义 21
2.7.2 考点2:二叉树的定义 22
2.7.3 考点3:二叉树的顺序存储结构 22
2.7.4 考点4:二叉树的链式存储结构 23
2.7.5 考点5:二叉树的遍历 23
2.8 查找算法 24
2.8.1 考点1:顺序查找 24
2.8.2 考点2:二分查找 25
2.9 排序算法 25
2.9.1 考点1:排序概述 25
2.9.2 考点2:插入类排序 26
2.9.3 考点3:交换类排序 26
2.9.4 考点4:选择类排序 27
2.10 小结 28
2.11 同步训练 28
2.11.1 选择题 28
2.11.2 填空题 30
2.12 同步训练答案 30
2.12.1 选择题 30
2.12.2 填空题 30
第3章 程序设计基础 31
3.1 程序设计 31
3.1.1 考点1:程序设计的方法 32
3.1.2 考点2:程序设计的风格 32
3.2 结构化程序设计 34
3.2.1 考点1:结构化程序设计的提出 34
3.2.2 考点2:结构化程序设计的基本特征 35
3.2.3 考点3:结构化程序设计的3种基本结构 35
3.2.4 考点4:结构化程序设计方法 37
3.2.5 考点5:结构化程序设计方法的原则 38
3.3 面向对象程序设计 39
3.3.1 考点1:面向对象程序设计方法的提出 39
3.3.2 考点2:面向对象程序设计方法的基本概念 39
3.3.3 考点3:面向对象程序设计的基本思想和方法 40
3.4 小结 41
3.5 同步训练 41
3.5.1 选择题 41
3.5.2 填空题 43
3.6 同步训练答案 43
3.6.1 选择题 43
3.6.2 填空题 44
第4章 软件工程基础 45
4.1 软件工程的基本概念 46
4.1.1 考点1:软件与软件工程概述 46
4.1.2 考点2:软件生命周期 47
4.1.3 考点3:软件工具与软件开发环境 47
4.2 结构化分析方法 48
4.2.1 考点1:结构化分析方法概述 48
4.2.2 考点2:数据流图 48
4.2.3 考点3:数据字典 51
4.2.4 考点4:软件需求规格说明书 51
4.3 软件设计 52
4.3.1 考点1:概要设计 52
4.3.2 考点2:详细设计 55
4.4 软件测试 57
4.4.1 考点1:软件测试的目的 57
4.4.2 考点2:测试方法 58
4.4.3 考点3:测试用例设计 58
4.4.4 考点4:软件测试策略 61
4.5 程序调试 63
4.5.1 考点1:静态调试 64
4.5.2 考点2:动态调试 64
4.5.3 考点3:调试策略 64
4.6 软件维护 65
4.7 小结 65
4.8 同步训练 66
4.8.1 选择题 66
4.8.2 填空题 67
4.9 同步训练答案 68
4.9.1 选择题 68
4.9.2 填空题 68
第5章 数据库设计基础 69
5.1 数据库基础知识 70
5.1.1 考点1:数据库 70
5.1.2 考点2:数据库管理系统 71
5.1.3 考点3:数据库系统 71
5.1.4 考点4:数据管理技术的发展 72
5.2 数据模型 73
5.2.1 考点1:数据模型的概述 73
5.2.2 考点2:实体联系模型及E-R图 74
5.2.3 考点3:层次、网状、关系模型 76
5.2.4 考点4:从E-R图导出关系数据模型 78
5.3 关系运算 78
5.3.1 考点1:关系代数 79
5.3.2 考点2:传统的集合运算 79
5.3.3 考点3:专门的关系运算 79
5.4 数据库设计 82
5.4.1 考点1:数据库设计概述 82
5.4.2 考点2:数据库设计方法 82
5.4.3 考点3:数据库设计步骤 83
5.4.4 考点4:数据库的规范化 84
5.5 小结 84
5.6 同步训练 85
5.6.1 选择题 85
5.6.2 填空题 86
5.7 同步训练答案 87
5.7.1 选择题 87
5.7.2 填空题 87
第6章 C++语言概述 88
6.1 面向对象的程序设计 88
6.1.1 考点1:面向对象程序设计的三个特征 88
6.2 C++语言的基本符号与词汇 89
6.2.1 考点1:C++语言的基本符号 89
6.2.2 考点2:C++语言的5种词汇 89
6.2.3 考点3:关键字 89
6.2.4 考点4:标识符 90
6.2.5 考点5:字面常量 90
6.2.6 考点6:运算符 90
6.2.7 考点7:标点符号 91
6.3 C++程序的基本框架 91
6.3.1 考点1:结构化程序设计框架 91
6.3.2 考点2:面向对象程序设计框架 92
6.4 Visual C++ 6.0集成开发环境 92
6.4.1 考点1:集成开发环境与项目 92
6.4.2 考点2:标准C++程序编写步骤 93
6.4.3 考点3:标准C++程序修改步骤 93
6.4.4 考点4:基本调试功能 94
6.5 同步训练 94
6.5.1 选择题 94
6.5.2 填空题 95
6.6 同步训练答案 95
6.6.1 选择题 95
6.6.2 填空题 95
第7章 数据类型、表达式与基本运算 96
7.1 C++数据类型及其定义方法 96
7.1.1 考点1:基本类型 96
7.1.2 考点2:基本类型的派生类型 97
7.2 C++常量的定义 97
7.2.1 考点1:字面常量 97
7.2.2 考点2:符号常量 99
7.3 C++变量的定义与使用方法 99
7.3.1 考点1:变量的定义 99
7.3.2 考点2:变量的使用方式 100
7.4 运算符和表达式 100
7.4.1 考点1:运算符和表达式的概念 100
7.4.2 考点2:赋值运算 101
7.4.3 考点3:算术运算符和算术表达式 101
7.4.4 考点4:关系运算符和关系表达式 102
7.4.5 考点5:逻辑运算符和逻辑表达式 102
7.4.6 考点6:位运算 102
7.4.7 考点7:其他运算 102
7.4.8 考点8:优先级和结合性 103
7.5 同步训练 105
7.5.1 选择题 105
7.5.2 填空题 105
7.6 同步训练答案 106
7.6.1 选择题 106
7.6.2 填空题 106
第8章 C++的基本语句 107
8.1 C++的基本语句 107
8.1.1 考点1:声明语句 107
8.1.2 考点2:表达式语句 108
8.1.3 考点3:基本输入输出语句 108
8.1.4 考点4:复合语句和空语句 109
8.2 if语句 109
8.2.1 考点1:基本if语句 109
8.2.2 考点2:if…else语句 110
8.3 switch语句 111
8.3.1 考点1:switch语句 111
8.4 for语句 112
8.4.1 考点1:for语句 112
8.5 while语句 113
8.5.1 考点1:while语句 113
8.6 do…while语句 113
8.6.1 考点1:do…while语句 113
8.7 转向语句 114
8.7.1 考点1:break语句 114
8.7.2 考点2:continue语句 114
8.7.3 考点3:return语句 115
8.7.4 考点4:goto语句 115
8.8 选择语句和循环语句的各种嵌套 116
8.8.1 考点1:选择语句的嵌套 116
8.8.2 考点2:循环语句的嵌套 116
8.8.3 考点3:混合嵌套 117
8.9 同步训练 117
8.9.1 选择题 117
8.9.2 填空题 119
8.10 同步训练答案 120
8.10.1 选择题 120
8.10.2 填空题 120
第9章 数组、指针与引用 121
9.1 一维数组 121
9.1.1 考点1:数组的定义 121
9.1.2 考点2:数组的初始化 122
9.1.3 考点3:数组的访问和多维数组 123
9.2 字符串与字符数组 124
9.2.1 考点1:字符串的定义和存储 124
9.2.2 考点2:字符数组及输入输出 125
9.3 常用字符串函数 127
9.3.1 考点1:strlen和strcpy 127
9.3.2 考点2:strcat和strcmp 128
9.3.3 考点3:strstr和其他 129
9.4 指针和指针变量 130
9.4.1 考点1:基本概念 130
9.4.2 考点2:指针与数组 132
9.5 引用 133
9.5.1 考点1:基本概念和使用方法 133
9.6 同步训练 134
9.6.1 选择题 134
9.6.2 填空题 138
9.7 同步训练答案 140
9.7.1 选择题 140
9.7.2 填空题 140
第10章 函数 141
10.1 函数的定义方法和调用方法 141
10.1.1 考点1:函数定义 141
10.1.2 考点2:函数的调用 142
10.2 函数原型和返回类型 143
10.2.1 考点1:函数的声明 143
10.3 形式参数与实在参数 144
10.3.1 考点1:基本概念和传值 144
10.3.2 考点2:传地址和传引用 144
10.4 变量的作用域 146
10.4.1 考点1:存储类型的基本知识 146
10.5 递归函数 148
10.5.1 考点1:用递归解决问题 148
10.6 内联函数 150
10.6.1 考点1:内联函数和宏 150
10.7 带有默认参数值的函数 151
10.7.1 考点1:默认参数值的定义和使用 151
10.8 函数的重载 152
10.8.1 考点1:函数重载的定义和使用 152
10.9 同步训练 153
10.9.1 选择题 153
10.9.2 填空题 159
10.10 同步训练答案 161
10.10.1 选择题 161
10.10.2 填空题 161
第11章 类与对象 162
11.1 类 162
11.1.1 考点1:类的定义 162
11.1.2 考点2:类成员的访问权限 163
11.1.3 考点3:类与结构 164
11.1.4 考点4:数据成员的定义 164
11.1.5 考点5:成员函数的定义 164
11.2 对象 165
11.2.1 考点1:对象的定义 165
11.2.2 考点2:对象成员的访问 165
11.3 构造函数与析构函数 166
11.3.1 考点1:构造函数和析构函数的定义 166
11.3.2 考点2:重载构造函数 167
11.3.3 考点3:复制构造函数 168
11.4 静态成员 170
11.4.1 考点1:静态数据成员 170
11.4.2 考点2:静态数据成员初始化 170
11.4.3 考点3:静态成员函数 171
11.5 常对象与常成员 172
11.5.1 考点1:常对象 172
11.5.2 考点2:常对象成员 173
11.5.3 考点3:常数据成员 173
11.5.4 考点4:常成员函数 173
11.6 this指针的使用 175
11.6.1 考点1:this指针的定义 175
11.6.2 考点2:友元函数与this指针 175
11.7 友元函数和友元类 176
11.7.1 考点1:友元函数的定义 176
11.7.2 考点2:友元类 176
11.8 对象数组与成员对象 177
11.8.1 考点1:对象数组 177
11.8.2 考点2:成员对象 177
11.9 同步训练 178
11.9.1 选择题 178
11.9.2 填空题 184
11.10 同步训练答案 191
11.10.1 选择题 191
11.10.2 填空题 191
第12章 类的继承和派生 193
12.1 继承与派生 193
12.1.1 考点1:继承与派生的基本概念 193
12.1.2 考点2:派生类的定义 193
12.1.3 考点3:派生类的构成 194
12.2 派生类对基类成员的访问 194
12.2.1 考点1:派生类对基类成员的访问权限 194
12.2.2 考点2:派生类中基类成员的权限 195
12.3 派生类的构造函数与析构函数 196
12.3.1 考点1:派生类中的构造函数 196
12.3.2 考点2:派生类的析构函数 199
12.4 虚基类 200
12.4.1 考点1:继承的二义性 200
12.4.2 考点2:虚基类的定义 200
12.4.3 考点3:虚基类的构造函数 201
12.5 同步训练 202
12.5.1 选择题 202
12.5.2 填空题 213
12.6 同步训练答案 215
12.6.1 选择题 215
12.6.2 填空题 215
第13章 多态性 216
13.1 虚函数机制 216
13.1.1 考点1:多态性的概念 216
13.1.2 考点2:虚函数的概念 217
13.1.3 考点3:纯虚函数与抽象类 217
13.2 基类指针与派生类指针 218
13.2.1 考点1:指针与重定义成员函数的访问 218
13.3 运算符重载 219
13.3.1 考点1:运算符重载的概念 219
13.3.2 考点2:运算符重载的定义 220
13.3.3 考点3:典型的运算符重载 221
13.4 同步训练 225
13.4.1 选择题 225
13.4.2 填空题 236
13.5 同步训练答案 237
13.5.1 选择题 237
13.5.2 填空题 237
第14章 模板 238
14.1 函数模板 238
14.1.1 考点1:函数模板的概念和声明 238
14.1.2 考点2:模板函数 239
14.1.3 考点3:函数模板的实例化 240
14.1.4 考点4:模板实参的省略 240
14.2 类模板 241
14.2.1 考点1:类模板的概念和声明 241
14.2.2 考点2:类模板的实例化 243
14.3 同步训练 243
14.3.1 选择题 243
14.3.2 填空题 245
14.5 同步训练答案 246
14.5.1 选择题 246
14.5.2 填空题 246
第15章 输入、输出流 247
15.1 C++流 247
15.1.1 考点1:C++流的概念和I/O类库 247
15.1.2 考点2:预定义流对象 248
15.1.3 考点3:提取运算符>>和插入运算符<< 248
15.1.4 考点4:预定义流对象的使用(cin、cout) 248
15.2 格式控制数据的输入输出 249
15.2.1 考点1:默认的输入输出格式 249
15.2.2 考点2:格式控制标志 249
15.2.3 考点3:格式控制函数 250
15.2.4 考点4:操作符 251
15.3 文件的I/O操作 253
15.3.1 考点1:文件流的建立、打开和关闭 253
15.3.2 考点2:文件流状态的判别 254
15.3.3 考点3:文件流的定位 254
15.3.4 考点4:特殊的文件流 255
15.3.5 考点5:文件流的无格式输入、输出 255
15.4 同步训练 256
15.4.1 选择题 256
15.4.2 填空题 257
15.5 同步训练答案 258
15.5.1 选择题 258
15.5.2 填空题 258
第16章 笔试全真模拟试卷 260
16.1 笔试全真模拟试卷(1) 260
16.2 笔试全真模拟试卷(2) 267
16.3 笔试全真模拟试卷(3) 274
16.4 笔试全真模拟试卷(4) 281
16.5 笔试全真模拟试卷(5) 287
16.6 参考答案及解析 297
笔试全真模拟试卷(1) 297
笔试全真模拟试卷(2) 301
笔试全真模拟试卷(3) 305
笔试全真模拟试卷(4) 308
笔试全真模拟试卷(5) 312
第17章 机试指导、模拟试卷及解析 316
17.1 机试指导 316
17.1.1 上机考试纪律 316
17.1.2 机试环境 316
17.1.3 机试时间 317
17.1.4 机试题型及分值 317
17.1.5 操作步骤及考试规则 317
17.2 机试全真模拟试卷(1) 320
17.3 机试全真模拟试卷(2) 322
17.4 机试全真模拟试卷(3) 324
17.5 机试全真模拟试卷(4) 326
17.6 机试全真模拟试卷(5) 329
17.7 参考答案及解析 331
机试全真模拟试卷(1) 331
机试全真模拟试卷(2) 332
机试全真模拟试卷(3) 332
机试全真模拟试卷(4) 333
机试全真模拟试卷(5) 334
附录A 2006年4月笔试试卷、参考答案及解析 336
附录B 2006年9月笔试试卷、参考答案及解析 350
参考文献 364