Appearance
附录 A · 考纲 ↔ 章节对照矩阵
🎯 依据:CCF GESP《考试大纲》—— C++ 编程四级标准 📖 用途:把考纲的每一条知识点映射到本书对应章节,方便"按考纲查漏、按章节复习"。 📌 说明:本书面向 C++ 单一语言,故仅对照考纲中的 C++ 四级标准;考纲中四级 Python 相关表述(复合数据类型的嵌套使用、Python 值传递/引用传递)不在本书范围内。 📚 章号口径:第 1 章 = 四级考点总览,第 2~9 章 = 考纲八大知识块。
一、考纲「知识点详述」11 条对照
| 考纲条目 | 考纲要求(原文概要) | 本书章节 | 覆盖 |
|---|---|---|---|
| (1) | 理解 C++ 指针类型的概念,掌握指针类型变量的定义、赋值、解引用 | 第2章 指针与内存地址 | ✅ |
| (2) | 掌握 C++ 结构体、二维及多维数组(不包括变长数组) 的基本概念及使用; | 第3章 二维及多维数组 / 第4章 结构体 | ✅ |
| (3) | 理解模块化编程思想,掌握函数(不包含匿名函数、类的括号运算符重载)的声明、定义及调用,掌握形参与实参的概念及区别 | 第5章 函数 | ✅ |
| (4) | 掌握变量作用域的概念,理解全局变量与局部变量的区别 | 第5章 函数 | ✅ |
| (5) | 掌握函数参数的传递方式:C++ 值传递、引用传递、指针传递; | 第5章 函数 | ✅ |
| (6) | 掌握递推算法基本思想、递推关系式的推导以及递推问题求解 | 第6章 递推算法 | ✅ |
| (7) | 掌握排序算法的概念,了解内排序和外排序的概念及差别,理解排序算法的时间复杂度、空间复杂度、使用场景以及稳定性 | 第7章 排序算法 | ✅ |
| (8) | 掌握冒泡排序、插入排序、选择排序的算法思想、排序步骤及代码实现 | 第7章 排序算法 | ✅ |
| (9) | 简单算法复杂度的估算,含多项式、指数复杂度 | 第7章 排序算法 | ✅ |
| (10) | 掌握文件操作中的重定向,实现文件读写操作,了解文本文件的分类,掌握写操作、读操作、读写操作 | 第8章 文件操作 | ✅ |
| (11) | 了解异常处理机制,掌握异常处理的常用方法 | 第9章 异常处理 | ✅ |
✅ 结论:考纲 11 条知识点 100% 有对应章节,无遗漏。
📎 附注:考纲原文第 (2)(5) 条把 C++ 与 Python 并列,本书按作者口径只保留 C++ 侧(Python 复合类型嵌套、Python 值传递/引用传递均不在范围内)。
二、考纲「知识块」8 块对照
| 编号 | 知识块 | 考纲列出的知识点 | 本书章节 | 覆盖 |
|---|---|---|---|---|
| 1 | 指针 | 指针类型,指针类型定义变量,指针类型变量的赋值、解引用 | 第2章 | ✅ |
| 2 | 二维及多维数组 | C++ 二维及多维数组的定义、使用(不包括变长数组); | 第3章 | ✅ |
| 3 | 结构体 | 结构体定义和使用、结构体数组、结构体指针、结构体嵌套结构体、结构体做函数参数、结构体中 const 使用场景 | 第4章 | ✅ |
| 4 | 函数 | 函数的定义、调用、声明;形参、实参;全局作用域、局部作用域;值传递、引用传递 | 第5章 | ✅ |
| 5 | 递推算法 | 递推算法基本思想、递推关系式推导 | 第6章 | ✅ |
| 6 | 排序算法 | 冒泡排序、插入排序、选择排序;时间复杂度、空间复杂度、算法稳定性;简单算法复杂度的估算(含多项式、指数复杂度) | 第7章 | ✅ |
| 7 | 文件操作 | 文件重定向,读操作、写操作、读写操作 | 第8章 | ✅ |
| 8 | 异常处理 | 异常处理机制和常用方法 | 第9章 | ✅ |
✅ 结论:考纲 8 大知识块 100% 命中,无整块缺失。
三、考点级细粒度对照(查漏表)
按考纲知识点逐条落位到本书小节,复习时可据此定位。
第2章 · 指针与内存地址
| 考纲知识点 | 本书位置 |
|---|---|
| 内存地址、变量与地址的关系 | §1.1 |
取地址运算符 & | §1.2 |
| 指针的本质(存地址的变量) | §1.3 |
指针定义语法、int* p, q 陷阱 | §2.1、§2.2 |
| 指针的初始化与赋值 | §3.1、§3.2 |
指针比较(==/!=/</>) | §3.3 |
解引用 *、& 与 * 互为逆运算 | §4.1~§4.3 |
空指针(nullptr/NULL)与野指针 | §5.1~§5.3 |
void* 通用指针(拓展) | §5.4 |
指针与一维数组:arr[i] ≡ *(arr+i) | §6.1~§6.3 |
指针算术:p++ 移动 sizeof(类型) 字节 | §7.1~§7.2 |
| 指针相减、指针越界 | §7.3~§7.4 |
const 与指针三种组合(左定值右定向) | §8.1~§8.5 |
经典易错点:指针接力、类型不匹配、* 的双重含义 | §九 |
第3章 · 二维及多维数组
| 考纲知识点 | 本书位置 |
|---|---|
| 二维数组 = 矩阵/表格 | §一 |
| 定义与初始化(分行、顺序、部分、省略行数) | §2.1~§2.5 |
行优先存储与地址偏移公式 (i×列数+j) | §3.1~§3.2 |
| 访问元素、行/列优先遍历 | §4.1~§4.4 |
| 二维数组做函数参数(列数不能省,行数可省) | §5.1~§5.3 |
| 典型应用:矩阵加法、转置、行列统计、迷宫、杨辉三角 | §6.1~§6.5 |
| 三维及更高维数组(了解) | §7.1~§7.3 |
| 数组大小须为编译期常量(不含变长数组) | §2.4、§5.1 |
第4章 · 结构体
| 考纲知识点 | 本书位置 |
|---|---|
| 为什么需要结构体、结构体 vs 数组 | §一 |
struct 定义与分号、. 访问成员、聚合初始化 | §2.1~§2.4 |
typedef 简化结构体名 | §2.5 |
| 结构体数组(定义、初始化、遍历、输入、查找) | §3.1~§3.2 |
结构体指针与 ->((*p).name 等价 p->name) | §4.1~§4.3 |
| 结构体嵌套结构体(逐层访问) | §5.1~§5.2 |
| 结构体做函数参数:值/指针/引用传递对比 | §6.1~§6.4 |
结构体中 const 使用场景(只读引用、const 指针、const 变量) | §7.1~§7.3 |
结构体排序(自定义 cmp、多关键字) | §三、§六(练习3) |
第5章 · 函数
| 考纲知识点 | 本书位置 |
|---|---|
| 为什么需要函数、模块化编程思想 | §一 |
| 函数五要素、声明与定义的区别 | §2.1~§2.3 |
void 函数、无参函数、嵌套调用、main 角色 | §2.4~§2.6 |
| 形参与实参的概念与区别 | §3.1~§3.2 |
| 参数匹配规则、默认参数 | §3.3~§3.4 |
| 作用域:全局、局部、块作用域 | §4.1~§4.2 |
同名变量遮蔽与 :: 作用域运算符 | §4.3 |
static 静态局部变量 | §4.4 |
| 值传递 / 引用传递 / 指针传递 | §5.1~§5.4 |
| 数组作为函数参数(退化为指针、二维列数不能省) | §5.5 |
| 返回值与陷阱(不能返回局部变量引用/指针) | §6.1~§6.3 |
第6章 · 递推算法
| 考纲知识点 | 本书位置 |
|---|---|
| 递推的核心思想 | §一 |
| 递推三要素(初始条件、递推关系式、终止条件) | §二 |
| 递推关系式的推导方法(从特例入手) | §二 |
| 递推与递归的区别与联系 | §三 |
| 经典一维递推:斐波那契、爬楼梯、汉诺塔、铺砖、兔子繁殖 | §4.1~§4.5 |
| 经典二维递推:过河卒、数字三角形 | §5.1~§5.2 |
| 递推的边界处理(首行首列、障碍格、溢出) | §六 |
| 两种实现方式:变量迭代法 / 数组存储法 | §七 |
第7章 · 排序算法
| 考纲知识点 | 本书位置 |
|---|---|
| 排序的定义、内部排序 vs 外部排序 | §1.1~§1.3 |
| 算法稳定性的定义与重要性 | §2.1~§2.3 |
| 冒泡排序:原理、图示、代码(flag 优化)、复杂度 | §3.1~§3.4 |
| 选择排序:原理、图示、代码、不稳定性分析 | §4.1~§4.5 |
| 插入排序:原理、图示、代码、复杂度 | §5.1~§5.4 |
| 三种排序对比总表(复杂度、稳定性、交换次数) | §六 |
C++ 标准库 sort/stable_sort(拓展 · 超纲) | §七 |
| 大O表示法、常见复杂度、多项式 vs 指数复杂度 | §8.1~§8.4 |
| 空间复杂度 | §8.5 |
| 复杂度分析实战(三种排序推导、代码片段判断、规模反推) | §9.1~§9.3 |
| 易错点汇总 | §十 |
第8章 · 文件操作
| 考纲知识点 | 本书位置 |
|---|---|
| 为什么需要文件操作(持久化) | §一 |
| 文本文件 vs 二进制文件 | §二 |
文件重定向 freopen(三参数、竞赛用法) | §3.1~§3.4 |
C 风格文件操作:fopen/fclose/fscanf/fprintf | §4.1~§4.2 |
字符读写 fgetc/fputc、字符串读写 fgets/fputs | §4.3~§4.4 |
feof 判断文件末尾与安全读取 | §4.5 |
C++ 文件流:ifstream/ofstream/fstream | §5.1~§5.4 |
文件打开模式(ios::in/out/app/trunc) | §5.5 |
eof() 的滞后性与安全读取写法 | §5.6 |
| C 风格 vs C++ 风格对比 | §六 |
常见易错点(不检查打开、忘记关闭、覆盖 vs 追加、>> 与 getline 混用、路径转义) | §七 |
| 综合实战:学生成绩管理 | §八 |
第9章 · 异常处理
| 考纲知识点 | 本书位置 |
|---|---|
| 异常的定义、运行时错误 vs 编译错误 | §一 |
| 为什么需要异常处理(错误码 vs 异常) | §二 |
try/throw/catch 三件套与执行流程 | §三 |
| 抛出基本类型异常(字符串/整数/浮点数) | §4.1~§4.3 |
抛出对象异常、what()、自定义异常类(了解) | §五 |
多个 catch 的匹配顺序(从具体到通用) | §六 |
catch(...) 兜底(必须放最后) | §七 |
| 异常沿调用栈向上传播 | §八 |
标准异常类层次(std::exception 及派生类) | §九 |
noexcept 说明符(了解) | §十 |
| 最佳实践与常见陷阱 | §十一 |
| 竞赛中是否使用异常 | §十二 |
四、按章节串联的「考纲—编程题」主线
考纲的 8 个知识块,最终都汇聚到两道编程题上。复习时可沿这条主线自测:
指针(第2章) ──┐
二维及多维数组(第3章)──┤ C++ 语法进阶"三件套"(选择 / 判断主力)
结构体(第4章) ──┤
函数(第5章) ──┘
│
递推算法(第6章) ──┐
排序算法(第7章) ──┤ 编程题的"两条主线"
文件操作(第8章) ──┤ —— 两道编程题几乎都围绕
异常处理(第9章) ──┘ 「递推/排序 + 结构体 + 文件读写」展开💡 用法:先按上表逐条打勾确认已掌握;哪一条打不了勾,就回到对应章节的"实战练习"限时重做一遍。
五、考纲「题型分布」
| 题型 | 题量 | 每题分值 | 小计 |
|---|---|---|---|
| 单选题 | 15 道 | 2 分 | 30 分 |
| 判断题 | 10 道 | 2 分 | 20 分 |
| 编程题 | 2 道 | 25 分 | 50 分 |
| 合计 | 27 道 | — | 100 分 |
⏱️ 考试时间:120 分钟。 📎 注:按大纲规定,C++ 试题如无特殊说明,均以 C++11 标准为准,且不涉及该标准下的未定义行为。
📎 返回索引:本书第 1 章为 四级考点总览,第 2~9 章依次对应考纲八大知识块,本附录负责把"考纲语言"翻译成"本书章节"。
