2024 CSP-J 第一轮(入门级)参考答案与逐题解析(42 题全)

题目原文见本站真题篇《2024 CSP-J 第一轮(入门级)真题完整版(42 题)》。答案经程序实测验证,以 CCF 官方公布为准。

答案速查表

题号 正确答案 分值
1 C 2
2 A 2
3 B 2
4 D 2
5 D 2
6 C 2
7 D 2
8 B 2
9 B 2
10 A 2
11 B 2
12 A 2
13 D 2
14 A 2
15 B 2
16 A 1.5
17 B 1.5
18 A 1.5
19 B 3
20 A 3
21 A 1.5
22 B 1.5
23 B 2
24 A 3
25 B 4
26 A 3
27 B 1.5
28 A 1.5
29 A 1.5
30 B 3
31 C 3
32 D 4
33 A 3
34 B 3
35 D 3
36 C 3
37 D 3
38 B 3
39 B 3
40 B 3
41 B 3
42 C 3

分段小结:单选 1–15 偏重基础概念;阅读程序 16–32 考查代码阅读与边界;完善程序 33–42 考查算法补全。其中第 28、29、36 题为 CCF 官方认定的错题/双选题,已在对应题目标注。

逐题解析

一、单项选择题(1–15)

  1. 【C】32 位 int 范围 −2³¹2³¹−1,即 −2147483648+2147483647。陷阱:把上限错写成 +2147483648(D)。

  2. 【A】14₈=12,1010₂=10,D₁₆=13,1101₂=13;(12−10)×13−13=13。注意先算括号与进制换算。

  3. 【B】10 选 4 且三部门各至少 1 人,分类/容斥得 126 种。易忽略部门人数上限而误选。

  4. 【D】4 位格雷码相邻仅 1 位不同、前后镜像对称,序列以 …0101,0100 收尾。C 末两位颠倒。

  5. 【B】1MB=1024×1024B=1048576 字节,×8=8388608 位。A/C 是字节数量级的干扰项。

  6. 【C】struct 是用户自定义的构造类型,不是 C++ 基本数据类型。

  7. 【D】repeat-until 是 Pascal 等语言结构,C++ 没有;C++ 有 for/while/do-while。

  8. 【B】’a’=97,97+13=110=‘n’。

  9. 【B】二分最多比较 ⌈log₂(1001)⌉=10 次(2¹⁰=1024)。易误选 7(量级混淆)。

  10. 【A】Notepad 是文本编辑器,不是操作系统;其余均为操作系统。

  11. 【B】无向图所有顶点度数之和 = 边数的两倍(每条边贡献 2 度)。

  12. 【A】由前/中序推出:左子树后序 D,E,B;右子树 F,G,C;合并得 D,E,B,F,G,C,A。

  13. 【D】栈出栈序列判断:1,3,5,2,4,6 中 2 在 5、4 入栈后才弹出,但 5、4 入栈时 2 被压在底,矛盾,故不可能。

  14. 【A】3 名女生捆绑成 1 块,与 5 男共 6 元素排列 6!,女生内部 3!,共 4320。

  15. 【B】编译器将源代码翻译成机器码;不直接执行(那是解释器的工作)。

二、阅读程序(16–32)

  1. 【A】countPrimes(10)=4(素数 2,3,5,7),sumPrimes(10)=17,输出“4 17”,正确(√)。

  2. 【B】试除到 n/2 仍正确判定素数,countPrimes(20)=8 而非 6,故说法错(×)。

  3. 【A】函数即求 2…n 所有素数之和(含 n 若素数),说法正确(√)。

  4. 【B】50 以内素数之和为 328。

  5. 【A】改为 i<=n 仅变慢,结果仍“4”和“17”,选 B。

  6. 【A】compute 是“打家劫舍”式最小代价 DP;cost={10,15,20} 时输出 15,正确(√)。

  7. 【B】vector 下标不做越界检查,dp[i-3] 编译不报错(运行才越界),故“可能编译错误”错(×)。

  8. 【B】程序取隔项最小代价而非数组最小元素,如 {1,100,1} 输出 2≠1,故错(×)。

  9. 【A】按 DP 递推得最优代价 6。

  10. 【B】cost={10,15,30,5,5,10,20} 递推得 30。

  11. 【A】改为 dp[i-1]+cost[i-2]、cost={5,10,15} 时得 10。

  12. 【B】customFunction(a,b)=a×b;输入 2 3 返回 6 而非 64,错(×)。

  13. 【A】b 为负数时 b!=0 恒真,递归无限进行(√)。⚠️ 本题为 CCF 官方认定错题/双选题,此处记录其一。

  14. 【A】递归次数随 b 增大而增多,运行时间变长(√)。⚠️ 同上,官方认定错题/双选题。

  15. 【B】customFunction(5,4)=5×5=25(5 个 5 累加),故选 25。

  16. 【C】customFunction(3,3)=12,pow(12,2)=144。

  17. 【D】改为 a+customFunction(a-1,b-1) 退化为连乘 P(3,3)=6,pow(6,2)=36。

三、完善程序(33–42)

  1. 【A】从 i=1 开始试除平方。

  2. 【B】上界取 (int)floor(sqrt(num)),覆盖可能的整数平方根。

  3. 【D】判断 i*i==num 是否成立。

  4. 【C】命中则返回 true。⚠️ 本题(第 36 题)为 CCF 官方认定错题/双选题,官方接受多个答案,此处记录其一。

  5. 【D】循环结束仍未命中,返回 false。

  6. 【B】汉诺塔基础情形 i==1 时直接移动。

  7. 【B】i==1 时 move(src, tgt) 把最顶盘移到目标柱。

  8. 【B】第一次递归 dfs(i-1, src, tgt, tmp),把 i-1 个盘从 src 经 tgt 移到 tmp。

  9. 【B】第二次递归 dfs(i-1, tmp, src, tgt),把那 i-1 个盘从 tmp 经 src 移到 tgt。

  10. 【C】第二次递归的盘数取 i-1,对剩余盘继续递归收口。

试卷特点小结

2024 卷整体难度中上:单选覆盖进制换算、数据结构与算法复杂度等基础;阅读程序三题分别考查素数统计、动态规划(打家劫舍)与递归幂;完善程序考查平方数判定与汉诺塔递归补全。备考时需特别注意第 28、29、36 题官方已认定为错题/双选题。

来源说明

题目与答案整理自网络流传的 CCF CSP-J1 真题版本,经多来源交叉核对与程序实测验证。第 28、29、36 题为 CCF 官方认定的错题/双选题,官方接受多个答案,此处各记录其一。最终请以 CCF 官方公布为准。本站提供该年分三卷(R1A / R1B / R1C)的 Hydro 客观题包,可在 OJ 导入练习、自动判分。