- 将18套模拟卷分离为试题和答案解析,补齐并规范逐题解析 - 补充SVG图示,统一试题排版并导出打印PDF - 重整初赛专题训练与复习资料目录,清理旧版源文件
9.6 KiB
一、单项选择题
答案速查
| 题号 | 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]。