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

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

  • 2026-10-11 07:57:32
【第39期】21天养成编程习惯:Python刷题第10天

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

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

Day10:CIE一级2022.09_编程题36

每个人都知道自己的鞋码,但是不知道自己的脚长,请写一个程序,帮助大家利用鞋码算出脚长。

要求:

1、允许用户输入自己的鞋码,并有提示语 '请输入你的鞋码:',不需要包括单引号;

2、计算鞋码,脚长 = (鞋码 + 10) / 2;

3、输出脚长,并有提示语 '你的脚长是(单位:厘米):',不需要包括单引号。

示例:

输入:38输出:你的脚长是(单位:厘米):24.0

参考程序:

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

l1 = int(input('请输入你的鞋码:'))l2 = (l1+10)/2print('你的脚长是(单位:厘米):{}'.format(l2))

Day10:CIE二级2022.03_编程题36

实现统计字符串中的单词和单词出现的次数

要求如下:

(1)统计的语句为:to be or not to be that is a question

(2)要求统计该句中出现的所有单词和其出现次数。

(3)使用字典进行输出,格式如下(注意:排列顺序可以不一致,但是统计的次数要正确):

{'to': 2, 'be': 2, 'or': 1, 'not': 1, 'is': 1, 'a': 1, 'question': 1, 'that': 1}

参考程序:

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

s = "to be or not to be that is a question"# 定义变量存储字符串lst = s.split(sep=" ")  # 使用分割函数将字符串转为列表dic = {}  # 定义一个空字典for i in lst:  # 遍历列表if i notin dic.keys():  # 判断列表元素是否在字典中        dic[i] = 1else:        dic[i] += 1print(dic)  # 打印字典

Day10:CIE三级2023.03_编程题36

百钱买百鸡是我国古代数学家张丘建在《算经》一书中提出的数学问题,问题的原文是:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?这个问题用现代文描述起来就是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱。如果用100文钱买100只鸡,那么公鸡、母鸡和小鸡各应该买多少只呢?请完成下面程序中空白处的语句,实现对问题的求解,找出所有符合题目要求的买鸡方案,并输出。

# 设cock、hen、chicken分别为公鸡、母鸡和小鸡的数量,# num为符合题目要求的方案数目。num = 0for cock in range(1, 21):for hen in range(1, 34):for chicken in____①____:            if____②____== 100and cock * 5 + hen * 3 + chicken / 3 ==____③____:                num = ____④____                print(f'第 {num} 种方案是:公鸡{cock}只,母鸡{hen}只,小鸡{chicken}只')

参考答案:

① range(1, 101)或等效答案;

② cock + hen + chicken或等效答案;

③ 100或等效答案;

④ num +1或等效答案。


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天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。

最新文章

随机文章