A.
B.
C.
D.
答案
A.
B.
C.
D.
答案
A.
B.
C.
D.
答案
第
14 届蓝桥杯 C++青少组中 /高级组选拔赛 (STEMA)2022 年12 月18 日真
题
题目总数: 10
总分数:208
一、选择题
第 1 题
单选题
执行 cout<<5*3; 语句后,输出的结果是(
)。
0
15
125
2
B
第 2 题
单选题
下列选项中,按照数据类型的字节长度从小到大排序正确的是(
)。
char ,long long ,float
char ,float ,long long
long long ,float ,char
float ,long long ,char
B
第 3 题
单选题
下列表达式结果为 true的是(
)。
'z' == 'Z'
'z' < 'Z'
'9' > 'Z'
'c' +1> 'D'
D
第 4 题
单选题
A.
B.
C.
D.
答案
A.
B.
C.
D.
答案
答案
下列选项中,对二维数组
a初始化不正确的是(
)。
int a[2][3]={{1,2,3},{4,5,6}} ;
int a[2][3]={{1,2},{3}} ;
int a[2][3]={1,2,3,4,5,6} ;
int a[2][3]={{1,2},{3,4},{5,6}} ;
D
第 5 题
单选题
定义 int a[5], *p = a; 则对a数组元素的正确引用是(
)。
*&a [5]
a +2
*(p+5)
*(p+2)
D
二、编程题
第 6 题
问答题
求位数
题目描述:
给定一个正整数 N( 1<N<10 ),输出N为几位数。
输入描述:
输入一个正整数 N( 1<N<10 )
输出描述:
输出一个整数,表示 N为几位数
样例输入:
样例输出: 8
8
15
2
// 参 考 代 码 1
#include <iostream>
using namespace std;
int main () {
int n, ans = 0;
1
2
3
4
5
解析
评分标准:
3 分:能正确输出第一组数据;
3 分:能正确输出第二组数据;
3 分:能正确输出第三组数据;
3 分:能正确输出第四组数据;
3 分:能正确输出第五组数据。
第 7 题
问答题
字符反转
题目描述:
给定一个只包含大写字母 “M”和“W” 的字符串(字符串长度小于 100),然后对字符串中位置为偶数的字符进行
反转( M反转为 W, W反转为 M;字符串中左边第 1个字符位置为 1)。
例如:原字符串为 “WMMW”,反转后为 “WWMM”
输入描述:
输入一个只包含大写字符 “M”和“W” 的字符串(字符串长度小于 100)
输出描述:
输出一个字符串,表示对原字符串中位置为偶数的字符反转后的字符串
样例输入:
cin >> n;
while (n > 0) {
ans++;
n /= 10;
}
cout << ans;
return 0;
}
6
7
8
9
10
11
12
13
// 参 考 代 码 2
#include <iostream>
using namespace std;
int n;
int main () {
cin >> n;
int ans = 0;
while (n) {
++ans, n /= 10;
}
cout << ans;
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
WMMW
答案
解析
样例输出:
评分标准:
3 分:能正确输出第一组数据;
3 分:能正确输出第二组数据;
WWMM
// 参 考 代 码 1
#include <iostream>
#include <string>
using namespace std;
int main () {
string s;
cin >> s;
for (int i = 0; i < s. size(); i++) {
if (i % 2 == 0)
cout << s[i];
else if (s[i] == 'W')
cout << 'M';
else
cout << 'W';
}
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 参 考 代 码 2
#include <cstring>
#include <iostream>
using namespace std;
const int MAXN = 110;
char str[MAXN];
int main () {
cin >> str;
for (int i = 0; i < strlen (str); i++) {
if ((i + 1) % 2 == 0)
if (str[i] == 'M')
cout << 'W';
else
cout << 'M';
else
cout << str[i];
}
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
答案 3
分:能正确输出第三组数据;
3 分:能正确输出第四组数据;
3 分:能正确输出第五组数据;
3 分:能正确输出第六组数据。
第 8 题
问答题
排名
题目描述:
某比赛有 N( 2≤N≤50 )名选手参加,给定每名参赛选手的编号( 1到 N)和比赛得分( 0≤得分 ≤100) ,请按照分
数从高到低的顺序排序,如果分数相同就按照编号排序,编号小的排前边。
输入描述:
第一行输入一个正整数 N( 2≤N≤50 ),表示参赛人数
第二行开始,共输入 N行,每行两个正整数,分别表示参赛选手的编号和比赛得分( 0≤得分 ≤100 ),正整数之
间以一个空格隔开
输出描述:
按照排序规则,输出 N行,每行两个正整数,分别表示编号和得分,正整数之间以一个空格隔开
样例输入:
样例输出:
3
3 84
1 87
2 84
1 87
2 84
3 84
// 参 考 代 码 1
#include <algorithm>
#include <iostream>
using namespace std;
struct Player {
int
第14届蓝桥杯C++青少组中_高级组选拔赛(STEMA)2022年12月18日真题-附答案,第14届蓝桥杯青少组STEM考试C++真题及答案