1 条题解
-
0
全套试题标准参考答案与讲师深度剖析
快速查对速查表
题号 1 2 3 4 5 6 7 8 9 10 单选 A B A B C D A C 题号 11(判) 12(判) 13(选) 14(选) 15(判) 16(判) 17(选) 18(选) 19(判) 20(判) 21(选) 22(选) 阅读 A(对) B(错) B A A(对) B(错) B A(对) B(错) A D 题号 23(1) 24(2) 25(3) 26(4) 27(5) 完型 A B A B
逐题深度解析
第一部分:单项选择题
-
【答案】A
【解析】- 。十六进制 。
- 逐位按位与运算:
11010110 & 00101110 = 00000110(十进制 6)。 - 八进制 。
- 逐位按位或运算:
00000110 | 00101011 = 00101111(十进制 47)。 - 将
00101111转换为十六进制:低 4 位1111为F,高 4 位0010为2,即0x2F。选 A。
-
【答案】A
【解析】
条件运算符优先级高于赋值运算符。- 条件
y > z即3 > 4为假(false); - 因此计算冒号右边的表达式
z *= 2。此时z自乘 2 变为 ,且该子表达式的返回值为 ; - 最后执行加等:
x += 8,x从 2 变为 ; - 变量
y未被修改仍为 。故最终结果为x = 10, y = 3, z = 8。选 A。
- 条件
-
【答案】B
【解析】
从 6 男 4 女中选 4 人,要求至少 2 男且男女都有,按男生人数分类讨论:- 选 2 男 2 女: 种;
- 选 3 男 1 女: 种;
- (不能选 4 男,因为要求有女生;不能选 1 男,因为要求至少 2 男)。
总方案数为 种。选 B。
-
【答案】A
【解析】
格雷码转二进制公式为:最高位 ,后续位 。
已知 :
得到二进制数为1001(验算:1001 ^ (1001 >> 1) = 1001 ^ 0100 = 1101)。选 A。
-
【答案】B
【解析】
头插法标准步骤:首先让待插入节点p的指针指向原本的头节点(p->next = head;),然后更新头节点指针为p(head = p;)。若颠倒则导致后继丢失。选 B。 -
【答案】C
【解析】
大根堆数组下标从 1 开始,依次插入模拟:- 插入 18
- 插入 7
- 插入 25 ,上浮:
- 插入 12 ,上浮:
- 插入 33 ,与 12 换,再 ,上浮到根:
- 插入 40 插入下标 6(18 的左孩子),,上浮与 18 交换,接着 ,上浮到根与 33 交换!此时堆数组为:
下标 1:40
下标 2:25
下标 3:33
下标 4:7
下标 5:12
下标 6:18 - 插入 20 插入下标 7(33 的右孩子),,不上浮。
因此数组下标 3 的元素严格为 33。对应选项 C。
-
【答案】D
【解析】
带提前退出判断标志位(如bool swapped)的优化冒泡排序,在数组本身完全有序的“最好情况”下,仅需扫描一趟进行 次比较即可发现未发生交换并直接退出,时间复杂度为 。因此“无论在最好还是最坏情况下比较次数均等于 ”是错误的。选 D。 -
【答案】D
【解析】
哈希表长 13,。- 插入 26:,占位置 0;
- 插入 39:,冲突。,占位置 1;
- 插入 52:,冲突。
探测 1:,已被占用;
探测 2: 空闲!
故 52 被存放在下标 12。选 D。
-
【答案】A
【解析】- 个顶点的无向连通图,最少需要 条边以保证连通;一旦边数达到 条或更多,必定会产生回路(环),A 正确;
- 点 边的图若不连通则不是树,B 错;
- 生成树的边数恒等于 ,C 错;
- 根据握手定理,奇数度节点的个数必定是偶数,D 错。
-
【答案】C
【解析】
Floyd-Warshall 算法的底层设计思想是动态规划(DP),其状态转移方程为 $dp[k][i][j] = \min(dp[k-1][i][j], dp[k-1][i][k] + dp[k-1][k][j])$,不属于贪心算法。选 C。
第二部分:程序阅读题
(一)区间选点覆盖
- 第 11 题(A / 对):这是按照区间右端点排序、贪心选取右端点的标准区间选点模板,说法正确。
- 第 12 题(B / 错):若按左端点排序,当大区间包含小区间(如
[1, 100]与[2, 3])时,贪心会选错点,无法得到最优解,说法错误。 - 第 13 题(B):按右端点排序后:
[2, 4]:选点 4;[1, 5]:已包含 4;[3, 6]:已包含 4;[5, 8]:不包含 4,新选点 8;[7, 9]:已包含 8。
最少只需选 2 个点(点 4 和点 8)。选 B(2)。
- 第 14 题(A):所有区间右端点均为 10 且互相重叠,第一个区间选中 10 后,后续所有区间左端点 ,全部被覆盖,输出 1。选 A。
(二)快速选择第 K 大
- 第 15 题(A / 对):快速选择每次只递归进入包含第 小元素的一侧分支,递归规模 ,平均时间复杂度为 。
- 第 16 题(B / 错):若基准每次都极度不平衡(如退化为单边),最坏时间复杂度会退化为 。
- 第 17 题(B):排序后数组为
3, 4, 5, 7, 12, 19, 26,第 4 小的元素是 7。选 B。 - 第 18 题(B):元素全相等时,两个内层
while条件由于使用严格不等号<和>会立刻停住,外层不断交换并使 ,循环次数约为 次。选 B。
(三)Prim 最小生成树
- 第 19 题(A / 对):邻接矩阵版 Prim 算法复杂度与边数无关,固定为 ,特别适合稠密图。
- 第 20 题(B / 错):
min_dist[u] + graph[u][v]是 Dijkstra 单源最短路径算法的松弛条件,绝非 Prim 算法的求树边条件,改动后彻底错误。 - 第 21 题(A):逐步加入边:
(2, 3, 1),(1, 2, 2),(3, 4, 2),总权值为 。选 A。 - 第 22 题(D):点 1,2 与点 3,4 分立在两个不连通的子图中,Prim 算法检测到不连通返回 -1。选 D。
第三部分:完善程序题(并查集)
- 第 23 题(A):标准的路径压缩递归实现:
parent_node[x] = find(parent_node[x])。选 A。 - 第 24 题(A):小树合并到大树
rootX后,大树的大小应累加小树的大小:set_size[rootX] += set_size[rootY]。选 A。 - 第 25 题(B):成功合并两个独立的连通块后,连通块总数减少 1:
components--。选 B。 - 第 26 题(A):初始时每个节点独立构成一个集合,其大小为 1:
set_size[i] = 1。选 A。 - 第 27 题(B):判断连通性必须通过
find函数找到各自的代表元素(根节点)进行比较:find(u) == find(v)。选 B。
-
- 1
信息
- ID
- 19506
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 3
- 已通过
- 3
- 上传者