2026 年 CSP-J 第一轮认证已经结束,本文整理了整套真题卷(共 13 页,图片附后),并结合网络上的逐题解析,梳理了今年初赛的命题特点、易错点与参考答案,供同学们复盘使用。

⚠️ 参考答案为个人解答整理,并已对照原卷逐题核验 https://noi.hnai.net/csp/461.html (椰程信奥真题解析),仅供参考,最终以 CCF 官方公布为准。

一、整体印象:一套「考细心」的卷子

今年 J 组初赛的整体难度中等、略偏基础,知识点不偏不怪:进制、栈、完全二叉树、递推、BFS、二分、前缀和、高精度、DFS 都是入门阶段的常规内容。

几个明显特点:

  1. 纯计算机常识题一道没有——硬件、网络、发展史类概念题全部缺席,全部是算法与数学类题目,只背概念不写代码的同学会比较吃亏;
  2. 模拟计算量偏大——不少题需要一步步手工模拟,错一步就整题丢分;
  3. 区分度来自细心程度,而不是知识面,拿高分靠「稳」。

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

覆盖内容很传统:数据类型精度、进制转换、运算符、出栈序列、完全二叉树、循环求和、上楼梯递推、BFS、gcd 计数、硬币问题、指针、二分、前缀和、绝对值和最小、握手定理。

  • 送分题举例:第 3 题 7/3*3 + 7%3 考整数除法;第 5 题 100 个结点的完全二叉树,叶子数 = 100 − ⌊100/2⌋ = 50;第 14 题取中位数 7,距离和 37;第 15 题度数和 = 4×3 + 6×4 = 36,边数 18。
  • 易错题一:第 7 题(上楼梯),每次走 1/2/3 级,本质是三阶递推:1、1、2、4、7、13、24、44、81,答案 81,顺着递推即可(选项里的 44 是第 7 级,专坑少推一步的)。
  • 易错题二:第 8 题(BFS),5×5 网格、按「上、下、左、右」入队,问 E 第一次入队时已经入过队的格子总数,答案是 14。中间那列 # 把路卡住,必须一格一格写队列变化,凭感觉数极易数成 13 或 15。
  • 第 9 题(gcd 计数):gcd(n, 60) = 6 且 1 ≤ n ≤ 100。设 n = 6t,则需 gcd(t, 10) = 1,t ≤ 16 的取值有 {1, 3, 7, 9, 11, 13},对应 n ∈ {6, 18, 42, 54, 66, 78},共 6 个,选 B。
  • 第 13 题(前缀和差分):题干给定 s[i] = 3i² + i,a[10] = s[10] − s[9] = 310 − 252 = 58,选 C;选项里的 252、310 正是 s[9]、s[10],专坑没做差分的同学。

三、阅读程序(16–33):难度依次递增

程序 1(16–21):位运算计数,偏易

程序循环地对 n 除以 2,x 记录二进制位数 +1,y 记录二进制中 1 的个数 +1。看清这一点,后面基本都能顺着做:

  • 第 19 题:条件改成 n >= 0 后,n 变成 0 会一直死循环;
  • 第 20 题:6 = 110₂,输出 4 3
  • 第 21 题(小陷阱):第二个数等于 2,说明 n 的二进制里恰好有一个 1,即 n 是 2 的幂。0 ~ 2³¹−1 中 2⁰ 到 2³⁰ 共 31 个,注意别把 2³¹ 也算进去。

程序 2(22–27):高精度加法,经典模型

重点在输出格式:程序固定输出 max(a_len, b_len)+1 位,所以最高位可能是前导零。

  • 第 22 题:123 456 输出 0579
  • 第 23 题:只要没有进位,结果就带前导零,所以「一定不会有前导零」是错的;
  • 第 25 题:12345 + 678 = 13023,输出 6 位,为 013023
  • 第 26 题(比较有意思):把 >=10 改成 >10 后,95 + 15 两位的和恰好都是 10,进不了位,输出 01010——考的是你是否真的理解判断条件在干什么。

只要平时练过高精度,这个题组得分不难。

程序 3(28–33):DFS + 质数,全卷最磨人

程序从 1–9 出发,每次在末尾接一个数字,且要求每一步得到的数仍是质数,一旦达到或超过 n 就输出——这是一类「右截断素数」的搜索,输出顺序是 DFS 序而非从小到大。

  • 第 28 题:n = 10 时输出 23、29、31、37、53、59、71、73、79 共 9 行,不是 10 行;
  • 第 31 题:n = 24 时,从 2 出发得到 233、239,再到 29,第 3 行是 29。注意搜索顺序,不是按大小排序的;
  • 第 32 题:排除法可得正确选项 D——每个输出的数删掉末位后一定还是质数(A 错在顺序不是升序,C 错在个位还可能是 1、9);
  • 第 33 题(全卷时间黑洞):n = 200 时答案是 14 行,输出的都是三位的右截断素数:233、239、293、311、313、317、373、379、593、599、719、733、739、797。要么熟悉这类数的规律,要么老老实实把每个两位质数再往后接一位逐个判断。

四、完善程序(34–43)

程序 1(34–38):进制转换

题意是把 mn 进制(即 m×n 进制)的数转换为 n 进制。核心思路:每读入一位 x,就把当前的数乘以 m·n 再加上 x。由于数组在 n 进制下存储,「乘以 n」等价于整体后移一位,「乘以 m」则是每一位乘上 m:

  • ① 填 b[j-1] * m(移位并乘 m);
  • ② 填 x
  • ③④ 做进位,填 b[j] / nb[j] % n
  • ⑤ 去除高位零且至少保留一位,填 len > 1 && b[len-1] == 0

对应选项:34 D、35 B、36 D、37 B、38 C。难点在于第一次见到「移位 + 乘 m」的写法,想清楚「移位等价于乘 n」就顺了。

程序 2(39–43):平衡分割

题意:给定长度为 n 的字符串,每个字符都是十六进制数位(0~9 或 A~F);选 k 个切分位置(1 ≤ k < n)把它分成 k+1 段,使各段「数位平均值」的最大值与最小值之差最小,输出该最小值(保留 6 位小数)。

答案 说明
A c <= '9' ? c - '0' : c - 'A' + 10 字符含 A~F,须按十六进制转换
A int r = l; r <= n; r++ 枚举段末位置 r;r++ < nr < n 写法到不了 n,末段无法收尾
A get_val(s[r]) 累加当前字符数值;取 s[r-1] 会拿到上一段末字符,直接加 ASCII 码不对(题干的 ASCII 提示是烟雾弹)
B 1.0*sum/(r-l+1) 平均值是小数(输出保留 6 位),整数除法会截断
A r+1, cnt+1, min(minb, nwb), max(maxb, nwb) 下一段从 r+1 开始,段数 +1,更新极值;cnt 终值为 0 表示没切刀,按题意舍去

⚠️ 重要更正:网传解析给出的 39–43 答案(如 B D C A D)与卷面原文不符。本文已对照原卷选项逐空验证,修正为 A A A B A

五、参考答案汇总

部分 题号 答案
一、单项选择 1–15 B D C C B D D C B A A D C A B
二、阅读程序 (1) 16 / 17 / 18 / 19 / 20 / 21 √ / × / √ / A / C / C
二、阅读程序 (2) 22 / 23 / 24 / 25 / 26 / 27 √ / × / × / B / A / C
二、阅读程序 (3) 28 / 29 / 30 / 31 / 32 / 33 × / √ / √ / B / D / C
三、完善程序 (1) 34 / 35 / 36 / 37 / 38 D / B / D / B / C
三、完善程序 (2) 39–43 A / A / A / B / A(已对照原卷核正)

完整的逐题分步演算(含真题原文题干与选项)可参见本站《2026 CSP-J 第一轮(入门级)真题逐题解析(题干+答案+分步推导)》一文。

六、2026 真题卷(共 13 页)

以下为完整真题卷扫描页,可右键保存打印:

2026 CSP-J 第一轮真题卷 第1页

2026 CSP-J 第一轮真题卷 第2页

2026 CSP-J 第一轮真题卷 第3页

2026 CSP-J 第一轮真题卷 第4页

2026 CSP-J 第一轮真题卷 第5页

2026 CSP-J 第一轮真题卷 第6页

2026 CSP-J 第一轮真题卷 第7页

2026 CSP-J 第一轮真题卷 第8页

2026 CSP-J 第一轮真题卷 第9页

2026 CSP-J 第一轮真题卷 第10页

2026 CSP-J 第一轮真题卷 第11页

2026 CSP-J 第一轮真题卷 第12页

2026 CSP-J 第一轮真题卷 第13页

结语

总的来说,2026 年 CSP-J 第一轮不是一套「难题」,而是一套「考细心」的题:方向明确、题型熟悉,要求把每一步走对。基础扎实、平时爱动手的同学会很有优势。

预祝各位同学初赛取得好成绩,复赛再见!