Appearance
附录 B · 高频考点 · 易错点 · 速查总表
🎯 用途:把全书六大知识块的高频考点与易错点汇总为一份"跨章避坑清单",并附考前速查卡——考前 30 分钟过一遍即可。 📚 章号口径:第 1 章 = 三级考点总览,第 2~7 章 = 考纲六大知识块。 ⭐ 考频星级:取自各章「考点总结表」,为历年真题统计口径(⭐越多 = 出题越频繁 / 分值占比越大)。 📎 配套:完整的"考纲 ↔ 章节"映射见 附录 A;术语释义见 附录 C;复习节奏见 附录 D。
一、考频 TOP 榜(⭐⭐⭐⭐⭐ 五星考点)
下表汇总全书 ⭐⭐⭐⭐⭐ 五星考点——它们既是选择/判断题的绝对主力,又是编程题的必备基础。建议**全部达到"闭卷复述 + 手算"**水平。
| # | 章节 | 五星考点 | 出题形式 | 一句话避坑 |
|---|---|---|---|---|
| 1 | 第2章 数据编码 | 补码表示法(求补码) | 选择 / 程序阅读 | 别忘"+1";符号位也参与取反 |
| 2 | 第2章 数据编码 | 补码的优点与表示范围 | 选择 / 判断 | 8 位范围是 −128 ~ 127;−128 无原码 / 反码 |
| 3 | 第3章 进制转换 | 十进制 → R 进制 | 选择 / 填空 / 计算 | 整数余数倒着读;小数整数位顺着读 |
| 4 | 第3章 进制转换 | 二进制 ↔ 十六进制(四位一组) | 选择 / 填空 | 别与"三位一组"(八进制)记混 |
| 5 | 第3章 进制转换 | A~F 对应 10~15 | 各类题型 | A=10、B=11、…、F=15,别偏移 |
| 6 | 第3章 进制转换 | 不同进制数的大小比较 | 选择题必考 | 先统一进制再比较,别凭感觉 |
| 7 | 第4章 位运算 | 位运算优先级陷阱(x & 1 == 0) | 程序阅读 / 判断 | & 低于 ==,务必加括号 (x & 1) == 0 |
| 8 | 第5章 算法与描述 | 流程图阅读(变量追踪、循环次数) | 流程图阅读大题 | 循环边界别少算 / 多算一圈 |
| 9 | 第6章 一维数组 | 下标从 0 开始、合法范围 0~n−1 | 选择 / 判断 / 阅读 | 最后一个元素下标是 n−1,不是 n |
| 10 | 第6章 一维数组 | 越界访问的未定义行为 | 选择 / 判断 | 编译器不检查越界 |
| 11 | 第7章 字符串 | find/rfind 与 string::npos | 选择 / 程序阅读(必考) | 找不到返回 npos(不是 −1) |
| 12 | 第7章 字符串 | 回文、单词统计、信息提取、凯撒密码 | 编程大题 | 双指针相遇条件、移位取模 |
二、逐章考点 · 易错点总表
复习时按章打勾:能说出"考点 + 避坑点"即通过。
第2章 · 数据编码
| 考点 | 重要程度 | 出题形式 | 易错点 |
|---|---|---|---|
| 机器数与真值、符号位 | ⭐⭐⭐ | 选择/判断 | 把符号位当数值位直接计算;混淆机器数和真值 |
| 原码表示法 | ⭐⭐⭐ | 选择 | 忘记 0 有两个原码;范围记成 −128~127 |
| 反码表示法 | ⭐⭐ | 选择/填空 | 负数反码符号位也跟着取反 |
| 补码表示法(求补码) | ⭐⭐⭐⭐⭐ | 选择/程序阅读 | 忘记"+1";符号位参与取反 |
| 补码的优点与表示范围 | ⭐⭐⭐⭐⭐ | 选择/判断 | 范围记成 −127~127;不知 −128 无原码/反码 |
| 已知补码求真值 | ⭐⭐⭐⭐ | 选择 | 把补码当原码读;不会用"再求补"法 |
| 溢出判断 | ⭐⭐⭐⭐ | 选择/判断 | 以为异号相加会溢出;不会判断正负溢出 |
signed/unsigned、char | ⭐⭐⭐ | 选择/程序阅读 | 以为 char 处处有符号;同一位模式两种值 |
| 补码减法变加法原理 | ⭐⭐⭐⭐ | 选择/判断 | 不理解为什么补码能让减法变成加法 |
| 快速求补码技巧 | ⭐⭐⭐ | 手算提速 | "从右数第一个 1"法记不牢 |
第3章 · 进制转换
| 考点 | 重要程度 | 出题形式 | 易错点 |
|---|---|---|---|
| 基数、数码、位权的概念 | ⭐⭐⭐ | 选择/判断 | 小数部分位权搞反(以为第一位是 R⁰) |
| R 进制转十进制(位权展开) | ⭐⭐⭐⭐ | 选择/计算 | 位权算错;A~F 对应值记错 |
| 十进制转 R 进制(除基取余 / 乘基取整) | ⭐⭐⭐⭐⭐ | 选择/填空/计算 | 整数余数从上往下读(应倒着读);小数整数位从下往上读(应顺着读) |
| 二进制 ↔ 八进制(三位一组) | ⭐⭐⭐⭐ | 选择/填空 | 分组方向搞反;补零位置错(整数补右边) |
| 二进制 ↔ 十六进制(四位一组) | ⭐⭐⭐⭐⭐ | 选择/填空 | 三位一组和四位一组记混;A~F 值记混 |
| 八进制 ↔ 十六进制(二进制桥梁) | ⭐⭐⭐⭐ | 选择/计算 | 直接硬转不用桥梁;分组方向错 |
C++ 进制前缀(0/0x)与 dec/oct/hex | ⭐⭐⭐⭐ | 程序阅读/选择 | 以为 0 开头是十进制;不知道控制符持久生效 |
| A~F 对应 10~15 | ⭐⭐⭐⭐⭐ | 各类题型 | 把 A 记成 11、F 记成 16 等偏移错误 |
| 不同进制数的大小比较 | ⭐⭐⭐⭐⭐ | 选择题必考题 | 不转换直接凭感觉比;转换计算出错 |
| 小数转换精度问题 | ⭐⭐⭐ | 判断/选择 | 以为所有小数都能精确转换 |
第4章 · 位运算
| 考点 | 重要程度 | 出题形式 | 易错点 |
|---|---|---|---|
| 六种位运算符真值表与手算 | ⭐⭐⭐⭐ | 选择/表达式求值 | 位数没对齐;按位或和按位与搞反 |
& 判奇偶 x & 1、掩码取位 | ⭐⭐⭐⭐ | 选择/程序阅读 | 忘了 & 要加括号 |
~x = -x - 1(结合补码) | ⭐⭐⭐⭐ | 选择/判断 | 误以为 ~5 = -5(实际是 −6) |
| 异或自反性、异或交换、加密 | ⭐⭐⭐⭐ | 程序阅读/填空 | 交换变量时 a 和 a 交换变成 0 |
| 左移 = ×2ⁿ、右移 = ÷2ⁿ | ⭐⭐⭐⭐ | 选择/计算 | 忽略溢出条件;负数右移记错 |
| 负数算术右移(向下取整) | ⭐⭐⭐⭐ | 选择/判断 | 以为 -7>>1 = -3(实际是 −4) |
位运算优先级陷阱(x & 1 == 0) | ⭐⭐⭐⭐⭐ | 程序阅读/判断 | 忘记加括号;以为 & 比 == 优先级高 |
& | 与 && || 的区别 | ⭐⭐⭐⭐ | 选择/判断 | 混淆位运算和逻辑运算;短路求值差异 |
复合位赋值 &= |= ^= <<= >>= | ⭐⭐⭐ | 程序填空 | 复合运算符写法记错 |
| 2 的幂、统计 1 的个数、lowbit | ⭐⭐⭐⭐ | 程序阅读/填空 | 判断 2 的幂忘了 x > 0 的条件 |
| 状态压缩思想 | ⭐⭐⭐ | 了解/入门 | 不理解"用位表示状态"的思想 |
第5章 · 算法与描述
| 考点 | 重要程度 | 出题形式 | 易错点 |
|---|---|---|---|
| 算法五个特征(有穷/确定/可行/输入/输出) | ⭐⭐⭐ | 选择/判断 | 输入 0 个还是 1 个记混;有穷性和确定性张冠李戴 |
| 算法 vs 程序(算法必须有穷) | ⭐⭐⭐ | 判断 | 以为程序也一定有穷 |
| 流程图五种符号识别 | ⭐⭐⭐⭐ | 选择/填空 | 判断框出入口数搞反;平行四边形功能记错 |
| 流程图阅读(变量追踪、循环次数) | ⭐⭐⭐⭐⭐ | 流程图阅读大题 | 循环条件边界错误;少算一圈或多算一圈 |
| 三种基本结构(顺序/分支/循环) | ⭐⭐⭐⭐ | 选择/判断 | 当型循环和直到型循环分不清 |
| 伪代码符号(←、mod、if/while/for) | ⭐⭐⭐ | 程序阅读 | 赋值符号和等号搞混 |
| 枚举法思想(范围+条件) | ⭐⭐⭐⭐ | 编程/程序填空 | 枚举范围定错(漏情况/多情况);条件写错 |
| 枚举优化(减嵌套、剪枝、缩范围) | ⭐⭐⭐ | 编程题 | 不知道如何优化;三重循环能解决的非要写五重 |
| 模拟法思想(状态更新、边界条件) | ⭐⭐⭐⭐ | 编程大题 | 边界差一错误;状态更新顺序搞反 |
| 经典题型:水仙花数、素数、鸡兔同笼 | ⭐⭐⭐⭐ | 编程/填空 | 数字拆分错误;素数边界(1 不是素数、2 是素数) |
| 经典题型:约瑟夫问题、日期推算 | ⭐⭐⭐⭐ | 编程大题 | 围成一圈的回绕处理;月份天数记错 |
第6章 · 数据结构(一维数组)
| 考点 | 重要程度 | 出题形式 | 易错点 |
|---|---|---|---|
数组定义与初始化({0} 清零、部分初始化补 0) | ⭐⭐⭐⭐ | 选择/程序阅读 | 误以为 {5} 会把所有元素设为 5(实际只有第一个是 5,其余为 0) |
| 下标从 0 开始、合法范围 0~n−1 | ⭐⭐⭐⭐⭐ | 选择/判断/程序阅读 | 下标从 1 开始记;最后一个元素下标写成 n(应为 n−1) |
| 越界访问的未定义行为 | ⭐⭐⭐⭐⭐ | 选择/判断 | 以为编译器会检查越界;以为越界只会读错值 |
| 数组遍历(正序、逆序、范围 for) | ⭐⭐⭐⭐ | 程序填空/编程 | 逆序遍历时 i 从 n 开始(应从 n−1);循环条件写成 i > 0(漏掉 a[0]) |
| 数组作函数参数退化为指针、须传长度 | ⭐⭐⭐⭐ | 选择/程序阅读 | 函数内用 sizeof 求数组长度;不知道传址可以修改原数组 |
| 数组大小须为编译期常量(VLA 非法) | ⭐⭐⭐ | 选择/判断 | 以为 int a[n]; 合法;不知道 const 常量可以作数组大小 |
| 频次统计(计数数组) | ⭐⭐⭐⭐ | 程序阅读/编程 | 计数数组大小开错;下标偏移问题 |
| 求最值及其下标 | ⭐⭐⭐⭐ | 程序填空/编程 | 初始值设为 0(应为第一个元素);只记值不记位置 |
| 数组反转(双指针法) | ⭐⭐⭐⭐ | 程序阅读 | 交换次数搞错;循环条件写成 i <= j |
| 插入/删除元素(挪动方向) | ⭐⭐⭐ | 编程/程序填空 | 插入时从前往后挪(应从后往前);删除时漏掉 n-- |
| 前缀和数组 | ⭐⭐⭐⭐ | 编程/程序填空 | 下标错位;公式记错(应为 s[r+1]-s[l]) |
sort 排序与二分查找 | ⭐⭐⭐⭐ | 编程题 | 尾地址写错(应为 a+n 不是 a+n-1);二分查找前忘记排序 |
第7章 · 字符串及其函数
| 考点 | 重要程度 | 出题形式 | 易错点 |
|---|---|---|---|
| ASCII 码与大小写差值 32 | ⭐⭐⭐⭐ | 选择/程序阅读 | 记错三个锚点值;数字字符和数字本身搞混 |
cin>> 与 getline 及 cin.ignore() | ⭐⭐⭐⭐ | 程序阅读/编程 | 混写时忘记 ignore;不知道 getline 会读空行 |
tolower/toupper 与 <cctype> 判断函数 | ⭐⭐⭐⭐ | 选择/编程 | 以为 tolower 返回 char(实际是 int);函数名拼错 |
find/rfind 与 string::npos | ⭐⭐⭐⭐⭐ | 选择/程序阅读(必考) | 以为找不到返回 −1;npos 类型是 size_t 不是 int |
substr(pos, len) 截取 | ⭐⭐⭐⭐ | 程序填空/编程 | 第二个参数记成结束位置(实际是长度) |
字符串分割(手动 split / stringstream) | ⭐⭐⭐ | 编程 | 忘记最后一段;分隔符处理不当 |
replace/insert/erase | ⭐⭐⭐ | 程序阅读 | 参数含义记混;都是 (位置, 长度) |
string 比较(==、<、>) | ⭐⭐⭐ | 选择/判断 | 以为不能直接比较(C++ string 可以) |
| 回文、单词统计、信息提取、凯撒密码 | ⭐⭐⭐⭐⭐ | 编程大题 | 边界条件(双指针相遇条件);移位忘了取模 |
三、选择 / 判断题「陷阱」清单
下面 20 条是三级卷面**最容易"算错、记反"**的考点,考前务必逐条自问"这句话对吗"。
- 8 位补码的表示范围是 −128 ~ 127(不是 −127~127);−128 没有原码和反码。
- 0 的原码 / 反码有两个(+0、−0),补码只有一个。
- 求负数的补码:符号位不变、数值位取反、末位加 1——别忘"+1"。
- 十进制转 R 进制:整数部分除基取余、余数倒着读;小数部分乘基取整、整数位顺着读。
- 二进制转八进制三位一组、转十六进制四位一组;整数部分从右往左分、小数部分从左往右分。
A~F对应 10~15(A=10、F=15)。- C++ 中
017是八进制(等于十进制 15)、0x1F是十六进制(等于十进制 31)。 ~x = -x - 1:所以~5 = -6,不是 −5。- 左移
<<相当于 ×2ⁿ、右移>>相当于 ÷2ⁿ(负数右移向下取整:-7>>1 = -4)。 x & 1 == 0实际是x & (1 == 0)——优先级陷阱,必须写(x & 1) == 0。&、|、^(位运算)与&&、||(逻辑运算)不同;后者有短路求值,前者没有。- 算法的五个特征:有穷性、确定性、可行性、输入、输出;算法必须有穷。
- 流程图判断框是菱形、一进两出;平行四边形是输入/输出。
- 数组下标从 0 开始;n 个元素合法下标是 0 ~ n−1;越界是未定义行为。
int a[5] = {5};只有a[0]=5,其余为 0。int a[n];(n 为变量)非法;数组大小须为编译期常量。- 数组作函数参数会退化为指针,函数内
sizeof求得的是指针大小而非数组长度。 find找不到返回string::npos(一个极大的size_t值),不是 −1(但pos == -1也可能因类型转换成立,标准写法用npos)。substr(pos, len)的第二个参数是长度,不是结束位置。cin >>读数字会残留换行符,紧接getline前要cin.ignore();tolower返回int,必要时强转回char。
四、编程题两条主线
三级两道编程题几乎都沿这两条主线出题,复习时按主线整块练比零散刷题有效。
| 主线 | 涉及章节 | 典型题型 | 高频失分点 |
|---|---|---|---|
| 数组线 | 第6章 一维数组(+ 第5章 枚举/模拟) | 频次统计 / 求最值 / 逆序 / 插入删除 / 前缀和 | 下标从 0 开始、边界差一、计数数组开小 |
| 字符串线 | 第7章 字符串及其函数(+ 第5章 枚举/模拟) | 单词统计 / 回文判断 / 信息提取(身份证)/ 凯撒密码 / 密码强度 | npos 用法、substr 参数、双指针相遇条件、移位取模 |
🧩 交叉考点:枚举 + 数组(如统计、筛素数)、模拟 + 字符串(如日期换算、加解密)是最常见的"两章拼一题"形式。
五、考前 30 分钟速查卡
数据编码(第2章)
- 8 位表示范围:原码 / 反码 −127~127、补码 −128~127。
- 求负数补码:符号位不变 → 数值位取反 → 末位 +1。
- 快速法:从右数第一个 1 及其右边不变,左边全部取反。
进制转换(第3章)
- 整数:除基取余、倒读;小数:乘基取整、顺读。
- 八进制 ↔ 二进制 = 三位一组;十六进制 ↔ 二进制 = 四位一组。
A~F = 10~15;0前缀 = 八进制、0x前缀 = 十六进制。
位运算(第4章)
&清零取位、|置 1、^翻转、~x = -x-1。<<n= ×2ⁿ、>>n= ÷2ⁿ(负数向下取整)。- 优先级:
~高,其次<< >>,再&,再^,再|——拿不准就加括号。
算法与描述(第5章)
- 算法五特征:有穷、确定、可行、输入、输出。
- 流程图符号:起止=圆角矩形、处理=矩形、判断=菱形、输入输出=平行四边形、流程线=箭头。
- 枚举 = 定范围 + 定条件 + 优化;模拟 = 照过程逐步更新状态。
一维数组(第6章)
- 下标 0 ~ n−1;
{ }部分初始化补 0。 - 遍历
for(int i=0;i<n;i++);逆序从n-1开始。 - 前缀和:
pre[i+1] = pre[i] + a[i],区间和= pre[r+1] - pre[l]。
字符串(第7章)
find/count找不到 →s.find(x) == string::npos。substr(pos, len)第二参数是长度。- 大小写差 32;
'A'=65、'a'=97、'0'=48。
📎 返回索引:本附录为 附录 B;附录 A = 考纲 ↔ 章节对照矩阵;附录 C = 术语中英对照;附录 D = 学习路径与备考规划;附录 E = 版本说明与勘误。
