image

编辑人: 沉寂于曾经

calendar2025-06-09

message9

visits719

第13届蓝桥杯Python青少组选拔赛(STEMA)2021年8月真题参考答案

一、实操题

1、提示信息:

正方形面积=边长*边长。

编程实现:

给定一个正方形的边长,求出正方形的面积。

输入描述:

输入一个正整数作为正方形的边长

输出描述:

输出正方形的面积


样例输入:

2

样例输出:

4

参考答案:br />根据题目要求,我们需要编写一个程序,输入正方形的边长,然后计算并输出正方形的面积。在Python中,我们可以使用以下代码实现:```pythonside_length = int(input("请输入正方形的边长:"))area = side_length * side_lengthprint("正方形的面积为:", area)```运行程序后,输入正方形的边长,程序会输出正方形的面积。


2、编程实现:

给定一个三位正整数,然后将其倒序输出。

输入描述:

输入一个个位数不为“0”三位正整数     

输出描述:

然后将这个正整数倒序输出


样例输入:

123

样例输出:

321

参考答案:br />以下是一个简单的Python程序,用于实现将三位正整数倒序输出的功能:```pythondef reverse_number(n):return int(str(n)[::-1])n = int(input("请输入一个三位正整数:"))print("倒序输出为:", reverse_number(n))```


3、编程实现:

首先给定两个数字m1和m2,然后再给定一个数字n,判断n是否在m1和m2之间,如果n在m1和m2之间则输出大写字母“Y”,否则输出大写字母“N”。

输入描述:

第一行输入两个数字m1,m2(m1<m2且m1,m2可以为整数或者小数),两数字之间以一个英文逗号隔开

第二行输入一个数字n

输出描述:

如果n在m1到m2之间(不含m1和m2),输出大写字母“Y”,否则输出大写字母“N”


样例输入:

1,8
6

样例输出:

Y

参考答案:br />```pythonm1, m2, n = map(float, input().split(','))if m1 < n < m2:print("Y")else:print("N")```


4、编程实现:

有一组黑白按键,每按下其中一个按键,其相邻的按键和它本身都会变成相反的颜色(黑色变白色,白色变为黑色)。

如果按下的按键非最左边和最右边按键,则其本身和左右相邻的两个按键变相反颜色;

如果按下最左边按键,则其本身和右边相邻的一个按键变相反颜色;

如果按下最右的按键,则其本身和左边相邻的一个按键变相反颜色。

给出一张“初始图”和一张“最终图”。通过按下按键,使“初始图”变为“最终图”,求最少需要按几次可以完成。

如:初始图为黑、白、黑3个按键(状态表示:010),最终图为白、白 、黑3个按键(状态表示:110)。

首先按下2号按键,3个按键颜色变为白、黑、白(状态标识:101),然后按下3号按键,3个按键颜色变为白、白、黑(状态标识:110),故使“初始图”变为“最终图”最少需要按2次。

如下图:

输入描述:

第一行输入一个由“0”和“1”组成的字符串,字符串长度为n(1<n<26),表示游戏初始图状态,“0”表示黑色按键,“1”表示白色按键

第二行输入一个由“0”和“1”组成的字符串,字符串长度为n(1<n<26),表示游戏最终图状态,“0”表示黑色按键,“1”表示白色按键

输出描述:

输出一个整数,如果通过按键不能使初始图变为最终图,则输出“0”,否则输出最少需要按几次按键可以使初始图变为最终图


样例输入:

010
110

样例输出:

2

参考答案:```pythondef min_presses(initial, final):presses = 0i = 0while i < len(initial):if initial[i] != final[i]:if i > 0 and initial[i-1] == final[i]:if i < len(initial) - 1 and initial[i+1] == final[i]:presses += 1initial = initial[:i] + str(1 if initial[i] == '0' else '0') + initial[i+1:]else:presses += 2initial = initial[:i] + str(1 if initial[i] == '0' else '0') + str(1 if initial[i+1] == '0' else '0') + initial[i+2:]elif i < len(initial) - 1 and initial[i+1] == final[i]:presses += 1initial = initial[:i] + str(1 if initial[i] == '0' else '0') + initial[i+1:]else:presses += 2initial = initial[:i] + str(1 if initial[i] == '0' else '0') + str(1 if initial[i-1] == '0' else '0') + initial[i+1:]i += 1return presses if initial == final else 0initial = input().strip()final = input().strip()print(min_presses(initial, final))```


5、编程实现:

小蓝要使用相同大小的积木搭建楼梯,每层需要使用的积木块数量规律如下:

第一层需要使用1块积木;

第二层需要使用2块积木;

第三层需要使用3块积木;

依次类推;

第m层需要使用m块积木。

现在小蓝有n块积木,按照以上规律搭建楼梯,问一共可以搭建几层完整的楼梯。

如:n=7,第一层使用1块积木,第二层使用2块积木,第三层使用3块积木,第四层时剩余1块积木,不能完整搭建第四层,故不算完整的一层。即一共可以搭3层完整的楼梯。

如下图:

输入描述:

输入一个正整数n,表示积木块数

输出描述:

输出一个正整数,表示使用n块积木可以搭建几层完整的楼梯


样例输入:

7

样例输出:

3

参考答案:```pythonn = int(input())for i in range(1, n+1):if n >= i:n -= ielse:breakprint(i-1)```


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

创作类型:
原创

本文链接:第13届蓝桥杯Python青少组选拔赛(STEMA)2021年8月真题参考答案

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