| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 2021年9月电子学会Python等级考试试卷(五级)考题解析 -> 正文阅读 |
|
[移动开发]2021年9月电子学会Python等级考试试卷(五级)考题解析 |
? 青少年软件编程(Python)等级考试试卷(五级) 分数:100.00 ???????????题数:38 一、单选题(共25题,每题2分,共50分) 1. 执行下列代码,正确的答案是?( ) >>> l=[10,0,1,6,12,8] >>> l.sort(key=str) >>> l A、[0,1,6,8,10,12] B、[0,1,10,12,6,8] C、[0,1,10,6,8,12] D、[12,10,8,6,1,0] 题型:单选题 答案:B 难度:一般 试题解析: 2. 下列说法,正确的是?( ) A、集合类型是一个元素集合,元素之间有序 B、集合类型是一个元素集合,元素不能重复 C、集合类型是一个元素集合,元素可以重复 D、集合类型是一个元素集合,元素之间无序,元素类型必修相同 题型:单选题 答案:B 难度:容易 试题解析: 3. 对于r=range(5),下列合法的方法是?( ) A、r[2]=8 B、del r[2] C、r.pop() D、r.count(2) 题型:单选题 答案:D 难度:容易 试题解析: 4. 下列代码的运行结果是?( ) def jishu(n): ????return n % 2 == 1 newlist = filter(jishu, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) n=list(newlist) print(n) A、[2,4,6,8,10] B、[1, 3, 5, 7, 9] C、[1,2,3,4,5,6,7,8,9,10] D、[10,9,8,7,6,5,4,3,2,1] 题型:单选题 答案:B 难度:一般 试题解析:过滤函数使用filter。 5. 下列语句的输出结果是?( ) for ?i ?in “xyz”: for j in range(3): ????print(i,end=’?’) if ?i==”z”: break A、xxxyzzz B、xxxyyyz C、xxxyyyzzz D、xyyyzzz 题型:单选题 答案:B 难度:一般 试题解析: 6. 下列操作,正确的为哪一项?( ) A、 >>>tuple(‘ni hao’) >>>(‘ni’,’hao’) B、 >>>tuple(range(3)) >>>(0,1,2) C、 >>>tuple(str,range(3)) >>>(0,1,2) D、 >>>tuple(map(str,range(3))) >>>(0,1,2) 题型:单选题 答案:B 难度:一般 试题解析: 7. 下列有关列表的描述,错误的是?( ) A、列表是包含若干元素的随机内存空间 B、列表是包含若干元素的有序内存空间 C、列表是包含若干元素的连续内存空间 D、列表的相邻元素之间使用逗号分隔 题型:单选题 答案:A 难度:一般 试题解析:列表是包含若干元素的有序连续内存空间,故选A 8. 运行下列代码的结果是?( ) import ?math math.ceil(-3.3) A、-4 B、-3 C、-4.0 D、-3.0 题型:单选题 答案:B 难度:容易 试题解析: 9. 下列元组的声明,非法的是哪一项?( ) A、t=1,2,3 B、t=(1,2,3) C、t=(1,) D、t=(1) 题型:单选题 答案:D 难度:容易 试题解析: 10. 运行下列代码,正确的结果是?( ) ?>>>print("{:.2f}".format(3.1415926)) A、’3.1’ B、3.1 C、’3.14’ D、3.14 题型:单选题 答案:D 难度:容易 试题解析: 11. 使用map函数可以实现列表数据元素类型的转换,而无需通过循环。则将列表l=['2','4','6','8']转换为列表[2,4,6,8]的函数写法为?( ) A、map(int,l) B、list(map(int,l)) C、map(l,int) D、list(map(l,int)) 题型:单选题 答案:B 难度:较难 试题解析: 12. 运行下列代码,正确的结果是?( ) >>>x = set('runoob') >>> y = set('google') >>> x & y? A、{‘o’,’o’} B、{'r', 'b', 'u', 'n'} C、{'b', 'e', 'g', 'l', 'o', 'n', 'r', 'u'} D、{'o'} 题型:单选题 答案:D 难度:一般 试题解析: 13. 下列语句的输出结果是?( ) l=list(range(1,3)) print(l) A、[0,1,2] B、{0,1,2} C、[1,2] D、.{1,2} 题型:单选题 答案:C 难度:一般 试题解析: 14. 赋值语句path='c:\abc\xyz\tag.txt',执行结果是?( ) A、path的值是'c:\abc\xyz\tag.txt' B、path的值是'c:\bc\yz\ag.txt' C、path的值是'c:\\abc\\xyz\\tag.txt' D、提示出错 题型:单选题 答案:D 难度:容易 试题解析: 15. 方法pop()与remove()的区别与相同点,错误的是?( ??) A、都是删除与参数表中参数相同的元素 B、pop()有返回值 C、remove()没有返回值 D、pop()如果不带参数,则表示默认参数值为-1 题型:单选题 答案:A 难度:一般 试题解析:pop()删除的是参数作为索引所指向的元素。 16. 有关jieba库的描述,错误的是?( ) A、jieba库的分词原理是利用英文词库,将待处理的内容与词库比对后找到最大概率的词组 B、jieba.lcut(s)返回的是一个列表类型 C、jieba.cut(s)返回的可能是一个元组类型 D、jieba.add_word(w)向分词词典中增加新词w 题型:单选题 答案:A 难度:一般 试题解析: 17. 要生成如下效果的图片,可以使用以下哪个python库?( ) ? A、jieba B、math C、matplotlib D、wordcloud 题型:单选题 答案:D 难度:一般 试题解析: 18. 以下列表对象的表达,非法的或者值为False的选项是?( ) A、[] B、[None,0,’’] C、[1,2,3] D、[8,]!=[8] 题型:单选题 答案:D 难度:较难 试题解析:[8,]!=[8]的值为False。故选D 19. 下列语句的输出结果是?( ) for ?i ?in range(6): if i%2==0: ????continue else: ????print(i,end=’,’) A、1,3,5, B、1,3,5 C、0,2,4, D、0,2,4 题型:单选题 答案:A 难度:一般 试题解析: 20. 随机产生1-5之间的一个整数的代码是?( ) A、 >>>import random >>>random.randrange(1,6) B、 >>>import random >>>random.randrange(1:6) C、 >>>import random >>>random.randchoice(1,5) D、 >>>import random >>>random.randint(1,5) 题型:单选题 答案:D 难度:容易 试题解析: 21. print(‘\x61’)的结果是?( ) A、\x61 B、‘\x61’ C、a D、A 题型:单选题 答案:C 难度:一般 试题解析:\x**表示2位十六进制数对应的字符 22. 下列声明字典的语句,错误的是?( ) A、d={} B、d={'name':'Tom','age':20,"salary":3900} C、d=dict(title='Python',author='Tom',price=59) D、d=list[('name','Jerry'),('age',20)] 题型:单选题 答案:D 难度:一般 试题解析: 23. 求执行下列操作后的正确结果?( ) >>> url='www.lxsz.com' >>> url.split() A、('www.lxsz.com') B、['www’,’lxsz’,’com'] C、['www.lxsz.com'] D、('www’,’lxsz’,’com') 题型:单选题 答案:C 难度:一般 试题解析: 24. m=[x*x for x in range(5) ]的结果的是?( ) A、25 B、16 C、[0, 1, 4, 9, 16] D、(0, 1, 4, 9, 16) 题型:单选题 答案:C 难度:一般 试题解析: 25. 若d是一个字典,则max(d)是指求?( ) A、字典中键的最大值 B、字典中值的最大值 C、字典中键值对的最大值 D、字典中数字值的最大值 题型:单选题 答案:A 难度:容易 试题解析:注意两个点,一个是map的参数为类型、序列。另外,map生成的对象不是列表,需要强制转换。 二、判断题(共10题,每题2分,共20分) 26. 对于列表l=[0,1,2,3,4],all(l)的值是True,any(l)的值是False。 题型:判断题 答案:错误 难度:一般 试题解析:all(l)测试是否所有元素都等价于True。any(l)测试是否存在等价于True的元素。 27. set()函数可以用于生成集合,输入的参数可以是任意组合数据类型,返回结果是一个无重复且排序任意的集合。 题型:判断题 答案:正确 难度:一般 试题解析:集合的概念 28. 下列两个语句的功能不可能等价: >>> l=[x*x for x in range(6)] >>> l=list(map(lambda x:x*x,range(6)))。 题型:判断题 答案:错误 难度:较难 试题解析: 29. 字典中的“键”不允许重复,“值”也不允许重复。in运算符的速度比列表、元组快得多。 题型:判断题 答案:错误 难度:一般 试题解析:“值”允许重复。 30. >>>list(zip(range(3),"abcd")) 返回[(0, 'a'), (1, 'b'), (2, 'c'),(3,’d’)]。 题型:判断题 答案:错误 难度:一般 试题解析:正确的答案是[(0, 'a'), (1, 'b'), (2, 'c')] 31. >>> list(enumerate(range(3))) 返回值为[(0, 0), (1, 1), (2, 2)]。 题型:判断题 答案:正确 难度:一般 试题解析: 32. 列表、元组、字符串均可以用set()转换为集合,例如:>>>set((1,2,2,3,4)),结果是{1,2,2,3,4}。 题型:判断题 答案:错误 难度:容易 试题解析:集合中元素无重复 33. >>>m=’\n\nnihao\t\tliping\n\n\nzhang san’ >>> m.split() 结果是:['nihao', 'liping', 'zhang san']。 题型:判断题 答案:错误 难度:较难 试题解析:在调用方法split()时,若不传递任何参数,则会使用任何空白字符(包括空格、换行符、制表符等)作为分隔符;若字符串存在连续的空白字符,则按一个空白字符对待,并且返回结果中不包含任何空字符串。 34. 利用日期时间模块datetime,可以获取“今天”的日期,方法如下: >>> import datetime >>> t=datetime.today()。 题型:判断题 答案:错误 难度:一般 试题解析:第二行语句为>>> t=datetime.date.today()。 35. >>> '{0:%}'.format(3.5)返回'350.000000%'; >>>’{0:.2f}’.format(1/5)返回'0.2'。 题型:判断题 答案:错误 难度:一般 试题解析:.2f表示保留两位小数 三、编程题(共3题,共30分) 36. 简单去重问题: 对于给定的列表,要求对列表中每个重复元素只输出一次,请你编程完成这个任务。 例如:对于测试列表a=[11,1,14,23,11,89,14,56,89] 有如下3种算法,请你补全代码。 #方法1 a=[11,1,14,23,11,89,14,56,89] result=[] for i in a: ????if i not in result: ????????①?????? print("方法1:",result) #方法2 a=[11,1,14,23,11,89,14,56,89] for i in [j for j in a if a.count(i)>1]: ????for x in range(a.count(i)-1): ????????②????? print("方法2:",a) #方法3 a=[11,1,14,23,11,89,14,56,89] i=0 while i<=len(a)-1: ????if a.count(a[i])>1: ????????③??????? ????else: ????????④??????? print("方法3:",a) 题型:编程题 答案: 答案: (1)result.append(i)(2分)? (2)a.remove(i)(2分)? (3)a.pop(i)(3分)? (4)i+=1(3分) 难度:容易 试题解析: #方法1 a=[11,1,14,23,11,89,14,56,89] result=[] for i in a: ????if i not in result: ?????????result.append(i) print("方法1:",result) #方法2 a=[11,1,14,23,11,89,14,56,89] for i in [j for j in a if a.count(i)>1]: ????for x in range(a.count(i)-1): ????????a.remove(i) print("方法2:",a) #方法3 a=[11,1,14,23,11,89,14,56,89] i=0 while i<=len(a)-1: ????if a.count(a[i])>1: ????????a.pop(i) ????else: ????????i+=1 print("方法3:",a) 37. 密码问题: 根据密码本和电子钥匙,破解笔记本电脑的密码。 密码本是一个非降的整数序列,电子钥匙是一个整数,得到密码的方法是在密码本中找到最接近电子钥匙的整数(如果多个符合条件,输出最小的一个)。 例如: 密码本为下面的列表 a=[1,22,43,45,45,55,60,70,89] 电子钥匙为整数44 满足条件的整数为43和45,最终的密码为43 补全下面的代码: a=[1,22,43,45,45,55,60,70,89] #密码本 k=int(input())? ?#k为电子钥匙 l=0 r=8 while l+1!=r: ? ? mid=int (???①??) ? ? if a[mid]<k: ? ? ???????②? ?? ? ? else: ? ? ? ? r=mid ? ? if a[r]==k: ? ? ??????③?????? if k-a[l] <=???? ④???: ???? print(a[l]) else: ? ? print(⑤) 题型:编程题 答案: 答案: ①? (l+r)/2(2分)? ②? l=mid(2分)? ③? break(2分)? ④? a[r]-k(2分)? ⑤??a[r](2分) 难度:一般 试题解析: a = [1,22,43,45,45,55,60,70,89] k = int(input()) l = 0 r = 8 while l+1 != r: ? ? mid = int((l+r)/2) ? ? if a[mid] < k: ? ? ? ? l = mid ? ? else: ? ? ? ? r = mid ? ? if a[r] == k: ? ? ? ? break if k-a[l] <= a[r]-k: ? ? print(a[l]) else: ? ? print(a[r])? 38. 罗马数字问题: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 27写做 XXVII,即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减去数 1 得到的数值 4。同样地,数字 9 表示为 IX。 这个特殊的规则只适用于以下六种情况: I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。 X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。 C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。 现编写输入一个罗马数字,输出其整数结果,请编程实现上述功能,或补全代码。 例如,当输入XXII时,输出22;当输入MCMXC时,输出1990. ? rmdict = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}? rm = list(input("请输入正确的罗马数字:")) num, prew = 0, 1 for ch in rm[::-1]: ? ?w =? ? ?①? ?? ? ?if prew > w:? ? ? ? num = num - w? ? ?else : ? ? ? num = num + w ? ?prew =? ? ?②? ?? print(??③??) 题型:编程题 答案: 答案: ① rmdict[ch]? (4分) ② w? ?(3分) ③ num? (3分) 难度:较难 试题解析: rmdict = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}? rm = list(input("请输入正确的罗马数字:")) num, prew = 0, 1 for ch in rm[::-1]: ? ?w = rmdict[ch] ? ?if prew > w:? ? ? ? num = num - w? ? ?else : ? ? ? num = num + w ? ?prew = w print(num) |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 0:04:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |