答案
第
12 届蓝桥杯 C++青少组中 /高级组选拔赛( STEMA)2021 年3月 28 日
真题
题目总数: 5
总分数:128
编程题
第 1 题
问答题
求面积
题目描述:
给定正方形的边长,求正方形的面积 (正方形面积 =边长 *边长 )。
输入描述:
输入一个正整数 N(2<N<100)作为正方形的边长
输出描述:
输出正方形的面积
样例输入:
样例输出:
第 2 题
问答题
运费
3
9
# include <iostream>
using namespace std;
int main () {
int a;
cin >> a;
cout << a * a;
return 0;
}
1
2
3
4
5
6
7
8
答案
题目描述:
乘坐飞机时,行李超出规定重量后,会对行李进行托运且收取托运费。
以下是某航空公司行李托运的收费标准:
行李重量在 20公斤内 (含 20) 按照每公斤 10元收取费用,超过 20公斤的部分按照每公斤 15元收取费用。
请编写程序,在给定行李总重量 (单位:公斤 )的情况下计算出托运行李的费用。
输入描述:
输入一个正整数 N(5<N<200)作为行李的总重量 (单位:公斤 )
输出描述:
输出托运 N公斤行李的费用
样例输入:
样例输出:
第 3 题
问答题
求素数
提示信息:
素数:素数就是质数,是一个大于 1的自然数,且除了 1和它本身外,不能被其他自然数整除的数。也就是说,
除了 1和该数本身以外不再有其他的因数的数被称为素数。最小的素数是 2,1不是素数。
题目描述:
给出一个正整数 N,计算出 7到 N之间个位数为 7的素数有多少个。例如: 7到 20 之间的素数有 7、 11 、13 、17 、
19, 其中个位为 7的有 2个,分别为 7和 17
输入描述:
输入一个正整数 N(10<N<9999)
输出描述:
10
100
# include <iostream>
using namespace std;
int main (){
int a;
cin >> a;
if(a> 20){
cout << 20*10 +(a- 20)*15;
}
else {
cout << a* 10;
}
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
答案
输出
7到 N( 包含 7和 N) 之间个位数为 7的素数有多少个
样例输入:
样例输出:
第 4 题
问答题
计算 24
题目描述:
“ 计算 24”是一个流传已久的数字游戏,小蓝最近对此痴迷不已。
游戏规则是:从 1~10之间的自然数任意拿出 4个数 (4个数各不相同,顺序随机 ),进行加、减、乘三种运算 (使用
某种运算的次数、种类不限 ),要求运算结果等于 24。乘法的优先级高于加、减,并且算式中不可以用括号,不
可以改变 4个数字出现的顺序。
以下给出两个游戏的具体例子:
若给出的 4个数是: 10、2、 4、 8,则有两种解答方案 (10+2+4+8=24,10*2-4+8=24), 则输出2。
若给出的 4个数是: 7、 2、 3、 6,则有零种解答方案,则输出 0。
输入描述:
输入四个 1到 10 之间的正整数并以一个空格隔开 (四个正整数各不相同 )
输出描述:
20
2
# include <iostream>
using namespace std;
int main () {
int a, sum = 0;
cin >> a;
for (int i = 7; i <= a; i = i + 10) {
bool flag = true;
for (int j = 2; j < i / 2; j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag == true) {
sum += 1;
}
}
cout << sum;
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
答案
输出有多少种运算方案的结果为
24
样例输入:
样例输出:
10 2 4 8
2
# include <iostream>
using namespace std;
int sum = 0;
void Add2 (int a, int b) {
if (a + b == 24)
sum++;
if (a - b == 24)
sum++;
}
void Add3 (int a, int b, int c) {
if (a + b + c == 24)
sum++;
if (a + b - c == 24)
sum++;
if (a - b + c == 24)
sum++;
if (a - b - c == 24)
sum++;
}
void Add4 (int a, int b, int c, int d) {
if (a + b + c + d == 24)
sum++;
if (a + b + c - d == 24)
sum++;
if (a + b - c + d == 24)
sum++;
if (a + b - c - d == 24)
sum++;
if (a - b + c + d == 24)
sum++;
if (a - b + c - d == 24)
sum++;
if (a - b - c + d == 24)
sum++;
if (a - b - c - d == 24)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
第 5 题 问答题
最佳策略
题目描述:
有 n个小朋友排成一排,现在需要按身高从低到高的顺序进行排列。排序方式为:如果位置相邻的两个小朋友
不符合从低到高的顺序,就交换这两个小朋友的位置。且每个小朋友都有一个不高兴的数值,开始的时候,所
有小朋友的不高兴值为 0。如果某个小朋友第一次被交
第12届蓝桥杯C++青少组中_高级组选拔赛(STEMA)2021年3月28日真题-附答案,第12届蓝桥杯青少组C++中高级组STEMA选拔赛真题答案 2021年3月28日