ARTICLE · 1042232
2026 CSP-J第一轮真题+答案!估分达标即可提前备战第二轮
2026 CSP-J第一轮真题+答案!估分达标即可提前备战第二轮
各位家长和学员们:
2026年CSP-J/S第一轮认证已于9月19日顺利结束!
先回顾去年:2025年CSP-J/S竞赛中,宁波HelloCode编程共有12名学员入围浙江省第二轮,其中两名同学斩获S组一等奖,一名同学在J组拿下满分。
今年,我们的学员再次走进考场。为帮助大家第一时间核对答案、预估分数,我们整理了2026年CSP-J第一轮完整真题及参考答案,并精选部分题目进行解析,完整版已更新在OJ。
一、参考答案汇总
单项选择题1-5:BDCCB6-10:DDCBA11-15:ADCAB
阅读程序16-21:√×√ACC22-27:√××BAC28-33:×√√BDC
完善程序34-38:DBDBC39-43:AABAA
二、真题精选解析
◆ 单项选择题
第1题 下列C++数据类型中,能够精确存储10¹⁸+1这个整数的是( )A. float B. long long C. double D. int【答案】B【解析】int通常32位,最大约2.1×10⁹;float精度约7位有效数字;double精度约15-16位,10¹⁸+1有19位,无法精确存储。long long为64位整型,最大约9.2×10¹⁸,可精确存储。
第4题 初始时栈为空,将1、2、3、4依次入栈,入栈过程中允许随时出栈。下列出栈序列中不可能出现的是( )A. 2,4,3,1 B. 1,2,3,4 C. 3,1,2,4 D. 1,4,3,2【答案】C【解析】要出3,必须先入1入2入3,然后出3。此时栈内为[1,2](栈顶为2)。下一个要出1,但1在2下方,必须先出2才能出1。所以3,1,2,4不可能。
第6题 执行下列代码后s的值是( )int s = 0;for (int i = 1; i <= 100; i++)if (i % 3 == 0 || i % 5 == 0)s += i;A. 3048 B. 2733 C. 2318 D. 2418【答案】D【解析】3的倍数之和=1683;5的倍数之和=1050;15的倍数重复计算,其和=315。结果=1683+1050-315=2418。
第7题 上楼梯每步可上1级、2级或3级,从地面走到第8级台阶共有多少种不同走法( )A. 44 B. 121 C. 149 D. 81【答案】D【解析】设f(n)为走到第n级的方案数,f(n)=f(n-1)+f(n-2)+f(n-3)。初始f(0)=1,f(1)=1,f(2)=2。递推得f(3)=4,f(4)=7,f(5)=13,f(6)=24,f(7)=44,f(8)=81。
第12题 在含1000个互不相同元素的升序数组中,用二分法查找给定值,最坏情况下需要比较多少次( )A. 500 B. 9 C. 11 D. 10【答案】D【解析】二分查找每次将范围缩小一半,共需⌈log₂1000⌉=10次。
◆ 阅读程序
第一篇(代码1)int main() {int n; cin >> n;int x = 1, y = 1;while (n > 0) { if (n % 2 == 0) { ++x; } else { ++x; ++y; } n = n / 2;} cout << x << ' ' << y << endl;}
第16题 当输入为3时,程序输出为3 3。( )【答案】√【解析】n=3:奇数,x=2,y=2,n=1;奇数,x=3,y=3,n=0;输出3 3。
第17题 将第11行的++x;删除后,程序输出的两个数一定相等。( )【答案】×【解析】删除后,x只在偶数时增加,y只在奇数时增加。例如n=3时,x=1,y=3,不相等。
第19题 将第7行的while(n>0)改为while(n>=0)后,程序可能出现的问题是( )A. 陷入死循环 B. 输出结果比原来大 C. 输出结果比原来小 D. 输出结果不受影响【答案】A【解析】n=0时,n>=0成立,进入循环,n%2=0,++x,n=n/2=0,然后n>=0仍然成立,死循环。
第20题 当输入为6时,输出为( )A. 3 3 B. 4 2 C. 4 3 D. 5 2【答案】C【解析】n=6:偶数,x=2,n=3;奇数,x=3,y=2,n=1;奇数,x=4,y=3,n=0;输出4 3。
第二篇(大整数加法)第22题 当输入为123456时,程序输出为0579。( )【答案】√
第23题 假设输入的两个数均不含前导零,则程序输出的结果也一定不会含有前导零。( )【答案】×【解析】程序从最高位开始输出,若最高位无进位,则可能输出前导零。
第25题 当输入为12345678时,输出为( )A. 012923 B. 013023 C. 13023 D. 130230【答案】B
第三篇(素数搜索)第28题 当输入为10时,程序的输出共有10行。( )【答案】×【解析】程序输出所有满足条件的素数,行数不等于10。
第29题 若输入的n不大于5,则程序的输出中一定包含5。( )【答案】√【解析】n≤5时,5是素数且5≥n,会输出5。
第31题 当输入为24时,程序输出的第3行为( )A. 23 B. 29 C. 31 D. 239【答案】B【解析】输出顺序:233,239,29,... 第3行为29。
◆ 完善程序
第一题(进制转换)第34题 ①处应填( )A. b[j]n B. b[j]m C. b[j-1]n D. b[j-1]m【答案】D【解析】程序将mn进制数转换为n进制,从高位到低位处理时,每次需要将当前累积的数乘以m,然后加上当前位的值。代码中for (int j = len; j >= 1; j--) b[j] = b[j-1] * m;实现了整体右移并乘以m的操作,因此①处应填b[j-1] * m。
第35题 ②处应填( )A. x*n B. x C. 0 D. m【答案】B【解析】b[0]存放当前读入的最低位,应直接赋值为x。
第36题 ③处应填( )A. b[j]/m B. b[j]%n C. b[j]%m D. b[j]/n【答案】D【解析】进位处理:b[j]除以n的商加到高位。
第37题 ④处应填( )A. b[j]/m B. b[j]%n C. b[j]%m D. b[j]/n【答案】B【解析】进位后本位保留b[j]除以n的余数。
第38题 ⑤处应填( )A. len > 0 && b[len-1] == 0B. len > 0 && b[0] == 0C. len > 1 && b[len-1] == 0D. len > 1 && b[0] == 0【答案】C【解析】去除高位的多余前导零,同时保留至少一位(len>1)。
第二题(平衡分割)第39题 ①处应填( )A. c<='9'?c-'0':c-'A'+10B. c<='9'?c-'0':c-'A'C. c<='9'?c-'0'+1:c-'A'+10D. c<='9'?c-'0':c-'A'+9【答案】A【解析】字符转十六进制值:数字字符直接减'0',字母字符减'A'加10。
第40题 ②处应填( )A. int r=l; r<=n; r++B. int r=l; r<n; r++C. int r=1; r<=n; r++D. int r=l; r++<n【答案】A【解析】从位置l枚举到n,遍历所有可能的分段终点。
三、估分建议与第二轮备考
根据今年试题难度和往年晋级线,我们建议:J组估分75分及以上S组估分62分及以上
达到以上分数的学员,可以提前开始备战第二轮。
第二轮认证以编程实操为主,考查算法与数据结构综合应用能力。HelloCode已为学员准备好全套第二轮备考资源,全部上传至 nbhellocode.cn:
历年第二轮真题:2014-2025年J组+S组全部真题模拟卷:J组+S组多套全真模拟OJ专项训练:阅读程序+完善程序在线判分智慧刷题系统:分模块练习+错题本
HelloCode在读学员全部免费开放,联系任课老师即可开通权限。
四、写在最后
第一轮已经结束,无论发挥如何,接下来的重点都是第二轮。
从2025年的12人入围、2个S组一等奖、1个J组满分,到2026年第一轮顺利收官——继续加油,孩子们。
真题已核对,答案已整理,第二轮资源已就绪。
接下来,就看你们的了。
宁波HelloCode编程·专注信息学竞赛第二轮资料平台:nbhellocode.cn集训预约:联系教务陈老师关注我们,获取更多真题解析与备赛干货。