选择题 共5道

01 02 03 04 05


编程题 共6道

06 07 08 09 10 11

616 | 第15届蓝桥杯C++青少组_省赛_中级组_2024年8月真题-考试
选择题 共5道
01

定义 char a[]="hello\nworld",执行 cout<<a,输出结果是(  )

2分
登录后查看选项
02

(11001010)2+(F8)16 的结果是(  )。

2分
登录后查看选项
03

表达式 4%12 的结果是(  )。

2分
登录后查看选项
04

下列选项中,逻辑表达式的值始终与 B 的真假无关的是(  )。

2分
登录后查看选项
05

运行下面程序,输出结果是(  )

#include <bits/stdc++.h>
using namespace std;
int a[6]={16,8,32,10,9,21};
int func(int L,int R,int d)
{
    if(L>R) return 0;
    int sum=0,m=a[L],index=L;
    for(int i=L+1;i<=R;i++){
        if(m<a[i]){
            m=a[i];index=i;
        }
    }
    int lt=func(L,index-1,d+1);
    int rt=func(index+1,R,d+1);
    return lt+rt+m*d;
}
int main()
{
    cout<<func(0,5,1)<<endl;
    system("pause");
    return 0;
}
2分
登录后查看选项
编程题 共6道
06

读书

题目描述

一本书共 n页,小明计划第一天看x页,此后每一天都要比前一天多看y页,请问小明几天可以看完这本书?

输入格式

一行输入三个整数n,x,y(20≤n≤5000),(1≤x,y≤20),分别表示书的总页数、计划第一天看的页数以及此后每天都要比前一天多看的页数,整数之间以一个空格隔开。

输出格式

输出一个整数,表示小明几天可以看完这本书


样例输入

100 10 5

样例输出

5
2分
登录后作答
07

数字交换

题目描述

前导 0:整数前对数值无影响的 0。

例如:

0201 去除前导 0后为 201;

00321 去除前导 0后为321

给定一个正整数 n,请将 n的最高位与最低位的数字进行交换,并输出交换后的结果。如果交换后的结果有前导0,去除前导0后再输出结果。

例 1:n=173,将 173 的最高位1与最低位3 交换,交换后的结果为371;

例 2:n=10200,将 10200 的最高位1与最低位0交换,交换后的结果为 00201,结果有前导0,去除前导0后的结果为201。

输入格式

输入一个正整数n(100<=n<=109)

输出格式

输出一个整数,表示将 n 的最高位与最低位的数字交换后的结果如果交换后的结果有前导0,去除前导0后再输出结果。


样例输入

173

样例输出

371
2分
登录后作答
08

出现奇数次的数

题目描述

奇数:指不能被 2 整除的整数。

例如:3、5 是奇数;4、6不是奇数。

给定 n个整数,其中只有一个数出现了奇数次,请找出这个数。

例如:7 个整数为 6、2、4、6、4、2、6,其中只有6 出现了奇数次故输出6。

输入格式

第一行输入一个整数 n(1<=n<105)

第二行输入 n个整数(1≤整数≤109)整数之间以一个空格隔开(数据保证只有一个数出现了奇数次)

输出格式

输出一个整数,表示出现了奇数次的数


样例输入

7
6 2 4 6 4 2 6

样例输出

6
2分
登录后作答
09

字母移位

题目描述

字母移位:表示将字母按照字母表的顺序进行移动。

例如:'b'向右移动一位是'c','f'向左移动两位是'd'。

特别地,'a'向左移动一位是'z','z'向右移动一位是'a'。

给定一个仅包含小写字母且长度为 n 的字符串 s,以及 n 个正整数 a1,a2, a3.…an,接下来对字符串s按如下规律操作:

将第 1位字符向左移动 a1位;

再将第 1、2 位字符都向右移动 a2位;

再将第 1、2、3 位字符都向左移动 a3位;

再将第 1、2、3、4 位字符都向右移动 an位;

以此类推,直到将s的第1到第n位字符都(按规律向左或向右)移动ai位。

最后,将操作完成后的字符串s输出。

例如:n=5,字符串s="abcde",5个正整数为1,3,5,7,9;  

将"abcde"的第 1 位字符"a"向左移动 1位,s变为"zbcde"    

再将"zbcde"的前 2 位字符"zb"向右移动 3 位,s变为"cecde"    

再将"cecde”的前 3位字符"cec"向左移动5 位,s 变为"xzxde"    

再将"xzxde"的前 4 位字符"xzxd"向右移动7 位,s变为"egeke"    

再将"egeke"的前 5 位字符"egeke"向左移动 9 位,s 变为"vxvbv"。    

最后,将操作完成后的字符串"vxvbv"输出。

输入格式

第一行输入一个整数n(1<=n<=105)

第二行输入一个仅包含小写字母且长度为 n的字符串s

第三行输入 n个整数 a1、a2...an(1<=a<=109),整数之间以一个空格隔开

输出格式:

输出一个字符串,表示操作完成后的字符串S


输入样例:

5
abcde
1 3 5 7 9

输出样例:

vxvbv
2分
登录后作答
10

游戏任务

题目描述

有一款新游戏,通关这个游戏需要完成n个任务,这n个任务可按任意次序完成,每个任务设置了启动能量值和完成任务消耗的能量值,且消耗的能量值小于等于该任务的启动能量值,如果玩家当前的能量值低于该任务启动能量值则不能开始该任务。 

例 1:玩家当前的能量值为 7,当前任务的启动能量值为 5,完成任务消耗的能量值为 3,则可以开始该任务,完成任务后玩家剩余能量值为4 

例 2:玩家当前的能量值为 5,当前任务的启动能量值为 8,则无法开始该任务。

游戏开始时玩家需要一个初始能量值用来完成这几个任务,当给定每个任务的启动能量值和完成任务消耗的能量值,请问初始能量的最小值是多少?

例如:n=3,这3个任务的启动能量值和完成任务消耗的能量值分别是:(2,2)、(9,5)、(7,4),那么玩家初始能量的最小值为12。可按照如下顺序完成任务:    

完成任务(9,5),玩家剩余能量值为7:    

完成任务(7,4)玩家剩余能量值为 3;    

完成任务(2,2),玩家剩余能量值为1.

尽管最后玩家的能量值还剩余 1,但是初始能量值无法再降低,否则完成任务(9,5)后,玩家的剩余能量值会小于任务(7,4)的启动能量值,导致无法开始该任务。

输入格式

共n + 1行

第一行输入一个整数n(1≤n≤10^5),表示游戏的任务数量

接下来n行,每行输入两个整数x,y(1≤y≤x≤1000),分别表示当前任务所需的启动能量值和完成任务所消耗的能量值,整数之间以一个空格隔开

输出格式

输出一个整数,表示玩家要完成这 n个任务需要的初始能量的最小


输入样例

3
2 2
9 5
7 4

输出样例

12
2分
登录后作答
11

价值分组

题目描述

n 件物品排成一排,编号分别为:1、2、3...n的价值分别为:a1、a2、 a3...an

请将这 n件物品拆分为K组(不改变物品的顺序),要求每组内至少有一件物品,分别统计每组物品的价值之和,并找出其中的最大值。请设计一种分组方案,使这个最大值尽可能小,并输出这个最大值。

例如:n=5,表示有5 件物品,这5 件物品的价值分别是 6、1、3、8、4;K=2,表示要将这 5 件物品拆分为两组,有如下方案

[6]和[1,3,8,4],两组物品各自的价值之和为 6和 16,最大值为16;

[6,1]和[3,8,4],两组物品各自的价值之和为 7和 15,最大值为15;

[6,1,3]和[8,4],两组物品各自的价值之和为10和 12,最大值为 12;

[6,1,3,8]和[4],两组物品各自的价值之和为 18 和 4,最大值为18;

其中第 3 种方案,价值之和的最大值 12 在4 种方案中最小,故输出12

输入格式

第一行输入一个整数n(1≤n≤1000),表示物品的数量

第二行输入 n 个整数a1、 a2,...an(1≤ai≤ 105),ai表示i号物品的价值,整数之间以一个空格隔开。

第三行输入一个整数k(1≤k≤n),表示将n件物品拆分的组数

输出格式

输出一个整数,表示按照题目要求得到的最大值


样例输入

5
6 1 3 8 4

样例输出

12
2分
登录后作答