image

编辑人: 流年絮语

calendar2025-06-15

message9

visits430

第15届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2024年1月28日真题参考答案

一、单选题

1、下列哪个是赋值运算符?(   )

A =

B !=

C ==

D  //


2、Python 中定义函数的关键字是(   )。

A class

B import

C def

D while


3、Python 中可以创建空字典的是(   )。

A dic = ()

B dic = {}

C dic = set()

D dic = []


4、已知:s = 'pythonnohtyp',执行 print(s.index('h') + s.rindex('n')) 语句后,输出的结果是(   )。

A -2

B -3

C 9

D 11


5、已知 a = {1, 2, 3, 4, 5},b = {2, 3, 4, 5, 6}。下列选项中可以获得集合 {1, 6} 的是(   )。

A、

(a & b) | (a - b)

B、

(a | b) | (a - b)

C、

(a - b) & (b - a)

D、

(a | b) - (b & a)


二、实操题

6、n 的立方

提示信息:

整数 n 的立方 = n × n × n。

编程实现:

给定一个整数 n,计算 n 的立方。

例如:n = 2,2 的立方等于 8 (8 = 2 × 2 × 2)。

输入描述:

输入一个整数 n(1≤n≤1000)

输出描述:

输出一个整数,表示 n 的立方


样例输入:

2

样例输出:

8

参考答案:根据题目要求,我们需要编写一个程序来计算整数 n 的立方。输入是一个整数 n(1≤n≤1000),输出是一个整数,表示 n 的立方。


7、找第二大的数

编程实现:

给定三个互不相同的整数,找出其中第二大的数。

例如:三个整数分别为 30、20、25,其中第二大的数是 25。

输入描述:

输入共三行,每行一个整数(1≤整数≤1000),三个整数互不相同

输出描述:

输出一个整数,表示三个整数中第二大的数


样例输入:

30
20
25

样例输出:

25

参考答案:br />```python# 读取输入a = int(input())b = int(input())c = int(input())# 找出第二大的数second_largest = max(min(a, b), min(a, c))if second_largest == a:second_largest = max(b, c)else:second_largest = a# 输出结果print(second_largest)```


8、摆放箱子

编程实现:

工人需要将 n 个边长为 1 的正方体箱子整齐地摆放在长度为 L,宽度为 1 的区域。要求每一层摆满 L 个箱子后,

才能往上一层摆放。

请计算 n 个箱子可以放多少层(最上层只要有箱子就算作一层),以及最上层有几个箱子。

例如:n = 8,L = 3,将 8 个箱子摆放在长度为 3,宽度为 1 的区域,可以放 3 层,最上层有 2 个箱子。

输入描述:

第一行输入一个整数 n(1≤n≤100),表示箱子数量

第二行输入一个整数 L(1≤L≤100),表示区域的长度

输出描述:

输出两个整数,分别表示 n 个箱子可以放多少层以及最上层有几个箱子,整数之间以一个空格隔开


样例输入:

8
3

样例输出:

3 2

参考答案:3 2


9、数字塔

提示信息:

数字塔:是由若干个正六边形搭建的一个 n 层的塔,其中每个正六边形中都有一个整数,正六边形和整数的

排列规律如下:

第 n 层的整数从左到右为 1、2、3......n

编程实现:

给定一个整数 n,根据提示信息中数字塔的规律,请计算 n 层数字塔中所有整数的和。

例如: n = 4,4 层的数字塔如下:

所有正六边形中的整数为 1、1、2、1、2、3、1、2、3、4;

所有整数的和为 20。

输入描述:

输入一个整数 n(1≤n≤100),表示数字塔的层数

输出描述:

输出一个整数,表示 n 层的数字塔中所有整数的和


样例输入:

4

样例输出:

20

参考答案:根据题目描述,我们需要计算数字塔中所有整数的和。数字塔是由若干个正六边形搭建的,每个正六边形中都有一个整数,整数的排列规律是从1开始递增。首先,我们需要明确数字塔的结构。数字塔的第n层有n个正六边形,每个正六边形中的整数从左到右为1、2、3......n。要计算数字塔中所有整数的和,我们可以按照以下步骤进行:1. 初始化一个变量sum,用于存储整数的和,初始值为0。2. 对于每一层数字塔,从1到n遍历每个正六边形中的整数,将其累加到sum中。3. 返回sum作为结果。


10、输出字符串

编程实现:

小蓝用仅包含小写字母的字符串表示整数,规则如下:

给定一个整数 n,输出 n 对应的字符串。

例如:n = 28,28 对应的字符串为 ab。

输入描述:

输入一个整数 n(1≤n≤108)

输出描述:

输出一个字符串,表示 n 对应的字符串


样例输入:

28

样例输出:

ab

参考答案:```pythondef get_string(n):result = ""while n > 0:n, remainder = divmod(n, 26)result = chr(ord('a') + remainder) + resultreturn resultn = int(input())print(get_string(n))```


11、密码锁

提示信息:

密码锁:由 n 个从左到右并排的圆环组成,每个圆环上都有 10 个数字(0~9),蓝色框内为密码显示区,每个圆环在密码显示区只能显示一个数字,如图所示。可以拨动圆环,来改变密码显示区显示的数字。

当密码显示区的数字与密码一致时,密码锁就会被打开。

编程实现:

有一个由 n 个圆环组成的密码锁,和一个 n 位的密码 S(S 由 1~9 中的数字(包含 1 和 9)组成)。每次操作只能选择一个或位置连续的多个圆环拨动。当 S 中的字符从左到右依次显示在密码显示区时,密码锁会被打开。

已知每个圆环在密码显示区初始数字都为 0,请计算最少需要操作多少次,才能打开密码锁。

注意:

1、如果选择了其中一个圆环,可将该圆环中任意一个数字拨动到密码显示区,表示 1 次操作;

例如:将第 3 个圆环拨动到数字 4,表示 1 次操作:

2、如果选择了位置连续的多个圆环,只能将这些圆环拨动成同一个数字,显示在密码显示区,表示 1 次操作。

例如:将连续的第 2 个到第 3 个圆环都拨动到数字 5,表示 1 次操作:

例如:n = 5,S = "12321";分别表示 5 个圆环组成的密码锁和密码 12321;将 5 位密码 1、2、3、2、1从左到右依次显示在密码显示区,以下是操作次数最少的方案:

第一次操作,将 5 个初始状态为 0 的圆环全部拨动到数字 1:

第二次操作,将第 2 个到第 4 个圆环全部拨动到数字 2:

第三次操作,将第 3 个圆环拨动到数字 3:

最少需要操作 3 次,才能打开密码锁。

输入描述:

第一行输入一个整数 n(1≤n≤100),表示组成的密码锁的圆环数及密码的位数

第二行输入一个长度为 n 的字符串 S,S 由 1~9 中的数字(包含 1 和 9)组成,表示密码

输出描述:

输出一个整数,表示最少需要操作多少次,才能打开密码锁


样例输入:

5
12321

样例输出:

3

参考答案:根据题目描述,我们需要计算最少需要操作多少次,才能打开密码锁。首先,我们需要遍历密码S中的每个字符,对于每个字符,我们需要找到密码显示区中需要拨动的圆环,并将这些圆环拨动到当前字符。对于每个字符,我们需要找到所有需要拨动的圆环,这可以通过比较密码S中的当前字符和密码显示区中对应位置的字符来实现。如果密码显示区中对应位置的字符为0,则需要拨动该位置的圆环。然后,我们需要计算需要拨动的圆环数,这可以通过遍历密码S中的每个字符,并计算需要拨动的圆环数来实现。如果当前字符和上一个字符相同,则只需要拨动当前位置的圆环;否则,需要拨动从上一个不同字符的位置到当前位置的所有圆环。最后,我们将所有需要拨动的圆环数相加,即可得到最少需要操作多少次,才能打开密码锁。


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

创作类型:
原创

本文链接:第15届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2024年1月28日真题参考答案

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