05 202203青少年软件编程(Python)等级考试试卷(二级) 二级真题

标签:
普通文字版答案
2024-11-01
| 13页
| 108人阅读
| 1人下载

内容正文:

青少年软件编程(Python)等级考试试卷(二级) 202203真题与解析 分数:100  题数:37 测试时长:60分钟 一、单选题(共25题,每题2分,共50分) 1.关于Python中的列表,下列描述错误的是?( ) A.列表是Python中内置可变序列,是若干元素的有序集合; B.列表中的每一个数据称为“元素”; C.在Python中,一个列表中的数据类型可以各不相同; D.可以使用s[1]来获取列表s的第一个元素。 2.已知列表a=[1,3,5,7],下列语句无法将a变成a=[1,3,5,7,9]的是?( ) A.a.append(9) B.a=[1,3,5,7,9] C.a.insert(4,9) D.a[4]=9 3.关于以下代码段的说法错误的是?( ) a = [1, 2, 5, 4, 3] a.sort(reverse=True) print(a) A.a.sort(reverse=True)语句中的reverse默认值为False。 B.a.sort(reverse=True)语句中的reverse=True,代码运行结果不变。 C.将以上代码的a.sort(reverse=True)改为a=sorted(a,reverse=True),代码运行结果和原题的结果一样。 D.以上代码运行结果为:[5, 4, 3, 2, 1]。 4.下面程序的运行结果是?( ) a=80 b=70 if a>b: a,b=b,a print(a,b) A.70 70 B.80 70 C.70 80 D.80 80 5.以下关于元组的描述正确的是?( ) A.元组和列表相似,所有能对列表进行的操作都可以对元组进行 B.创建元组时,若元组中仅包含一个元素,在这个元素后可以不添加逗号 C.元组中的元素不能被修改 D.多个元组不能进行连接 6.以下程序的输出结果是?( ) tuple1 = (1,2,3) tuple2 = (2) print(tuple1*tuple2) A.(1,2,3) B.(1,2,3,1,2,3) C.(2,4,6) D.报错 7.以下代码的输出结果是?( ) ls = [] for m in '想念': for n in '家人': ls.append(m+n) print(ls) A.["想念","家人"] B.["想想","念念","家人"] C.["想家想","人念家","念人"] D.["想家", "想人", "念家", "念人"] 8.以下程序的输出结果是?( ) lt = ['绿茶','乌龙茶','红茶','白茶','黑茶'] ls = lt ls.clear() print(lt) A.[] B.变量未定义的错误 C.['绿茶','乌龙茶','红茶','白茶','黑茶'] D.'绿茶','乌龙茶','红茶','白茶','黑茶' 9.下面代码的输出结果是?( ) list1 = [1,2,3] list2 = [4,5,6] print(list1+list2) A.[4,5,6] B.[1, 2, 3, 4, 5, 6] C.[1,2,3] D.[5,7,9] 10.字符串str="maixnm"包含"min"和"max"两个单词,下面哪个操作不能将"min"从中找出来?( ) A.str1=str[0]+str[2]+str[4] B.str1=str[0:-1:2] C.str1=str[::2] D.str1=str[0:4:2] 11.cat=['fat','black','cloud'],则cat.index('black')的值为?( ) A.1 B.2 C.3 D.0 12.3年级2班的学生花名册被存储在一个列表name中,如何快速得到该班级学生的总人数?( ) A.print(sum(name)) B.print(len(name)) C.print(min(name)) D.print(max(name)) 13.小张的爸爸每个月都有绩效工资,绩效工资根据业绩被分为1200、1400和1600三个等级,小张把爸爸每个月的绩效工资都记录在了一个money的列表中,如何能快速得到小张爸爸得到1600元绩效的次数?( ) A.money.index(1600) B.money.count(1600) C.money.remove(1600) D.money.insert(0,1600) 14.name=('Jerry',),则name的数据类型是?( ) A.字符串 B.元组 C.列表 D.其他类型 15.d1={'学科':'语文','班级':'2班','最高分':99} d2={'学科':'数学','班级':'2班','最高分':100} d1.update(d2) print(d1) 以上代码的运行结果为?( ) A.{'学科':'语文','班级':'2班','最高分':99} B.{'学科':'语文','班级':'2班','最高分':100} C.{'学科':'数学','班级':'2班','最高分':100} D.{'学科':'数学','班级':'2班','最高分':99} 16.小明用一个字典d={'语文':88,'数学':92,'英语':'96'}来储存他的期末考试成绩。则小明的总分是?( ) A.s=0 for i in d.values(): s=s+int(i) print(s) B.s=0 s=sum((d.values()) print(s) C.s=0 while i<len(d):< p=""> s=s+int(d.values()) print(s) D.s=0 for i in d(): s=s+int(i.values()) print(s) 17.如果要计算1*2*3*4*5*6*7*8*9则下列程序代码正确的是?( ) A. s=0 for i in range(1,10): s=s*i print(s) B. s=0 for i in range(1,9): s=s*i print(s) C. s=1 for i in range(1,10): s=s*i print(s) D. s=1 for i in range(1,9): s=s*i print(s) 18.执行下列代码后,运行结果是?( ) d={'1':1,'2':2,'3':3,'4':4} b=d b['2']=5 print(d['2']+b['2']) A.4 B.5 C.7 D.10 19.若dic_color={'red':'红色','green':'绿色','gold':'金色','brown':'棕色','purple':'紫色'},以下选项中能够输出'金色'的是?( ) A.print(dic_color['gold']) B.print(dic_color['金色']) C.print(dic_color[2]) D.print(dic_color.values[2]) 20.以下程序执行的结果是?( ) a=0 b=5 Sum=0 for i in range(3): if a>0: Sum+=a a+=1 elif b>1: Sum+=b a+=1 b+=1 print(Sum) A.7 B.9 C.11 D.12 21.想得到的输出为"My name is Kevin and I am 10 years old."以下选项正确的是?( ) A.print('My name is %s and I am %d years old.',%('Kevin',10)) B.print('My name is %s and I am %d years old.'%('Kevin',10)) C.print('My name is %c and I am %d years old.'%('Kevin',10)) D.print('My name is %s and I am %d years old.'%',Kevin',%10)) 22.编写一段猜密码程序,只允许猜三次,当猜中密码时,提示“密码正确”,程序退出。当输入密码错误时,提示“密码错误”,并提示剩余次数。程序空白处应填写的条件是?( ) A.abc>0 B.abc>=0 C.abc==0 D.abc!=3 23.已知a=list(range(10)),执行以下指令后,a的值会变成?( ) a[:2]=[5] a.pop(5) a.remove(5) A.[2, 3, 4, 5, 7, 8, 9] B.[2, 3, 4, 7, 8, 9] C.[2, 3, 4, 6, 7, 8, 9] D.[5, 2, 3, 4, 5, 7, 8, 9] 24.以下选项中,不能用于表示分支结构的python函数是?( ) A.if B.else C.in D.elif 25.执行以下程序 a=range(1,10) for i in a: if i%2 == 0: print(i) 运行结果为?( ) A.1 3 5 7 9 B.1 4 7 C.2 4 6 8 D.2 5 7 9 二、判断题(共10题,每题2分,共20分) 26.已知Money=8.6675 , print("工资{0:.2f}".format(Money)),结果是:"工资8.67".( ) 27.在使用format()函数对字符串进行格式化时,参数索引从1开始.( ) 28.while语句只能用于未知次数的循环,for语句只能用于循环次数己知的循环.( ) 29.t=(1,2,3,4,2),则print(t.index(2))的运行结果为1.( ) 30.若s=(1,2,3,4,5),则执行s.remove(5)语句后,s的值是(1,2,3,4).( ) 31.Python语言用缩进来标识语句块,同一级语句块中的语句具有相同的缩进量.( ) 32.表达式[3] in [1,2,3]的值为True.( ) 33.break语句执行后,将跳出程序所有的循环,程序结束.( ) 34.字典中的键和值必须用冒号隔开,同一个字典中的所有键都必须是唯一的.( ) 35.以下程序的运行结果为 5() a=6 b=5 if a>b: print(a) else: print(b) 三、编程题(共2题,共30分) 36.实现统计字符串中的单词和单词出现的次数: 要求如下: (1)统计的语句为:to be or not to be that is a question (2)要求统计该句中出现的所有单词和其出现次数。 (3)使用字典进行输出,格式如下(注意:排列顺序可以不一致,但是统计的次数要正确): {'to': 2, 'be': 2, 'or': 1, 'not': 1, 'is': 1, 'a': 1, 'question': 1, 'that': 1} 37.可以对任何一个自然数进行若干次运算,最终都可以变为1。 运算规则如下: (1)若该数是偶数,则变为原数的一半; (2)若该数是奇数,则变为原数的3倍加1; (3)重复(1)(2),直到该数变为1。 编写程序实现如下功能:输入一个大于1的自然数,计算按照上述方法最终变换为1共经过的变换次数,并输出变换次数。(输出格式为:直接输出次数即可) 示例1:若输入自然数8,则输出结果为:3。 示例2:若输入自然数5,则输出结果为:5。 参考答案及解析: 一、单选题答案及解析 1. D - 解析:可以使用`s[0]`来获取列表`s`的第一个元素,选项 D 错误。A、B、C 选项对列表的描述正确。 2. D - 解析:选项 D,若列表`a=[1,3,5,7]`,`a[4]=9`会报错,因为索引 4 超出了列表的范围。A 选项`append(9)`在列表末尾添加元素 9;B 选项直接重新赋值列表;C 选项`insert(4,9)`在索引 4 处插入元素 9。 3. B - 解析:`a.sort(reverse=True)`中的`reverse=True`会使列表降序排列,与默认值`False`(升序排列)结果不同,选项 B 错误。A 选项`reverse`默认值为`False`正确;C 选项`sorted(a,reverse=True)`也能实现降序排列,结果与原题一样正确;D 选项代码运行结果为`[5, 4, 3, 2, 1]`正确。 4. C - 解析:如果`a>b`,则交换`a`和`b`的值,所以结果为`70 80`。 5. C - 解析:元组中的元素不能被修改,选项 C 正确。A 选项并非所有对列表进行的操作都可以对元组进行,元组是不可变的;B 选项创建元组时,若元组中仅包含一个元素,在这个元素后必须添加逗号;D 选项多个元组可以进行连接。 6. B - 解析:`tuple2 = (2)`创建的不是元组,而是整数 2,是对元组进行复制,所以选B。 7. D - 解析:两层循环遍历“想念”和“家人”,将两个字符组合添加到列表中,结果为`["想家", "想人", "念家", "念人"]`。 8. A - 解析:`ls = lt`使得`ls`和`lt`指向同一个列表,`ls.clear()`清空了这个列表,所以`lt`也为空,结果为`[]`。 9. B - 解析:列表相加是将两个列表的元素合并在一起,结果为`[1, 2, 3, 4, 5, 6]`。 10. D - 解析:str[0:4:2]表示从索引 0 开始到索引 3(不包括索引 4),步长为 2 进行切片。对于字符串 “maixnm”,str[0:4]=maix,按照这个切片操作,会得到 “mi”。 11. A - 解析:`cat.index('black')`返回'black'在列表中的索引,为 1。 12. B - 解析:`print(len(name))`可以快速得到列表`name`的长度,即班级学生的总人数。选项 A,`sum(name)`用于对可迭代对象的数值求和;选项 C,`print(min(name))`返回列表中的最小值;选项 D,`print(max(name))`返回列表中的最大值。 13. B - 解析:`money.count(1600)`可以快速得到列表`money`中值为 1600 的元素的个数,即小张爸爸得到 1600 元绩效的次数。选项 A,`money.index(1600)`返回列表中第一个值为 1600 的元素的索引;选项 C,`money.remove(1600)`移除列表中第一个值为 1600 的元素;选项 D,`money.insert(0,1600)`在列表的开头插入元素 1600。 14. B - 解析:`name=('Jerry',)`创建了一个元组,数据类型是元组。 15. C - 解析:`d1.update(d2)`将字典`d2`的键值对更新到字典`d1`中,结果为`{'学科':'数学','班级':'2班','最高分':100}`。 16. A - 解析:遍历字典`d`的`values`,将值转换为整数并累加求和,选项 A 正确。选项 B,`sum((d.values()))`语法错误;选项 C,循环条件错误;选项 D,语法错误。 17. C - 解析:计算 1*2*3*4*5*6*7*8*9,初始值`s`应为 1,循环范围应为`range(1,10)`,选项 C 正确。 18. D - 解析:`b=d`使得`b`和`d`指向同一个字典,修改`b['2']=5`后,字典`d`中的值也改变,所以`d['2']+b['2'] = 5 + 5 = 10`。 19. A - 解析:`print(dic_color['gold'])`可以输出键为'gold'的值,即'金色'。选项 B,`print(dic_color['金色'])`键错误;选项 C,`print(dic_color[2])`索引错误;选项 D,`print(dic_color.values[2])`语法错误。 20. B - 解析: 初始化`a = 0`,`b = 5`,`Sum = 0`。 第一次循环,因`a > 0`不成立,执行`Sum += b`后`Sum = 5`,再`a += 1`。 第二次循环,`a > 0`成立,`Sum += a`后`Sum = 6`,`a += 1`,`b += 1`。 第三次循环,`a > 0`成立,`Sum += a`后`Sum = 9`,`a += 1`,`b += 1`。 答案是 B。 21. B - 解析:字符串格式化正确的用法是`print('My name is %s and I am %d years old.'%('Kevin',10))`。选项 A 缺少括号;选项 C,`%c`用于格式化字符,错误;选项 D 语法错误。 22. A - 解析:对于猜密码程序,通常设置一个计数器来记录剩余次数。初始时通常设为 3,每次猜错减 1,当计数器为 0 时停止猜测。 23. A - 解析:首先,a = list(range(10))即a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]。 执行a[:2]=[5]后,a = [5, 2, 3, 4, 5, 6, 7, 8, 9]。 执行a.pop(5)后,a = [5, 2, 3, 4, 5, 7, 8, 9]。 执行a.remove(5)后,a = [2, 3, 4, 5, 7, 8, 9]。 答案是 A。 24. C - 解析:`in`是用于判断元素是否在序列中的运算符,不能用于表示分支结构。`if`、`else`、`elif`可以用于表示分支结构。 25. C - 解析:循环遍历`range(1,10)`,当`i%2 == 0`时输出`i`,即输出偶数,结果为`2 4 6 8`。 二、判断题答案及解析 26. √ - 解析:`format(Money)`格式化浮点数保留两位小数,结果为“工资 8.67”。 27. × - 解析:在使用`format()`函数对字符串进行格式化时,参数索引从 0 开始。 28. × - 解析:`while`语句和`for`语句都可以用于已知次数和未知次数的循环,具体使用取决于实际情况。 29. √ - 解析:`t.index(2)`返回第一个值为 2 的元素的索引,结果为 1。 30. × - 解析:元组是不可变的,不能执行`s.remove(5)`操作。 31. √ - 解析:Python 语言用缩进来标识语句块,同一级语句块中的语句具有相同的缩进量。 32. × - 解析:`[3]`是一个列表,`[1,2,3]`也是一个列表,`[3] in [1,2,3]`的值为`False`。 33. × - 解析:`break`语句执行后,将跳出当前最内层的循环,不是跳出程序所有的循环。 34. √ - 解析:字典中的键和值必须用冒号隔开,同一个字典中的所有键都必须是唯一的。 35. × - 解析:`a=6`,`b=5`,因为`a>b`,所以输出`a`的值为 6。 三、编程题解析 36. 参考代码: s = "to be or not to be that is a question"# 定义一个字符串,包含多个英文单词 words = s.split()# 使用 split 方法将字符串按空格分割成单词列表 word_count = {}# 创建一个空字典,用于存储单词及其出现次数 for word in words:# 遍历单词列表中的每个单词 if word in word_count: # 如果单词已经在字典中,说明该单词已出现过 word_count[word] += 1 # 将该单词的出现次数加一 else: word_count[word] = 1 # 如果单词不在字典中,将其添加到字典中,并初始化为出现次数为 1 print(word_count)# 打印出统计结果,即每个单词及其出现次数组成的字典 总结:这段 Python 代码的功能是统计给定字符串中每个单词出现的次数,并以字典的形式输出结果。首先将字符串分割成单词列表,然后通过遍历单词列表,利用字典的特性来统计每个单词的出现次数。如果单词已经在字典中,就增加其出现次数;如果单词不在字典中,就将其添加到字典中并初始化为出现次数为 1。 37. 参考代码: n = int(input()) # 从用户输入获取一个大于 1 的自然数,并转换为整数类型赋值给变量 n count = 0 # 初始化变换次数计数器为 0 while n!= 1: # 当 n 不等于 1 时,持续进行循环 if n % 2 == 0: # 如果 n 是偶数 n = n // 2 # 将 n 变为原数的一半(整数除法) else: # 如果 n 是奇数 n = n * 3 + 1 # 将 n 变为原数的 3 倍加 1 count += 1 # 每次循环,变换次数计数器加 1 print(count) # 输出从输入的自然数变换到 1 所经过的变换次数 总结:这段 Python 代码的功能是根据给定的运算规则,对输入的大于 1 的自然数进行一系列变换操作,直到该数变为 1。在这个过程中,通过循环不断判断当前数是奇数还是偶数,并按照规则进行相应的变换,同时使用计数器记录变换的次数,最后输出变换次数。 学科网(北京)股份有限公司 $$

资源预览图

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