答案
解析
第 11 届蓝桥杯 Python 青少组中 / 高级组选拔赛( STEMA ) 2020 年 5 月 30
日真题
题目总数:5 总分数:128
编程题
第 1 题 问答题
编程实现:
用户输入一个正整数 (N) ,如果 N 大于等于 90 输出 A ,如果 N 大于等于 80 且小于 90 输出 B ,如果 N 大于等于 70 且小
于80 输出 C ,如果 N 小于 70 输出 D 。
样例输入:
样例输出:
评分标准:
3分:能正确判断一组数据;
6分:能正确判断两组数据;
9分:能正确判断三组及三组以上数据。
70
C
n = int (input ())
if n >= 90 :
print ("A" )
elif 80 <= n and n <90 :
print ("B" )
elif 70 <= n and n <80 :
print ("C" )
elif n <70 :
print ("D" )
1
2
3
4
5
6
7
8
9
答案
解析
第 2 题 问答题
提示信息:
Python 语法提示:五个以逗号分隔的正整数,可以采用如下方法进行转换、分离。
str = input()
nums = eval(str)
编程实现:
同时输入 5 个正整数以逗号隔开,依次输出五个正整数的最大值,最小值及平均值。
输入:
输出:
评分标准:
5分:能正确判断一组数据;
9分:能正确判断两组数据;
11 分:能正确判断三组及三组以上数据。
第 3 题 问答题
编程实现:
一个小球从 n 米高度自由落下,每次落地后反跳回原高度的一半,再落下。求第 10 次反弹多高,及初始落下到
第10 次反弹到最高点时(不含第十次落下距离)一共经过了多少米?
输入:
输出:
1, 3 , 5 , 7 , 10
10
1
5.2
ls = eval (input ())
print (max (ls ))
print (min (ls ))
print ((ls [0]+ls [1]+ls [2]+ls [3]+ls [4])/len (ls ))
1
2
3
4
1024
1.0
3069.0
答案
解析
答案
评分标准:
5 分:能正确判断一组数据;
9分:能正确判断两组数据;
11 分:能正确判断三组及三组以上数据。
第 4 题 问答题
提示信息:一任意自然数 n ,若将 n 的各个位数倒序排列,所得到的数与 n 相等,例如: 1234321 倒序排列后仍
为1234321 ,则称之为一个回文数。
编程实现:
用户输入一个正整数 (N) ,输出 1 到 N( 包含 N) 之间所有的回文数及一共有多少个 ( 注意:个数前边加 “*”) 。
样例输入:
样例输出:
n = int (input ())
a = n
for i in range (10 ):
n /= 2
a += n *2
a -= n
print (n)
print (a)
1
2
3
4
5
6
7
8
100
1
2
3
......
99
*18
n = int (input ())
a = 0
for i in range (1,n):
if str (i) == str (i)[::-1]:
print (i)
a += 1
print ("*%d" %a)
1
2
3
4
5
6
7
解析
答案
评判标准:
5 分:能正确输出一组回文数及个数;
10 分:能正确输出两组回文数及个数;
15分:能正确输出三组及三组以上回文数及个数。
第 5 题 问答题
提示信息:
闰年分为普通闰年和世纪闰年。
普通闰年 : 公历年份是 4 的倍数的,且不是 100 的倍数,为普通闰年。(如 2004 年就是闰年)。
世纪闰年: 公历年份是整百数的,必须是 400 的倍数才是世纪闰年(如 1900 年不是世纪闰年, 2000 年是世纪闰
年)。
总结:四年一闰,百年不闰,四百年再闰。
闰年的一年为366 天,闰年的二月份为 29 天。平年一年为 365 天,平年的二月为 28 天。
每年的1 、 3 、 5 、 7 、 8 、 10 、 12 月份为 31 天, 4 、 6 、 9 、 11 月份为 30 天。
编程实现:
用户输入未来的某一天,输入格式:“2020 .6 .1” ,计算和 2020 年 5 月 30 日相差多少天?星期几?(例如:今天
和明天是相差一天)。
输入:
输出:
2020 .6.1
2
*1
ls1 = input ().split ("." )
ls2 = [31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ]
a = 0
def c():
global a
global i
if i % 4 == 0:
if i % 400 == 0:
a += 1
elif i % 100 != 0:
a += 1
else :
pass
else :
pass
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
解析 评判标准:
5 分:能正确输出一组相差的天数及星期几;
10 分:能正确输出两组相差的天数及星期几;
15分:能正确输出三组及以上相差的天数及星期几。
def d():
global a
global i
for j in range (1, int (ls1 [1])+1):
if j == int (ls1 [1]):
a += int (ls1 [2])
elif j == 2:
a += ls2 [1]
c ()
else :
a += ls2 [j-1]
for i in range (20 , int (ls1 [0])-1999 ):
if i == 20 and int (ls1 [0]) == 2020 :
for j in range (5, int (ls1 [1])+1):
第11届蓝桥杯Python青少组中_高级组选拔赛(STEMA)2020年5月30日真题-附答案,2020年5月30日第11届蓝桥杯青少组Python中高级组STEMA选拔赛真题及答案