当前位置: 首页 > news >正文

2025第十六届蓝桥杯大赛青少组省赛C++真题(初级组和中级组)

2025第十六届蓝桥杯大赛青少组省赛C++真题(初级组和中级组)

选择题:第1题

运行以下程序,输出的结果是( )。

int func(int y) {y -= 5;cout << "x";return 0;
}int main() {int x = 10, y = 5;if (x > y || func(y))cout << y;return 0;
}
  • A X0
  • B X5
  • C 5
  • D 0
选择题:第2题

运行以下程序,输出的结果是( )。

int i = 1, t = 0;  
while (i * i < 30) {t += i;i += 2;
}
cout << t;
  • A 3
  • B 4
  • C 9
  • D 16
选择题:第3题

运行语句 cout << (char)('F' + 4); 的结果是( )。

  • A I
  • B j
  • C K
  • D J
选择题:第4题

下列选择中,优先级最高的是( )。

  • A +
  • B -
  • C *
  • D =
选择题:第5题

关于 C++ 中的 newdelete 关键字,以下说法错误的是( )。

  • A 使用 new int[10] 分配的数组内存必须使用 delete[] 释放
  • B int *p = new int; 分配的整型内存默认会被初始化为 0
  • C 对空指针 nullptr 使用 delete 是安全的,不会引发错误
  • D new 在内存分配失败时默认输出 std::bad_alloc 异常,而非返回空指针

编程题第1题: 庆典队列

题目描述
n 名志愿者参加庆典活动,需排成矩形队列满足:

  1. A 行(输入给定的行数);
  2. 每行志愿者人数相同;
  3. 可不安排所有志愿者(允许部分不参与排列)。
    目标:计算每行最多能安排的志愿者人数。

输入要求

  • 两个整数 nA(空格隔开),满足:
    • (2≤n≤5002 \leq n \leq 5002n500)(志愿者总数)
    • (2≤A≤n2 \leq A \leq n2An)(行数)

输出要求

  • 每行最多能安排的志愿者人数。

示例
输入:50 11
输出:4
解释

  • 每行 4 人:(4×11=44≤504 \times 11 = 44 \leq 504×11=4450)(可行)
  • 每行 5 人:(5×11=55>505 \times 11 = 55 > 505×11=55>50)(不可行)

编程题第2题: 茶具套装组合

题目描述
给定茶壶、盖碗、茶漏、茶杯的库存数量,计算最多能组成的完整茶具套装数量。
套装要求

  • 1 个茶壶
  • 1 个盖碗
  • 1 个茶漏
  • 4 个茶杯

输入要求

  • 4 个整数(范围 (0≤整数≤1000 \leq \text{整数} \leq 1000整数100)),空格隔开,依次表示:
    1. 茶壶数量
    2. 盖碗数量
    3. 茶漏数量
    4. 茶杯数量

输出要求

  • 最多能组成的完整套装数量。

示例
输入:3 4 2 13
输出:2
解释

  • 每套需要4个茶杯,因此茶杯最多支持 13÷4=313 \div 4 = 313÷4=3 套(取整后为3套)
  • 但茶漏仅2个,限制为 2 套
  • 最终以最小限制为准,输出 2 套

编程题第3题: 平衡奇偶位置的字符交换

题目描述
给定仅含 'A''B' 的字符串 s,每次可交换相邻字符。要求通过最少交换次数满足:

  • 奇数位置(从 1 开始)的 'A' 数量 等于 偶数位置'A' 数量。
    若无法满足,返回 -1

输入要求

  • 字符串 s2≤∣s∣≤1052 \leq |s| \leq 10^52s105),仅含 'A''B'

输出要求

  • 最少交换次数;若无法满足,输出 -1

示例
输入:"AABABA"
输出:1
解释

  • 交换位置 2 和 3 后:奇数位置 'A' = 2,偶数位置 'A' = 2。

编程题第4题: 矩阵圈层交错旋转

题目描述
对 (n ×\times× n) 矩阵的每一圈层进行顺时针/逆时针交替旋转

  1. 圈层定义
    • 从外到内逐层编号(最外层为第 1 层)。
    • 若 (n) 为奇数,中心元素不旋转。
  2. 旋转方向
    • 奇数层:顺时针旋转 90°
    • 偶数层:逆时针旋转 90°

输入要求

  1. 第一行:整数 (n)(2≤n≤1002 \leq n \leq 1002n100)。
  2. 接下来 (n) 行:每行 (n) 个整数(−1000≤整数≤1000-1000 \leq \text{整数} \leq 10001000整数1000)。

输出要求

  • 输出旋转后的矩阵(每行整数空格隔开)。

示例
输入:

4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

输出:

13 9 5 1
14 7 11 2
15 6 10 3
16 12 8 4

解释

  • 第 1 层(最外层)顺时针旋转 90°。
  • 第 2 层(内层)逆时针旋转 90°。

编程题第5题: 环形取硬币游戏

题目描述
Jerry 和 Tom 在环形盒子(共 (n) 个)中轮流取硬币:

  1. Jerry 先手,从盒子 1 开始取至少 1 枚。
  2. 限制
    • 若上一玩家取了盒子 i ,当前玩家必须取盒子 i+1 (盒子 n 后接盒子 1)。
  3. 失败条件:轮到玩家时需取的盒子为空。

输入要求

  1. 第一行:整数 T (1≤T≤1001 \leq T \leq 1001T100,测试组数)。
  2. 每组数据:
    • 第一行:整数 (n)(盒子数量)。
    • 第二行:n 个整数 aia_iai(每个盒子的硬币数)。

输出要求

  • T 行,每行为 "Jerry""Tom"(获胜者)。

示例
输入:

2
1
10
2
30 50

输出:

Jerry
Tom

解释

  • (n=1):Jerry 取完硬币,Tom 失败。
  • (n=2):Tom 通过最优策略获胜。

编程题第6题: 魔术扑克牌排列 (中级组多一题)

题目描述
混合 (n) 张红牌和 (n) 张蓝牌后叠放。嘉宾从顶部连续取任意张牌(至少 1 张,最多 (2n) 张),需满足:

  • 任意取牌方案中,红牌数量 ≥ 蓝牌数量
    求满足条件的排列总数。

输入要求

  • 整数 n(1≤n≤1001 \leq n \leq 1001n100)。

输出要求

  • 输出一个整数,表示满足条件的排列总数。

示例
输入:n = 3
输出:5
解释

  • 满足条件的 5 种排列(R 红牌,B 蓝牌):
    i. R R B R B B
    ii. R B R B R B
    iii. R B R B B B
    iv. R R B B B B
    v. R R B B R B

文末福利: csp信奥赛c++复赛集训课(12大高频考点专题集训)

在这里插入图片描述

课程直通链接:

https://edu.csdn.net/course/detail/40437

http://www.dtcms.com/a/326578.html

相关文章:

  • MCU的设计原理
  • SNMP入门教程:Windows下编译
  • Linux811 YUM;SHELL:if else fi,for
  • 进程线程切换的区别
  • 【k近邻】 K-Nearest Neighbors算法k值的选择
  • 第4节 大模型推理内存与计算优化
  • 【FreeRTOS】任务间通讯6: 任务通知- Task Notification
  • python+requests+yaml实现接口自动化用例
  • 【软件分享】格式工厂FormatFactory便携版本(解压即用)
  • 介绍一下jQuery的AJAX异步请求
  • Salesforce案例:零售企业会员积分体系
  • 新人如何简化学习Vue3文件
  • LangChain框架之 invoke() 方法
  • 【每日一错】PDB之间数据迁移
  • 7.Java的继承
  • 分享一款基于STC8H8K32U-45I-LQFP48单片机的4路数字量输入输出模块
  • 多重时间聚合算法(MAPA)改进需求预测模型
  • Redis实现排行榜
  • C++11 auto关键字:智能类型推导指南
  • 字符串相关例题(查询子串在主串中的个数)
  • GB17761-2024标准与电动自行车防火安全的技术革新
  • 编译GCC-12.1.0
  • Linux内核网络设备框架及其注册流程分析
  • Cursor 实用技巧与常见难题解析:从入门到进阶的技术实践
  • Pytest项目_day11(fixture、conftest)
  • OSPF IP FRR 理论和实验
  • 当C#遇上Notepad++:实现GCode可视化编辑的跨界实践
  • 3.数据类型和类型装换
  • Qt——实现”Hello World“、认识对象树与Qt坐标系
  • 用 Node.js 玩转 Elasticsearch从安装到增删改查