image

编辑人: 青衫烟雨

calendar2025-06-07

message4

visits937

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

一、单选题

1、下列选项中,哪一个运算符可以直接求余数?(    )。

A、

%

B、

//

C、

*

D、

**


2、执行print("stema"+"!"*3)语句,输出的结果是(    )。

A、

stema+!*3

B、

stema!3

C、

stema!!!

D、

"stema"+"!"*3


3、下列哪一个不是Python3中的保留字?(     )。

A、

as

B、

true

C、

await

D、

assert


4、已知列表x = [1,2,3],执行语句x.insert(2,4),下列对执行语句描述正确的是(    )。

A 将列表x中的元素2修改为4

B 查找列表x第2位到第4位的元素

C 在列表x中元素2前插入元素4

D 在列表x中元素3前插入元素4


5、以下关于函数描述错误的是(    )。

A、

在使用名称传递参数时,带名称的参数可以改变在参数序列中的位置

B、

自定义函数名称不能与Python内置函数名称相同

C、

不同的函数中,变量名称可以相同

D、

函数中的return语句能以元组的形式返回多个值


二、实操题

6、编程实现:

输入一个整数N(-100≤N≤100),输出N+10的结果。

例如:N = 5,5 + 10 的结果为15(15=5+10)。

输入描述:

输入一个整数N(-100≤N≤100)

输出描述:

输出一个整数,表示N+10的结果


样例输入:

5

样例输出:

15

参考答案:输入一个整数N(-100≤N≤100),将N加10得到结果,并输出。


7、编程实现:

输入一个包含字符‘a’的字符串(字符串长度小于1000),输出字符串中字符‘a’的个数。

输入描述:

输入一个包含字符‘a’的字符串

输出描述:

输出一个整数,表示字符串中字符‘a’的个数


样例输入:

ab!a

样例输出:

2

参考答案:br />```pythondef count_a(s):count = 0for char in s:if char == 'a':count += 1return count# 测试样例s = input()print(count_a(s))```


8、编程实现:

现将N(3≤N≤600)根胡萝卜全部分配给黑、白、灰三只兔子,分配规则如下:

1)黑、白、灰三只兔子必须都能分到胡萝卜;

2)黑兔子的胡萝卜数大于或等于白兔子的胡萝卜数;

3)白兔子的胡萝卜数大于或等于灰兔子的胡萝卜数;

请按照规则计算,将N根胡萝卜全部分配给三只兔子,共有多少种不同的分配方法。

例如:N = 8,按照分配规则有5种不同的分配方法,具体分配方法如下图:

输入描述:

输入一个正整数N(3≤N≤600),表示胡萝卜的数量

输出描述:

输出一个整数,表示将N根胡萝卜全部分配给三只兔子,共有多少种不同的分配方法


样例输入:

8

样例输出:

5

参考答案:```pythondef count_ways(N):count = 0for i in range(N-2, N//2, -1):for j in range(i, N//3, -1):if i >= j and j >= (N - i - j) and i + j + (N - i - j) == N:count += 1return countN = int(input())print(count_ways(N))```


9、编程实现:

某服务大厅同时开放3个窗口为客户办理业务,窗口编号分别为1、2、3。

现有N(2≤N≤50)位客户需要办理业务,客户编号为1~N,作为办理业务的先后顺序。

起初三个窗口为空闲状态,空闲的窗口会按照客户编号顺序呼叫下一位客户。如果多个窗口同时为空闲状态,按照窗口编号顺序呼叫(1优先于2,2优先于3)。

现给出每位客户办理业务的时间(单位:分钟),请计算出N位客户全部办理完业务后,哪一个窗口合计办理业务的时间最短,并输出最短时间。

例如:N=7,7位客户编号分别为1、2、3、4、5、6、7,客户办理业务时间分别为3、5、2、4、7、1、6,(如下图):

初始客户编号为1、2、3的客户分别在1、2、3窗口同时办理业务;

窗口3用时2分钟办理完3号客户的业务,变为空闲状态,并按顺序呼叫4号客户,用时4分钟;

窗口1用时3分钟办理完1号客户的业务,变为空闲状态,并按顺序呼叫5号客户,用时7分钟;

窗口2用时5分钟办理完2号客户的业务,变为空闲状态,并按顺序呼叫6号客户,用时1分钟;

6分钟后,窗口2和3同时变为空闲状态,窗口2呼叫7号客户,用时6分钟。

全部客户办理完业务后,三个窗口总用时分别为10分钟、12分钟、6分钟,用时最短的是窗口3,最短时间为6分钟。

输入描述:

第一行输入一个正整数N(2≤N≤50),表示办理业务的客户数

第二行输入N个正整数(1≤正整数≤50),依次表示每位客户办理业务的时间,正整数之间以一个空格隔开

输出描述:

输出一个整数,表示客户全部办理完业务,用时最短的窗口所用时间


样例输入:

7
3 5 2 4 7 1 6

样例输出:

6

参考答案:```pythonn = int(input())times = list(map(int, input().split()))windows = [0] * 3min_time = float('inf')min_index = 0for i in range(n):for j in range(3):if windows[j] == 0:windows[j] = times[i]breakfor j in range(3):if windows[j] > 0:windows[j] -= 1if windows[j] == 0:min_time = min(min_time, times[i])if j == 0 or (j == 1 and min_time == times[i-1]) or (j == 2 and min_time == times[i-2]):min_index = jbreakelse:continueif min_time == times[i]:print(min_time)exit()print(min_time)```


10、编程实现:

现有22名小朋友,依次编号1到22,22名小朋友分别按照下图的位置站好。

每名小朋友只能按照图中箭头指向的方向移动。给出两名小朋友的编号N和M(1≤N<M≤22),请你找出从编号N到编号M共有多少条不同的路线。

例如:N=3,M=7,从编号3的位置到编号7的位置共有5条路线,分别为:(3->5->7),(3->5->6->7),(3->4->5->7),(3->4->5->6->7),(3->4>6->7)。

输入描述:

输入两个正整数N和M(1≤N<M≤22),分别表示两名小朋友的编号,之间以一个空格隔开

输出描述:

输出一个整数,表示从编号N到编号M共有多少条不同的路线


样例输入:

3 7

样例输出:

5

参考答案:```pythondef count_paths(n, m):dp = [[0] * (m + 1) for _ in range(n + 1)]for i in range(1, n + 1):dp[i][i] = 1for i in range(1, n + 1):for j in range(i + 1, m + 1):dp[i][j] = dp[i][j - 1] + dp[i - 1][j]return dp[n][m]n, m = map(int, input().split())print(count_paths(n, m))```


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

创作类型:
原创

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

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