答案
解析
第 13 届蓝桥杯 Python 青少组中 / 高级组选拔赛( STEMA ) 2022 年 1 月 22
日真题
题目总数:5 总分数:128
编程题
第 1 题 问答题
编程实现:
给定一个正整数 N ,输出 N 除以 3 的商。
输入描述:
输入一个正整数N
输出描述:
输出N 除以 3 的商
样例输入:
样例输出:
评分标准:
6分:能正确输出一组数据;
6分:能正确输出两组数据;
6分:能正确输出三组数据。
5
1
#参 考答案 1
n = int (input ())
print (n// 3)
1
2
3
#参 考答案 2
print (int (input ())// 3)
1
2
答案
解析
第 2 题 问答题
编程实现:
STEM86 商城按顺序摆放着 “A” 、 “B” 、 “C” 、 “D” 四种商品,其对应的编号分别为 1 、 2 、 3 、 4 。
给出1~4 中任意一个编号,输出编号对应的商品。
输入描述:
输入1~4 中任意一个编号
输出描述:
输出编号所对应的商品
样例输入:
样例输出:
评分标准:
6分:能正确输出一组数据;
6分:能正确输出两组数据;
8分:能正确输出三组数据。
第 3 题 问答题
提示信息:
一个正整数的平方的尾数一位或者几位数等于这个正整数,称为自守数
如:正整数 5 的平方为 25 , 25 的尾数一位是 5 ;
正整数25 的平方为 625 , 625 的尾数两位是 25 。
编程实现:
给定一个正整数,判断这个正整数是否为自守数,如果是输出大写字母 “Y” ,否者输出大写字母 “N” 。
注:1 为自守数
输入描述:
输入一个正整数
2
B
#参 考答案 1
num = int (input ())
print (chr (num +64 ))
1
2
3
#参 考答案 2
l = ['A' ,'B' ,'C' ,'D' ]
i = int (input ()) - 1
print (l[i])
1
2
3
4
答案
解析
输出描述:
判断这个正整数是否为自守数,如果是输出大写字母 “Y” ,否者输出大写字母 “N”
样例输入:
样例输出:
评分标准:
6分:能正确输出一组数据;
6分:能正确输出两组数据;
6分:能正确输出三组数据;
7分:能正确输出四组数据。
5
Y
#参 考答案 1
number = int (input ())
square = number ** 2
square = str (square )
number = str (number )
num_digit = len (number )
squ_digit = len (square )
tmp = ""
for i in range (squ_digit -num_digit ,squ_digit ):
tmp += square [i]
if tmp == number :
print ("Y" )
else :
print ("N" )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 参 考答案 2
i = int (input ())
iS = i ** 2
t = ''
for j in range (len (str (iS )) - 1, -1, -1):
t = str (iS )[j:]
if t == str (i):
print ('Y' )
import sys
sys .exit ()
print ('N' )
1
2
3
4
5
6
7
8
9
10
11
12
答案
第 4 题 问答题
编程实现:
给出一组正整数数据和一个正整数(目标值),从这组正整数中找出两个数,使这两个数相加后的和,小于等
于目标值并且离目标值最接近,然后将两个数的和输出。
如:正整数数据为【 9,4,3,5 】,目标值为 10 ,其中正整数数据中 4 和 3 、 4 和 5 、 3 和 5 的和都小于目标值 10 ,但
离目标值最接近的两个数是4 和 5 ,其和为 9 。
输入描述:
第一行输入一组长度大于3 个正整数的数据(正整数 <10000 ),正整数之间以一个英文逗号隔开
第二行输入一个正整数 n ( 1<n<19997 ),表示目标值
输出描述:
输出一个整数。如果正整数数据中存在小于等于目标值并且离目标值最接近的两个数,则输出这两个数的和;
如果正整数数据中不存在这样的两个数,即正整数数据中任意两个数的和都超过了目标值,则输出 -1
样例输入:
样例输出:
9,4,3,5
10
9
#参 考答案 1
group = input ()
group = group .split ("," )
intgroup = []
for i in group :
intgroup .append (int (i))
togal = int (input ())
cnt = -1
for j in range (0,len (intgroup )):
for k in range (j+1,len (intgroup )):
if intgroup [j] + intgroup [k] <= togal and intgroup [j] + intgroup
cnt = intgroup [j] + intgroup [k]
print (cnt )
1
2
3
4
5
6
7
8
9
10
11
12
13
# 参 考答案 2
inputList = list (map (int , input ().split (',' )))
target = int (input ())
resaltList = []
for i in range (len (inputList )):
for j in range (i + 1,len (inputList )):
if inputList [i] + inputList [j] <= target :
resaltList .append (inputList [i] + inputList [j])
1
2
3
4
5
6
7
8
解析 评分标准:
7 分:能正确输出一组数据;
7分:能正确输出两组数据;
8分:能正确输出三组数据;
8分:能正确输出四组数据。
第 5 题 问答题
编程实现:
小蓝桌子上
第13届蓝桥杯Python青少组中_高级组选拔赛(STEMA)2022年1月22日真题-附答案,2022年1月蓝桥杯青少组STEMA选拔赛Python中高级组真题答案