万卷网> 蓝桥竞赛 >蓝桥C++ > 2024年11月蓝桥杯蓝桥C++(STEMA)中/高级

2024年11月蓝桥杯蓝桥C++(STEMA)中/高级
STEMA 2024 2025-06-09 20:27:53 44

一、单选题

1.

下列选项中,不可作为变量名称使用的是()。

A.

Ads

B.

_five

C.

sf3

D.

count&A

2.

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

cout << 1 + 3;
A.

1+3

B.

4

C.

13

D.

1 3

3.

下列选项中,定义浮点型变量的关键字是()。

A.

int

B.

double

C.

long long

D.

string

4.

表达式10*(5-3)的值是()。

A.

20

B.

30

C.

200

D.

470

5.

请阅读下面的程序,MySort函数要实现的功能是使用冒泡排序对数组进行由大到小的排序,请问其中两处横线应该填写的内容是()。

void MySort(int arr[], int size) {
    for (int i = 0; i < size - 1; ++i) {
        for (int j = 0; j < size - i - 1; ++j) {
            if (______) { // ①
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}
int main() {
    int myArray[] = {1,2,3,4,5};
    MySort(______, 5); // ②
    for (int i = 0; i < 5; ++i) {
        cout << myArray[i] << " ";
    }
    return 0;
}
A.

①arr[j]>arr[j+1] ②myArray

B.

①arr[j]>arr[j+1] ②&myArray

C.

①arr[j]<arr[j+1] ②myArray

D.

①arr[j]<arr[j+1] ②&myArray

二、编程题

1.

求和

题目描述:

给定一个包含 n 个整数的数列,请统计其中有多少个整数满足大于 x 且小于 y,并输出所有满足要求的整数之和。

例如:n = 6,数列为 [13,31,45,17,20,99];x = 18,y = 50,数列中满足大于 18 且小于50 的整数有 31、45、20,和为 96(31 + 45 + 20)。

输入描述:

第一行输入三个整数 n、x 和 y(1≤n≤1000,1≤x<y≤5000),整数之间以一个空格隔开;

第二行输入 n 个整数(1≤整数≤5000),整数之间以一个空格隔开。

输出描述:

输出一个整数,表示数列中所有满足大于 x 且小于 y 的整数之和。


样例输入:

6 18 50
13 31 45 17 20 99

样例输出:

96


2.

21 点游戏

题目描述:

在 21 点游戏中,玩家的目标是使手中牌的点数总和尽可能接近21点,但不能超过 21 点。游戏采用一副去除大小王的扑克牌,其中包含 13 种牌面(A、2、3、4、5、6、7、8、9、10、J、Q、K),每种牌面有 4 张。牌的点数定义如下:

1)A 可以代表 1 点或 11 点;

2)J、Q、K 均代表 10 点;

3)牌面 2~10 代表的点数与其牌面相同(例如:2 代表 2 点,3 代表 3 点,以此类推)。

给定一个字符串 S,表示你手中的牌。请将这些牌的点数累加(如果手中的牌有 A,你可以单独调整其中每一个 A 的点数),并计算在不超过 21 点的情况下,S 的总点数的最大值;如果无论怎么计算都大于 21点,则输出 0。

注:牌面 10 会占用 2 个字符位,其余牌面各占用 1 个字符位。

例 1: S = "A3A4";S 的总点数的最大值是 19(其中一个 "A" 代表 1 点,另一个 "A" 代表 11 点),

即 1 + 3 + 11 + 4。

例 2:S = "A10J";S 的总点数的最大值是 21("A" 代表 1 点,中间的 "10" 代表 10 点,"J" 也代表 10 点),即 1 + 10 + 10。

例 3:S = "AJQK";无论 "A" 代表 1 点还是 11 点,S 的总点数都大于 21,故输出 0。

输入描述:

输入一个仅包含 13 种牌面的字符串 S(2≤S 的长度≤11),其中相同的牌不会超过 4 张。

输出描述:

输出一个整数,表示 S 的总点数的最大值,如果无论怎么计算都大于 21 点,则输出 0。


样例输入:

A3A4

样例输出:

19
3.

数学竞赛

题目描述:

A、B、C 三个人参加了数学竞赛。现给定三人的竞赛成绩,请输出第一名的成绩。

输入描述:

一行输入三个不同的整数(0≤整数≤100),分别表示 A、B、C 三人的竞赛成绩,整数之间以一个空格隔开。

输出描述:

输出一个整数,表示 A、B、C 三人中第一名的成绩。


样例输入:

40 60 50

样例输出:

60
4.

跑步

题目描述:

小明喜欢跑步,他周一到周五每天跑 x 公里,周六和周日每天跑 y 公里,请问小明一周(周一到周日)总共跑了多少公里?

输入描述:

一行输入两个整数 x 和 y(1≤x,y≤20),整数之间以一个空格隔开。

输出描述:

输出一个整数,表示小明一周(周一到周日)总共跑了多少公里。


样例输入:

3 5

样例输出:

25
5.

热气球

题目描述:

某景区推出了一项热气球体验项目,目前有 n 组游客在等待乘坐热气球,且每组游客人数都不超过 4 人。

每个热气球的最大载客量为 4 人。

需要注意的是,同一组游客必须乘坐同一个热气球,而且只要人数不超过最大载客量,一个热气球可以容纳多组游客。

请你计算该景区最少需要准备多少个热气球,才能让 n 组游客同时乘坐上热气球。

例如:n = 7,7 组游客的人数分别是 3、2、1、2、1、4、2;要让所有游客同时乘坐上热气球,最少需要准备 4 个热气球,其中一种最优分组方案如下:

第 1 组(3 人)和第 3 组(1 人)乘坐第一个热气球;

第 2 组(2 人)和第 4 组(2 人)乘坐第二个热气球;

第 5 组(1 人)和第 7 组(2 人)乘坐第三个热气球;

第 6 组(4 人)乘坐第四个热气球。

输入描述:

第一行输入一个整数 n(1≤n≤105),表示游客的组数;

第二行输入 n 个整数(1≤整数≤4),表示每组游客的人数,整数之间以一个空格隔开。

输出描述:

输出一个整数,表示该景区最少需要准备的热气球的数量。


样例输入:

7
3 2 1 2 1 4 2

样例输出:

4
公众号
客服 反馈
顶部