跳到内容
当前位置:首页>笔试真题>【2026 CSP-J】第一轮笔试模拟试卷及答案(一)

【2026 CSP-J】第一轮笔试模拟试卷及答案(一)

  • 2026-11-09 15:07:53
【2026 CSP-J】第一轮笔试模拟试卷及答案(一)

【2026 CSP-J】第一轮笔试模拟试卷及答案(一),请大家先点在看,然后公众号回复“1166”查看获取完整全部历年(包含最新2026年)真题、源码解析、全套模拟题等;回复“999”查看获取《C++信息奥赛全部资源》全部合集,购买合集永久期限包含以后更新内容~

CCF GESP第11次认证(2025.09)Python二级模拟题及答案

CCF GESP如何跳级考的必杀技巧(附GESP第11次认证2025.09C++二级模拟题及答案)

CCF GESP第11次认证(2025.09)Scratch二级模拟题及答案

新变化!考生家长不能错过的认证指南!GESP第12次认证来了

收藏!历年CSP-J第一轮真题(选择题)知识考点分布与归纳(2019-2024)

收藏!历年 CSP-J第一轮真题(阅读程序)知识考点分布与归纳(2019-2025)

收藏!历年CSP-S第一轮真题(选择题)知识考点分布与归纳(2019-2025)

收藏!历年CSP-J第一轮真题(阅读程序)知识考点分布与归纳(2019-2025)

收藏!历年CSP-J第二轮真题全部知识考点分布与归纳(2019-2025)

有关CSP-J/S以及信息奥赛的合集请点下方链接:

CSP-J/S及信息奥赛合集

正文内容

部分真题试卷详情请看前文:

2025全国青少年信息学奥林匹克联赛CCF NOIP真题试卷,后续将附上独家解读

信息奥赛|2024全国青少年信息学奥林匹克联赛NOIP 真题解析

2025NOIP全国青少年信息奥林匹克联赛真题独家深度解读T4【分治、ST表、单调性】序列询问

2025NOIP全国青少年信息奥林匹克联赛真题独家深度解读T3【树形DP、DFS序、树状数组】树的价值

2025NOIP全国青少年信息奥林匹克联赛真题独家深度解读T2【组合计数、容斥原理】清仓甩卖

2025NOIP全国青少年信息奥林匹克联赛真题独家深度解读T1【贪心、数学】糖果店

一、选择题

  1. (数据结构)用数组A[1..n]顺序存储一个循环队列,设front指向队头元素的前一个位置,rear指向队尾元素,则判断队列为空的条件是( )。

    A. front == rear  

  2. B. (rear+1)%n == front  

  3. C. (front+1)%n == rear  

  4. D. rear == (front+1)%n  

  5. 参考答案:A

二、阅读程序

第16题(阅读程序 1)

#include<iostream>usingnamespacestd;int a[1010], b[1010];intmain(){//微信公众号:冰岩编程int n;cin >> n;for (int i = 0; i < n; i++) cin >> a[i];int maxlen = 1;for (int i = 0; i < n; i++) {        b[i] = 1;for (int j = 0; j < i; j++) {if (a[j] < a[i] && b[j] + 1 > b[i])                b[i] = b[j] + 1;        }if (b[i] > maxlen) maxlen = b[i];    }cout << maxlen << endl;return0;}

判断题

    1. 程序求数列 b 的最大值。 ( )
    2. 对于序列3 1 2 4,输出为3。 ( )
    3. 时间复杂度为O(n²)。 ( )
    4. 若将a[j] < a[i]改为a[j] <= a[i],则求最长不下降子序列。 ( )

第17题(阅读程序 2)

#include<iostream>usingnamespacestd;intdecToBin(int n){int res = 0, base = 1;while (n > 0) {        res += (n % 2) * base;        base *= 10;        n /= 2;    }return res;}//微信公众号:冰岩编程intmain(){int x;cin >> x;cout << decToBin(x) << endl;return0;}

判断题

  1. 函数将十进制数转换为二进制数(用十进制数字表示)。 ( )
  2. 输入·8,输出1000。 ( )
  3. 输入0,输出0。 ( )
  4. 时间复杂度为O(log x)。 ( )

第18题(阅读程序  3)

#include<iostream>usingnamespacestd;intbsearch(int a[], int l, int r, int x){if (l > r) return-1;int mid = (l + r) / 2;if (a[mid] == x) return mid;if (a[mid] > x) return bsearch(a, l, mid-1, x);elsereturn bsearch(a, mid+1, r, x);}//微信公众号:冰岩编程intmain(){int n, x, a[100];cin >> n;for (int i = 0; i < n; i++) cin >> a[i];cin >> x;cout << bsearch(a, 0, n-1, x) << endl;return0;}

判断题

  1. bsearch 函数不存在返回-1。 ( )
  2. 若数组未排序,程序仍能正确查找。 ( )
  3. 最坏时间复杂度为O(log n)。 ( )
  4. 递归深度最坏为O(log n)。 ( )

选择题

  1. 输入n=5, a=1 3 5 7 9, x=3,输出为( )。A. 0 B. 1 C. 2 D. -1
  2. 输入n=5, a=1 3 5 7 9, x=4,输出为( )。A. -1 B. 0 C. 2 D. 3
  3. 若将递归改为循环,以下说法正确的是( )。 
    A. 效率更高 B. 代码更复杂 C. 空间复杂度降低 D. 以上都对
  4. 该程序在输入数组 a 为降序排列时,对 x=5 的查找(假定数组内存在5),结果会( )。 
    A. 正确找到下标 B. 返回 -1 C. 死循环 D. 编译错误
  5. 若将 int mid = (l + r) / 2; 改为 int mid = (l + r) >> 1;,则( )。 
    A. 结果相同,效率略高 B. 结果不同,负数下标会出错 C. 编译错误 D. 仅适用于正数
  6. 对于长度为 n=100000 的有序数组,在最坏情况下,递归调用栈的深度大约是( )。 
    A. 17 B. 100 C. 1000 D. 100000

第19题(数字1的个数)

题目描述:给定整数 n,计算 1 到 n 的所有整数中,数字 1 出现的总次数。

#include<iostream>usingnamespacestd;intcountDigitOne(int n){int count = 0;//微信公众号:冰岩编程longlong factor = 1;while (factor <= n) {int lower = n % factor;int cur = (n / factor) % 10;int higher = n / (factor * 10);if (cur == 0) {            count += higher * factor;        } elseif (cur == 1) {            count += (1)_____;        } else {            count += (2)_____;        }        factor = (3)_____;    }return (4)_____;}intmain(){int n;cin >> n;cout << (5)_____ << endl;return0;}

选择题:

  1. 选择题:
    1. (1) 处当 cur==1 时应加(  ) 
      A. higher * factor + lower + 1
      B. higher * factor + lower
      C. (higher+1) * factor
      D. higher * factor
    2. (2) 处当 cur>1 时应加(   ) 
      A. (higher + 1) * factor
      B. higher * factor
      C. (higher + 1) * factor + lower
      D. higher * factor + lower
    3. (3) 处 factor 更新(  ) 
      A. factor * 10B. factor + 10C. factor / 10D. factor * 2
    4. (4) 处返回值(  ) 
      A. countB. nC. factorD. higher
    5. (5) 处输出(  )
       A. countDigitOne(n)B. nC. countD. factor

第20题(区间选点)

题目描述:给定 n 个闭区间 [li, ri],选择尽可能少的点,使得每个区间内至少包含一个点。输出最少点数。微信公众号:冰岩编程

算法思路:按区间右端点升序排序,贪心选择每个区间的右端点。

#include<iostream>#include<vector>#include<algorithm>usingnamespacestd;structInterval {int l, r;};boolcmp(Interval a, Interval b){return (1)_____;}intminPoints(vector<Interval>& intervals){    sort(intervals.begin(), intervals.end(), cmp);int count = 0;int lastPoint = -1e9;for (auto& itv : intervals) {if (lastPoint < itv.l) {            count = (2)_____;            lastPoint = (3)_____;        }    }return (4)_____;}intmain(){int n;cin >> n;vector<Interval> intervals(n);for (int i = 0; i < n; ++i) cin >> intervals[i].l >> intervals[i].r;int ans = minPoints(intervals);cout << (5)_____ << endl;return0;}

选择题:

  1. (1) 处排序规则应填(  ) 
    A. a.r < b.rB. a.l < b.lC. a.r > b.rD. a.l > b.l
  2. (2) 处增加计数应填(  ) 
    A. count + 1B. count++C. ++countD. 以上均可
  3. (3) 处更新点为(  ) 
    A. itv.rB. itv.lC. lastPointD. count
  4. (4) 处返回值(  ) 
    A. countB. lastPointC. nD. 0
  5. (5) 处输出(  ) 
    A. ansB. nC. countD. intervals.size()

线上学习课程

提供少儿编程Scratch、Python、C++、硬件编程学习一对一在线课程、线上授课服务,具有深厚经验背景专业老师授课,竭诚提供优质服务,请微信公众号直接回复“客服”即可联系客服微信,也可直接扫描图片下方客服二维码:

【2026 CSP-J】第一轮笔试模拟试卷及答案(一),请大家先点在看,然后公众号回复“1166”查看获取完整全部历年(包含最新2026年)真题、源码解析、全套模拟题等;回复“999”查看获取《C++信息奥赛全部资源》全部合集,购买合集永久期限包含以后更新内容~

哎呦不错,点个推荐吧
暴富暴瘦暴好运~
微信咨询 微信客服二维码微信扫一扫 · 添加人工客服 QQ QQ咨询 QQ咨询二维码QQ扫一扫 · 添加人工客服 帮助手册