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

相关推荐
by209991 小时前
vector 的模拟实现:扩容与边界的详细阐述(下)
c++·经验分享·vector·动态数组
念何架构之路2 小时前
zap采样器与性能优化内幕
算法·性能优化·哈希算法
晒太羊的猫3 小时前
hot100动态规划刷题
算法·动态规划
weixin_531094694 小时前
heap_4内存管理
java·开发语言·算法
余额瞒着我当琳4 小时前
红黑树的实现--红黑树的概念、规则、效率、结构、旋转、查找、验证
数据结构·c++·算法
程序员南飞4 小时前
win系统安装minio
java·数据结构·算法
青少儿编程课堂4 小时前
AC自动机多模式串匹配精讲:校园关键词巡检实战解析
c++·python·算法·bfs·信息学竞赛
longlongzihan5 小时前
LeetCode 5. 最长回文子串:从暴力匹配到中心扩展的思维演进
c++·算法·leetcode
waoooqwe5 小时前
问卷样本真实吗
大数据·数据库·算法·数据分析
苦瓜打怪兽5 小时前
leetcode 热题100(11. 盛最多水的容器)
python·算法·leetcode