

【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以及信息奥赛的合集请点下方链接:

正文内容
(数据结构)用数组A[1..n]顺序存储一个循环队列,设front指向队头元素的前一个位置,rear指向队尾元素,则判断队列为空的条件是( )。
A. front == rear
B. (rear+1)%n == front
C. (front+1)%n == rear
D. rear == (front+1)%n
参考答案:A





#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;}判断题
b 的最大值。 ( )3 1 2 4,输出为3。 ( )O(n²)。 ( )a[j] < a[i]改为a[j] <= a[i],则求最长不下降子序列。 ( )
#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;}判断题
8,输出1000。 ( )0,输出0。 ( )O(log x)。 ( )
#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;}判断题
bsearch 函数不存在返回-1。 ( )O(log n)。 ( )O(log n)。 ( )选择题
n=5, a=1 3 5 7 9, x=3,输出为( )。A. 0 B. 1 C. 2 D. -1n=5, a=1 3 5 7 9, x=4,输出为( )。A. -1 B. 0 C. 2 D. 3a 为降序排列时,对 x=5 的查找(假定数组内存在5),结果会( )。 int mid = (l + r) / 2; 改为 int mid = (l + r) >> 1;,则( )。 n=100000 的有序数组,在最坏情况下,递归调用栈的深度大约是( )。 题目描述:给定整数 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;}选择题:
higher * factor + lower + 1higher * factor + lower(higher+1) * factorhigher * factor(higher + 1) * factorhigher * factor(higher + 1) * factor + lowerhigher * factor + lowerfactor * 10B. factor + 10C. factor / 10D. factor * 2countB. nC. factorD. highercountDigitOne(n)B. nC. countD. factor题目描述:给定 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;}选择题:
a.r < b.rB. a.l < b.lC. a.r > b.rD. a.l > b.lcount + 1B. count++C. ++countD. 以上均可itv.rB. itv.lC. lastPointD. countcountB. lastPointC. nD. 0ansB. nC. countD. intervals.size()线上学习课程
提供少儿编程Scratch、Python、C++、硬件编程学习一对一在线课程、线上授课服务,具有深厚经验背景专业老师授课,竭诚提供优质服务,请微信公众号直接回复“客服”即可联系客服微信,也可直接扫描图片下方客服二维码:

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