整理 NOI 初赛资料目录并标准化 CSP-J 模拟卷

- 将18套模拟卷分离为试题和答案解析,补齐并规范逐题解析
- 补充SVG图示,统一试题排版并导出打印PDF
- 重整初赛专题训练与复习资料目录,清理旧版源文件
This commit is contained in:
xiaolinquan committed 2026-11-06 17:50:51 +08:00
1 parent fe5c7ffd58
commit 0af92a68d9
216 files changed
+12743 -1272

No files matched your search

@@ -0,0 +1,330 @@
<center><font size="6"><b>CSP-J 初赛模拟卷(第 18 套)</b></font></center>
<center><font size="4"><b>参考答案与解析</b></font></center>
---
#### **一、单项选择题**
**答案速查**
| 题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 答案 | C | C | B | C | B | D | B | A |
| 题号 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 答案 | C | D | B | C | C | C | A |
**逐题解析**
##### 第1题
**答案:** C
**解析:** 按位权展开,$(24)_x=2x+4=18$,解得 $x=7$,且各位数字均小于进制基数 $7$。
##### 第2题
**答案:** C
**解析:** 域名中的 `gov` 表示政府机构,`.cn` 表示中国的国家顶级域名,因此该网站属于政府机构网站。
##### 第3题
**答案:** B
**解析:** 操作系统直接负责处理器调度、内存管理和设备管理等工作,与计算机硬件的联系最密切。
##### 第4题
**答案:** C
**解析:** 第一次判断 `while(i++)` 时先使用旧值 $1$,随后 `i=2`,执行 `s+=2`;第二次判断后 `i=3`,满足 `i%3==0` 而退出,最终 `s=2`。
##### 第5题
**答案:** B
**解析:** 满足条件的无序组合为 $(2,8,9)$、$(3,7,9)$、$(4,6,9)$、$(4,7,8)$、$(5,6,8)$,共 $5$ 种。
##### 第6题
**答案:** D
**解析:** 三人的选课方案相互独立,方案总数为 $\binom42\binom43\binom43=6\times4\times4=96$。
##### 第7题
**答案:** B
**解析:** 根为 `A`;其左子树由 `B、D` 构成,后序为 `DB`;右子树由 `C、E` 构成,后序为 `EC`。合并得到 `DBECA`。
##### 第8题
**答案:** A
**解析:** 引导固件需要在断电后仍能保存,通常存放在 ROM 或具有相应非易失特性的存储器中,本题选择 ROM。
##### 第9题
**答案:** C
**解析:** 表达式的最外层运算是减法,左操作数为 `a+b*c`,右操作数为 `d+e`。分别转为前缀形式后,得到 `-+a*bc+de`。
##### 第10题
**答案:** D
**解析:** 灯的状态每 $6$ 次按键循环一次。$49\bmod6=1$,对应白灯亮;$100\bmod6=4$,对应灯灭。
##### 第11题
**答案:** B
**解析:** $704=2^6\times11$,$2048=2^{11}$,因此最小公倍数为 $2^{11}\times11=22528$。
##### 第12题
**答案:** C
**解析:** 逻辑或仅在两个操作数都为 $0$ 时结果为 $0$;只要有一个为 $1$,结果就为 $1$。
##### 第13题
**答案:** C
**解析:** 代入 C,可得到三组队友分别为“小明与小红”“小刚与琳达”“小伟与小丽”,每组都不是夫妻,且满足小刚与小伟的妻子、琳达的丈夫与小丽同组的条件。
##### 第14题
**答案:** C
**解析:** 先让用时 $1$、$2$ 的两人过桥,用时 $1$ 的人返回;再让用时 $5$、$10$ 的两人过桥,用时 $2$ 的人返回;最后前两人一起过桥。总时间为 $2+1+10+2+2=17$ 分钟。
##### 第15题
**答案:** A
**解析:** 姚期智于 2000 年获得图灵奖,以表彰其在计算理论等领域作出的突出贡献。
#### **二、阅读程序**
##### 程序(1)
**程序分析:** `num[i]` 表示以第 `i` 个元素结尾的最长严格递增子序列长度。程序尝试由前面更小的元素转移,最后取所有 `num[i]` 的最大值。
**答案速查**
| 题号 | 16 | 17 | 18 | 19 | 20 | 21 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 答案 | × | √ | × | √ | D | B |
###### 第16题
**答案:** ×(错误)
**解析:** 算法只比较元素大小,负数同样可以参与比较,不会仅因输入为负数而出错。
###### 第17题
**答案:** √(正确)
**解析:** 长度为 $n$ 的序列,其子序列最多包含 $n$ 个元素,因此 `ans<=n`。
###### 第18题
**答案:** ×(错误)
**解析:** 例如序列 `1,2` 中,初始两项的 `num` 都为 $1$;必须允许相等时更新,才能把第二项改为 $2$。改成严格大于后会漏掉这次转移。
###### 第19题
**答案:** √(正确)
**解析:** 当 `num[i]==ans` 时,无论是否再次赋值,`ans` 的数值都不变,因此修改不影响最大值。
###### 第20题
**答案:** D
**解析:** 所有数相等时,不存在严格递增的相邻选取关系,最长严格递增子序列只能取一个元素,输出 $1$。
###### 第21题
**答案:** B
**解析:** 样例的动态规划长度依次为 $1,1,2,3,4,3,2,4,5,3$,最大值为 $5$;例如可取 `2,5,7,10,15`。
##### 程序(2)
**程序分析:** 程序模拟长除法,`b` 保存商的各位,`a` 保存待除数(余数乘十)。若待除数重复,就找到了循环节;若余数变为零,则小数终止。
**答案速查**
| 题号 | 22 | 23 | 24 | 25 | 26 | 27 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 答案 | × | √ | √ | × | C | D |
###### 第22题
**答案:** ×(错误)
**解析:** 当 `n==m` 且 `m!=0` 时,整数部分为 $1$、余数为零,可以正常结束,不要求两个输入不同。
###### 第23题
**答案:** √(正确)
**解析:** 程序包含整数除法和取模,除数 `m` 必须非零。
###### 第24题
**答案:** √(正确)
**解析:** 循环可因检测到重复待除数而执行 `break`,也可因余数为零而使 `do...while` 条件不成立,共有两种退出途径。
###### 第25题
**答案:** ×(错误)
**解析:** 例如输入 `1 3` 时,会出现待除数 $10$,已经大于初始的 $n=1$,因此该限制不成立。
###### 第26题
**答案:** C
**解析:** $11/8=1.375$,是有限小数,不需循环节括号,因此输出 `1.375`。
###### 第27题
**答案:** D
**解析:** 输入为 `5 13`,$5/13=0.\overline{384615}$,输出为 `0.(384615)`,对应 D。
##### 程序(3)
**程序分析:** DFS 从每个顶点出发枚举不重复顶点的路径,回溯时撤销访问标记,`ans` 记录路径权值之和的最大值,即最长简单路径长度。
**答案速查**
| 题号 | 28 | 29 | 30 | 31 | 32 | 33 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 答案 | √ | √ | D | B | B | C |
###### 第28题
**答案:** √(正确)
**解析:** 简单无向完全图的所有非对角邻接项都会被输入边覆盖;对角项不会被用于访问已标记的当前顶点,因此可省略这段初始化。
###### 第29题
**答案:** √(正确)
**解析:** 所有起点仍会被完整枚举,改变枚举先后不影响最终取到的最大值。
###### 第30题
**答案:** D
**解析:** 图中两个连通分量各只有一条权值为 $1$ 的边,最长简单路径长度为 $1$。
###### 第31题
**答案:** B
**解析:** 四个顶点的完全图中,每条边权值为 $1$,简单路径至多经过 $3$ 条边,且可以达到,因此输出 $3$。
###### 第32题
**答案:** B
**解析:** 顶点 $4$ 孤立,三角形中最长简单路径可取 $2\to3\to1$,长度为 $20+30=50$。
###### 第33题
**答案:** C
**解析:** 取路径 $3\to1\to4\to2$,长度为 $50+40+60=150$;枚举其他简单路径也不能得到更大值。
#### **三、完善程序**
##### 程序(1)
**程序分析:** 程序将大整数的十进制各位逆序存入数组,使下标 $1$ 对应个位;按位相加并向高位进位,最后从最高位向最低位输出。
**答案速查**
| 题号 | 34 | 35 | 36 | 37 | 38 |
| :---: | :---: | :---: | :---: | :---: | :---: |
| 答案 | B | C | A | A | C |
###### 第34题
**答案:** B(`a.num[a.len-i]=c[i]-'0'`)
**解析:** 字符串第 `i` 个字符对应从低位计数的 `a.len-i` 位,减去字符 `0` 后得到数字值。
###### 第35题
**答案:** C(`b.num[b.len-i]=d[i]-'0'`)
**解析:** 同理,将第二个字符串第 `i` 个字符存入 `b.num[b.len-i]`,并减去字符 `0`。
###### 第36题
**答案:** A(`(a.num[i]+b.num[i])`)
**解析:** 当前位应加上两个加数相同位置的数字,即 `a.num[i]+b.num[i]`,同时保留前一位已经产生的进位。
###### 第37题
**答案:** A(`w.num[i]/10`)
**解析:** 当前位总和除以 $10$ 得到进位值,应把 `w.num[i]/10` 加入下一位。
###### 第38题
**答案:** C(`w.num[w.len+1]!=0`)
**解析:** 若原最高位之后仍有非零进位,即 `w.num[w.len+1]!=0`,结果长度需增加一位。
##### 程序(2)
**程序分析:** 程序从指定格子出发,按马的八种走法回溯。移动前同时检查是否在棋盘内、是否访问过;`tot` 记录已移动的步数,访问满整个棋盘时增加方案数。
**答案速查**
| 题号 | 39 | 40 | 41 | 42 | 43 |
| :---: | :---: | :---: | :---: | :---: | :---: |
| 答案 | C | B | D | A | D |
###### 第39题
**答案:** C(`x>=0 && y>=0 && x<r && y<c`)
**解析:** 合法下标应同时满足 `x>=0 && y>=0 && x<r && y<c`,四个条件缺一不可。
###### 第40题
**答案:** B(`check(x+wayr[i], y+wayc[i])`)
**解析:** 应检查移动后的目标位置,因此调用 `check(x+wayr[i],y+wayc[i])`。
###### 第41题
**答案:** D(`!mark[x+wayr[i]][y+wayc[i]]`)
**解析:** 目标格不能已被访问,故还需判断 `!mark[x+wayr[i]][y+wayc[i]]`。
###### 第42题
**答案:** A(`tot==r * c-1`)
**解析:** 起点已占一个格子,走满 $r\times c$ 个格子需再移动 $r*c-1$ 步,因此条件为 `tot==r*c-1`。
###### 第43题
**答案:** D(`x+wayr[i], y+wayc[i]`)
**解析:** 下一层递归的坐标应是当前坐标加上本次移动向量,即 `x+wayr[i],y+wayc[i]`。