2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++初中组:带解析)(7月11日试卷一)【文末附答案和解析】

2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++初中组:带解析)(7月11日试卷一)【文末附答案和解析】

一、单项选择题
1. C++ 输入语句

在纪念长征胜利的活动中,程序需要从键盘读取参加人数。以下代码片段正确的是( )。

A. cin << renShu;

B. cout >> renShu;

C. cin >> renShu;

D. cout << renShu;


2. 数组访问

以下代码用于计算红军长征经过的 15 个省份中,海拔超过 2000 米的省份数量。该程序存在什么问题( )。

cpp 复制代码
int heights[15] = {
    500, 800, 1200, 3500, 2800,
    1500, 2200, 1800, 2400, 900,
    1100, 1600, 2000, 3000, 4500
};

int count = 0;
for (int i = 0; i <= 15; i++) {
    if (heights[i] > 2000) {
        count++;
    }
}

cout << count;

A. 数组定义时元素个数与实际不符

B. 循环条件应该是 i < 15,而不是 i <= 15

C. 条件应该是 heights[i] > 2000

D. count 变量的类型应该是 double


3. 八进制转换

延安革命纪念馆的展品编号使用八进制表示。将八进制数 745 转换为十进制,结果是( )。

A. 485

B. 493

C. 501

D. 495


4. 二维数组主对角线

在红军长征路线地图(5 × 5 的网格)中,以下代码用于统计主对角线(从左上到右下)上所有位置的海拔总和。横线处应该填入( )。

cpp 复制代码
int heights[5][5] = {
    500, 600, 700, 800, 900,
    550, 1200, 650, 750, 850,
    520, 580, 3500, 680, 780,
    530, 590, 640, 2000, 720,
    540, 600, 660, 700, 1500
};

int sum = 0;
for (int i = 0; i < 5; i++) {
    sum += heights[i][i];
}

A. heights[i][i]

B. heights[i][4 - i]

C. heights[i][0]

D. heights[0][i]


5. 递归计算阶乘

长征途中,红军某部有 5 位通讯员,需要依次将一份重要情报从前方指挥所传递至后方驻地。为安全起见,指导员打算让他们以不同的先后顺序出发,列出所有可能的排列方案供参考选用。

要确定 5 位通讯员所有可能的出发顺序总数,本质上是计算 5 的阶乘(5!)。小红编写了如下使用递归计算阶乘的 C++ 代码。如果调用 factorial(5),函数的返回值是( )。

cpp 复制代码
int factorial(int n) {
    if (n <= 1) return 1;
    return n * factorial(n - 1);
}

A. 5

B. 15

C. 120

D. 25


二、多项选择题
6. C++ 变量名

在长征历史知识问答系统的函数内部声明普通局部变量时,以下哪些是 C++ 中合法的变量名( )。

A. changZheng

B. _1934

C. hongSeWenHua

D. 1934year


7. 数组的性质

在革命烈士名录管理系统中,使用数组 arr 存储烈士信息。无数革命烈士为了民族独立和人民解放献出了宝贵生命,他们的精神永远值得我们铭记和缅怀。以下关于 C++ 数组 arr 的说法,正确的是( )。

A. C++ 中数组的下标从 0 开始

B. 访问 arr[n] 时,n 可以是任意整数

C. 系统会为数组 arr 分配一块连续的内存空间来存放信息

D. 数组越界访问会导致未定义行为,可能引发程序崩溃


8. C++ 函数

在八路军后勤部的物资管理系统中,使用函数来处理各种计算任务。八路军在敌后战场英勇抗战,平型关大捷打破了日军不可战胜的神话,百团大战振奋了全国军民抗战信心。以下关于 C++ 函数的说法,正确的是( )。

A. 函数可以提高代码的复用性

B. 函数必须先声明或定义,之后才能调用

C. 函数的参数可以有默认值

D. 函数可以没有返回值(使用 void


9. C++ 结构体

在革命历史教育实践活动中,某小学计划开发一个"革命英雄电子档案"小程序,用来记录革命先辈的基本信息,供同学们学习缅怀。小红负责系统核心数据结构的设置,她用 C++ 结构体来描述每一位英雄的档案,代码如下:

cpp 复制代码
struct Hero {
    string name;
    int age;
    string unit;
    bool martyr;
};

Hero h1;
Hero h2;
Hero heroes[100];

关于上述 C++ 结构体 Hero 及其使用方法,以下说法正确的是( )。

A. 结构体 Hero 能够将 stringintbool 等不同类型的数据组合成一个整体进行管理,这是结构体相较于数组的核心优势 B. 可以用 h1.name 的方式访问普通结构体变量的成员

C. 结构体 Hero 定义末尾的分号 ; 可以省略,因为右花括号 } 已经明确标识了结构体定义的结束位置

D. 语句 h2 = h1; 是非法的,两个同类型结构体变量之间必须逐个成员赋值,不能用 = 整体赋值


10. 单向链表的时间复杂度

在抗日战争时期的隐蔽战线上,为了保证组织安全,地下情报的传递往往采取单线联系的模式,这种传递路径在逻辑上高度契合计算机科学中的单向链表结构。无数地下党员冒着生命危险,在看不见的战线上默默奉献,为抗战的全面胜利筑起了坚不可摧的堡垒。

在模拟这种情报传递路径的单向链表数据结构中,以下哪些操作的时间复杂度是 O(n)( )。

A. 在单向链表中查找第 n 个节点

B. 在单向链表中删除最后一个节点

C. 遍历整个链表

D. 在已知节点后插入新节点


三、编程题
1. 红军伤员分配

题目描述

某次战斗后有 n 名伤员需要分配到各个医疗点,每个医疗点最多接收 m 名伤员。请问至少需要多少个医疗点才能安置所有伤员?

输入格式

一行两个整数 n, m,分别表示伤员人数和每个医疗点最多接收的人数。

输出格式

输出一个整数,表示至少需要的医疗点数量。

输入输出样例

样例 1

输入:

复制代码
25 8

输出:

复制代码
4

样例 2

输入:

复制代码
16 8

输出:

复制代码
2

样例 3

输入:

复制代码
100 25

输出:

复制代码
4

说明提示

  • 样例 1:25 名伤员,每个医疗点最多接收 8 人。前 3 个医疗点各接收 8 人,第 4 个医疗点接收 1 人,共需要 4 个医疗点。
  • 样例 2:16 名伤员,每个医疗点最多接收 8 人,正好需要 2 个医疗点。
  • 样例 3:100 名伤员,每个医疗点最多接收 25 人,需要 4 个医疗点。

数据范围

  • 1 ≤ n ≤ 1000
  • 1 ≤ m ≤ 100

2. 部队番号统计

题目描述

某次战役中有 n 支红军部队参战,每支部队有一个番号(1 到 100 之间的整数)。现统计各番号部队的数量,请输出数量最多的部队番号及其数量。如果有多支部队数量相同且最多,输出番号最小的部队。

输入格式

第一行一个整数 n,表示部队数量。

第二行 n 个整数,表示每支部队的番号。

输出格式

输出一行两个整数,两个整数之间用一个空格隔开,分别表示数量最多的部队番号及其数量。

输入输出样例

样例 1

输入:

复制代码
10
5 3 5 7 3 5 8 3 3 9

输出:

复制代码
3 4

样例 2

输入:

复制代码
8
1 2 1 2 3 3 3 2

输出:

复制代码
2 3

样例 3

输入:

复制代码
5
7 7 7 7 7

输出:

复制代码
7 5

说明提示

  • 样例 1:番号 3 出现 4 次,番号 5 出现 3 次,因此输出 3 4
  • 样例 2:番号 1 出现 2 次,番号 2 和番号 3 均出现 3 次。二者出现次数相同且最多,输出较小的番号 2。
  • 样例 3:只有番号 7 出现 5 次。

数据范围

  • 1 ≤ n ≤ 1000
  • 1 ≤ 番号 ≤ 100

3. 红旗制作

题目描述

长征途中,红军某部队要至少制作 K 面长度相同的红旗,用于各连队的识别标识。

部队缴获了 N 卷红布原料,第 i 卷的长度为 a_i 厘米。每卷红布的一端都有敌方军工厂的封条装订标记,这部分必须先从该卷中裁掉 D 厘米才能使用。第 i 卷红布的可用长度按 max(a_i - D, 0) 计算。裁掉封条部分后,剩余的红布(若还有长度)再切成若干面长度相同且为正整数厘米的红旗,不足一面的末端红布作为包扎伤员用的布条留存。

请问每面红旗最长可以是多少厘米?如果连 1 厘米长的红旗都做不出来,输出 0

输入格式

第一行包含 3 个正整数 N, K, D,分别表示红布卷数、至少需要制作的红旗数量、每卷需要裁掉的封条长度。

第二行包含 N 个正整数 a_1, a_2, ..., a_N,表示每卷红布原料的长度。

输出格式

输出一行一个整数,表示每面红旗的最大长度。如果切不出 1 厘米长的红旗,输出 0

输入输出样例

样例 1

输入:

复制代码
3 5 3
10 20 30

输出:

复制代码
8

样例 2

输入:

复制代码
2 4 1
11 21

输出:

复制代码
6

样例 3

输入:

复制代码
3 100 2
5 5 5

输出:

复制代码
0

说明提示

样例 1:裁掉封条后,三卷红布的可用长度分别为 7、17、27 厘米。

  • 若每面红旗长 8 厘米,可制作 7/8 + 17/8 + 27/8 = 0 + 2 + 3 = 5 面,满足需求。
  • 若每面红旗长 9 厘米,可制作 7/9 + 17/9 + 27/9 = 0 + 1 + 3 = 4 面,不满足需求。

因此,每面红旗的最大长度为 8 厘米。

样例 2:可用长度分别为 10、20 厘米。

  • 若每面红旗长 6 厘米,可制作 10/6 + 20/6 = 1 + 3 = 4 面,满足需求。
  • 若每面红旗长 7 厘米,可制作 10/7 + 20/7 = 1 + 2 = 3 面,不满足需求。

因此,每面红旗的最大长度为 6 厘米。

样例 3:裁掉封条后,每卷红布仅剩 3 厘米,最多只能制作 9 面 1 厘米长的红旗,不足 100 面,因此输出 0。

数据范围

  • 对于全部数据:1 ≤ D ≤ 50
  • 对于 70% 的数据: 1 ≤ N ≤ 1000 1 ≤ N ≤ 1000 1≤N≤1000, 1 ≤ K ≤ 10 5 1 ≤ K ≤ 10^5 1≤K≤105, 1 ≤ a i ≤ 10 4 1 ≤ a_i ≤ 10^4 1≤ai≤104
  • 对于 100% 的数据: 1 ≤ N ≤ 10 5 1 ≤ N ≤ 10^5 1≤N≤105, 1 ≤ K ≤ 10 9 1 ≤ K ≤ 10^9 1≤K≤109, 1 ≤ a i ≤ 10 8 1 ≤ a_i ≤ 10^8 1≤ai≤108

4. 长征纪念馆参观

题目描述

长征纪念馆内安装了一部奇怪的参观电梯。整座纪念馆共 N 层,每一层的墙上都刻着一个数字 K_i。当电梯停在第 i 层时:

  • 按"上"按钮,电梯会上升 K i K_i Ki 层,即到达第 i + K i i + K_i i+Ki 层;
  • 按"下"按钮,电梯会下降 K i K_i Ki 层,即到达第 i − K i i - K_i i−Ki 层;
  • 若目标楼层不在 1 到 N 的范围内(即小于 1 或大于 N),相应按钮会失灵。

当 K i = 0 K_i = 0 Ki=0 时,按"上"或"下"按钮都会停留在原楼层。若目标展厅就在 1 楼,则最少按键次数为 0。

红军后代参观团队从 1 楼(纪念馆入口)进入,想要到达第 B 层的某个展厅。请问他们最少要按几次"上"或"下"按钮才能到达?如果无论怎样按都无法到达,输出 -1

输入格式

第一行包含两个正整数 NB

第二行包含 N 个非负整数 K 1 , K 2 , . . . , K N K_1, K_2, ..., K_N K1,K2,...,KN。

输出格式

输出一行一个整数,表示最少按键次数;若无法到达,输出 -1

输入输出样例

样例 1

输入:

复制代码
5 5
3 3 1 2 5

输出:

复制代码
3

样例 2

输入:

复制代码
10 10
6 2 1 3 1 3 1 3 2

输出:

复制代码
5

样例 3

输入:

复制代码
4 2
2 0 2 0

输出:

复制代码
-1

说明提示

  • 样例 1:从 1 楼出发,依次到达 1 → 4 → 2 → 5,共按 3 次按钮。
  • 样例 2:一条合法的最短路径是 1 → 3 → 5 → 8 → 7 → 10,共按 5 次按钮。
  • 样例 3:从 1 楼按"上"只能到达 3 楼;从 3 楼再按按钮,只能越界或返回 1 楼,无法到达 2 楼,因此输出 -1

数据范围

  • 1 ≤ N ≤ 100
  • 1 ≤ B ≤ N
  • 0 ≤ K i ≤ N 0 ≤ K_i ≤ N 0≤Ki≤N

参考答案与解析

一、单项选择题
1. C

解析 :C++ 中标准输入是 cin,与变量之间使用提取运算符 >>


2. B

解析 :数组 heights[15] 的合法下标是 0 ~ 14,循环写成 i <= 15 会导致访问 heights[15],造成数组越界,属于未定义行为。应改为 i < 15

A 错:数组初始化元素个数正好是 15 个,与实际相符。

C 错:题目条件本就是 > 2000

D 错:统计数量用 int 足够。


3. A

解析 :八进制 745 按权展开:

7 × 8² + 4 × 8¹ + 5 × 8⁰ = 7 × 64 + 4 × 8 + 5 = 448 + 32 + 5 = 485

所以选 A。


4. A

解析 :主对角线元素的行号和列号相等,所以应使用 heights[i][i]


5. C

解析factorial(5) = 5 × 4 × 3 × 2 × 1 = 120


二、多项选择题
6. ABC

解析 :C++ 变量名(标识符)可由字母、数字、下划线组成,但不能以数字开头。

A、B、C 都合法;D 以数字开头,非法。


7. ACD

解析

A 正确:数组下标从 0 开始。

B 错误:下标必须是合法范围内的整数,不能是"任意整数"。

C 正确:数组分配连续内存空间。

D 正确:数组越界访问属于未定义行为,可能导致程序崩溃。


8. ABCD

解析

A 正确:函数可以提高代码复用性。

B 正确:函数必须先声明或定义,才能调用。

C 正确:函数参数可以设置默认值。

D 正确:函数返回值类型可以是 void,表示无返回值。


9. AB

解析

A 正确:结构体可以将不同类型组合成整体。

B 正确:普通结构体变量用 . 访问成员。

C 错误:结构体定义末尾的 ; 不能省略。

D 错误:同类型结构体变量可以直接整体赋值,如 h2 = h1; 是合法的。


10. ABC

解析

A:查找第 n 个节点需要从头遍历,时间复杂度 O(n)

B:删除最后一个节点需要先找到倒数第二个节点,时间复杂度 O(n)

C:遍历整个链表需要访问所有节点,时间复杂度 O(n)

D:在已知节点后插入新节点只需要修改指针,时间复杂度 O(1)


三、编程题参考答案
1. 红军伤员分配
思路分析

本题要求计算至少需要多少个医疗点,每个医疗点最多容纳 m 人,共有 n 名伤员。

使用 if 语句进行分支判断:

  • 如果 n 能被 m 整除(即 n % m == 0),则需要的医疗点数正好是 n / m
  • 如果不能整除,则先安排 n / m 个满员的医疗点,剩余 n % m 人还需要额外一个医疗点,所以结果为 n / m + 1
代码实现
cpp 复制代码
#include <bits/stdc++.h>
using namespace std; 

int main() {
    int n, m; 
    cin >> n >> m;
    int ans; //存储答案
    if (n % m == 0) { //如果能整除
        ans = n / m; //正好需要n/m个医疗点
    } else { //如果不能整除
        ans = n / m + 1; //需要n/m个满的再加1个
    }
    cout << ans; 
    return 0;
}

2. 部队番号统计
思路分析

本题需要统计每个番号的出现次数,并找出出现次数最多的番号(若次数相同,取番号最小者)。

由于番号范围固定为 1 ~ 100,最直接的方法是使用一个大小为 101 的计数数组(下标对应番号)。

  • 读入 n 和所有番号,每读一个,对应计数器加 1。
  • 遍历番号 1 ~ 100,找出计数最大的值,同时记录该番号。
  • 因为遍历是从小到大,当遇到计数大于当前最大值时才更新(等于时不更新),这样就能保证在次数相同时保留更小的番号。
代码实现
cpp 复制代码
#include <bits/stdc++.h> 
using namespace std; 
int n; 
int c[101];//c[i]表示番号i出现的次数,初始为0
int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) {   //循环读入每个部队的番号
        int x; //当前部队的番号
        cin >> x;//读入番号
        c[x]++;//对应番号计数加1
    }
    int ans = 1; //ans:出现次数最多的番号,初始为1
    int mx = c[1]; //mx:最大出现次数,初始为番号1的次数
    for (int i = 2; i <= 100; i++) {//从2开始遍历到100
        if (c[i] > mx) { //如果当前番号出现次数更多
            mx = c[i];//更新最大次数
            ans = i; //更新答案番号
        } 
    }
    cout << ans << " " << mx; //输出番号和次数
    return 0;
}

3. 红旗制作
思路分析

本题需要找到满足条件的最大的红旗长度 L(正整数)。对于给定的 L,可以计算出所有红布卷能切出的红旗总数:

复制代码
总数量 = Σ (max(a_i - D, 0) / L)   (整数除法,向下取整)

如果总数量 ≥ K,说明 L 可行;否则不可行。

由于 L 越大,能切出的红旗数量越少,所以问题具有单调性:若 L 可行,则所有 ≤ L 的长度都可(至少能切出更多)。因此可以使用二分答案来寻找最大可行长度。

  • 二分下界 l = 1,上界 r = 最大可用长度(即所有 max(a_i-D, 0) 中的最大值,也可以取 max(a_i),因为减去 D 后只会更小,取最大 a_i 作为上界安全)。
  • 如果 check(1) 返回 false(即连 1 厘米都切不出 K 面),则直接输出 0。
  • 否则二分找到最大的 mid 使得 check(mid) 为真。

复杂度O(N log M),其中 M 是最大可用长度,最大约 1e8,log2(1e8) ≈ 27,N ≤ 1e5。

代码实现
cpp 复制代码
#include <bits/stdc++.h>
using namespace std; 

int N, K, D; //N:卷数, K:所需红旗数, D:每卷裁掉长度
int a[100010];  //存储每卷原长度

// 检查函数:判断长度为x时能否切出至少K面红旗
bool ck(int x) {
    long long s = 0; //累计可做红旗数,用long long防止溢出
    for (int i = 0; i < N; i++) {
        int u = a[i] - D;  //可用长度
        if (u < 0) u = 0;  //不超过0则取0
        s += u / x;//累加该卷能切出的数量
        if (s >= K) return true;   //提前退出优化
    }
    return s >= K;
}

int main() {
    cin >> N >> K >> D;
    int mx = 0;  //记录最大可用长度(用于二分上界)
    for (int i = 0; i < N; i++) {
        cin >> a[i]; //读入每卷长度
        int u = a[i] - D;
        if (u < 0) u = 0;
        if (u > mx) mx = u; //更新最大可用长度
    }
    if (!ck(1)) { //如果1厘米都做不出K面
        cout << 0;  //输出0
        return 0;
    }
    int l = 1, r = mx, ans = 1;//二分左右边界和答案
    while (l <= r) {
        int mid = (l + r) / 2;//中间值
        if (ck(mid)) {  //如果mid可行
            ans = mid; //记录答案
            l = mid + 1; //尝试更大的长度
        } else {
            r = mid - 1; //否则减小长度
        }
    }
    cout << ans; //输出最大长度
    return 0;
}

4. 长征纪念馆参观
思路分析

本题可以抽象成一个无权图的最短路问题

  • 共有 N 个节点(楼层 1 ~ N)。
  • 从节点 i 出发,有两条有向边:
    • 到 i + K i i + K_i i+Ki(如果 1 ≤ i + K i ≤ N 1 ≤ i+K_i ≤ N 1≤i+Ki≤N)
    • 到 i − K i i - K_i i−Ki(如果 1 ≤ i − K i ≤ N 1 ≤ i-K_i ≤ N 1≤i−Ki≤N)
  • 每条边的权值都为 1(按一次按钮)。
  • 求从起点 1 到终点 B 的最短路径长度(按键次数),若不可达则输出 -1。

由于 N ≤ 100,使用 广度优先搜索 (BFS) 即可高效求解。BFS 能保证第一次到达终点时的步数就是最少步数。

  • 使用一个队列存储待扩展的楼层。
  • vis 数组标记楼层是否已访问,避免重复入队。
  • d 数组记录到达每个楼层的最少按键次数(也可在队列中同时存储步数,但用数组更简洁)。
  • 初始时 vis[1] = trued[1] = 0,将 1 入队。
  • 每次取出队首楼层 u,若 u == B 则直接输出 d[u] 并结束。
  • 否则计算两个可能的目标楼层 v = u + K[u]v = u - K[u],若在合法范围内且未访问,则标记、记录步数(d[v] = d[u] + 1)并入队。
  • 若队列空仍未到达,则输出 -1。
代码实现
cpp 复制代码
#include <bits/stdc++.h>
using namespace std; 

int N, B; //N:楼层总数, B:目标楼层
int k[110]; //k[i]表示第i层的数字
bool vis[110]; //vis[i]标记第i层是否已访问
int d[110];  //d[i]记录到达第i层的最少按键次数
queue<int> q; //BFS队列

int main() {
    cin >> N >> B; 
    for (int i = 1; i <= N; i++) {
        cin >> k[i]; 
    }
    vis[1] = true; //起点1已访问
    d[1] = 0; //起点步数为0
    q.push(1); //起点入队
    while (!q.empty()) {
        int u = q.front();//取出队首楼层
        q.pop();
        if (u == B) {//如果到达目标楼层
            cout << d[u]; //输出最少按键次数
            return 0; //程序结束
        }
        int v1 = u + k[u]; //按"上"到达的楼层
        if (v1 >= 1 && v1 <= N && !vis[v1]) { //若楼层合法且未访问
            vis[v1] = true; //标记已访问
            d[v1] = d[u] + 1; //步数加1
            q.push(v1);//入队
        }
        int v2 = u - k[u]; //按"下"到达的楼层
        if (v2 >= 1 && v2 <= N && !vis[v2]) { //若楼层合法且未访问
            vis[v2] = true; //标记已访问
            d[v2] = d[u] + 1; //步数加1
            q.push(v2); //入队
        }
    }
    cout << -1; //队列空还未到达,输出-1
    return 0;
}

关注老师的专栏,查看完整版全国青少年信息素养大赛C++备赛资料(初赛+复赛):

https://blog.csdn.net/weixin_66461496/category_12969975.html

相关课程《全国青少年信息素养大赛C++初赛真题试卷及答案解析》(视频课)

https://www.bilibili.com/cheese/play/ss447406764

相关课程《全国青少年信息素养大赛C++复赛真题试卷及答案解析》(视频课)

https://www.bilibili.com/cheese/play/ep2532538


各种学习资料,助力大家一站式学习和提升!!!

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	cout<<"##########  一站式掌握信奥赛知识!  ##########";
	cout<<"#############  冲刺信奥赛拿奖!  #############";
	cout<<"######  课程购买后永久学习,不受限制!   ######";
	return 0;
}

【秘籍汇总】(完整csp信奥赛C++学习资料):

1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):

https://edu.csdn.net/lecturer/7901 点击跳转

2、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

https://edu.csdn.net/course/detail/41081 点击跳转

3、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:

https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:

https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:

https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转

4、csp信奥赛冲刺一等奖有效刷题题解:

信奥赛C++普及组CSP-J一等奖通关刷题题单及题解:

https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

信奥赛C++普及组csp-j初赛&复赛真题题解(持续更新): https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新):

https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转

5、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转

GESP(C++ 七级+八级)真题题解(持续更新):

https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转

· 文末祝福 ·

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	cout<<"跟着王老师一起学习信奥赛C++";
	cout<<"    成就更好的自己!       ";
	cout<<"  csp信奥赛一等奖属于你!   ";
	return 0;
}
相关推荐
大阿明1 小时前
C++智能指针与RAII机制精讲:彻底根治内存泄漏与野指针
java·jvm·c++
一生了无挂1 小时前
C++面向对象核心精讲:类、对象、封装、权限与生命周期全解析
java·jvm·c++
aaPIXa6222 小时前
C++ 用 Claude Code 的 defending-code-reference-harness:C/C++ 内存漏洞自动发现与修复 Pipeline
java·c语言·c++
郝学胜-神的一滴2 小时前
[简化版 GAMES 101] 计算机图形学 17:纹理技术从基础原理到多场景实战应用
c++·unity·游戏引擎·图形渲染·three.js·opengl·unreal
炸薯条!2 小时前
从零开始学C++(4) --类和对象
开发语言·c++·算法
渡我白衣2 小时前
打印宏与socket模块设计
java·linux·开发语言·c++·ide·人工智能·eclipse
blueman888811 小时前
Qt5通过vcpkg中调用时,在debug模式下调试时总是调用release的plugins文件夹中的dll
c++·qt·cmake
jinyishu_14 小时前
C++ string使用方法
开发语言·c++
乐观勇敢坚强的老彭14 小时前
C++浮点数使用注意事项
开发语言·c++