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

要求:
(1)线条颜色为黑色,线条粗细为10;
(2)圆半径为50,填充颜色为蓝色;
(3)等边三角形边长为180;
(4)等边三角形底边中点位置为画布正中心。
参考程序:
注意:仅供参考,画法和顺序,考生可以自行设计,结果符合题意即可。
import turtleturtle.pencolor('black')turtle.pensize(10)turtle.fillcolor('blue')turtle.begin_fill()turtle.circle(50)turtle.end_fill()turtle.penup()turtle.goto(-90, 0)turtle.pendown()for i in range(5): turtle.forward(180) turtle.left(120)turtle.home()turtle.done()从键盘输入任意字符串,按照下面要求分离字符串中的字符:
1、分别取出该字符串的第偶数位的元素(提醒注意:是按照从左往右数的方式确定字符串的位置);
2、并依次存储到一个列表中;
3、输出这个列表。
参考程序:
注意:仅供参考,考生可以自行设计,结果符合题意即可。
利用while循环:
s = input('请输入字符串:')lst = []i = 1while i<len(s): lst.append(s[i]) i += 2print(lst)利用for循环:
s = input('请输入字符串:')lst = []for i in range(1,len(s),2): lst.append(s[i])print(lst)某班“天天向上”小组共有6个同学,姓名和身高数据分别存放在列表a中,编写程序实现小组同学按身高从高到低输出名单,运行结果如图所示:

程序代码如下,请在划线处补充完整:
a = [["李洪全", 135], ["王倩倩", 154], ["吴乐天", 148], ["周立新", 165], ["鲁正", 158], ["杨颖颖", 150]]for i in range(1, len(a)):for j in range(0,____①____):if a[j][1]____②____a[j+1][1]: a[j], a[j + 1] = a[j + 1], a[j]print("小组名单是:")for i in range(len(a)): print(____③____)参考答案:
本题考查冒泡排序算法。从外循环看,6个元素排5趟,应该能全部排整齐。内循环每趟主要从第一个元素开始,相邻元素两两相比,i=1时,j最终取到4,i=2时,j最终取到3,i=3时,j最终取到2,i=2时,j最终取到1,i=1时,j最终取到0,由于range()的终值是取不到的,故第一空应填len(a)-i;根据题目从高到低的要求,若前一个数小于后一个数,则应将其往后移,故第二空应为“<”;由输出结果观察可知,只需要输出排序后列表中的姓名部分,故第三空应填a[i][0]。
① len(a)-i;
② <;
③ a[i][0]。
某同学收集了很多单词,不同的单词之间用'-'拼接在一起,如'refer-level-face-',他发现有些单词如level,从左往右读和从右往左读该单词是一样的,称之为回文单词。他想统计他收集的单词中有多少个回文单词。
步骤如下:
(1)首先将单词按'-'分割出所有单词,
(2)统计这些单词中回文单词的数量。
编写的Python代码如下,完善划线处的代码。
defrevstr(str):if len(str) == 1:return _____①_____else:return _____②_____word = 'refer-level-face-'wordlst = []s = ''for t in word:if t != '-': _____③_____else: wordlst.append(s) s = ''c = 0for w in wordlst: rev = revstr(w)if _____④_____: c += 1print('对称的字符串个数有', c)参考答案:
按照递归的方式:
① str(或等效答案); (2分)
② revstr(str[1:]) + str[0](或等效答案);(3分)
③ s += t 或 s = s + t(或等效答案); (2分)
④ w == rev(或等效答案)。(3分)
按照非递归方式:
① True(或等效答案); (2分)
② str[::-1] == str(或等效答案);(3分)
③ s += t 或 s = s + t(或等效答案); (2分)
④ rev == True(或等效答案)。(3分)
青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
