当前位置:首页>python>【第39期】21天养成编程习惯:Python刷题第14天

【第39期】21天养成编程习惯:Python刷题第14天

  • 2026-10-11 08:00:25
【第39期】21天养成编程习惯:Python刷题第14天

跟老马一起“升级打怪”学编程!

  • 涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试
  • 活动内容:提供不同等级的真题供小朋友们选择练习
  • 备考建议:根据自己备考的等级选择相应题目
  • 附加价值:可作为白名单比赛的备考训练
  • 本月打卡:本月CIE_Python打卡题目

Day14:CIE一级2022.09_编程题37

按照要求绘制一个五角星:

1、海龟初始位置的坐标为(0,0);

2、设置画笔大小为5;

3、画笔颜色为红色(red);

4、五角星填充颜色为黄色(yellow);

5、五角星大小不限,但是要能清晰看出是五角星,并且完全在考试平台上显示出来。

提示:五角星每个角为36度。

参考程序:

注意:仅供参考,考生可以自行设计,结果符合题意即可。

import turtleturtle.pensize(5)turtle.pencolor('red')turtle.fillcolor('yellow')turtle.begin_fill()for i in range(5):    turtle.forward(200)    turtle.right(144)turtle.end_fill()turtle.done()

Day14:CIE二级2021.12_编程题37

将四句唐诗用逗号和句号连接,完整输出这首诗,必须使用变量的方法编写程序。

jvzi1 = "白日依山尽"jvzi2 = "黄河入海流"jvzi3 = "欲穷千里目"jvzi4 = "更上一层楼"

输出应为"白日依山尽,黄河入海流。欲穷千里目,更上一层楼。"

参考程序:

注意:仅供参考,考生可以自行设计,结果符合题意即可。

jvzi1 = "白日依山尽"jvzi2 = "黄河入海流"jvzi3 = "欲穷千里目"jvzi4 = "更上一层楼"print("{},{}。{},{}。".format(jvzi1, jvzi2, jvzi3, jvzi4))

Day14:CIE三级2023.03_编程题38

若要生成一个由若干小写字母组成的互不重复的随机数组,已知小写字母的ASCII码值为97~122整数范围,并将其进行从小到大输出,如图所示,请将相关程序补充完整。

import random  # random是随机数模块n = int(input("请输入元素个数(不超过26):"))a = []# 产生不重复的随机数组for i in range(n):    x = random.randint(97, 122)  # 产生97-122之间的随机整数while chr(x) in a:        x = random.randint(97, 122)    a.append(____①____)print(a)# 将各个元素进行排序输出for i in range(n - 1):    k = ifor j in range(____②____, n):if a[k] > a[j]:            k = ____③____if i != k:        a[i], a[k] = ____④____ print("该随机数组从小到大排列为:", a)

参考答案:

本题主要考查选择排序。程序的第一部分是产生不重复的字母组成的数组。由于x是97~122中的随机整数,故追加到a列表中的元素应在x的基础上将其转化为字符,故①空填写chr(x);在选择排序中,外循环控制排序趟数,内循环控制排序次数,不难看出,i的取值范围为0~n-2,因此j每次从i的下一个位置开始至最后,故②处填写i+1;根据选择排序的原理,在j位置上找到比k位置更小的元素,则k移至该位置,故③处填写为j;在某趟排序过程中,当全部元素比较结束,应在最小元素位置上,需要将其交换到相应的i位置上,故④位置答案应为a[k], a[i]。

① chr(x);

② i+1;

③ j;

④ a[k], a[i]。


Day14:CIE四级2023.09_第36题

从键盘上分别输入要查找和替换的字符串,对文本文件进行查找与替换,替换后保存到新的文本文件中。

思路:输入待查找字符串s,需查找子字符串key和替换字符串new,通过调用自定义函数replace实现替换。完善划线处代码。

s = input("请输入待查找的字符串:")key = input("请输入需查找的子字符串:")new = input("请输入要替换的字符串:")deffindstr(key, s, begin):for i in range(begin, len(s) - len(key) + 1):if s[i:_____①_____] == key: return ireturn -1defreplace(key, new, s):    begin = 0while begin < _____②_____:        pos = findstr(key, s, begin)if pos == -1:breakelse:            s = s[0:pos] + new + s[pos + len(key):_____③_____]             begin = pos + len(key)return srst = _____④_____ # 调用函数替换字符print(rst)

参考答案:

① i + len(key)或等价答案

② len(s) - len(key) + 1或等价答案

③ len(s)或等价答案

④ replace(key, new, s)或等价答案


青少年编程竞赛交流

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。

最新文章

随机文章