09 202303青少年软件编程(Python)等级考试试卷(二级)

标签:
普通文字版答案
2024-11-01
| 14页
| 121人阅读
| 3人下载

内容正文:

青少年软件编程(Python)等级考试试卷(二级) 202303真题与解析 分数:100  题数:37 测试时长:60分钟 一、单选题(共 25 题,每题 2 分,共 50 分) 1、下列说法正确的是?( ) A. {123: 'a', 'a': 123}不是一个合法的字典 B. 数字、字符串、列表和元组都可以作为字典的键 C. {(12, 34, 'a'): 'a', 'a': 5678}是一个合法的字典 D. 字典中的内容一经创建就不能再修改 2、下列程序的运行结果是?( ) d1 = dict(age=18) print(d1) A. (age=18) B. [age=18] C. age = 18 D. {'age': 18} 3、datas = {'Name': 'XiaoMing', 'No': '1001', 'Age': '14', 'School': 'ShiYan XueXiao'},表达式len(datas)的值是?( ) A. 8 B. 6 C. 4 D. 2 4、下列哪个是一个合法的列表?( ) A. (191, 98, 1, 0) B. "1919,810" C. [19, 19, 8, 10] D. {19, '19', 8, 10} 5、运行下列程序,输出的结果是?( ) list4 = ['1', 3, '5', 7, '2,3'] list4.append('7') print(len(list4)) A. 4 B. 5 C. 6 D. 7 6、已知 list7 列表list7 = [-3, 6, 3, 7, 5, -4, 10],执行sort()方法对此列表进行排序之后,list7 列表的第二个元素是?( ) A. -2 B. -3 C. 2 D. 5 7、已知列表list9 = [11, 4, 514, 191, 9, 81, 0],下列说法错误的是?( ) A. print(min(list9))可以输出列表的最小值,输出结果为 0 B. print(max(list9))可以输出列表的最大值,输出结果为 514 C. print(list9.index(191))可以输出数值 191 第一个匹配项的索引位置,输出结果为 3 D. list9.remove()可以移除列表中的最后一个元素 8、下列说法正确的是?( ) A. '0123456'是一个长度为 6 的字符串 B. 在 Python 中,可以用乘号'*'把两个字符串连接起来 C. 'What's this?'是一个合法的字符串 D. '*'是一个合法的字符串 9、下列说法错误的是?( ) A. while 语句通常用于重复执行某一段程序 B. break 语句可以跳出 for 和 while 的循环体 C. 在 Python 中可以使用 do..while 循环 D. if 语句通常用于执行条件判断 10、运行下列程序,共计输出了几个 banana?( ) for i in range(3, 9, 3): print("banana") A. 1 B. 2 C. 3 D. 4 11、运行下列程序,输出的结果是?( ) x = 0; y = 0; a = 2023 for i in range(a): if ((i % 2) == 0): x = x - 1 else: y = y + 1 print(x + y) A. -1 B. 1 C. 0 D. 2023 12、已知ls = [20, 30, 50, 10, 90],以下选项中,不能删除元素 90 的是?( ) A. ls.pop(-1) B. del ls[-1] C. ls.remove(ls[-1]) D. ls.remove(-1) 13、下列代码的输出结果是?( ) ls = [2023, 'Happy', ['Good', 'Luck']] print(ls[2][1]) A. Happy B. Good C. Luck D. o 14、下列程序的输出结果是?(注意:0 后面是两个单引号'',并非双引号)( ) ls = [0, '', {}, None, (), [], 'empty'] print(len(ls)) A. 2 B. 3 C. 6 D. 7 15、ls = ['富强', '民主', '文明', '和谐', '自由', '平等', '公正', '法治'],下列切片结果为['和谐', '平等']的选项是?( ) A. ls[-5:-2:-2] B. ls[-5:-2:2] C. ls[4:-3:1] D. ls[4:-2:2] 16、下列代码的执行结果是?( ) mylist = ['Failure', 'is', 'the', 'mother', 'of', 'success'] for x in mylist[:]: if len(x) <= 3: mylist.append(x) print(mylist) A. ['Failure', 'is', 'the', 'mother', 'of', 'success'] B. ['Failure', 'is', 'the', 'mother', 'of', 'success', 'of', 'is'] C. ['Failure', 'is', 'the', 'mother', 'of', 'success', 'is', 'of'] D. ['Failure', 'is', 'the', 'mother', 'of', 'success', 'is', 'the', 'of'] 17、创建元组错误的是?( ) A. tp = ('a',) B. tp = ('', [], 20) 备注:这里是单引号 C. tp = (25) D. tp = 1, 2, 3 18、列表和元组都是序列对象,列表和元组的区别是?( ) A. 元组的元素只能是不可变数据类型,例如:整型、浮点型、字符串、元组 B. 元组一旦创建不可以修改 C. 列表可以切片,元组不能切片 D. 元组之间的元素不能用逗号进行分隔 19、请问下列四个表达式中,哪个表达式的值与其他三个表达式的值不同?( ) A. '字符串' + '运算' B. ''.join(['字符串', '运算']) C. '字符串运算' * 1 D. '字符串' - '运算' 20、Python 解释器中执行如下代码的结果是?( ) '{2},{0},{1}'.format('You', 'need', 'Python') A. 'Python, need, You' B. 'Python,You,need' C. 'need,You,Python' D. 'need,Python,You' 21、下列代码执行的结果是?( ) dic = {'聊天机器人': 'GhatGPT', '搜索引擎': '百度', '浏览器': 'Google'} for x in dic: print(x, end=' ') A. GhatGPT 百度 Google B. 聊天机器人 搜索引擎 浏览器 C. ['GhatGPT', '百度', 'Google'] D. [('聊天机器人', 'GhatGPT'), ('搜索引擎', '百度'), ('浏览器', 'Google')] 22、不能输出0~10之间所有奇数的程序是?( ) A. a = 0 while a < 10: if a % 2 == 0: a = a + 1 continue print(a, end=' ') a = a + 1 B. for a in range(0, 11): if a % 2 != 1: continue print(a, end=' ') C. for a in range(0, 11): if a % 2 == 0: continue print(a, end=' ') D. a = 0 while a < 10: if a % 2 == 1: break a = a + 1 print(a) 23、程序运行时,输入 60,程序执行的结果是?( ) a = int(input()) if a < 10: res = a + 2 elif a < 50: res = a - 2 elif a < 80: res = a * 2 else: res = a // 2 print(res) A. 62 B. 58 C. 120 D. 30 24、以下代码运行后t的值是?( ) n, t = 10, 0 while n != 0: n = n - 1 t = t + n A. 36 B. 45 C. 50 D. 55 25、已知元组tup2 = (114, 5, 14, 191, 9810),下列说法错误的是?( ) A. print(tup2[1:-2])可以截取元组的一部分,输出的结果为(5, 14) B. print(tup2[2:])可以截取元组的一部分,输出的结果为(5, 14, 191, 9810) C. print(tup2[2:3])可以截取元组的一部分,输出的结果为(14,) D. print(tup2[3])可以访问元组的第四个元素,输出的结果为191 二、判断题(共 10 题,每题 2 分,共 20 分) 26、pop()方法可以清空列表。( ) 27、元组要用方括号[]括起来。( ) 28、(152, 4.06, '20&#!^*3', '4.(..$57!')是一个合法的元组。( ) 29、执行print("\'he" in "\'hello world\\")的输出结果为True。( ) 30、if语句的条件后面要使用花括号{}表示接下来是满足条件后要执行的语句块。( ) 31、break 语句不能在循环体之外使用。( ) 32、字符串和元组是不可变对象,列表和字典是可变对象。( ) 33、下列程序段中循环一共执行了 6 次。( ) for i in range(10, -1, -2): print(i) 34、if语句的表达式为空字符串、空列表、空元组、空字典和数字 0 都等价于False。( ) 35、字典值可以是任何的 Python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。( ) 三、编程题(共 2 题,共 30 分) 36、某快递公司对于邮寄的包裹有尺寸要求,必须满足以下条件: 每件包裹的长、宽、高之和须小于或等于 200 厘米,且任意一边长度必须小于或等于 80 厘米。(假设所有包裹都是长方体) 编写一个重复执行的程序,可以实现自动判断包裹是否符合要求。 具体要求如下: (1)用户以厘米为单位按顺序分别输入包裹的长、宽、高(用户只输入大于零的数字,不输入长度单位,可以输入小数;分多次输入还是一次输入不做要求); (2)程序自动判断用户输入的包裹尺寸是否满足此快递公司的要求; (3)如果满足要求,就输出"可以邮寄"; (4)如果不满足要求,就输出"不可以邮寄"; (5)重复以上操作。 37、编写程序帮老师对英语试卷中的英文字母、数字和其他字符(注意:包括空格)进行分类并统计每种字符的数量。 输入样例: **Welcome to 2023~! 输出样例: 字母:Welcometo,共9个 数字:2023,共4个 其它字符:** ~!,共6个 参考答案及解析: 一、单选题答案及解析 1. C - 解析:A选项,{123: 'a', 'a': 123}是合法的字典;B选项,只有不可变类型(如数字、字符串、元组)可以作为字典的键,列表不能作为字典的键;D选项,字典中的内容可以修改。C选项中,字典的键可以是元组,值可以是整数,是合法的字典。 2. D - 解析:`dict(age=18)`创建了一个字典,键为'age',值为18,输出结果为`{'age': 18}`。 3. C - 解析:字典`datas`中有四个键值对,所以`len(datas)`的值是4。 4. C - 解析:A选项是元组;B选项是字符串;D选项是集合。只有C选项是合法的列表形式。 5. C - 解析:列表`list4`原本有5个元素,`append('7')`后增加一个元素,长度变为6。 6. B - 解析:`sort()方法会对列表的对象进行排序,默认按从小到大的顺序排序。排序后的结果为[-4,-3,3,5,6,7,10],第二个元素是-3. 7. D - 解析:`list9.remove()`语法错误,应该传入要移除的元素值,而不是无参数调用。A、B、C选项说法正确。 8. D - 解析:A选项,'0123456'是一个长度为7的字符串;B选项,在 Python 中,不能用乘号'*'把两个字符串连接起来;C选项,'What's this?'字符串中包含单引号,会导致语法错误。D选项,'*'是一个合法的字符串。 9. C - 解析:Python 中没有`do..while`循环。A选项,`while`语句通常用于重复执行某一段程序;B选项,`break`语句可以跳出`for`和`while`的循环体;D选项,`if`语句通常用于执行条件判断。 10. B - 解析:`range(3, 9, 3)`生成3、6,遍历输出两次"banana"。 11. A - 解析:通过观察代码可以发现,当a为大于0的奇数时,x与y的和始终等于-1,当a为大于0的偶数时,x与y的和始终等于0。因为2023是奇数,所以答案为-1. 12. D - 解析:`ls.remove(-1)`会报错,因为列表中没有值为-1的元素。A、B、C选项都可以删除元素90。 13. C - 解析:`ls[2][1]`表示访问列表`ls`中索引为2的元素(即`['Good', 'Luck']`),再取这个列表中的索引为1的元素,结果为'Luck'。 14. D - 解析:ls = [0, '', {}, None, (), [], 'empty']这个列表中一共有 7 个元素,分别是数字 0、空字符串、空字典、None、空元组、空列表和字符串 'empty'。len(ls)函数用于计算列表的长度,所以输出结果为 7,答案是 D。 15. B - 解析:A 选项ls[-5:-2:-2],从后往前以步长为 -2 切片,得不到 [' 和谐 ', ' 平等 ']。 B 选项ls[-5:-2:2],从索引 -5 到索引 -2(不包括 -2),步长为 2,得到 [' 和谐 ', ' 平等 ']。 C 选项ls[4:-3:1],得不到 [' 和谐 ', ' 平等 ']。 D 选项ls[4:-2:2],得不到 [' 和谐 ', ' 平等 '],答案是 B。 16. D - 解析:此题循环获取列表mylist的全切片后判断每个元素的长度,长度小于并等于3时,添加到mylist中,因此结果为['Failure', 'is', 'the', 'mother', 'of', 'success', 'is', 'the', 'of']. 17. C - 解析:创建元组时,如果只有一个元素,需要在元素后添加逗号,选项C创建的是整数25,不是元组。A、B、D选项都是正确的创建元组的方式。 18. B - 解析:元组一旦创建不可以修改,A选项元组的元素可以是不可变数据类型,但不是只能是这些类型;C选项元组也可以切片;D选项元组之间的元素可以用逗号进行分隔。 19. D - 解析:A选项和B选项都是字符串连接操作;C选项是重复字符串一次;D选项字符串不能进行减法运算,会报错。 20. B - 解析:`'{2},{0},{1}'.format('You', 'need', 'Python')`根据索引进行格式化,结果为'Python,You,need'。 21. B - 解析:遍历字典,只输出键,结果为“聊天机器人 搜索引擎 浏览器”。 22. D - 解析:选项D中`if a % 2 == 1:`时就`break`跳出循环了,不能输出0~10之间所有奇数。A、B、C选项都能输出0~10之间所有奇数。 23. C - 解析:输入60,满足`a < 80`条件,执行`res = a * 2`,结果为120。 24. B - 解析:循环中每次`n`减1,`t`加上当前的`n`,从10到1依次累加,结果为45。 25. B - 解析:print(tup2[2:])可以截取元组的一部分,输出的结果为(14,191,9810) 二、判断题答案及解析 26. × - 解析:`pop()`方法是移除列表中的一个元素并返回该元素的值,不能清空列表。`clear()`方法可以清空列表。 27. × - 解析:元组是用小括号`()`括起来,列表是用方括号`[]`括起来。 28. √ - 解析:元组可以包含不同类型的元素,这个元组是合法的。 29. √ - 解析:`'\'he' in '\'hello world\\'`判断字符串`'\'he'`是否在`'\'hello world\\'`中,是存在的,所以输出结果为`True`。 30. × - 解析:`if`语句的条件后面用冒号`:`表示接下来是满足条件后要执行的语句块,不是花括号`{}`。 31. √ - 解析:`break`语句只能在循环体中使用,不能在循环体之外使用。 32. √ - 解析:字符串和元组是不可变对象,一旦创建不能修改其内容;列表和字典是可变对象,可以修改其内容。 33. √ - 解析:`range(10, -1, -2)`生成10、8、6、4、2、0,循环一共执行了6次。 34. √ - 解析:在 Python 中,空字符串、空列表、空元组、空字典和数字 0 在条件判断中都等价于`False`。 35. √ - 解析:在 Python 中,字典的键必须是可哈希的对象,通常为不可变类型,如整数、字符串、元组(其中的元素也必须是不可变类型)等;而字典的值可以是任何 Python 对象,包括标准对象和用户自定义对象。 三、编程题解析 36. 参考代码: while True: # 创建一个无限循环,使程序可以不断重复运行 a = float(input('请输入长(厘米):')) # 获取用户输入的长度值,并转换为浮点数类型赋值给变量 a b = float(input('请输入宽(厘米):')) # 获取用户输入的宽度值,并转换为浮点数类型赋值给变量 b c = float(input('请输入高(厘米):')) # 获取用户输入的高度值,并转换为浮点数类型赋值给变量 c sum = a + b + c # 计算长、宽、高之和,赋值给变量 sum if sum <= 200 and a <= 80 and b <= 80 and c <= 80: # 判断长、宽、高之和是否小于等于 200,并且长、宽、高各自是否小于等于 80 print('可以邮寄') # 如果满足条件,输出可以邮寄 else: print('不可以邮寄') # 如果不满足条件,输出不可以邮寄 总结:这段 Python 代码实现了一个不断重复的程序,要求用户输入的包裹长、宽、高(单位为厘米),然后计算长、宽、高之和,并判断是否满足满足快递公司的尺寸要求即总和小于等于 200 且长、宽、高各自小于等于 80 的条件。如果满足条件,输出“可以邮寄”;否则,输出“不可以邮寄”。通过无限循环,用户可以多次输入不同的尺寸进行判断。 37. 参考代码: s = input() # 获取用户输入的字符串并赋值给变量 s letter = '' # 创建一个空字符串 letter,用于存储字母 number = '' # 创建一个空字符串 number,用于存储数字 other = '' # 创建一个空字符串 other,用于存储其他字符 for i in s: # 遍历用户输入的字符串 s 中的每个字符 i if i >= 'a' and i <= 'z' or i >= 'A' and i <= 'Z': # 如果字符 i 是小写字母(a 到 z)或者大写字母(A 到 Z) letter += i # 将字符 i 添加到 letter 字符串中 elif i >= '0' and i <= '9': # 如果字符 i 是数字(0 到 9) number += i # 将字符 i 添加到 number 字符串中 else: # 如果字符 i 既不是字母也不是数字 other += i # 将字符 i 添加到 other 字符串中 print('字母:{},共{}个'.format(letter, len(letter))) # 输出字母及其数量,使用 format 方法格式化输出字符串 print('数字:{},共{}个'.format(number, len(number))) # 输出数字及其数量 print('其它字符:{},共{}个'.format(other, len(other))) # 输出其他字符及其数量 总结:这段 Python 代码的功能是对用户输入的字符串进行分类,将其中的字母、数字和其他字符分别存储到不同的字符串中,并统计每种类型字符的数量,最后输出分类结果和数量。通过遍历输入字符串中的每个字符,根据字符的范围判断其类型,然后进行相应的处理。 学科网(北京)股份有限公司 $$

资源预览图

09 202303青少年软件编程(Python)等级考试试卷(二级)
1
09 202303青少年软件编程(Python)等级考试试卷(二级)
2
09 202303青少年软件编程(Python)等级考试试卷(二级)
3
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。