涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:本月CIE_Python打卡题目
要求:
(1)程序开始运行后,输入一个三位数整数;
(2)程序会根据输入的整数输出百位、十位和个位上的数。
例如,输入123,输出为:“百:1,十:2,个:3”。
参考程序:
注意:仅供参考,画法和顺序,考生可以自行设计,结果符合题意即可。
方法一:
x = int(input('输入一个三位数整数:'))a = x // 100b = (x - a * 100) // 10c = x % 10print("百:", a, "十:", b, "个:", c)方法二:
x = int(input('输入一个三位数整数:'))a = x // 100b = x % 100 // 10c = x % 10print('百:', a, '十:', b, '个:', c)编写一个重复执行的程序,要求用户输入一个字符串。如果输入的字符串的长度是奇数,就输出字符串最中间的字符。如果字符串的长度是偶数,就输出字符串的最后一个字符。然后重复以上操作。
参考程序:
注意:仅供参考,考生可以自行设计,结果符合题意即可。
whileTrue: s = input('请输入一个字符串:') length = len(s)if length % 2 !=0: print(s[length//2])else: print(s[-1])若要生成一个由若干小写字母组成的互不重复的随机数组,已知小写字母的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]。
从键盘上分别输入要查找和替换的字符串,对文本文件进行查找与替换,替换后保存到新的文本文件中。
思路:输入待查找字符串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天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
