A.
B.
C.
D.
A.
B.
C.
D. 第
14 届蓝桥杯 C++青少组中 /高级组选拔赛 (STEMA)2023 年1月 15 日真题
题目总数: 10
总分数:223
一、选择题
第 1 题
单选题
C++ 程序的基本模块是(
)。
标识符
表达式
语句
函数
第 2 题
单选题
以下一维数组定义中,哪一个语法不正确?(
)
int a[]={1,2,3};
int a[10]={1};
int a[];
int a[5];
第 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 ()
{
cout << func(14 );
return 0 ;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
A.
B.
C.
D.
A.
B.
C.
D.
A.
B.
C.
D. 2
4
6
-1
第 4 题
单选题
已知: int i[5],*p=i; 那么执行cout<<p+2; 语句后,可以输出(
)。
i[2] 的值
i[2] 的地址
i[3] 的值
i[5] 的地址
第 5 题
单选题
执行下面的程序,当输入的内容为 “Hello world”时,输出的结果是 (
)。
char s[15];
cin >> s;
cout<<strlen(s);
5
10
11
15
二、编程题
第 6 题
问答题
求十位数字
题目描述:
给定一个正整数 N( 1< N< 1011 ),输出正整数十位上的数字。
输入描述:
输入一个正整数 N( 1< N< 1011 )
输出描述:
输出正整数十位上的数字
样例输入:
样例输出:
123
2
第 7 题 问答题
寻宝石
编程实现:
有 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个连续的盒子最多的宝石数量
样例输入:
样例输出:
第 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。
5
6 2 4 5 1
12
输入描述:
第一行输入一个正整数 N( 1< N< 50 ),表示石子的堆数
第二行输入 N个正整数( 1<正整数< 100),表示顺时针方向每堆石子的原始数量,正整数之间以一个空格隔
开
输出描述:
输出一个整数,表示要使 N堆石子的数量变为相同,最少移动的石子数量,如果原始 N堆石子数量相同,则输
出 0
样例输入:
样例输出:
第 9 题
问答题
花坛
题目描述:
小明有一张 N*M(2≤N≤30 ,2≤M≤30 )的方格纸,且每个小方格都是正方形,纸上的每个小方格中都画了一个
花朵,共有 a、 b、 c三种不同的花朵。为了美观现按照以下要求为花朵涂色。
要求:
1 )涂色的花朵区域必须是一个正方形矩阵,最小为一个 2*2的正方形矩阵;
2 )正方形矩阵中的花朵必须是同一种花朵;
3 )只要正方形矩阵四个顶点不重合就算作不同的正方形矩阵(有部分区域重叠或者大正方形矩阵包含小正方
形矩阵,按不同的正方形矩阵计算)。
已知方格纸的行数 N( 2≤N≤30 )和列数 M( 2≤M≤30 ),及每个小正方形方格中花朵的种类,请帮助小明计算
出,按要求有多少个正方形矩阵需要涂色。
例如: N=4,D = 5 ,矩阵如下图:
3
2 6 7
3
其中有3个正方形矩阵需要涂抹颜料(蓝色框区域和绿色区域的矩阵部分重叠按 2个计算)。
输入描述:
第一行输入两个正整数 N(2≤N≤30)和M(2≤M≤30) ,N表示矩阵方格的行数, M表示矩阵方格的列数,两个正整
数之间以一个空格隔开
第二行开始输入 N行,每行 M个字符 (字符只包含 a、 b、 c),字符之间以一个空格隔开
输出描述:
输出一个整数,表示 N*M的矩阵方格纸中,需要涂抹颜料正方形矩阵的个数
样例输入:
样例输出:
第 10 题
问答题
公园树木
题目描述:
某公园有 N( 3≤N≤50 )棵树排成一排,已知每棵树的高度。现要去掉一些树,使得剩下树的高度从左至右呈现
先递增再递减的
第14届蓝桥杯C++青少组中_高级组选拔赛(STEMA)2023年1月15日真题,第14届蓝桥杯青少组STEM考试C++真题