image

编辑人: 青衫烟雨

calendar2025-08-02

message7

visits178

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

一、实操题

1、编程实现:

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

输入描述:

输入一个字符串

输出描述:

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


样例输入:

abc

样例输出:

c

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


2、编程实现:

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

输入描述:

第一行输入一个字符串

第二行输入一个字符

输出描述:

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


样例输入:

abcdefg
c

样例输出:

Y

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


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)。


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")```


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