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

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

  • 2026-10-11 07:24:16
【第41期】21天养成编程习惯:Python刷题第10天

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

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

Day10:CIE一级2022.03_编程题36

计算题:

买本子:小明同学带了一些钱去帮同学们买本子。请根据所带的元数、单价和数量,算一算钱够不够。

要求:

(1) 程序运行后,输入三次数字(不能一次输完),这三个数字为整数,表示所带的元数(钱数)、本子的单价和数量;

(2) 输出一行,钱足够买就输出"True",钱不够买就输出"False"(不要输出引号)。

输入样例:

100911

输出样例:

True

参考程序:

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

money = int(input("所带钱数(元,整数):"))price = int(input("本子的单价(元,整数):"))count = int(input("本子的数量(个,整数):"))print(money >= price * count)

Day10:CIE二级2021.06_编程题37

编写一段程序,实现输入的数字自动改为对应的星期几,如下图所示,当输入1时,输出:1 —— 星期一;当输入2时,输出:2 —— 星期二……以此类推,当输入7时,输出:7 —— 星期日。

注意,程序运行后,用户是随机输入数字1-7。

参考程序:

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

dic = {1: "星期一", 2: "星期二", 3: "星期三",4: "星期四", 5: "星期五", 6: "星期六", 7: "星期日"}whileTrue:    i = int(input("输入数字:"))    print(i, "--", dic[i])

Day10: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]。


Day10:CIE四级2022.12_第36题

从键盘接收一组不重复整数,并将这组整数按从小到大的顺序排列。以下程序采取快速排序法对这组整数进行排序。

快速排序法的原理是:

(1)取这组数据中间那个数为锚定值mid;

(2)从这组数据开头往右找,遇到比mid大的数则停下,位置记为i;

(3)从这组数据末尾往左找,遇到比mid小的数则停下,位置记为j;

(4)如果此时i仍在j左边,即i <= j,则交换这两个数;

(5)重复(2)~(4)直到i、j重合;

(6)对j左边的数进行快速排序;

(7)对i右边的数进行快速排序。

输入示例:

请输入需要排序的一组整数,数与数之间用空格隔开:6 10 11 8 4 1 9 7

输出示例:

排序结果:1 4 6 7 8 9 10 11

程序模板:

defQuickSort(left, right):if _____①_____:return    mid = Numbers[left + (right - left) // 2]    i = left    j = rightwhile i < j:while Numbers[i] < mid:            i += 1while Numbers[j] > mid:            j -= 1if i <= j:            _____②_____    QuickSort(left, j - 1)    QuickSort(i + 1, right)Numbers = list(map(int, input("请输入需要排序的一组整数,数与数之间用空格隔开:")._____③_____))QuickSort(0, _____④_____)print("排序结果:", end="")for i in Numbers:    print(i, end=" ")

参考答案:

① left >= right

② Numbers[i], Numbers[j] = Numbers[j], Numbers[i]

③ split()

④ len(Numbers) - 1


青少年编程竞赛交流

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

最新文章

随机文章