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)
【C】32 位 int 范围 −2³¹2³¹−1,即 −2147483648+2147483647。陷阱:把上限错写成 +2147483648(D)。
【A】14₈=12,1010₂=10,D₁₆=13,1101₂=13;(12−10)×13−13=13。注意先算括号与进制换算。
【B】10 选 4 且三部门各至少 1 人,分类/容斥得 126 种。易忽略部门人数上限而误选。
【D】4 位格雷码相邻仅 1 位不同、前后镜像对称,序列以 …0101,0100 收尾。C 末两位颠倒。
【B】1MB=1024×1024B=1048576 字节,×8=8388608 位。A/C 是字节数量级的干扰项。
【C】struct 是用户自定义的构造类型,不是 C++ 基本数据类型。
【D】repeat-until 是 Pascal 等语言结构,C++ 没有;C++ 有 for/while/do-while。
【B】’a’=97,97+13=110=‘n’。
【B】二分最多比较 ⌈log₂(1001)⌉=10 次(2¹⁰=1024)。易误选 7(量级混淆)。
【A】Notepad 是文本编辑器,不是操作系统;其余均为操作系统。
【B】无向图所有顶点度数之和 = 边数的两倍(每条边贡献 2 度)。
【A】由前/中序推出:左子树后序 D,E,B;右子树 F,G,C;合并得 D,E,B,F,G,C,A。
【D】栈出栈序列判断:1,3,5,2,4,6 中 2 在 5、4 入栈后才弹出,但 5、4 入栈时 2 被压在底,矛盾,故不可能。
【A】3 名女生捆绑成 1 块,与 5 男共 6 元素排列 6!,女生内部 3!,共 4320。
【B】编译器将源代码翻译成机器码;不直接执行(那是解释器的工作)。
二、阅读程序(16–32)
【A】countPrimes(10)=4(素数 2,3,5,7),sumPrimes(10)=17,输出“4 17”,正确(√)。
【B】试除到 n/2 仍正确判定素数,countPrimes(20)=8 而非 6,故说法错(×)。
【A】函数即求 2…n 所有素数之和(含 n 若素数),说法正确(√)。
【B】50 以内素数之和为 328。
【A】改为 i<=n 仅变慢,结果仍“4”和“17”,选 B。
【A】compute 是“打家劫舍”式最小代价 DP;cost={10,15,20} 时输出 15,正确(√)。
【B】vector 下标不做越界检查,dp[i-3] 编译不报错(运行才越界),故“可能编译错误”错(×)。
【B】程序取隔项最小代价而非数组最小元素,如 {1,100,1} 输出 2≠1,故错(×)。
【A】按 DP 递推得最优代价 6。
【B】cost={10,15,30,5,5,10,20} 递推得 30。
【A】改为 dp[i-1]+cost[i-2]、cost={5,10,15} 时得 10。
【B】customFunction(a,b)=a×b;输入 2 3 返回 6 而非 64,错(×)。
【A】b 为负数时 b!=0 恒真,递归无限进行(√)。⚠️ 本题为 CCF 官方认定错题/双选题,此处记录其一。
【A】递归次数随 b 增大而增多,运行时间变长(√)。⚠️ 同上,官方认定错题/双选题。
【B】customFunction(5,4)=5×5=25(5 个 5 累加),故选 25。
【C】customFunction(3,3)=12,pow(12,2)=144。
【D】改为 a+customFunction(a-1,b-1) 退化为连乘 P(3,3)=6,pow(6,2)=36。
三、完善程序(33–42)
【A】从 i=1 开始试除平方。
【B】上界取 (int)floor(sqrt(num)),覆盖可能的整数平方根。
【D】判断 i*i==num 是否成立。
【C】命中则返回 true。⚠️ 本题(第 36 题)为 CCF 官方认定错题/双选题,官方接受多个答案,此处记录其一。
【D】循环结束仍未命中,返回 false。
【B】汉诺塔基础情形 i==1 时直接移动。
【B】i==1 时 move(src, tgt) 把最顶盘移到目标柱。
【B】第一次递归 dfs(i-1, src, tgt, tmp),把 i-1 个盘从 src 经 tgt 移到 tmp。
【B】第二次递归 dfs(i-1, tmp, src, tgt),把那 i-1 个盘从 tmp 经 src 移到 tgt。
【C】第二次递归的盘数取 i-1,对剩余盘继续递归收口。
试卷特点小结
2024 卷整体难度中上:单选覆盖进制换算、数据结构与算法复杂度等基础;阅读程序三题分别考查素数统计、动态规划(打家劫舍)与递归幂;完善程序考查平方数判定与汉诺塔递归补全。备考时需特别注意第 28、29、36 题官方已认定为错题/双选题。
来源说明
题目与答案整理自网络流传的 CCF CSP-J1 真题版本,经多来源交叉核对与程序实测验证。第 28、29、36 题为 CCF 官方认定的错题/双选题,官方接受多个答案,此处各记录其一。最终请以 CCF 官方公布为准。本站提供该年分三卷(R1A / R1B / R1C)的 Hydro 客观题包,可在 OJ 导入练习、自动判分。



