image

编辑人: 青衫烟雨

calendar2025-06-10

message8

visits283

2022年NOC大赛_Python编程_创客智慧编程赛项_复赛_竞赛真题参考答案

一、实操题

1、某游戏公司开启了节日促销活动,购买皮肤彩蛋,每个彩蛋都能打开一个游戏角色皮肤。

购买的彩蛋满足一定数量,还会赠送额外的彩蛋,赠送的规则如下:

现在每一个彩蛋的售价为 5 元,请你设计一个程序。

当输入任意金额时,计算出获得多少个皮肤,并且打印出来。

测试用例:

输入金额:20 ,打印结果:4。 (可以购买 4 个彩蛋,没有赠送,可以获得 4 个皮肤)

输入金额:60 ,打印结果:14。(可以购买 12 个彩蛋,获得 2 个彩蛋的赠送,一共可以获得 14 个皮肤)

输入金额:100,打印结果:25。(可以购买 20 个彩蛋,获得 5 个彩蛋的赠送,一共可以获得 25 个皮肤)

输入金额:172,打印结果:46。(可以购买 34 个彩蛋,获得 3*4=12 个彩蛋的赠送,一共可以获得 46 个皮肤)

参考答案:br />根据题目要求,我们可以设计一个简单的程序来实现输入金额后计算获得皮肤数量的功能。程序可以首先根据购买彩蛋的数量和赠送的彩蛋数量计算出总共可以获得的彩蛋数量,然后再除以每个彩蛋可以获得一个皮肤的规则,计算出最终可以获得的皮肤数量。具体的实现代码如下:```pythondef get_skins(money):egg_count = money // 5 # 购买的彩蛋数量free_egg_count = 0while egg_count >= 30:free_egg_count += 5egg_count -= 30if egg_count >= 10:free_egg_count += 2total_egg_count = egg_count + free_egg_countskin_count = total_egg_countreturn skin_count# 测试用例print(get_skins(20)) # 输出 4print(get_skins(60)) # 输出 14print(get_skins(100)) # 输出 25print(get_skins(172)) # 输出 46```


2、漫威漫画里的美国队长,拥有一个帅气的盾牌。美国队长之盾是由红色代表勇气,白色代表真理以及蓝色代表正义组成的。

请你用 turtle 完成一个美国队长之盾。

提示:可以从最外面依此向内画出四个圆,最后画出一个白色的五角星

参考答案:br />这是一个使用Python的turtle模块绘制美国队长之盾的示例代码:```pythonimport turtledef draw_shield():window = turtle.Screen()window.bgcolor("black")shield = turtle.Turtle()shield.speed(0)shield.penup()# 画四个圆shield.goto(-100, -50)draw_circle(shield, 100, 255, 0, 0) # 红色shield.goto(-50, 50)draw_circle(shield, 75, 255, 255, 255) # 白色shield.goto(0, 100)draw_circle(shield, 50, 0, 0, 255) # 蓝色shield.goto(50, 50)draw_circle(shield, 25, 127, 127, 80) # 深蓝色# 画五角星shield.pencolor("white")shield.goto(-30, 30)shield.right(75)for i in range(5):shield.forward(50)shield.right(144)turtle.done()def draw_circle(turtle, radius, red, green, blue):turtle.pendown()turtle.pencolor(red, green, blue)turtle.circle(radius)draw_shield()```


3、随着新冠肺炎的良好控制,学校也陆陆续续开始了复学。为了师生们的安全,统计了一组学生的信息如下:

你需要编写程序,使用 python 中合适的方式存储 4 个学生的信息,并且完成以下要求:

(存储方式包括但不限于:列表,字典,类与对象等……)

1.补全函数 age_avg(),调用函数打印出学生的平均年龄,求出的平均年龄为整数。

2.补全函数 find_stu(),调用函数传入参数城市名字,打印出停留过该城市的学生的名字,年龄和体温。如果没有查找到信息,打印无。

3.补全函数 sort_stu(),调用函数对体温进行从高到低的排序,并且打印出学生名字以及对应的体温。请删除 pass,编写代码,补全三个函数。注意不要修改预设函数的名字。 

参考答案:br />```python# 存储学生信息的字典students = "张三": {"年龄": 18, "体温": 36.5, "停留城市": ["北京", "上海"]},"李四": {"年龄": 20, "体温": 36.8, "停留城市": ["北京"]},"王五": {"年龄": 19, "体温": 37.2, "停留城市": ["上海"]},"赵六": {"年龄": 18, "体温": 36.3, "停留城市": ["深圳"]}def age_avg():total_age = 0for name, info in students.items():total_age += info["年龄"]avg_age = total_age // len(students)print(f"学生的平均年龄为:avg_age岁")def find_stu(city):for name, info in students.items():if city in info["停留城市"]:print(f"name的年龄是info['年龄']岁,体温是info['体温']度")else:continueif not students:print("无")def sort_stu():sorted_students = sorted(students.items(), key=lambda x: x[1]['体温'], reverse=True)for name, info in sorted_students:print(f"name的体温是info['体温']度")```


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

创作类型:
原创

本文链接:2022年NOC大赛_Python编程_创客智慧编程赛项_复赛_竞赛真题参考答案

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