答案
解析
第 12 届蓝桥杯 Python 青少组中 / 高级组选拔赛( STEMA ) 2020 年 8 月真
题
题目总数:5 总分数:128
编程题
第 1 题 问答题
编程实现:
分别输入两个正整数 M,N ,输出 M 到 N 之间(含 M,N )所有可被 7 整除,但不是 5 的倍数的数字,并以逗号分隔按
顺序打印在一行。
输入描述:
分别输入两个正整数M,N
输出描述:
输出M 到 N 之间(含 M,N )所有可被 7 整除,但不是 5 的倍数的数字,并以逗号分隔按顺序打印在一行
样例输入:
样例输出:
评分标准: (下列各评分项单独计分,得分累加;共 18 个计分点)
3分:能正确输出一组数据;
6分:能正确输出两组数据;
9分:能正确输出三组数据。
100
147
112,119,126,133,147
N = int (input ())
M = int (input ())
print (',' .join (map (str , filter (lambda n : n % 7 == 0 and n % 5 != 0, rang
1
2
3
答案
解析
第 2 题 问答题
编程实现:
输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数并输出。
输入描述:
输入一行字符
输出描述:
按英文字母、空格、数字和其它字符的顺序输出其对应的个数
样例输入:
样例输出:
评分标准: (下列各评分项单独计分,得分累加;共 20 个计分点)
3分:能正确输出一组数据;
7 分:能正确输出两组数据;
10 分:能正确输出三组数据。
第 3 题 问答题
编程实现:
有n 个人围成一个圈,按顺序排好号。然后从第一个人开始报数(从 1 到 3 报数),报到 3 的人退出圈子,然后继
续从1 到 3 报数,直到最后留下一个人游戏结束,问最后留下的是原来第几号。
a1 b2 c d4 !!! 5
4
5
4
3
alphas = 0
spaces = 0
nums = 0
others = 0
for c in input ():
if c .isalpha ():
alphas += 1
elif c .isspace ():
spaces += 1
elif c .isdigit ():
nums += 1
else :
others += 1
print (alphas , spaces , nums , others , sep ='\n' )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
答案
解析
输入描述:
输入一个正整数 n
输出描述:
输出最后留下的是原来的第几号
样例输入:
样例输出:
评分标准: (下列各评分项单独计分,得分累加;共 25 个计分点)
3分:能正确输出一组数据;
5 分:能正确输出两组数据;
7 分:能正确输出三组数据;
10 分:能正确输出四组数据。
第 4 题 问答题
编程实现:
计算某个电梯的用电量。
电梯可到达最低楼层为地下 3 层( -3 ),最高为地上 12 层( 12 ),中间没有 0 层;
电梯向上运行时每上升 1 层消耗 1 单位电量,向下运行时每下降 1 层消耗 0.3 单位电量;
请你通过输入的某段时间内电梯停过的楼层顺序,计算电梯消耗了多少单位电量。
输入描述:
N 个数字 (2<=N<=10) ,数字间以逗号分隔,代表电梯停过的楼层 [-3,12] ;
输出描述:
电梯消耗的单位电量数;
样例输入:
5
4
circle = list (range (1, int (input ()) + 1))
curr = 0
while len (circle ) > 1:
len_circle = len (circle )
for i in range (2):
curr = (curr + 1) % len_circle
circle .pop (curr )
print (circle [0])
1
2
3
4
5
6
7
8
9
答案
解析
样例输出:
评分标准: (下列各评分项单独计分,得分累加;共 30 个计分点)
3分:能正确输出一组数据;
7 分:能正确输出两组数据;
9 分:能正确输出三组数据;
11 分:能正确输出四组数据。
第 5 题 问答题
提示信息:
在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的数,被称为素数,又叫质数。
超级素数是指一个素数,每去掉最后面的一个数字,总能保证剩下的数依然为素数。
比如:“373” 就是一个超级素数,去掉个位的 “3” 后, “37” 依然是素数;继续去掉 “37” 个位的 “7” 后, “3” 还是素
数。
编程实现:
输入一个正整数 n (10≤n≤108) ,输出所有小于等于 n 的超级素数的个数。
输入描述:
输入一个正整数 n (10≤n≤108)
输出描述:
输出所有小于等于 n 的超级素数的个数
1, 11 , 1
13.0
width = int (input ())
height = int (input ())
F1 = [1] * width
F2 = [0] * width
cur = 1
while cur < height :
F2 [0] += F1 [0]
for i in range (1, width ):
F2 [i] += F1 [i] + F2 [i - 1]
F1 = F2
F2 = [0] * width
cur += 1
print (F1 [width - 1])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
样例输入:
样例输出:
样例输入:
样例输出:
样例输入:
样例输出:
样例输入:
样例输出:
样例输入:
样例输出:
样例输入:
30
6
50
8
100
13
500
21
1000
27
答案
解析
样例输出:
第12届蓝桥杯Python青少组中_高级组选拔赛(STEMA)2020年8月真题-附答案,第12届蓝桥杯青少组Python中高级组STEMA选拔赛真题及答案