image

编辑人: 人逝花落空

calendar2025-07-15

message9

visits158

第14届蓝桥杯C++青少组中/高级组选拔赛(STEMA)2022年10月30日真题参考答案

一、单选题

1、执行cout<<(5%3);语句后,输出的结果是(   )。

A 0

B 1

C 2

D 3


2、以下选项中,哪一个是C++注释符号?(   )。

A *

B //

C ;

D #


3、以下关于在C++中,对形式参数描述不正确的是(   )。

A 形式参数可以为空

B 形式参数必须有类型说明

C 多个形式参数之间以分号隔开

D 函数有无形式参数,函数名后的小括号都不能省略


4、可以正确判断char类型变量c是小写字母的是(   )。

A  'a'<=c<='z'

B  ('a'>=c) && ('z'<=c)

C  (c>='a') && (c<='z')

D  ('a'>=c) || ('z'<=c)


5、以下说法正确的是( )。

A、

可以通过&p来间接访问指针变量p所指向的数据内容

B、

指针变量里面存放变量的地址,指针变量里面的值初始化之后不可改变

C、

 定义为指向int型变量的指针,可以指向double类型的变量

D、

 C++中,通过函数名称可以获取到函数的地址


二、实操题

6、百位上的数字

题目描述:

给定一个三位数,输出其百位上的数字。

输入描述:

输入一个三位数

输出描述:

输出三位数百位上的数字


样例输入:

123

样例输出:

1

参考答案:对于给定的三位数,百位上的数字可以通过取整除以100并取结果的整数部分来得到。


7、开关

题目描述:

一盏台灯的开关可以控制三种灯光状态。初始状态为关闭状态,第一次按下开关为冷光状态,第二次按下开关为暖光状态,第三次按下开关为关闭状态,第四次按下开关继续为冷光状态,以此类推。请计算出按下N次开关后,台灯为何种状态。

输入描述:

输入一个正整数N(1<N<1000),表示按下台灯开关的次数(初始状态为关闭状态)

输出描述:

输出一个大写字母,当按下台灯开关N次后,灯光为冷光状态则输出大写字母“L”,为暖光状态则输出大写字母“N”,为关闭状态则输出大写字母“G”


样例输入:

5

样例输出:

N

参考答案:对于给定的N,我们可以通过判断N的余数来确定台灯的状态。当N为奇数时,台灯的状态为冷光或暖光,当N为偶数时,台灯的状态为关闭状态。具体判断方法如下:1. 当N除以3的余数为1时,台灯的状态为冷光,输出大写字母“L”。2. 当N除以3的余数为2时,台灯的状态为暖光,输出大写字母“N”。3. 当N除以3的余数为0时,台灯的状态为关闭状态,输出大写字母“G”。


8、对折纸张

题目描述:

现要对一张纸张进行反复对折,纸张的单页厚度为0.2毫米,请问最少对折几次后,纸的厚度超过N毫米(N为正整数,1<N<1000)。   

输入描述:

输入一个正整数N(1<N<1000)

输出描述:

输出一个整数,表示纸张最少对折几次后,纸的厚度超过N毫米(大于N毫米)


样例输入:

2

样例输出:

4

参考答案:```pythonimport mathdef min_folds(N):thickness = 0.2folds = 0while thickness <= N:folds += 1thickness *= 2return foldsN = int(input())print(min_folds(N))```


9、分糖果

题目描述:

现有N罐糖果,且已知每罐糖果的初始数量。现给出两个数值L和R(L≤R),需要把每罐糖果的数量调整为:L≤任意一罐糖果的数量≤R。调整的方式是每次从其中一罐糖果中拿出1块放到其他糖果罐中。请你计算出最少调整几次才能使每罐糖果的数量都在L到R范围之间,如果不能将每罐糖果都调整到L到R范围之间则输出-1。

例如:N = 2,2罐糖果的初始数量为3和8,L = 3,R = 6,通过调整使得:3≤任意一罐糖果的数量≤6,调整方式如下:

第一次从初始数量为8的罐中拿1块放到初始数量为3的罐中,调整后为(4,7);

第二次从数量7的罐中拿1块放到数量为4的罐中,调整后为(5,6);

故最少调整2次。

输入描述:

第一行输入一个正整数N(N<30),表示糖果的罐数

第二行输入N个正整数(1≤正整数≤100),表示每罐糖果的初始数量,每个正整数之间以一个空格隔开

第三行输入两个正整数L,R(1≤L≤R≤100),表示每罐糖果的数量所要调整的范围,两个正整数之间以一个空格隔开

输出描述:

输出一个整数,表示最少调整几次才可以使N罐糖果数量都在L和R范围之间,如果不能将N罐糖果调整到L到R范围之间则输出-1


样例输入:

2
3 8
3 6

样例输出:

2

参考答案:2


10、最长路线

题目描述:

有一个N*M的矩阵,且矩阵中每个方格中都有一个整数(0≤整数≤100) ,小蓝需要按照以下要求从矩阵中找出一条最长的移动路线,且输出最长路线的长度(1个方格为1个长度)。

要求:

1.小蓝可以从矩阵中任意一个方格开始向它的上、下、左、右相邻的任意一个方格移动,且移动的路线不能有交叉;

2.小蓝每次所要移动到的方格中的整数都要小于当前所在方格中的整数(如当前所在的方格中的整数为3,那么可以移动到数字为0,1,2的格子里,不可以移动到数字为3,4,5...的格子里);

例如:N=3,M=3,矩阵方格如下:

最长路线为4 -> 3 -> 2 -> 1,故路线长度为4。

输入描述:

第一行输入两个正整数N,M(1<N≤1000,1<M≤1000),N表示矩阵的行数,M表示矩阵的列数,两个正整数之间以一个空格隔开

第二行开始输入N行,每行包含M个整数(0≤每个整数≤100),表示每个方格中的整数,每个整数之间以一个空格隔开

输出描述:

输出一个整数,表示最长路线的长度


样例输入:

3 3
1 1 3
2 3 4
1 1 1

样例输出:

4

参考答案:最长路线长度为4。


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:第14届蓝桥杯C++青少组中/高级组选拔赛(STEMA)2022年10月30日真题参考答案

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share