Files
cpp-courseware/2.Course/5.C++_Exam/NOI/CSP-J 初赛模拟卷/答案解析/CSP-J初赛模拟卷·第11套-答案解析.md
T
xiaolinquan 0af92a68d9 整理 NOI 初赛资料目录并标准化 CSP-J 模拟卷
- 将18套模拟卷分离为试题和答案解析,补齐并规范逐题解析
- 补充SVG图示,统一试题排版并导出打印PDF
- 重整初赛专题训练与复习资料目录,清理旧版源文件
2026-11-06 17:50:51 +08:00

9.7 KiB
Raw Blame History

CSP-J 初赛模拟卷(第 11 套)
参考答案与解析

一、单项选择题

答案速查

题号 1 2 3 4 5 6 7 8
答案 D C B C A D A C
题号 9 10 11 12 13 14 15
答案 A D C D B A、B、B、B A

逐题解析

第1题

答案: D

解析: 按题目采用的 1024 进位约定,$1\ \mathrm{TB}=1024^4\ \mathrm{B}=2^{40}\ \mathrm{B}$。

第2题

答案: C

解析: PENTIUM(奔腾)、酷睿和赛扬均为 CPU 的产品系列或型号名称。

第3题

答案: B

解析: 全国青少年计算机程序设计竞赛(NOI)由中国计算机学会于 1984 年创办。

第4题

答案: C

解析: Photoshop 是图像编辑应用软件;Windows、DOS 和 NOI Linux 均属于操作系统。

第5题

答案: A

解析: FTP 是文件传输协议,用于在网络中的计算机之间传输文件。

第6题

答案: D

解析: 蓝牙、Wi-Fi 和 GPRS 均属于无线通信技术;本题中的以太网指常见的有线局域网技术。

第7题

答案: A

解析: 图灵奖用于表彰对计算机科学作出重要贡献的人物,是计算机科学领域的最高荣誉之一。

第8题

答案: C

解析: $(101.11)_2=2^2+2^0+2^{-1}+2^{-2}=4+1+0.5+0.25=5.75$。

第9题

答案: A

解析: 先给每个班分配一个名额,再将剩余 3 个相同名额分给 7 个不同班级。由隔板法,方案数为 $\binom{3+7-1}{7-1}=\binom96=84$。

第10题

答案: D

解析: 8 位无符号整数的范围是 0 至 $2^8-1=255$。选项中能表示的数为 133 和 $199$,其中较大的是 $199$。

第11题

答案: C

解析: 三人的选择相互独立,方案总数为 $\binom42\binom43\binom43=6\times4\times4=96$。

第12题

答案: D

解析: 拓扑序列的第一个顶点不能有尚未排列的前驱,因此其原始入度必须为 $0$。有环图不存在拓扑序,拓扑序也不一定唯一;原始入度的大小不能决定所有顶点的排列先后。

第13题

答案: B

解析: 因特网源于计算机通信、分组交换和网络协议等技术的发展,并不是通过研究蜘蛛网而发明的,因此 B 的说法错误。

第14题

答案: (1)A;(2)B;(3)B;(4)B。

解析: 丙去了,由③知丁没去;由②的逆否命题知乙没去。结合④及丙去了,可推出甲去了。再结合①和乙没去,可推出周末没下雨。因此四空依次为 A、B、B、B。

第15题

答案: A

解析: 搜索过程中尝试构造解,在当前选择不能满足条件时撤销该选择并返回上一步继续尝试,这正是回溯法的基本过程。

二、阅读程序

程序(1)

程序分析: 按题目采用的 32 位补码整数模型,f(x) 统计二进制表示中 1 的个数,g(x)=x&(-x) 提取最低位的 1 所代表的数值;程序输出二者之和。

答案速查

题号 16 17 18 19 20 21
答案 × × × √ × B
第16题

答案: ×(错误)

解析: 数组 a[1000] 的合法下标是 0 至 $999$。输入 n=1001 时会访问 a[1000],发生越界。

第17题

答案: ×(错误)

解析: 零也是反例:f(0) 的循环一次也不执行,g(0)=0,程序不会因此陷入死循环。

第18题

答案: ×(错误)

解析: 样例中的最后一个数为 $10$,其二进制为 1010,故 f(10)=2、g(10)=2,最后应输出 $4$,而不是 $5$。

第19题

答案: √(正确)

解析: 511998 的二进制表示有 16 个 1,最低位的 1 代表 $2$,因此输出 $16+2=18$。

第20题

答案: ×(错误)

解析: 将 g 的定义移到 main 后面时,需先在调用前提供函数声明;否则编译器在调用处尚不知道 g。

第21题

答案: B

解析: 32 位补码下,-65536 的二进制表示有 16 个 1,最低位的 1 为 $65536$,输出 $65552$;$2147483647=2^{31}-1$,输出 $31+1=32$。

程序(2)

程序分析: a[x]=y 与 b[y]=x 维护两侧结点的一一配对,冲突配对会先解除。最后分别统计两数组中的零元素;若当前有 t 对配对,输出为 $2n-2t$。

答案速查

题号 22 23 24 25 26 27
答案 √ × × × A A
第22题

答案: √(正确)

解析: 第一对正编号结点必定可以配对,之后的更新不会使配对总数降为零,因此 m>0 时最终至少有一对,输出小于 $2n$。

第23题

答案: ×(错误)

解析: 最终答案为偶数,但某一次执行 ++ans 后的中间值可以是奇数。例如仅配对 (1,2) 时,扫描 i=1 就可能使 ans 变为 $1$。

第24题

答案: ×(错误)

解析: 例如输入配对 (1,2)、(3,1) 后,a[1]=2、b[1]=3,二者可以同时大于零。

第25题

答案: ×(错误)

解析: 例如先后输入 (1,2)、(1,3),每次均有 x<y,但第二次仍须解除旧配对,因此相应语句会执行。

第26题

答案: A

解析: 两侧编号分别互不相同时,所有 m 对都能保留,零元素总数为 $2(n-m)=2n-2m$。

第27题

答案: A

解析: 所有 y 相同时,最终只能保留其中一对配对,故零元素总数为 $2n-2$。

程序(3)

程序分析: 程序先用 Floyd 算法求最短路,再枚举一对顶点,将其间距离设为零并更新最短路,最后取所有无序顶点对距离之和的最小值。

答案速查

题号 28 29 30 31 32 33
答案 × × √ √ A A
第28题

答案: ×(错误)

解析: Floyd 算法需要把中转顶点 k 放在最外层,保证阶段性状态含义;改为 i,j,k 后不再具有这一保证,结果可能改变。

第29题

答案: ×(错误)

解析: 读入边需要 O(m) 时间,后续枚举和更新需要 O(n^4) 时间,整体可写为 $O(m+n^4)$,不能说所有运行步骤都与 m 无关。

第30题

答案: √(正确)

解析: 在允许的图规模和边权下,最优距离总和也可能大于 $10^7$。若把 ans 初始化为该值,取最小值时就可能保留错误的初值。

第31题

答案: √(正确)

解析: 两次更新分别允许经由顶点 i 和 j,最终允许的中转顶点集合相同,因此交换这两次更新的顺序不影响结果。

第32题

答案: A

解析: 对给定图枚举置零的顶点对并计算更新后的无序点对最短路之和,最小结果为 $14$。

第33题

答案: A

解析: 代码使用“枚举中转点并松弛任意两点距离”的 Floyd 算法。

三、完善程序

程序(1)

程序分析: 程序在整数值域中二分中位数。对于候选 mid,统计严格大于它的元素个数;若多于半数,则中位数更大,否则中位数不超过当前值。

答案速查

题号 答案
34 rbound > lbound
35 count = 0
36 x[i] > mid
37 count++
38 rbound = mid
第34题

答案: rbound > lbound

解析: 当左右边界尚未重合时继续二分,条件为 rbound>lbound。

第35题

答案: count = 0

解析: 每次更换候选值后,应重新统计,令 count=0。

第36题

答案: x[i] > mid

解析: 应统计严格大于 mid 的数,即 x[i]>mid。若用 >=,例如序列 1,2,3 会错误地把答案推到 $3$。

第37题

答案: count++

解析: 每发现一个满足条件的元素,就使计数加一,执行 count++。

第38题

答案: rbound = mid

解析: 严格大于 mid 的元素不超过一半时,中位数至多为 mid,应执行 rbound=mid。

程序(2)

程序分析: 递归函数为每个子树维护允许的开区间 (lower_bound,upper_bound)。当前值必须落在该区间中;左子树上界改为当前值,右子树下界改为当前值,从而验证严格二叉搜索树。

答案速查

题号 答案
39 cur < upper_bound
40 a[root].right_child
41 cur
42 upper_bound
43 1
第39题

答案: cur < upper_bound

解析: 已检查 cur>lower_bound,还需检查 cur<upper_bound,保证当前值满足上下界限制。

第40题

答案: a[root].right_child

解析: 第二次递归应检查右子树,故根下标为 a[root].right_child。

第41题

答案: cur

解析: 右子树中的所有值应大于当前值,因此下界传入 cur。

第42题

答案: upper_bound

解析: 右子树的上界仍受祖先结点限制,应继续传入 upper_bound。

第43题

答案: 1

解析: 按输入约定,第一个结点是根,因此初次调用的根下标为 $1$。