image

编辑人: 沉寂于曾经

calendar2025-06-15

message9

visits215

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

一、实操题

1、编程实现:

输入一个字符串,输出这个字符串的最后一个字符。

输入描述:

输入一个字符串

输出描述:

输出这个字符串的最后一个字符


样例输入:

abc

样例输出:

c

参考答案:br />输入一个字符串,输出这个字符串的最后一个字符的编程实现,可以使用Python语言,代码如下:```pythondef last_char(s):if s:return s[-1]else:return None```在函数中,如果输入的字符串非空,则返回该字符串的最后一个字符,否则返回None。

解析:【喵呜刷题小喵解析】
在这个问题中,我们需要编写一个程序,该程序接受一个字符串作为输入,并输出该字符串的最后一个字符。这个问题可以通过多种编程语言来解决,这里我们使用Python语言作为示例。

在Python中,我们可以定义一个函数`last_char`,该函数接受一个字符串参数`s`。然后,我们使用Python的字符串切片功能,将字符串`s`的最后一个字符取出并返回。如果输入的字符串为空,则返回None。

需要注意的是,这个问题在实际应用中可能会遇到空字符串的情况,因此我们需要对空字符串进行特殊处理。如果不处理空字符串,那么在调用`s[-1]`时,会抛出`IndexError`异常。因此,我们需要在函数中增加一个判断,判断输入的字符串是否为空,如果是空字符串,则返回None。

2、编程实现:

输入一个字符串和一个字符,判断字符串中是否包含这个字符。

输入描述:

第一行输入一个字符串

第二行输入一个字符

输出描述:

如果字符串中包含这个字符则输出大写字母“Y”,否者输出大写字母“N”


样例输入:

abcdefg
c

样例输出:

Y

参考答案:br />```pythonstring = input()char = input()if char in string:print("Y")else:print("N")```

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

本题要求判断一个字符串中是否包含某个字符。首先,我们需要从用户输入中获取字符串和字符。可以使用Python内置的`input()`函数来接收用户输入。

接着,使用`if`语句来判断字符是否存在于字符串中。如果字符在字符串中,则输出大写字母"Y";否则,输出大写字母"N"。

在Python中,判断一个字符是否存在于字符串中,可以使用`in`关键字。如果字符在字符串中,`in`关键字返回`True`,否则返回`False`。因此,我们可以使用`if char in string:`来判断字符是否存在于字符串中。

3、提示信息:

有一堆砖,需要按照一定规律进行堆放,具体堆放规律如下:

顶层放1块砖,

第二层放3块砖,

第三层放6块砖,

第四层放10块砖,

......

依此类推,每一层砖块的数量为上一层砖块数量加上本层的层数。例如第五层为10+5=15。

输入砖块堆放的总层数,按照以上规律,求出砖块的总数。

编程实现:

输入砖块堆放的总层数,按照以上堆放规律,求出砖块的总数。

例如:输入为3,总层数为3层的砖块堆放一共有1+3+6=10块砖,则输出10。

输入描述:

输入一个正整数N(2<N<1000)作为砖块堆放的总层数

输出描述:

输出砖块的总数


样例输入:

3

样例输出:

10

参考答案:根据题目描述,砖块的堆放规律是每一层砖块的数量为上一层砖块数量加上本层的层数。这是一个等差数列的求和问题,其中首项a1=1,公差d=层数。因此,总砖块数可以通过等差数列求和公式计算,即S = n/2 * (2a1 + (n-1)d)。

解析:【喵呜刷题小喵解析】:
首先,我们需要理解题目中砖块堆放的规律。每一层砖块的数量是上一层砖块数量加上本层的层数。这是一个等差数列的求和问题,其中首项a1=1,公差d=层数。

然后,我们可以使用等差数列求和公式S = n/2 * (2a1 + (n-1)d)来计算总砖块数。在这个公式中,n是层数,a1是首项,d是公差。

根据题目描述,我们可以将n,a1和d的值代入公式中,得到总砖块数。在本题中,n=3,a1=1,d=层数。因此,总砖块数S = 3/2 * (2*1 + (3-1)*3) = 10。

所以,当输入为3时,总层数为3层的砖块堆放一共有10块砖。

4、编程实现:

输入一个正整数n,如果n为偶数,则计算1/2+1/4+1/6…+1/n的结果,如果n为奇数时,则计算1/1+1/3+1/5…+1/n的结果。输出最后计算的结果。

例如:输入为4,则计算1/2+1/4的结果,输出为0.75

输入为5,则计算1/1+1/3+1/5的结果,输出为1.53

输入描述:

输入一个正整数n

输出描述:

输出最后计算的结果(最后结果保留两位小数,不要在每次除法时保留小数)


样例输入:

7

样例输出:

1.68

参考答案:br />```pythonn = int(input())if n % 2 == 0:sum = 0for i in range(2, n+1, 2):sum += 1/iprint(f"sum:.2f")else:sum = 0for i in range(1, n+1, 2):sum += 1/iprint(f"sum:.2f")```

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

本题要求编写一个程序,根据输入的正整数n,计算并输出1/2+1/4+1/6...+1/n(当n为偶数)或1/1+1/3+1/5...+1/n(当n为奇数)的结果,结果保留两位小数。

首先,我们需要读取用户输入的正整数n。然后,根据n的奇偶性,使用不同的循环来计算结果。

当n为偶数时,我们使用循环变量i从2开始,每次增加2,直到i等于n,累加1/i到变量sum中。最后,将变量sum格式化输出,保留两位小数。

当n为奇数时,我们使用循环变量i从1开始,每次增加2,直到i等于n,累加1/i到变量sum中。最后,将变量sum格式化输出,保留两位小数。

注意,在Python中,浮点数除法运算会自动将结果转换为浮点数类型,因此不需要单独进行类型转换。同时,格式化输出时,使用f-string可以方便地保留指定的小数位数。

5、提示信息:

平均数:是指在一组数据中所有数据之和再除以这组数据的个数。

如:“1,2,3,4,5” 这组数的平均数为3.00。 (1+2+3+4+5)/ 5 = 3.00

中位数:将一组数据从大到小排序后,位置在最中间的数值。

分两种情况:当数据个数为奇数时,中位数为中间的那个数的值;

当数据个数为偶数时,中位数为中间的两个数的平均值。

如:“1,3,5,7,9 ”这组数据有5个数字,中位数为5;

“1,3,5,7 ”这组数据有4个数字,中位数为4。

众数:是一组数据中出现次数最多的那个数值。

如:“1,3,5,7,9 ,9”这组数据9出现的次数最多,故众数为9。

编程实现:

给定一组正整数,然后分行输出这组正整数的平均数,中位数,众数。

输入描述:

输入一组正整数并以一个英文逗号隔开

输出描述:

第一行输出平均数(保留两位小数)

第二行输出中位数(保留两位小数)

第三行输出众数(如果有多个数值出现的次数相同,则取数值最大的作为众数)


样例输入:

1,3,5,7,9,9

样例输出:

5.67
6.00
9

参考答案:br />```pythonnums = list(map(int, input().split(',')))average = sum(nums) / len(nums)nums.sort()if len(nums) % 2 == 1:median = nums[len(nums) // 2]else:median = (nums[len(nums) // 2 - 1] + nums[len(nums) // 2]) / 2count_dict = max_count = 0for num in nums:count_dict[num] = count_dict.get(num, 0) + 1if count_dict[num] > max_count:max_count = count_dict[num]mode = nummode_list = [num for num, count in count_dict.items() if count == max_count]if len(mode_list) > 1:mode = max(mode_list)print(":.2f".format(average))print(":.2f".format(median))print(mode)```

解析:【喵呜刷题小喵解析】
本题要求计算给定一组正整数的平均数、中位数和众数。

首先,将输入的字符串按照逗号分割,并转换为整数列表。

然后,计算平均数,即将所有数相加后除以数的个数。

接着,对列表进行排序,根据数的个数是奇数还是偶数,分别计算中位数。

最后,使用字典记录每个数出现的次数,找到出现次数最多的数作为众数。如果有多个数出现次数相同,则取数值最大的作为众数。

注意,输出时平均数和中位数需要保留两位小数。

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

创作类型:
原创

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

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