第一部分 笔试部分 1
上篇 公共基础知识 1
第1章 数据结构与算法 1
1.1 算法 2
1.1.1 算法的基本概念 2
1.1.2 算法复杂度 2
1.2 数据结构的基本概念 3
1.2.1 什么是数据结构 3
1.2.2 数据结构的图形表示 4
1.2.3 线性结构与非线性结构 4
1.3 线性表及其顺序存储结构 5
1.3.1 线性表的基本概念 5
1.3.2 线性表的顺序存储结构 5
1.3.3 顺序表的插入运算 6
1.3.4 顺序表的删除运算 6
1.4 栈和队列 7
1.4.1 栈及其基本运算 7
1.4.2 队列及其基本操作 8
1.5 线性链表 9
1.5.1 线性链表的基本概念 9
1.5.2 线性链表的基本运算 11
1.5.3 循环链表及其基本运算 12
1.6 树与二叉树 12
1.6.1 树的基本概念 12
1.6.2 二叉树及其基本性质 12
1.6.3 二叉树的存储结构 13
1.6.4 二叉树的遍历 13
1.7 查找技术 14
1.7.1 顺序查找 15
1.7.2 二分法查找 15
1.8 排序技术 15
1.8.1 交换类排序法 15
1.8.2 插入类排序 16
1.8.3 选择类排序 16
第2章 程序设计基础 21
2.1 程序设计方法与风格 21
2.2 结构化程序设计 22
2.2.1 结构化程序设计的原则 22
2.2.2 结构化程序的基本结构与特点 23
2.2.3 结构化程序设计原则和方法的应用 24
2.3 面向对象的程序设计 24
第3章 软件工程基础 27
3.1 软件工程基本概念 27
3.1.1 软件定义与软件特点 27
3.1.2 软件危机与软件工程 27
3.1.3 软件工程过程与软件生命周期 28
3.1.4 软件工程的目标与原则 28
3.1.5 软件开发工具与软件开发环境 29
3.2 结构化分析方法 30
3.2.1 需求分析与需求分析方法 30
3.2.2 结构化分析方法 30
3.2.3 软件需求规格说明书 32
3.3 结构化设计方法 33
3.3.1 软件设计的基本概念 33
3.3.2 概要设计 34
3.3.3 详细设计 36
3.4 软件测试 37
3.4.1 软件测试的目的 37
3.4.2 软件测试的准则 38
3.4.3 软件测试技术与方法综述 38
3.4.4 软件测试的实施 40
3.5 程序的调试 42
3.5.1 基本概念 42
3.5.2 软件调试方法 42
第4章 数据库设计基础 46
4.1 数据库系统的基本概念 46
4.1.1 数据、数据库、数据库管理系统 46
4.1.2 数据库系统的发展 47
4.1.3 数据库系统的基本特点 47
4.1.4 数据库系统的内部结构体系 48
4.2 数据模型 49
4.2.1 数据模型的基本概念 49
4.2.2 E-R模型 49
4.2.3 层次模型 51
4.2.4 网状模型 51
4.2.5 关系模型 51
4.3 关系代数 53
4.4 数据库设计与管理 55
4.4.1 数据库设计概述 55
4.4.2 数据库设计的需求分析 56
4.4.3 数据库概念设计 56
4.4.4 数据库的逻辑设计 57
4.4.5 数据库的物理设计 57
下篇 C++语言程序设计 61
第1章 C++语言概述 61
1.1 C++语言的发展 61
1.2 C++语言的特点 62
1.3 面向对象程序设计 62
1.4 C++语言中的基本符号 63
1.5 C++语言的词汇 63
1.6 C++程序的基本框架 65
1.6.1 C++程序结构 65
1.6.2 结构化程序设计框架 65
1.6.3 面向对象程序设计框架 65
1.7 C++程序的开发过程 66
第2章 数据类型、运算符和表达式 69
2.1 C++语言的数据类型 69
2.1.1 基本类型 69
2.1.2 基本类型的派生类型 69
2.2 常量 70
2.2.1 逻辑常量 71
2.2.2 字符常量 71
2.2.3 整型常量 71
2.2.4 实型常量 72
2.2.5 枚举常量 72
2.3 变量 73
2.3.1 变量的定义 74
2.3.2 变量的使用方式 74
2.3.3 符号常量声明语句 74
2.3.4 使用#define命令定义符号常量 75
2.4 运算符和表达式 75
2.4.1 运算符和表达式的概念 75
2.4.2 运算类型与运算符 75
2.4.3 赋值运算 75
2.4.4 算术运算符和算术表达式 76
2.4.5 关系运算符和关系表达式 76
2.4.6 逻辑运算符和逻辑表达式 76
2.4.7 位运算 77
2.4.8 其他运算 77
2.4.9 优先级和结合性 78
第3章 基本控制结构 83
3.1 C+++++语句 83
3.2 顺序结构 83
3.2.1 声明语句 83
3.2.2 表达式语句 84
3.2.3 基本输入输出 84
3.2.4 复合语句和空语句 84
3.3 选择结构 85
3.3.1 if语句 85
3.3.2 switch语句 86
3.4 循环结构 88
3.4.1 for语句 88
3.4.2 while语句 89
3.4.3 do…while语句 89
3.4.4 循环的嵌套 90
3.5 跳转语句 90
3.5.1 break语句 90
3.5.2 continue语句 91
3.5.3 return语句 91
3.5.4 goto语句 91
第4章 数组、指针与引用 97
4.1 数组 97
4.1.1 一维数组 97
4.1.2 二维数组 98
4.1.3 多维数组 98
4.1.4 字符数组 98
4.2 指针 101
4.2.1 指针和地址 101
4.2.2 指针和数组 101
4.2.3 指针数组和函数指针 102
4.3 引用 103
4.4 动态存储分配 104
第5章 函数 110
5.1 函数定义 110
5.2 函数调用 111
5.3 函数原型 111
5.4 函数返回类型 112
5.5 函数参数 113
5.5.1 参数的传递方式 113
5.5.2 默认参数 113
5.6 函数重载 114
5.7 内联函数 115
5.8 递归函数 115
5.9 变量作用域与生存周期 116
5.9.1 存储类型 116
5.9.2 生存周期 117
第6章 类和对象 122
6.1 类的定义 122
6.1.1 类的定义 122
6.1.2 类成员的访问控制 123
6.1.3 类的数据成员 123
6.1.4 类的成员函数 123
6.2 对象的定义 124
6.2.1 对象的定义 124
6.2.2 对象的成员 124
6.3 构造函致和析构函数 124
6.3.1 构造函数和析构函数的定义 124
6.3.2 缺省构造函数和缺省析构函数 125
6.3.3 拷贝构造函数 125
6.4 对象的生存期 126
6.4.1 全局对象、静态对象与局部对象 126
6.4.2 自由存储对象 126
6.5 this指针 127
6.6 静态成员 128
6.6.1 静态数据成员 128
6.6.2 静态成员函数 128
6.7 常成员 129
6.7.1 常对象 130
6.7.2 常成员函数 130
6.7.3 常数据成员 130
6.8 友元 131
6.8.1 友元函数 131
6.8.2 友元类 131
6.9 对象数组 132
6.10 成员对象 132
第7章 继承和派生 139
7.1 继承与派生 139
7.1.1 基本概念 139
7.1.2 派生类的定义与构成 139
7.2 派生类对基类成员的访问 140
7.3 派生类的构造函数和析构函数 141
7.3.1 派生类的构造函数 141
7.3.2 派生类的析构函数 141
7.4 多继承与虚基类 143
7.4.1 多继承中的二义性问题 143
7.4.2 虚基类的定义 143
7.4.3 虚基类的构造函数 143
7.5 子类型关系 144
7.6 虚函数与多态性 144
7.6.1 多态性的概念 144
7.6.2 虚函数 144
7.6.3 虚析构函数 144
7.6.4 纯虚函数与抽象类 145
第8章 运算符重载 152
8.1 运算符函数与运算符重载 152
8.2 典型运算符的重载 153
8.2.1 关于分数类fraction 153
8.2.2 重载取负运算符“-” 153
8.2.3 重载加法运算符“+” 153
8.2.4 重载增1运算符“+++++” 154
8.2.5 重载类型转换符“long” 154
8.2.6 重载赋值运算符“=” 154
8.2.7 重载复合赋值运算符、“+=” 155
8.2.8 重载关系操作符“>” 155
8.2.9 重载下标访问运算符“[]” 155
8.2.10 重载C++流运算符“>>”和“<<” 155
8.3 运算符重载应注意的几个问题 156
8.3.1 重载的运算符应保持其原有的基本语义 156
8.3.2 重载的运算符应尽可能保持其原有的特性 156
8.3.3 运算符的重载应当配套 156
8.3.4 使用引用参数还是非引用参数 156
8.3.5 作为成员函数重载还是作为非成员函数重载 156
第9章 模板 160
9.1 函数模板 160
9.1.1 函数模板的概念、定义与应用 160
9.1.2 模板实参的省略 160
9.2 类模板 161
第10章 C++流 170
10.1 C++流的概念 170
10.1.1 C++流定义 170
10.1.2 预定义流对象 170
10.1.3 提取运算符“>>”和插入运算符“<<” 171
10.1.4 有格式输入输出和无格式输入输出 171
10.1.5 操作符 171
10.2 输入输出的格式控制 172
10.2.1 默认的输入输出格式 172
10.2.2 格式标志与格式控制 172
10.2.3 输入输出宽度的控制 174
10.2.4 浮点数输出方式的控制 174
10.2.5 输出精度的控制 174
10.2.6 对齐方式的控制 174
10.2.7 小数点处理方式的控制 175
10.2.8 填充字符的控制 175
10.2.9 插入换行符 175
10.3 文件流 176
10.3.1 文件流的建立 176
10.3.2 文件流的关闭 177
10.3.3 文件流状态的判别 177
10.3.4 文件流的定位 177
10.3.5 特殊的文件流:CON和PRN 178
10.3.6 有格式输入输出 178
10.3.7 无格式输入输出 178
第二部分 上机部分 183
上机指导 183
上机例题详解 191
第三部分 模拟考场 230
全真笔试模拟试卷(一) 230
全真笔试模拟试卷(二) 237
全真笔试模拟试卷(三) 244
全真笔试模拟试卷(四) 251
全真笔试模拟试卷(五) 258
上机模拟试卷(一) 267
上机模拟试卷(二) 270
上机模拟试卷(三) 274
上机模拟试卷(四) 277
上机模拟试卷(五) 280
上机模拟试卷(六) 282
上机模拟试卷(七) 285
上机模拟试卷(八) 288
上机模拟试卷(九) 291
上机模拟试卷(十) 294
全真笔试模拟试卷参考答案 298
上机模拟试卷参考答案 301
第四部分 历年真题 311
2005年4月全国计算机等级考试二级笔试试卷C++语言程序设计 311
2005年9月全国计算机等级考试二级笔试试卷C++语言程序设计 321
历年真题参考答案 331