【C++】CSP-J初赛模拟卷七错题整理(作者自用)

这些错题是 《信息学奥赛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]

相关推荐
Niuguangshuo5 小时前
论文解读:CTC,端到端序列识别的开山之作
算法·语音识别
讳疾忌医丶6 小时前
深度拆解 RocksDB 内核:基于 C++17 的 FIFO 调度状态机与温度阶梯自愈设计
java·c++·算法·架构
2401_868534786 小时前
OpenStack 架构全景:八个核心组件深度拆解
c++·需求分析
高亦真6 小时前
今天是学习嵌入式的第37天
linux·学习·算法
软件课代表CiCi6 小时前
运行库是什么?电脑缺运行库怎么办?c++运行库缺失修复全攻略
开发语言·c++·windows·电脑·dll修复·dll丢失·运行库
蒸蒸yyyyzwd8 小时前
从面经中学到的三件事
c++·笔记
时时三省8 小时前
【时时三省】计算机c语言二级考试选择题重点
c++
罗西的思考8 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 --- (2)--- 训练
人工智能·算法·机器学习
深圳市方中禾科技9 小时前
FZH1625 LCD 驱动芯片深度评测与实战指南
算法·led
我不会起名字32210 小时前
一天一道算法题(34):回溯法的经典例题(子集)
java·数据结构·python·算法·golang·深度优先·力扣