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

9.6 KiB
Raw Blame History

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

一、单项选择题

答案速查

题号 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]。