image

编辑人: 舍溪插画

calendar2025-06-15

message9

visits167

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

一、实操题

1、凯散密码是一种古老的加密算法,相传当年行军打仗时为保证自己命令不被敌军知道,它采用替换方法

将信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即循环后三位,对应关系如下:

原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

密文:D E F G H I J K L M N OP Q R S T U V W X Y Z A B C

原文字符 P,其密文字符 C 满足如下条件:

C=(P+3) mod 26

解密方法反之,满足如下条件:

P=(C-3) mod 26

输入:

abcy123z

输出:

defb123c

参考答案:题目中描述了凯散密码的加密和解密方法。凯散密码采用替换方法,将信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符。根据给定的对应关系,原文字符 P,其密文字符 C 满足条件 C=(P+3) mod 26。对于输入 "abcy123z",我们需要按照凯散密码的加密规则进行替换。1. 对于字母 'a',其密文字符为 (a+3) mod 26 = d。2. 对于字母 'b',其密文字符为 (b+3) mod 26 = e。3. 对于字母 'c',其密文字符为 (c+3) mod 26 = f。4. 对于字母 'y',其密文字符为 (y+3) mod 26 = b。5. 对于数字 '1',由于数字不是字母,所以密文保持不变,仍为 '1'。6. 对于数字 '2',由于数字不是字母,所以密文保持不变,仍为 '2'。7. 对于数字 '3',由于数字不是字母,所以密文保持不变,仍为 '3'。8. 对于字母 'z',其密文字符为 (z+3) mod 26 = c。因此,输入 "abcy123z" 的密文为 "defb123c"。

解析:【喵呜刷题小喵解析】:
本题主要考察凯散密码的加密方法。凯散密码是一种古老的加密算法,采用替换方法将信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符。根据题目中给出的对应关系,我们可以计算出每个字符的密文。由于数字不是字母,所以密文保持不变。最后,将计算出的密文字符按顺序组合起来,得到最终的密文。

2、判断 101-200 之间有多少个素数,并输出所有素数。

输入:

输出:

[101,103,187,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,19]

参考答案:101-200之间共有21个素数,它们分别是:101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199。

解析:【喵呜刷题小喵解析】:
首先,我们需要明确什么是素数。素数是指大于1的自然数,除了1和它本身以外不再有其他因数。

接下来,我们需要找出101到200之间的所有素数。

首先,我们可以从101开始,逐个检查每个数是否为素数。对于每个数,我们检查它是否可以被2到它平方根之间的任何整数整除。如果不能,那么这个数就是素数。

经过计算,我们找到了21个素数,分别是:101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199。

需要注意的是,题目中给出的输出中,素数19后面有一个多余的数字"19",应该是笔误或打印错误,正确答案中不应该包含这个多余的数字。

3、如果整个整数 X 本身是完全平方数,同时它的每一位数字也都是完全平方数,

我们就称 X 是完美平方数。 前几个完美平方数是 0、1、4、9、49、100、144……

即第 1 个完美平方数是 0,第 2 个是 1,第 3 个是 4,…… 请你计算第 20 个完美平方数是多少?

输入:

输出:

[0,1,4,9,49,100,144,400,441,900,144,4900,9489,1000,10404,1149,14400,19044,4000,40401]
40401

参考答案:40401

解析:【喵呜刷题小喵解析】:根据题目描述,完美平方数是指整个整数X本身是完全平方数,同时它的每一位数字也都是完全平方数。我们需要找出第20个完美平方数。

首先,我们可以观察给出的前几个完美平方数,发现它们都是完全平方数,并且它们的每一位数字也都是完全平方数。例如,第1个完美平方数是0,第2个是1,第3个是4,以此类推。

要找到第20个完美平方数,我们需要遍历从0开始的整数,检查每个数是否是完美平方数,并数出完美平方数的个数。当完美平方数的个数达到20时,我们就找到了第20个完美平方数。

通过计算,我们可以发现第20个完美平方数是40401。因此,答案是40401。

4、小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大写字母,小明将它转换成它在 26 个英文字母中序号,即 A→1,B→2,…Z→26。这样一个字符串就能被转化成一个数字序列∶比如ABCXYZ→123242526。现在给定一个转换后的数字序列,小明想还原出原本的字符串。当然这样的还原有可能存在多个符合条件的字符串。小明希望找出其中字典序最大的字符串。

【输入格式】

一个数字序列。

【输出格式】

一个只包含大写字母的字符串,代表答案

输入:

123242526

输出:

LCXYZ

参考答案:LCXYZ

解析:【喵呜刷题小喵解析】:根据题目描述,小明将大写字母转换成它们在26个英文字母中的序号。例如,A对应1,B对应2,以此类推,Z对应26。因此,数字序列123242526对应的字母序列为ABCDEFG,但这并不是唯一符合要求的序列。

题目要求找出字典序最大的字符串。在字典序中,Z是字母表中最大的字母,所以为了得到字典序最大的字符串,我们应该尽可能多地使用Z。观察数字序列123242526,我们可以发现,从数字26开始,后面的数字都小于26,这意味着我们可以从最后一个数字开始,尽可能多地使用Z。

因此,我们可以这样构建字典序最大的字符串:从后往前遍历数字序列,只要当前数字小于26,就用Z填充,直到遇到数字26。当遇到数字26时,我们就用对应的字母填充,即G。然后继续往前遍历,直到遇到下一个26,用对应的字母F填充,以此类推。

根据上述方法,我们可以得到字典序最大的字符串为LCXYZ。

5、绘制图形:

利用 random 库和 turt1e 库,在屏幕上绘制 4 个小雪花,雪花的中心点坐标由列表 points 给出,雪花的半径长度由 randint()函数产生。

points= [[0, 0],[50, 40],[70,80],[-40,30]]

雪花的颜色是红色,效果如下图所示

参考答案:br />```pythonimport randomimport turtlepoints = [[0, 0], [50, 40], [70, 80], [-40, 30]]for point in points:x, y = pointturtle.penup()turtle.goto(x, y)turtle.pendown()radius = random.randint(10, 20)turtle.fillcolor("red")turtle.begin_fill()turtle.circle(radius)turtle.end_fill()turtle.done()```

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

这个题目要求我们使用Python的`random`和`turtle`库来绘制4个小雪花。每个雪花的中心点坐标由列表`points`给出,雪花的半径长度由`randint()`函数产生。

首先,我们导入了`random`和`turtle`库。

然后,我们定义了`points`列表,其中包含了4个点的坐标。

接着,我们使用一个for循环遍历`points`列表中的每个点。对于每个点,我们做了以下操作:

1. 使用`turtle.penup()`和`turtle.goto(x, y)`将画笔移动到当前点的位置。
2. 使用`random.randint(10, 20)`生成一个介于10到20之间的随机数,作为当前雪花的半径。
3. 使用`turtle.fillcolor("red")`设置画笔的颜色为红色。
4. 使用`turtle.begin_fill()`和`turtle.circle(radius)`绘制一个半径为`radius`的圆,这就是当前雪花。
5. 使用`turtle.end_fill()`结束填充。

最后,我们使用`turtle.done()`结束绘图。

这样,我们就可以在屏幕上绘制出4个由不同半径的红色圆组成的雪花。

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

创作类型:
原创

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

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