image

编辑人: 桃花下浅酌

calendar2025-06-15

message2

visits331

全国青少年电子信息智能创新大赛Python编程挑战赛_初中组_决赛_模拟三卷参考答案

一、实操题

1、现有 n 个人依次围成一圈玩游戏,从第 1 个人开始报数,数到第 m 个人出局,然后从出局的下一个人开始报数,数到第 m 个人又出局,...,如此反复到只剩下最后一个是胜利者。设 n 个人的编号分别为 1,2,...,n,打印出局的顺序。 

输入:

10 4

输出:

出局的人是: 4
出局的人是: 8
出局的人是: 2
出局的人是: 7
出局的人是: 3
出局的人是: 10
出局的人是: 9
出局的人是: 1
出局的人是: 6
最后胜利者是: 5

参考答案:```pythondef circle_game(n, m):remaining = list(range(1, n+1))while len(remaining) > 1:for i in range(m-1):next_person = (remaining[i] + m - 1) % len(remaining)if next_person not in remaining:remaining.remove(next_person - len(remaining) + 1)else:remaining.remove(next_person)print(f"出局的人是: remaining[0]-1")print(f"最后胜利者是: remaining[0]-1")n, m = map(int, input().split())circle_game(n, m)```


2、a 和 b 是两个列表变量,列表 a 为[3,6,9]已给定,键盘输入列表 b,将 a 列表的三个元素依次插入到 b 列表中对应的三个元素的后面,并显示输出在屏幕上。

输入:

[1,2,3]

输出:

[1,3,2,6,3,9]

参考答案:br />对于题目中给定的列表a为[3,6,9],我们需要将这三个元素依次插入到列表b中对应元素的后面。根据题目输入,列表b为[1,2,3]。因此,我们可以按照以下步骤进行操作:1. 取出列表a的第一个元素3,插入到列表b的第一个元素1的后面,得到新的列表[1,3,2,3]。2. 取出列表a的第二个元素6,插入到列表b的第二个元素2的后面,得到新的列表[1,3,2,6,3]。3. 取出列表a的第三个元素9,插入到列表b的第三个元素3的后面,得到最终的列表[1,3,2,6,3,9]。


3、让用户输入一串数字和字母混合的数据,然后统计其中的数字和字母的个数,显示在屏幕上。

输入:

Fda243fdw3

输出:

数字个数:4,字母个数:6

参考答案:br />可以使用Python编写一个简单的程序来统计数字和字母的个数。具体实现如下:```pythoninput_str = input("请输入一串数字和字母混合的数据:")num_count = 0char_count = 0for char in input_str:if char.isdigit():num_count += 1elif char.isalpha():char_count += 1print("数字个数:", num_count, "字母个数:", char_count)```


4、计一个算法,将一个正整数分解质因数。

程序分析:对 n 进行分解质因数,应先找到一个最小的质数 k,然后按下述步骤完成:

(1)如果这个质数恰等于 n,则说明分解质因数的过程已经结束,输出即可。

(2)如果 n>k,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商,作为新的正整数 n,重复执行第一步。

(3)如果 n 不能被 k 整除,则用 k+1 作为 k 的值,重复执行第一步。

输入:

105

输出:

105= 3*5*7

参考答案:br />算法如下:1. 从2开始,判断是否能整除输入的整数n。2. 如果能整除,则打印出该数,并用n除以该数的商作为新的n,重复步骤1。3. 如果不能整除,则将该数加1,重复步骤1。


5、绘制图形:

请使用 turtle 库绘制太阳花,太阳花边长为 200,内角为 30,画笔颜色为红色,填充颜色为黄色,图形效果如下:

参考答案:由于我无法直接运行代码,我将提供一个使用Python的turtle库绘制太阳花的示例代码。```pythonimport turtledef draw_sunflower(side_length, inner_angle):window = turtle.Screen()window.bgcolor("white")sunflower = turtle.Turtle()sunflower.shape("turtle")sunflower.speed(1)sunflower.color("red", "yellow")for _ in range(36): # 绘制36个花瓣for _ in range(2): # 每个花瓣由两个等腰三角形组成sunflower.forward(side_length)sunflower.right(inner_angle)sunflower.forward(side_length)sunflower.right(170) # 转到下一个花瓣sunflower.hideturtle()draw_sunflower(200, 30)turtle.done()```


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

创作类型:
原创

本文链接:全国青少年电子信息智能创新大赛Python编程挑战赛_初中组_决赛_模拟三卷参考答案

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