A.
B.
C.
D.
答案
A.
B.
C.
D.
答案
第
14 届蓝桥杯 C++青少组中 /高级组选拔赛 (STEMA)2023 年1月 15 日真题
题目总数: 10
总分数:223
一、选择题
第 1 题
单选题
C++ 程序的基本模块是(
)。
标识符
表达式
语句
函数
D
第 2 题
单选题
以下一维数组定义中,哪一个语法不正确?(
)
int a[]={1,2,3};
int a[10]={1};
int a[];
int a[5];
C
第 3 题
单选题
执行以下代码,输出的结果是(
)。
# include <iostream>
using namespace std;
int func (int x)
{
if (x <= 3)
return x * 2 - 1;
else if (x >= 6)
return func (x - 3) - 2;
else
return func (x + 1) + x;
}
int main ()
1
2
3
4
5
6
7
8
9
10
11
12
A.
B.
C.
D.
答案
A.
B.
C.
D.
答案
A.
B.
C.
D.
答案 2
4
6
-1
A
第 4 题
单选题
已知: int i[5],*p=i; 那么执行cout<<p+2; 语句后,可以输出(
)。
i[2] 的值
i[2] 的地址
i[3] 的值
i[5] 的地址
B
第 5 题
单选题
执行下面的程序,当输入的内容为 “Hello world”时,输出的结果是 (
)。
char s[15];
cin >> s;
cout<<strlen(s); 5
10
11
15
A
二、编程题
第 6 题
问答题
求十位数字
题目描述:
给定一个正整数 N( 1< N< 1011 ),输出正整数十位上的数字。
输入描述:
输入一个正整数 N( 1< N< 1011 )
{
cout << func(14 );
return 0 ;
}
13
14
15
16
答案
解析
输出描述:
输出正整数十位上的数字
样例输入:
样例输出:
评分标准:
3 分:能正确输出第一组数据;
3 分:能正确输出第二组数据;
3 分:能正确输出第三组数据;
3 分:能正确输出第四组数据;
3 分:能正确输出第五组数据。
第 7 题
问答题
寻宝石
编程实现:
123
2
// 参 考 代 码 1
#include <iostream>
using namespace std;
int main () {
long long i;
cin >> i;
cout << (i / 10 % 10);
return 0;
}
1
2
3
4
5
6
7
8
9
// 参 考 代 码 2
#include <bits/stdc++.h>
using namespace std;
signed main () {
string st;
cin >> st;
cout << st[st. size() - 1 - 1];
return 0;
}
1
2
3
4
5
6
7
8
9
10
答案
有
N( 1< N< 100 )个盒子排成一排,每个盒子都放有宝石。请找出 3个连续的盒子,使得 3个盒子中的宝石数
量之和最多。
例如: N = 5,盒子中的宝石数量依次为 6、 2、 4、 5、 1。
3个连续的盒子共有 3组,分别为( 6, 2, 4)、( 2, 4, 5)、( 4, 5, 1),宝石数量之和最多是( 6, 2,
4 ),宝石数量为 12。
输入描述:
第一行输入一个正整数 N( 1< N< 100 ),表示这排盒子的数量
第二行输入 N个正整数( 1≤正整数< 100),表示盒子中依次放有的宝石数量,正整数之间以一个空格隔开
输出描述:
输出一个整数,表示 3个连续的盒子最多的宝石数量
样例输入:
样例输出:
5
6 2 4 5 1
12
// 参 考 代 码 1
#include <iostream>
using namespace std;
int a[101 ];
int main () {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int s = a[ 0] + a[ 1] + a[ 2];
for (int i = 1; i < n - 2; i++) {
s = max(s, a[i] + a[i + 1] + a[i + 2]);
}
cout << s;
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 参 考 代 码 2
#include <bits/stdc++.h>
using namespace std;
int n, a[ 111], ma;
signed main () {
cin >> n;
1
2
3
4
5
6
解析
评分标准:
3 分:能正确输出第一组数据;
3 分:能正确输出第二组数据;
3 分:能正确输出第三组数据;
3 分:能正确输出第四组数据;
3 分:能正确输出第五组数据;
3 分:能正确输出第六组数据。
第 8 题
问答题
移动石子
题目描述:
将 N( 1<N<50 )堆石子围成一个圆圈,已知每堆石子的数量,且石子的总数量能被 N整除。请按照如下要求移
动石子,使得 N堆石子的数量变为相同。
要求:可以从每堆石子中拿取石子移动到它左右相邻的两堆石子堆中。
计算出要使得 N堆石子的数量变为相同,至少需要移动多少颗石子。
例如: N = 3,3堆石子顺时针方向的数量依次为 2、 6、 7。最少需要移动 3颗石子, N堆石子的数量变为相同,
每堆 5颗。
第 1次从第一堆石子中拿 1颗移动到第一堆的石子中,此时 3堆石子的数量依次为 3、 5、 7;
第 2次从第三堆石子中拿 2颗移动到第一堆的石子中,此时 3堆石子的数量依次为 5、 5、 5。
输入描述:
第一行输入一个正整数 N( 1< N< 50 ),表示石子的堆数
第二行输入 N个正整数( 1<正整数< 100
第14届蓝桥杯C++青少组中_高级组选拔赛(STEMA)2023年1月15日真题-附答案,第14届蓝桥杯青少组STEM考试C++真题及答案