【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]

相关推荐
Nil2081 小时前
leetcode 114二叉树展开为链表
leetcode·链表·深度优先
土星云SaturnCloud1 小时前
Real-ESRGAN超分辨率算法原理与边缘侧部署实践
服务器·算法·ai·边缘计算·real-esrgan
cz07101 小时前
hot100_搜索二维矩阵 II
算法·leetcode
电商API_180079052472 小时前
速卖通商品采集API技术文章
java·开发语言·c++·api·跨境电商·商品详情
疯狂打码的少年2 小时前
【数据结构】板块总结 + 下期预告(数据库技术)
数据结构·笔记·算法
郝学胜_神的一滴2 小时前
Effective Python 条款 2:遵循 PEP 8 编码风格,写出高质量 Python 代码
python·算法
郝学胜-神的一滴2 小时前
Effective Python 条款 1:确认你正在使用的 Python 版本
开发语言·数据结构·python·程序人生·算法
sel_92 小时前
【多轮对话论文导读(二)】多轮对话与LLM Agent论文阅读:长期记忆、多轮评估与Agent训练
人工智能·深度学习·算法·语言模型·自然语言处理
一木 之林2 小时前
五、C++新特性、关键字与编译原理
java·jvm·算法