C++ 八级单选 15 题 / 判断 10 题答案速查 + 本场考点 + 难度评价 + 易错题精解。想知道孩子这套能考多少?免费做这套真题模考,3 秒自动估分。
| 题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 答案 | B | C | B | A | B | B | C | D | A | B | A | A | C | D | D |
| 题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 答案 | √ | √ | × | √ | × | √ | √ | × | √ | √ |
最高。组合数学 + 图论(MST/最短路) + 数论,竞赛化明显。
本卷 2 道编程题:《生成树计数》《末班车》。逐题题解整理中,将陆续更新。
先序 ABDEC FG 根为 A;中序 DBEA FCG 中 A 左边 DBE 为左子树、右边 FCG 为右子树。递归还原(左子树根 B、右子树根 C)后,后序(左-右-根)为 D E B F G C A。选 A。
快速幂把指数按二进制拆分,每步平方并按位选乘,乘法次数从朴素的 O(n) 降到 O(log n)。A 错(负指数需特殊处理)、C 错(不限模数)、D 错(空间通常 O(1))。选 B。
Prim 基于顶点扩展,适合稠密图;Kruskal 基于边排序 + 并查集,适合稀疏图。B 错(边权有相同值时 MST 可能不唯一)、C 错(Kruskal 用边集不需邻接矩阵)、D 错(MST 针对无向图)。选 A。
堆优化 Dijkstra 的优先队列里,每个元素存"顶点编号 + 该顶点当前最短距离",每次取出距离最小的顶点松弛。选 A。
Floyd 三重循环最外层 k 表示"允许作为中间点的顶点编号上限":只用编号 ≤ k 的顶点做中转来更新任意 i→j 的最短路。选 A。(所以 k 必须在最外层。)
差分数组的每次区间加是 O(1),m 次共 O(m);最后一次前缀和还原是 O(n)。整体 O(n + m)。选 D。
定义 B b:构造先基类后派生 → A B;析构逆序,先派生后基类 → ~B ~A。输出 AB~B~A。选 D。
从 4 本不同书选 3 本分给甲乙丙(每人至多 1 本),即有序选取 P(4,3) = 4×3×2 = 24 种。命题正确。
(a+b)ⁿ 展开式的二项式系数,奇数项之和 = 偶数项之和 = 2ⁿ⁻¹(令 x=-1 代入,交错和为 0 即得)。对任意正整数 n 成立。命题正确。
MST 中有权值相同的边,不一定导致 MST 不唯一——那些等权边可能是构成 MST 的必选边。是否唯一取决于是否存在可替换的等权边。命题绝对化,错误。
不使用堆优化的朴素 Dijkstra,每轮线性扫描找最小距离顶点,整体时间复杂度是 O(n²)(n 为结点数),与是否用邻接表无关。命题正确。
堆排序在调整堆时会进行跨距交换,会打乱相等元素的相对次序,是不稳定排序。命题错误。
算术基本定理:每个大于 1 的整数都能唯一分解为若干质因数之积(不计因子顺序)。命题正确。
循环队列常用"牺牲一个存储单元"的办法:队空为 front==rear,队满为 (rear+1)%N==front,从而区分两种状态。命题正确。
C++ 私有继承下,基类的 public 和 protected 成员在派生类中都变为 private,并非仍为 public。命题错误。
滚动数组是把二维 dp 压成一维(或几行)以节省空间,状态转移次数不变,因此只降空间不降时间复杂度。命题正确。