image

编辑人: 独留清风醉

calendar2025-05-15

message2

visits897

第12届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2021年3月真题答案及解析

一、实操题

1、编程实现:

给定一个正整数n,计算出n乘100的积。

输入描述:

输入一个正整数n

输出描述:

输出n乘100的积


样例输入:

2

样例输出:

200

参考答案:br />根据题目要求,我们需要编写一个程序来计算n乘100的积。以下是一个简单的Python程序实现:```pythonn = int(input("请输入一个正整数n:"))result = n * 100print("n乘100的积为:", result)```运行程序后,输入一个正整数n,程序会输出n乘100的积。

解析:【喵呜刷题小喵解析】

这个问题是一个简单的数学问题,只需要将给定的正整数n乘以100即可。在编程实现中,我们可以使用Python编程语言来实现这个计算。首先,通过`input()`函数获取用户输入的正整数n,并将其转换为整数类型。然后,将n乘以100,得到结果。最后,使用`print()`函数输出计算结果。

需要注意的是,在实际编程中,我们需要对输入进行验证,确保输入的是一个正整数。此外,还需要考虑程序的异常处理,比如用户输入的不是一个正整数的情况。这些在实际编程中都是需要考虑的问题。

2、编程实现:

给定一个正整数,判断这个正整数是否能被5整除。

输入描述:

输入一个正整数n         

输出描述:

如果n可以被5整除则输出大写字母“Y”,否者输出大写字母“N”


样例输入:

10

样例输出:

Y

参考答案:br />```pythonn = int(input())if n % 5 == 0:print("Y")else:print("N")```

解析:【喵呜刷题小喵解析】

这个问题是一个简单的编程问题,要求我们判断一个正整数是否能被5整除。我们可以使用取模运算符(%)来判断一个数是否能被另一个数整除。如果n除以5的余数为0,那么n就能被5整除,输出“Y”,否则输出“N”。

首先,我们获取用户输入的正整数n,使用`int(input())`来获取输入,`int`函数将输入的字符串转换成整数。

然后,我们使用条件语句来判断n是否能被5整除。如果n除以5的余数为0,那么n就能被5整除,输出“Y”,否则输出“N”。

在Python中,`%`运算符用于取模运算,返回两个数相除的余数。如果n除以5的余数为0,那么n就能被5整除。

因此,我们可以使用以下代码来判断一个正整数是否能被5整除:


```python
n = int(input())
if n % 5 == 0:
print("Y")
else:
print("N")
```

3、提示信息:

心理学用“智力商数”即“IQ”来表示一个人的智力水平。经过研究划分,智力水平可分为7个等级:

1、IQ≥140的是天才

2、139≥IQ≥120的智力优秀

3、119≥IQ≥110的智力中上

4、109≥IQ≥90的智力中等

5、89≥IQ≥80的智力中下

6、79≥IQ≥70的智力不足

7、IQ≤69的智力缺陷

编程实现:

已知智力水平等级划分,编写程序,当给定一个IQ值来判断智力水平属于哪个级别。

输入描述:

输入一个正整数作为IQ值

输出描述:

如果IQ值大于等于140输出大写字母“A”

如果IQ值大于等于120且小于等于139输出大写字母“B”

如果IQ值大于等于110且小于等于119输出大写字母“C”

如果IQ值大于等于90且小于等于109输出大写字母“D”

如果IQ值大于等于80且小于等于89输出大写字母“E”

如果IQ值大于等于70且小于等于79输出大写字母“F”

如果IQ值小于等于69输出大写字母“G”


样例输入:

135

样例输出:

B

参考答案:br />根据给定的IQ值,输出对应的智力水平等级:```pythondef judge_iq_level(iq):if iq >= 140:return 'A'elif 120 <= iq < 140:return 'B'elif 110 <= iq < 120:return 'C'elif 90 <= iq < 110:return 'D'elif 80 <= iq < 90:return 'E'elif 70 <= iq < 80:return 'F'else:return 'G'iq_value = int(input("请输入IQ值:"))print(judge_iq_level(iq_value))```

解析:【喵呜刷题小喵解析】
此题目要求编写程序来判断一个给定的IQ值对应的智力水平等级。根据题目给出的智力水平等级划分,我们可以编写一个函数`judge_iq_level`来判断给定的IQ值属于哪个级别。在函数中,我们首先检查IQ值是否大于等于140,如果是,则输出'A',否则继续判断。依次类推,如果IQ值满足某个级别的条件,就输出对应的字母。最后,如果IQ值不满足所有条件,输出'G'。

在程序中,我们首先定义函数`judge_iq_level`,并在函数中编写逻辑判断。然后,我们使用`input`函数获取用户输入的IQ值,并调用函数`judge_iq_level`来输出对应的智力水平等级。

在样例输入中,输入的IQ值为135,根据智力水平等级划分,它属于第二级,因此输出的结果应该是'B'。

4、编程实现:

给定一组包含n个(n>3) 正整数数据,和一个正整数M,从这n个正整数中任意拿出两个数相加,相加后的结果正好为M的值,计算出这n个正整数中有多少组这样的数据。

例如:

给定一组正整数为:1, 3, 2, 4,正整数M为 3,其中有1组符合要求,为1和2

给定一组正整数为:2, 7, 11, 6, 13,正整数M为 13,其中有2组符合要求,分别为 2 和11,7 和 6 

输入描述:

第一行输入n个正整数,正整数之间英文逗号隔开(正整数不能有重复,且n>3)

第二行输入一个正整数M

输出描述:

输出n个正整数中两个数相加的结果正好为M的组合有几组


样例输入:

2, 7, 11, 6, 13
13

样例输出:

2

参考答案:```pythonn = input().split(',')n = [int(i) for i in n]M = int(input())count = 0for i in range(len(n)):for j in range(i+1, len(n)):if n[i] + n[j] == M:count += 1print(count)```

解析:【喵呜刷题小喵解析】:

这是一个关于找出正整数数组中和为给定正整数M的数的对数的问题。对于这个问题,我们可以使用暴力法来解决,即遍历数组中的每对数字,检查它们的和是否等于M。如果等于M,我们就增加计数器。

具体步骤如下:

1. 从输入中读取n个正整数,将它们存储在一个列表中。
2. 从输入中读取正整数M。
3. 初始化计数器count为0。
4. 遍历列表中的每对数字,如果它们的和等于M,就增加计数器count。
5. 输出计数器count的值。

以上代码实现了这个算法,首先使用`split()`函数将输入字符串分割成列表,然后使用列表推导式将字符串列表转换为整数列表。然后,使用两个嵌套的for循环遍历列表中的每对数字,如果它们的和等于M,就增加计数器。最后,输出计数器的值。

5、提示信息:

某种病毒具有很强的繁殖能力,从病毒粒子出生后的第5分钟开始,每分钟可以复制出一个新的病毒粒子。新出生的病毒粒子从第5分钟开始,也可以每分钟复制一个新的病毒粒子。

举例来说,第1分钟时有一个病毒粒子,此病毒粒子从第5分钟开始复制新的病毒粒子,因此第5分钟时的病毒数量为2个;第6分钟时又复制出新的病毒粒子,因此第6分钟的病毒数量为3个;以此类推,第7分钟时病毒粒子数为4;第8分钟时病毒粒子数为5;第9分钟时,第5分钟复制出的病毒粒子开始复制新的病毒粒子,因此第9分钟时的病毒总数为7;第10分钟时,第6分钟复制出的病毒粒子开始复制新的病毒粒子,因此第10分钟时的病毒粒子总数为10。

编程实现:

计算病毒粒子总数,已知第一分钟时出生了一个病毒粒子,假设所有病毒粒子不会自动死亡,请计算第N分钟时的病毒粒子总数。

例如:前10分钟病毒粒子的总数分别为1,1,1,1,2,3,4,5,7,10。

输入描述:

输入正整数N(0<N≤60),表示时间

输出描述: 

输出第N分钟时,病毒粒子的总数


样例输入:

6

样例输出:

3

参考答案:```pythondef virus_count(n):if n < 5:return 1else:return 2 ** (n - 4) + virus_count(n - 1)N = int(input())print(virus_count(N))```

解析:【喵呜刷题小喵解析】:

这个题目描述了一个病毒繁殖的过程,从第5分钟开始,每个病毒粒子每分钟都会复制出一个新的病毒粒子。

观察题目给出的样例,我们可以发现病毒粒子的数量呈现出指数增长的趋势。具体来说,前4分钟病毒粒子数量都是1,从第5分钟开始,病毒粒子数量开始翻倍。

因此,我们可以使用递归函数来计算第N分钟时的病毒粒子总数。当N小于5时,病毒粒子总数为1;当N大于等于5时,病毒粒子总数为前N-1分钟的病毒粒子总数加上第N-4分钟病毒粒子数量的平方(因为从第5分钟开始,每个病毒粒子都会复制出一个新的病毒粒子)。

在Python中,我们可以定义一个名为`virus_count`的函数,输入参数为N,输出第N分钟时的病毒粒子总数。如果N小于5,直接返回1;否则,返回2^(N-4) + virus_count(N-1)。

最后,我们读取输入的正整数N,并调用`virus_count`函数来计算第N分钟时的病毒粒子总数,并将结果输出到屏幕上。

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

创作类型:
原创

本文链接:第12届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2021年3月真题答案及解析

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