2023年09月份青少年软件编程Python等级考试五级真题(含答案和解析)_第1页
2023年09月份青少年软件编程Python等级考试五级真题(含答案和解析)_第2页
2023年09月份青少年软件编程Python等级考试五级真题(含答案和解析)_第3页
2023年09月份青少年软件编程Python等级考试五级真题(含答案和解析)_第4页
2023年09月份青少年软件编程Python等级考试五级真题(含答案和解析)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023年9月电子学会Python五级考试真题(含答案和解析)分数:100题数:38测试时长:90min一、单选题(共25题,共50分)1、阅读以下代码,程序输出结果正确的选项是?(C)defprocess_keywords(keywords_list):unique_keywords=list(set(keywords_list))sorted_keywords=sorted(unique_keywords)result=tuple(sorted_keywords)returnresultkeywords=["节约能源","循环利用","清洁能源","减少污染","植树造林","清洁能源"]print(process_keywords(keywords)A.('节约能约','循环利用','减少污染','清洁能源','减少污染')B.('循环利用','植树造林','减少污染','清洁能源','清洁能源')C.('减少污染','循环利用','植树造林','清洁能源','节约能源')D.('植树造林','循环利用','节约能源','清洁能源','节约能源')答案解析:将关键词列表转换为集合(set),去除重复的关键词,对去重后的关键词集合进行排序,将排序后的关键词列表转换为元组,输出。2、给定一个集合s={1,2,3,4,5},以下哪个选项可以实现从s中移除所有偶数元素的功能?(D)A.{xforxinsifx%2==0}B.s.filter(lambdax:x%2==0)C.{x%2!=0forxins}D.set(filter(lambdax:x%2!=0,s))答案解析:使用filter()函数可以过滤掉集合中的偶数,再用set()函数将过滤后的结果重新转换为集合类型。3、下列代码的运行结果是?(D)tup=(1,2,3,4,5)tup[2]=10print(tup)A.(1,2,3,4,5)B.(1,2,10,4,5)C.(1,10,3,4,5)D.抛出TypeError的异常答案解析:如果tup是列表,在列表中可以通过tup[2]=10改变列表元素的值。但是本题中,tup=(1,2,3,4,5)的作用是定义一个元组,元组不能通过直接赋值来改变元组元素的值,语句tup[2]=10错误。4、tuple1=('aa','bb','cc','22'),则tuple1.index('22')的值是?(C)A.1B.2C.3D.4答案解析:元组与列表和字符串一样,索引下标从0开始,最后一个元素“22“的索引下标是3。5、Time模块中,time.time()所得的结果的数据类型是?(B)A.整形B.实型C.字符串类型D.列表类型答案解析:time.time()是Python中的一个内置函数,用于获取当前时间的时间戳(从1970年1月1日00:00:00到当前时间的秒数)。时间戳是一个浮点数,例如1605012765.39698,时间戳就是一串数字,表示从某个固定时间点开始到现在的时间长度,通常以秒为单位计算。6、Python中jieba的功能描述,正确的是?(A)A.分词B.数据可视化C.计算D.画图答案解析:jieba是Python中一个重要的第三方中文分词函数库,可以把一句话拆分成多个词,也可以从一句话(一段话)中提取最重要的几个关键词。7、小张编写一款石头剪子布游戏时,导入random库并将b赋值为["剪刀","石头","布"],不能实现随机产生b列表中一个元素的表达式是?(A)A.b[random.random()*3]B.random.sample(b,1)C.b[random.randint(0,2)]D.random.choice(b)答案解析:考查随机函数的应用,选项A,random.random()*3产生的有可能是小数,而索引下标不能为小数。8、若要计算圆的面积,下列表达式肯定错误的是?(D)A.s=math.pi*math.pow(r,2)B.s=math.pi*r**2C.s=math.pi*r*rD.s=math.pi*r^2答案解析:在Python中,^运算符不是用来计算幂的。它实际上是一个按位异或运算符。9、下列程序的功能是?(D)foriinrange(100,1,-2):print(i)A.顺序输出1-100以内的偶数B.顺序输出1-100以内的奇数C.倒序输出1-100以内的奇数D.倒序输出1-100以内的偶数答案解析:range(100,1,-2)生成一个从100开始,到1结束(不包括1),步长为-2的序列。因此,程序会从100开始,依次输出98、96、...、4、2,即倒序输出1到100以内的偶数。10、Python使用range可以创建数值列表。下面可以正确输出600以内6的倍数的语句是?(D)A.print(list(range(100,600,6)))B.print(list(range(0,600,10)))C.print(list(range(1,601,6)))D.print(list(range(6,601,6)))答案解析:要正确输出600以内6的倍数,我们需要确保range函数的步长是6,并且起始值应该是6的倍数,结束值应该大于600且是6的倍数(因为range的上界是不包含的)。11、学校气象站记录了周一到周日的PM2.5的数据pminfo=[82,57,91,67,103,79,99]根据需求,输出周日、周六、周五三天PM2.5数据的程序代码是?(B)A.print(pminfo[7:5:-1])B.print(pminfo[-1:3:-1])C.print(pminfo[-1:5:7])D.print(pminfo[5:7:-1])答案解析:pminfo[-1:3:-1]会从列表的最后一个元素开始,以步长为-1(即反向)取到索引为3的元素之前的元素(不包括索引为3的元素)。这实际上会给我们周日、周六和周五的数据。12、回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。下面可以正确打印三位回文数的语句是?(D)A.print(iforiinrange(100,999)ifstr(i)==str(i)[::-1])B.print([iforiinrange(1,1000)ifstr(i)==str(i)[::-1]])C.print([iforiinrange(1,999)ifstr(i)==str(i)[::-1]])D.print([iforiinrange(100,1000)ifstr(i)==str(i)[::-1]])答案解析:range(100,1000)会生成从100到999的所有整数,这正是我们想要的三位数范围。str(i)==str(i)[::-1]这个条件会检查每个数是否是回文数。如果是回文数,它就会被添加到列表中,并最终被打印出来。13、下列哪个选项是正确的关于Python列表的定义?(A)A.列表是有序的、可变动的元素集合B.列表是有序的、不可变动的元素集合C.列表是无序的、可变动的元素集合D.列表是无序的、不可变动的元素集合答案解析:Python列表是有序的,可以按照插入的顺序访问元素。同时,列表是可变动的,即可以通过添加、删除、修改元素来改变列表的内容。14、假设有一个列表l=[1,2,3,4,5],下面哪个操作可以移除列表中的第一个元素?(B)A.l、pop(1)B.l.remove(1)C.dell[1]D.l.clear()答案解析:A项弹出索引号为1的元素,B项移除值为1的元素,C项删除索引号为1的元素,D项清空所有元素。15、下面哪个选项是用于获取列表中元素个数的方法?(D)A.length()B.size()C.count()D.len()答案解析:len()函数用于获取列表中元素的个数。16、下列哪个选项是正确的列表切片操作?(A)A.list[1:3]B.list[1,3]C.list[1-3]D.list[1+3]答案解析:列表切片操作可以用来获取列表中的一部分元素。切片操作使用[start:end]的形式,其中start表示起始索引(包含),end表示结束索引(不包含)。所以list[1:3]表示获取索引1和2的元素。17、以下哪个选项可以创建一个列表,包含数字1到10的平方?(A)A.[x*xforxinrange(1,11)]B.{x*xforxinrange(1,11)}C.(x*xforxinrange(1,11))D.<x*xforxinrange(1,11)>答案解析:列表推导式可以用于创建一个列表,并按照指定的表达式对迭代器进行转换。选项A使用列表推导式创建了一个包含1到10的平方的列表。18、以下哪个选项可以创建一个集合,包含1到10的奇数?(B)A.{xforxinrange(1,11)}ifx%2!=0B.{xforxinrange(1,11)ifx%2!=0}C.[xforxinrange(1,11)ifx%2!=0]D.[xforxinrange(1,11)]ifx%2!=0答案解析:集合推导式可以用于创建一个集合,并按照指定的条件对迭代器进行筛选。选项B使用集合推导式创建了一个包含1到10的奇数的集合。19、下面的集合推导式将会生成什么集合?(A)st={x%2forxinrange(10)}A.{0,1}B.{0,2,4,6,8}C.{1,3,5,7,9}D.{0,1,2,3,4,5,6,7,8,9}答案解析:该集合推导式将会生成{0,1}这个集合,即将0到9的每个数对2取模并去重得到的集合。20、下面代码的执行结果是?(A)knights={'孙坚':'江东猛虎','孙策':'小霸王'}fork,vinknights.items():print("大将:{},绰号:{}".format(k,v))A.大将:孙坚,绰号:江东猛虎大将:孙策,绰号:小霸王B.大将:孙坚,大将:孙策C.大将:孙坚,绰号:孙策D.绰号:江东猛虎,绰号:小霸王答案解析:knights.items()获得字典中的键值对。fork,vinknights.items()分别获得键和值。print("大将:{},绰号:{}".format(k,v))格式化字符串分别填入键和值。21、以下程序的输出结果是?(A)dict={'Name':'Angel','Age':8}print(dict.items())A.dict_items([('Age',8),('Name','Angel')])B.[('Age',8),('Name','Angel')]C.('Age',8),('Name','Angel')D.'Age':8,'Name':'Angel'答案解析:items()方法返回的结果是items对象。字典是无序的,因此有可能顺序会改变。22、Python表达式("5"+"2")*2的运算结果是?(B)A.14B."5252"C."522"D.语法错误,程序报错答案解析:考察+及*在字符串中的应用,+表示拼接,*表示重复。23、字符串变量s中存有小李身#份#证#号#码(s="333333111111113333",其中7至14位"11111111"代表出#生#日#期)。若想提取小李身#份#证中的出#生#日#期,下列Python表达式有错误的是?(C)A.s[-12:-4]B.s[6:14]C.s[7:15]D.s[6:-4]答案解析:在Python中,字符串索引是从0开始的,s[7:15]:将提取从第8个字符开始到第15个字符结束的子字符串。24、下列不可以正确输出语句"我叫小明今年10岁!"的Python语句的是?(C)A.print("我叫{name}今年{age}岁!".format(age=10,name='小明'))B.print("我叫{}今年{}岁!".format('小明',10))C.print("我叫%s今年%s岁!"%(10,'小明'))D.print("我叫%s今年%d岁!"%('小明',10))答案解析:虽然使用了%操作符来格式化字符串,但是占位符的顺序和传递的参数顺序不匹配。%s是一个占位符,用于字符串,而%d是一个占位符,用于整数。25、运行代码print(r"\nPython")的结果是?(B)A.直接输出:"\nPython"B.直接输出:\nPythonC.直接输出:PythonD.先换行,然后在新的一行中输出:Python答案解析:在Python中,前缀r或者R用于表示一个字符串是“原始”的,即字符串中的反斜杠\不会被当作转义字符。这意味着\n不会被解释为一个换行符,而是被当作两个普通字符\和n。二、判断题(共10题,共20分)26、集合类型中的元素必须是唯一的。(对)答案解析:集合中的元素必须是唯一的,如果添加了重复的元素,只会保留一个元素。可以使用集合类型来去除列表或元组中的重复元素。集合是有序的数据结构,可以根据元素的插入顺序进行遍历。(错)答案解析:集合是无序的,元素的遍历没有固定的顺序。元组是Python的不可变序列类型,意味着一旦你创建了一个元组,就不能进行插入、删除等操作。(对)答案解析:元组是Python的不可变序列类型,不能进行插入、删除元素等操作。time库是Python中处理时间的标准库,time库中时间获取函数time()和ctime(),返回的都是字符串。(错)答案解析:Python中有三个函数可以获取当前系统的时间,分别是time()、ctime()、gmtime()。time()函数,返回的是一个浮点数,表示从1970年1月1日0点0分开始,到当前时间,一共经历了多少秒。ctime()返回易读的字符串形式。30、有如下Python程序段:s=0foriinrange(1,11):ifi%5==3:continues+=i执行程序后,输出s的值是52。(错)答案解析:本题变量s的值为序列1到10中对5取余不等于3的数之和,值为44。31、Python中的列表是可变的数据类型。(对)答案解析:列表是可变的,即可以通过修改、添加、删除元素来改变列表的内容。与之相对的是不可变的数据类型,例如字符串。[xforxinrange(5)]是一个列表推导式。(对)答案解析:[xforxinrange(5)]是一个列表推导式,它通过循环生成一个包含0到4的整数列表。可以通过update()方法将一个字典的内容添加到另一个字典中。(对)答案解析:update()方法的用法。有字符串s=“happynationalday”,s.find('na')返回值为-1。(错)答案解析:检测参数是否包含在字符串中,如果包含,返回开始的索引值,否则返回-1。字符串中包含“na”,因此返回6。小明想单独输出一个双引号,可以使用语句print("\"")进行输出。(对)答案解析:语句print("\"")中的\"就是一个转义序列,它告诉Python解释器输出一个双引号字符。三、编程题(共3题,共30分)36、已知有一些学生数据,每名学生的信息是一个字典。所有学生信息放在列表中。(1)计算每个学生的平均分(语文+数学+英语)/3,并对平均分取整,追加到其字典;(2)根据学生的平均分从低到高排列;(3)输出每位学生的学#号和平均分。输出格式如下:20230103:7220230102:8220230101:92程序模板如下:students=[{'学#号':'20230101','语文':90,'数学':95,'英语':92},{'学#号':'20230102','语文':80,'数学':85,'英语':82},{'学#号':'20230103','语文':70,'数学':75,'英语':72}]forstudentinstudents:_____①_____students.sort(key=lambdax:x['平均分'],reverse=False)forstudentinstudents:print('{}:{}'.format(____②_____,_____③_____))参考程序:students=[{'学#号':'20230101','语文':90,'数学':95,'英语':92},{'学#号':'20230102','语文':80,'数学':85,'英语':82},{'学#号':'20230103','语文':70,'数学':75,'英语':72}]forstudentinstudents:student['平均分']=(student['语文']+student['数学']+student['英语'])//3students.sort(key=lambdax:x['平均分'],reverse=False)forstudentinstudents:print('{}:{}'.format(student['学#号'],student['平均分']))评分标准:(1)student['平均分']=(student['语文']+student['数学']+student['英语'])//3;(4分)(2)student['学#号'];(3分)(3)student['平均分']。(3分)37、信息科技社团正在进行一种字符串扩展的实验,实验操作方法如下:(1)给定一个初始字符串s,筛选出其中的大小写字母,生成新的字符串x;(2)将字符串x最后一个字符删除,生成一个新的字符串y;(3)将字符串x的右边最后一个字符拼接到字符串x的末尾;(4)将字符串y拼接到字符串x的末尾。按照(2)-(4)步骤重复操作,每一步将当前字符串的长度加倍,直到字符串x长度达到n。给定初始字符串和n,请帮助社团同学们计算扩展的字符串中第n个位置的字符。以s=“c1ar23”,n=8为例c1ar23-->car-->carrca-->carrcaacarrc第8个位置上的字符'c',则输出为c输入格式:第一行,一个字符串s(长度不超过20)第二行,一个整数n(1<=n<=100)输入样例:c1ar238输出格式:一个字符,表示扩展的字符串中的第n个字符。输出样例:cs=input()n=int(input())x=""foriins:if((i>='A'andi<='Z')_____①______):x=x+ixn=len(x)whilexn<n:y=x.replace(_____②_____,'')x=x+x[-1]x=x+yxn=_____③_________print(__________④________)参考程序:s=input()n=int(input())x=""foriins:if((i>='A'andi<='Z')or(i>='a'andi<='z')):x=x+ixn=len(x)whilexn<n:y=x.replace(x[-1],'')x=x+x[-1]x=x+yxn=len(x)print(x[n-1])评分标准:(1)or(i>='a'andi<='z');(2分)(2)x[-1];(2分)(3)len(x);(3分)(4)x[n-1]。(3分)38

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论