这些错题是 《信息学奥赛CSP通关之路------CSP-J/S第一轮原创全真模拟试卷集(2026)》 这本书中的第7套套模拟题中我所做错的题,仅供参考。
错题整理(CSP-J 2026 初赛模拟卷 7)
第 6 题(单项选择题)
原题 :算 24 点游戏指的是用给出的四个数字结合加、减、乘、除运算凑出 24。用 1, 4, 5, 6 算 24 点,下列后缀表达式中正确的是( )
A. 156/-4/
B. 56/1-4/
C. 4156/-/
D. 4156-//
答案:C
解析 :后缀表达式 4156/-/ 对应的中缀为 4 / (1 - 5/6)。计算:
5/6 = 5/6,1 - 5/6 = 1/6,4 ÷ (1/6) = 24。
其他选项均不能得到 24。
第 10 题(单项选择题)
原题 :无向图 G = (V, E),顶点集合 V = {a,b,c,d,e,f,g},边集 E = {(a,b),(a,c),(b,d),(c,d),(d,e),(d,f),(e,g),(f,g)},从顶点 a 开始进行深度优先搜索,不能得到的顶点序列是( )
A. acdegfb
B. abdcfge
C. abcdcfg
D. abdfgec
答案:C
解析:选项 C 中出现了重复顶点 c,且访问顺序不合法(c 在 d 之后又出现)。DFS 访问序列中每个顶点至多出现一次,因此 C 不可能为 DFS 序列。
第 14 题(单项选择题)
原题 :小明的团队中只有 10 个成员(算上小明),他讨厌其中的两个人,又喜欢其中的三个人。明天小明就要出差了,他可以带任意多个团队成员一起去,也可以自己一个人去。他不想和他讨厌的人出差,也不想让出差的人中一个自己喜欢的都没有。他一共有( )种出差人选的方案。
A. 113
B. 105
C. 112
D. 104
答案:C
解析:
- 小明必去。
- 讨厌的 2 人不能带,排除。
- 喜欢的 3 人至少选 1 人:选法为 23−1=72^3 - 1 = 723−1=7 种。
- 中立的 4 人任意选:24=162^4 = 1624=16 种。
- 总方案数 = 7×16=1127 \times 16 = 1127×16=112。
第 18 题(判断题)
原题 :阅读程序(1)欧拉函数程序:
将 isPrime() 函数中的 for 循环改成 for(int i=2; i*i<n; ++i),程序结果不变。( )
答案:错误(×)
解析 :改成 i*i < n 会漏掉对完全平方数的判断。例如 n = 4 时,i = 2 不满足 2*2 < 4,循环不执行,isPrime(4) 会错误返回 true,导致结果改变。
第 23 题(判断题)
原题 :阅读程序(2)子数组计数程序:
若输入完对 arr 数组排序,结果与原程序结果一样。( )
答案:错误(×)
解析:程序统计的是连续子数组和 ≤ s 的个数。排序会改变子数组的连续性和元素顺序,因此计算出的子数组数量可能不同。
第 29 题(判断题)
原题 :阅读程序(3)组合数递归程序:
程序的运行时间与 b 相关但与 a 无关,且 b 越大运行时间越长。( )
答案:错误(×)
解析 :递归函数 Function(a,b) 的运行时间同时与 a 和 b 有关,a 越大递归分支越多;b 增大时,a-b 减小也可能使递归提前结束,因此运行时间并非单纯随 b 增大而增大。
第 31 题(单项选择题)
原题 :阅读程序(3)组合数递归程序:
若输入的 a 不变,b 依次取 1,2,...,a,则程序的输出( )
A. 单调变大
B. 单调变小
C. 先变小再变大
D. 先变大再变小
答案:D
解析:该程序输出为组合数 (C(a,b))。当 b 从 1 增到 a 时,组合数先增大后减小(对称性,中间最大)。
第 38 题(完善程序填空题)
原题 :完善程序(2)以最小代价删除字符:
①处应填( )
A. max(dp[i][j], dp[i-1][j-1])
B. max(dp[i-1][j], dp[i][j-1])
C. min(dp[i][j], dp[i-1][j-1])
D. min(dp[i-1][j], dp[i][j-1])
答案:B
解析 :动态规划转移时,若字符不相等,需要继承"删除一个字符"后的状态,即取 max(dp[i-1][j], dp[i][j-1])(此处 dp 维护的是最大保留收益,对应最小删除代价)。
第 41 题(完善程序填空题)
原题 :完善程序(2)以最小代价删除字符:
④处应填( )
A. s1[i] - 'a'
B. s2[i] - 'a'
C. s1[i] + s2[i] - 'a'
D. s1[i] + s2[i] - 2*'a'
答案:D
解析 :总删除代价应为两个字符串所有字符的删除代价之和。每个字符的删除代价是 字符 - 'a',所以总代价为
\\sum (s1\[i\]-'a') + \\sum (s2\[i\]-'a') = \\sum (s1\[i\]+s2\[i\]-2\*'a')
第 42 题(完善程序填空题)
原题 :完善程序(2)以最小代价删除字符:
⑤处应填( )
A. dp[n][n]
B. count + dp[n][n]
C. count - dp[n][n]
D. count - 2 * dp[n][n]
答案:D
解析 :count 为两个字符串全部删除的代价总和,dp[n][n] 为最大可保留字符的"收益"(每个保留字符相当于节省两次删除代价)。因此最小删除代价 = count - 2 * dp[n][n]。