答案 第
12 届蓝桥杯 C++青少组中 /高级组选拔赛 2020年8月 23 日真题
题目总数: 5
总分数:128
编程题
第 1 题
问答题
输入一个正方形的边长( a)及一个长方形的长与宽( b、 c),然后比较两个 图形的面积。如果长方形面积
大,输出 “RECTANGLE” ;如果正方形面积 大,输出 “SQUARE” ;如果一样大,输出 “SAME”。
输入描述:
输入正整数 a、 b、 c( 0<a 、b、 c≤1000 ),分别代表正方形的边长和长方形的长与宽
输出描述:
如果长方形面积大,输出 “RECTANGLE”
如果正方形面积大,输出 “SQUARE”
如果一样大,输出 “SAME”
【样例输入】
【样例输出】
5 4 6
SQUARE
# include <cstring>
#include <iostream>
using namespace std;
int main () {
double a, b, c;
cin >> a >> b >> c;
if (a * a > b * c) {
cout << "SQUARE";
} else if (a * a < b * c) {
cout << "RECTANGLE";
} else {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
解析
答案 评分标准:
3 分:能正确输出一组数据;
6 分:能正确输出两组数据;
9 分:能正确输出三组数据。
第 2 题
问答题
请你写一个含有多个 “lanqiao” 字样的句子,然后输出句子中出现 “lanqiao” 字样的个数。(注意: “lanqiao”
字样可以是不同大小写字母的组合,例如 : LanQIAO、LanQiao 等)
输入
输入一个字符串 (0≤字符串长度 ≤100)。
输出
输出该字符串中 “lanqiao” 字样出现的次数。(请注意: “lanqiao” 字样可以是不同大小写字母的组合。)
样例输入
样例输出
cout << "SAME";
}
return 0;
}
16
17
18
19
20
// 参 考 代 码 2
#include <bits/stdc++.h>
using namespace std;
int main (){
int a,b,c;
cin>>a>>b>>c;
if(a*a>b*c)cout<< "SQUARE";
else if (a*a==b*c)cout<< "SAME";
else cout<< "RECTANGLE" ;
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
Lanqiaoceping,lanqiaoceping,Lanqiaoceping
3
# include <bits/stdc++.h>
# include <string.h>
using namespace std;
int main () {
char a1[] = { 'l', 'a' , 'n' , 'q' , 'i' , 'a' , 'o' };
1
2
3
4
5
解析
评分标准:
3 分:能正确输出一组数据;
7 分:能正确输出两组数据;
10 分:能正确输出三组数据。
char a2[100], a3[ 100];
scanf ("%s" , &a2);
int len, k = 0, s = 0;
len = strlen(a2); // strlen() 函 数 给 出 字 符 串 中 的 字 符 长 度 ;
for (int i = 0; i < len; i++) {
a3[i] = tolower(a2[i]); // tolower() 函 数 用 于 把 大 写 字 母 转 换 为 小 写 字 母 ;
}
for (int i = 0; i < len; i++) {
if (a3[i] == a1[ 0]) // 第i个 时 , l相 等 时 条 件 成 立 ;
{
k = 0;
for (int j = 0; a1[j] != 0; j++) {
if (a3[i + j] == a1[j]) // 对 应 每 一 个 字 母 和 a1[]中 相 等 ;
{
k++;
}
}
if (k == strlen(a1)) // k用 来 记 录 lanqiao的 长 度,长 度 相 等 :s+1;
{
s++;
}
}
}
printf ("%d\n" , s);
return 0 ;
}
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
// 参 考 代 码 2
#include <bits/stdc++.h>
using namespace std;
int main (){
string s;
cin>>s;
int len=s. size();
for(int i=0;i<len;i++) if(s[i]>= 'A' && s[i]<= 'Z')s[i]+= 32;
int cnt= 0;
for(int i=0;i<len- 6;i++) if(s. substr (i,7)== "lanqiao" )cnt++;
cout<<cnt;
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
答案
第
3 题
问答题
【编程实现】
蓝桥杯 STEMA 测评,成绩排名与证书的对应关系如下:
排名
奖项等级
前 10% 一等奖
前 30%
二等奖
前 60%
三等奖
前 80%
优秀奖
已知小蓝同学的成绩及其他所有考生的成绩,你能帮助小蓝计算一下他能获得的奖项等级吗?
输入
第一行为一个整数 score,(0≤score≤100 )代表小蓝的成绩。
第二行为一个整数 n,( 10≤n≤1000 )代表参加测评的总人数。
第三行为 n 个整数,每个整数代表每个参加测评考生的成绩,中间用空格分隔,成绩范围同 score。
输出
A 、 B、 C、 D、 E 五个字母,分别代表一、二、三等奖,优秀奖及未获奖。注意:分数相同则等级相同,后续
选手排名顺延。
【结果样例】
样例输入
样例输出
样例说明:小蓝在 10 名参赛选手中排名第 3,属于前 30%,故获得二
第12届蓝桥杯C++青少组中_高级组选拔赛2020年8月23日真题-附答案,第12届蓝桥杯青少组C++中高级组STEMA选拔赛真题及答案 2020年8月23日