| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 2021年6月电子学会Python等级考试试卷(三级)考题解析 -> 正文阅读 |
|
[Python知识库]2021年6月电子学会Python等级考试试卷(三级)考题解析 |
青少年软件编程(Python)等级考试试卷(三级) 分数:100.00 ???????????题数:38 一、单选题(共25题,每题2分,共50分) 1. 关于open()函数的参数,下列描述正确的是?( ) A、"w+" 以十六进制格式打开一个文件只用于写入 B、"r+"打开一个文件用于读写。文件指针将会放在文件的末尾 C、"w" 打开一个文件只用于写入。如果该文件已存在则打开文件,并从原有位置开始编辑,即保留原有内容。如果该文件不存在,创建新文件 D、"r" 以只读方式打开文件,文件的指针将会放在文件的开头 答案:D 试题解析: "w+" 打开一个文件用于读写。 "r+"打开一个文件用于读写。文件指针将会放在文件的开头。 "w" 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 "r" ?以只读方式打开文件,文件的指针将会放在文件的开头。 2. 如下图代码,请问两条红线处应该填入?( ) A、1、没有变化 2、没有变化 B、1、没有变化 2、顺序会有变化? C、1、顺序会有变化 2、顺序会有变化 D、1、顺序会有变化 2、没有变化 答案:B 试题解析:考查学生对列表的sort函数以及sorted函数的掌握与理解。正确答案是B 3. 下面不同数制数据中,数值最大的是?( ) A、0x2B B、0o37 C、41 D、0b100111 答案:A 试题解析: 4. 执行下面代码: print(bool(2)+3) 打印出的结果为?( ) A、3 B、4 C、5 D、报错 答案:B 试题解析:bool函数是int子类型,如果有参数,会返回true也就是整数1,所以正确答案是选项B,也就是数字4 5. 求既是3的倍数且各个位上的数的和是8的倍数的三位数,适合的算法是?( ) A、解析算法 B、枚举算法 C、排序算法 D、对分查找法 答案:B 试题解析:本题适合用枚举算法。 6. 下列选项不是Python异常处理可能用到的关键字?( ) A、try B、else C、if D、finally 答案:C 试题解析:本知识点是学习异常处理基本语句用法 7. 已定义学期末考核科目km=["语文","数学","英语"],先根据安排需要添加综合学科进入考试科目,操作正确的是?( ) A、km.append("综合") B、km.insert("综合") C、km.write("综合") D、km.read("综合") 答案:A 试题解析:km.append("综合") 使用append()对一维数据进行添加 8. 表达式chr(ord("0")+3)的结果是?( ) A、333 B、'3' C、"000" D、"0","0","0" 答案:B 试题解析:ord()函数主要用来返回对应字符的ascii码,chr()主要用来表示ascii码对应的字符,chr(ord("0")+3)的值为'3' 9. 与十进制数 1770 对应的八进制数是?( ) A、3350 B、3351 C、3352 D、3540 答案:C 试题解析:反向取余法 3352 10. 下面代码的输出结果是?( ) a = [5,1,3,4] print(sorted(a,reverse = True)) A、[5, 1, 3, 4] B、[5, 4, 3, 1] C、[4, 3, 1, 5] D、[1, 3, 4, 5] 答案:B 试题解析:对列表进行降序排序 11. 用冒泡排序算法对6个数进行排序,进行比较的次数为?( ) A、4 B、5 C、10 D、15 答案:D 试题解析:6个数进行冒泡排序,比较次数为5+4+3+2+1 12. 以下代码执行后,如果用户输入为:3*6,则输出为?( ) cal=input("请输入计算公式:\n") print(eval(cal)) A、3*6 B、"3*6" C、18 D、"18" 答案:C 试题解析:本题考查eval实现的功能,就是将字符串表达式进行运算,得到运算结果。 13. 关于Python函数的描述,正确的是?( ) A、表达式float("3.14") 的结果是3.14 B、表达式type(100)的结果是十进制数 C、表达式oct(100)可以获得十六进制数 D、表达式hex(100)可以获得八进制数 答案:A 试题解析:选项A正确,选项B.type(100)的结果是,选项C.oct(100)的值是'0o144',获得八进制数,选项D.hex(100)的值是'0x64',获得十六进制数。 14. Python中abs ()函数的作用为?( ) A、求绝对值 B、求开方结果 C、求平方结果 D、求立方结果 答案:A 试题解析:记住即可,abs就是求绝对值。 15. 以下代码的执行结果为?( ) t=(11,25,36) avg=sum(t)/len(t) print(avg) A、24 B、24.0 C、12 D、12.0 答案:B 试题解析:sum是求和函数,len是计数函数。两者相除就是就平均数,结果为小数。故有(11+25+36)/3等于24.0。 16. Python中十六进制与十进制进行转换时,下列表述错误的是?( ) A、十进制数57转换成十六进制,可以表示成int('57',16) B、十进制数57转换成十六进制,可以表示成hex(57) C、十六进制数39转换成十进制,可以表示成int('39',16) D、十六进制数39转换成十进制,可以表示成0x39 答案:A 试题解析: 17. Python中使用open()函数打开文件完成读的功能,下列说法错误的是?( ) A、readlines()方法是读取文本所有的行,直到文件末尾 B、readline()方法是读取文件的第一行 C、在同一个程序中,多次使用readline()方法后,程序仍读取第一行的内容 D、执行readline()方法后,运行的结果不是列表,而是字符串 答案:C 试题解析: 18. 以下代码执行后,得到的结果为?( ) list1 = [5, 0, 6, 1, 2, 7, 3, 4] print(sorted(list1, reverse=True)) A、[7, 6, 5, 4, 3, 2, 1, 0] B、[0, 1, 2, 3, 4, 5, 6, 7] C、[4, 3, 7, 2, 1, 6, 0, 5] D、[5, 0, 6, 1, 2, 7, 3, 4] 答案:A 试题解析:从代码可知,程序实现功能为从大到小排序,所以结果为A 19. int(7.8)的执行结果是?( ) A、8 B、8.0 C、7 D、7.0 答案:C 试题解析:int只是去掉小数部分,所以结果为7 20. 关于查找的说法,下列说法正确的是?( ) A、顺序查找属于无序查找 B、对分查找一定能找到数据 C、对分查找是一种低效的查找方法 D、顺序查找次数一定比对分查找次数多 答案:A 试题解析:顺序查找和对分不一定能查找到数据。对分查找是一种高效的查找方法。如果数据元素在第一个位置,顺序查找次数不一定比对分查找次数多。 21. 当try子句中没有任何错误时,一定不会执行语句?( ) A、try B、else C、except D、finally 答案:C 试题解析:本试题考察异常处理中的语句用法 22. Python可以通过哪个函数实现字符串数据的格式化处理?( ) A、format B、int C、max D、str 答案:A 试题解析:python中,format()函数实现字符串数据的格式化处理。 23. 以下代码的输出结果是?( ) ls =[] for m in '想念': ? ? for n in '家人': ? ? ? ? ls.append(m+n) print(ls) A、想念家人 B、想想念念家家人人 C、想家想人念家念人 D、['想家', '想人','念家','念人'] 答案:D 试题解析:双循环读取数据存放到列表ls中,最后输出结果。 24. format方法通常用来格式化print的输出格式。以下程序中使用format来输出: 我叫小明,我今年12岁了,则代码中缺失部分应该填写?( ) name="小明" age=12 print("我叫{},我今年{}岁了".format(_________________)) A、age,name B、name,age C、name:age D、age name 答案:B 试题解析:此题比较简单,就是考查字符串format拼接。函数参数,前后对应,逗号隔开即可。 25. 下列数据中,不可能表示十六进制数的是?( ) A、ABC B、17F C、8H5 D、9a01 答案:C 试题解析: 二、判断题(共10题,每题2分,共20分) 26. except语句可以有多个,Python会按except语句的顺序依次匹配你指定的异常。 答案:正确 试题解析:except语句可以有多个,Python会按except语句的顺序依次匹配你指定的异常,如果异常已经处理就不会再进入后面的except语句。 27. any([])函数和any(())函数的结果是False。 答案:正确 试题解析:any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。元素除了是 0、空、FALSE 外都算 TRUE。 28. 利用Python3自带的csv库进行操作,可使用以下程序获取class.csv文件中存储的表头信息,并进行输出。 import csv with open('class.csv') as f: ? ? reader=csv.reader(f) ? ? head_row=next(reader) ? ? print(head_row) 答案:正确 试题解析:import csv with open('class.csv') as f: ? ? reader=csv.reader(f) ? ? head_row=next(reader) ? ? print(head_row) 利用csv库进行文件读取,通过变量读取表头信息并逐项打印 29. 利用csv格式存储二维数据时,每行都是一个一维数据,用逗号分隔,可以有空行。 答案:错误 试题解析:利用csv格式存储二维数据时,每行都是一个一维数据,用逗号分隔,不能有空行 30. 数学老师对小明说:我要计算[4,6,3,2,5,8,7,9]这几个整数的平方,你能帮我编程实现吗? 小明说:两行代码就能实现。程序如下! 请判断,小明的这个程序是否正确。 答案:正确 试题解析:本题综合考查学生对list()与map()函数的掌握情况。答案是正确。 31. 多次使用readline()读取文件,如果要退到文件的起始位置,可以使用seek()实现。 答案:正确 试题解析: 32. Python中使用print函数输出时,输出完毕默认会换行,不能通过修改参数改为其它间隔方式。 答案:错误 试题解析:print函数中使用end参数可以指定换行之外的其它间隔符,如Tab等。 33. 十六进制与八进制数值之间的转换,常常借助二进制或者十进制作为中间的桥梁。 答案:正确 试题解析: 34. 同一个整数分别用十六进制和八进制表示后,数值一定不相等。 答案:错误 试题解析: 35. 语句print("a","b","c",sep=",")的输出结果是:"a" ?"b" ?"c"。 答案:错误 试题解析:print("a","b","c",sep=",")的结果是a,b,c 三、编程题(共3题,共30分) 36. 法定节假日是根据各国、各名族的风俗习惯或纪念要求,由国家法律统一规定的用以进行庆祝及度假的休息时间。 法定节假日制度是国家政治、经济、文化制度的重要反映,涉及经济社会的多个方面,涉及广大人民群众的切身利益。 法定节假日的休假安排,为居民出行购物和休闲提供了时间上的便利,为拉动内需、促进经济增长做出了积极贡献。 给出一个2020年的节假日的放假日期CSV文件(vacations.csv),内容示例如下: ? 以第1行为例,1230表示12月30日,0101表示1月1日。 代码功能为:读入CSV文件中数据,获得用户输入。根据用户输入的节假日名称,输出此节假日的假期范围。请补全代码。 fi=open("/data/①? ? ?","r") ls=[] for line in fi: ? ? ls.append(line.strip("\n").split(",")) fi.close() s=input("请输入节假日名称:") for line in ls: ? ? if ? ? ? ?②? ? ? ??: ? ? ? ? print("{}的假期位于{}-{}之间".format(line[1], line[2], line[3])) 答案: 参考答案: ①? ?vacations.csv? ?(2分) ②? ?s == line[1]? ? ?(2分) 试题解析:fi=open("vacations.csv","r") ls=[] for line in fi: ? ? ls.append(line.strip("\n").split(",")) fi.close() s=input("请输入节假日名称:") for line in ls: ? ? if s == line[1]: ? ? ? ? print("{}的假期位于{}-{}之间".format(line[1], line[2], line[3])) 37. 尊老王国有一个默认规则,排队必须遵守年长的在前,年幼的在后。一支正要出城的队伍,请帮助他们顺利出城。 ? ????输入: ????15、78、96、45、36 ????输出 ????[96, 78, 45, 36, 15] ????[3, 2, 4, 5, 1] 请在划线处补全代码,实现以上功能 s = input() x= s.split('、') a = [] b = [] n = 0 for i in range(0, len(x)): ??? a.append(int(x[i])) ??? n = ___________ ??? b.append(n) for i in range(n-1): ??? for j in range(i+1, n): ??????? if (__________): ??????????? _________________ ??????????? b[i], b[j] = b[j], b[i] print(a) print(b) 答案: 参考答案: ① n+1(5分) ② a[i] <a[j](5分) ③ a[i], a[j] = a[j], a[i](6分) 试题解析: s = input() x= s.split('、') a = [] b = [] n = 0 for i in range(0, len(x)): ? ? a.append(int(x[i])) ? ? n = n + 1 ? ? b.append(n) for i in range(n-1): ? ? for j in range(i+1, n): ? ? ? ? if (a[i] <a[j]): ? ? ? ? ? ? a[i], a[j] = a[j], a[i] ? ? ? ? ? ? b[i], b[j] = b[j], b[i] print(a) print(b) 38. 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 n = int(input('请输入总人数:')) num = [] for i in range(n): ? ? num.append(? ? ①? ??) i = 0 k = 0 m = 0 while m < n - 1: ? ? if ? ? ②? ??: k += 1 ? ? if k == 3: ? ? ? ? num[i] = 0 ? ? ? ? k = 0 ? ? ? ?? ? ③? ?? ? ? i += 1 ? ? if i == n : i = 0 i = 0 while num[i] == 0:i += 1 print(? ? ④? ??) 答案: 参考答案: ①? ?i + 1? ? ? ? ? ? (3分) ②? num[i] != 0? ?(2分) ③? ?m += 1? ? ? ? (3分) ④? ?num[i]? ? ? ? ?(2分) 试题解析:n = int(input('请输入总人数:')) num = [] for i in range(n): ? ? num.append(i + 1) i = 0 k = 0 m = 0 while m < n - 1: ? ? if num[i] != 0 : k += 1 ? ? if k == 3: ? ? ? ? num[i] = 0 ? ? ? ? k = 0 ? ? ? ? m += 1 ? ? i += 1 ? ? if i == n : i = 0 i = 0 while num[i] == 0:i += 1 print(num[i]) ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/15 15:57:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |