内容正文:
青少年软件编程(Python)等级考试试卷(二级)
202209真题与解析
分数:100 题数:37 测试时长:60分钟
一、单选题(共25题,每题2分,共50分)
1、运行以下代码,结果输出的是?( )
means = ['Thank', 'You']
print(len(means))
A. 8
B. 6
C. 2
D. 1
2、下列语句中变量 i 取值范围是 1~10 的是?( )
A. for i in range(11)
B. for i in range(1, 10)
C. for i in range(0, 10)
D. for i in range(1, 11)
3、今天编程课的主要内容是字典的遍历。已知字典 dt = {'a': [1, 3, 5], 'b': [3, 4, 7], 'c': [2, 5, 9]},老师要求用四种不同的方法遍历字典,都要获得如下结果
[1, 3, 5]
[3, 4, 7]
[2, 5, 9]
小程同学尝试写了四段程序,请你帮他检查一下哪个程序的打印结果不符合要求?( )
A.
dt = {'a': [1, 3, 5], 'b': [3, 4, 7], 'c': [2, 5, 9]}
ls = []
for i in dt.values():
ls.append(i)
print(i)
B.
dt = {'a': [1, 3, 5], 'b': [3, 4, 7], 'c': [2, 5, 9]}
ls = []
for i in dt:
ls.append(dt[i])
for j in ls:
print(j)
C.
dt = {'a': [1, 3, 5], 'b': [3, 4, 7], 'c': [2, 5, 9]}
ls = []
for k in dt.keys():
ls.append(dt[k])
for j in ls:
print(j)
D.
dt = {'a': [1, 3, 5], 'b': [3, 4, 7], 'c': [2, 5, 9]}
ls = []
for k in dt.items():
print(k)
4、执行以下代码后输出的结果是?( )
d = {1: 'monkey', 2: 'panda', 3: 'bird', 4: 'fish'}
d[5] = 'sheep'
del d[3]
d[3] = 'dog'
print(d)
A. {1: 'monkey', 2: 'panda', 4: 'fish', 5: 'sheep', 3: 'cat'}
B. {1: 'monkey', 2: 'panda', 4: 'fish', 5: 'sheep', 3: 'dog'}
C. {1: 'monkey', 2: 'panda', 3: 'dog, 5: 'sheep', 4: 'duck'}
D. {1: 'monkey', 2: 'panda', 3: 'cat', 5: 'sheep', 4: 'duck'}
5、tp = (3, 6, 9, 11),以下操作正确的是?( )
A. x = tp[2]
B. x = tp(2)
C. tp[3] = 12
D. tp(3) = 12
6、列表a = list(range(2, 10)),下列选项中可以获取列表中最后一个元素?( )
A. a[8]
B. a[7]
C. a[9]
D. a[10]
7、表达式tuple(list('Python'))的运算结果是?( )
A. ['Python']
B. ('P', 'y', 't', 'h', 'o', 'n')
C. ['P', 'y', 't', 'h', 'o', 'n']
D. ('Python')
8、若list_a = [5, 4, 1, 2, 3],以下选项中能够输出 [5, 4, 3, 2, 1] 的是?( )
A.
list_a = sorted(list_a)
print(list_a)
B.
list_a.sort()
print(list_a)
C.
list_a.sort(reverse=True)
print(list_a)
D.
list_a.sort(reverse=False)
print(list_a)
9、以下代码的输出结果是?( )
s = list(range(10))
print(10 not in s)
A. True
B. False
C. 0
D. -1
10、以下代码运行结果正确的是?()
list1 = [[[[['a']], ['冰墩墩']], 6], ['雪容融']]
print(len(list1))
A. 5
B. 4
C. 3
D. 2
11、请为下列程序空白处选出合适的选项,输出结果为 ['a', 'A', 9, 'a']。( )
ls1 = ['a', 'A', 'a', 9, 'a']
______
print(ls1)
A. del ls1('a')
B. ls1.pop(2)
C. ls1.clear()
D. ls1.remove('a')
12、以下代码的输出结果是?( )
ls = [1, 2, [3, 4], [5, 6]]
print(ls[2][1])
A. 6
B. 2
C. 3
D. 4
13、下面代码的输出结果是?( )
for i in range(1, 6):
if i % 3 == 0:
break
else:
print(i, end=",")
A. 1, 2,
B. 1, 2, 3,
C. 1, 2, 3, 4, 5,
D. 1, 2, 3, 4, 5, 6,
14、给定字典 d,哪个选项对 x in d 的描述是正确的?( )
A. 判断x是否是字典d中的键
B. x是一个二元元组,判断x是否是字典d中的键值对
C. 判断x是否是字典d中的值
D. 判断x是否是在字典d中以键或值方式存在
15、下列程序的运行结果是?( )
str1 = '0123456789'
str2 = str1[1:9:2]
print(str2)
A. 1357
B. 024
C. 13579
D. 0246
16、小明用元组 a 存储小组同学的身高,a = (136.0, 135.0, 142.0, 140.0),则 min(a) 的值是?( )
A. 136.0
B. 135.0
C. 142.0
D. 140.0
17、下列语句运行后,输出结果为2022的是哪个?( )
A. print("20" + "22")
B. print(20 + 22)
C. print("2022" in "2022")
D.
s = "你好2022"
print(s[3:4])
18、已知元组tup2 = (1, 14, 51, 4, 19, 198, 10),下列说法有错误的是?( )
A. print(tup2[1:-1])可以截取元组的一部分,输出的结果为(14, 51, 4, 19, 198, 10)
B. print(tup2[3:])可以截取元组的一部分,输出的结果为(4, 19, 198, 10)
C. print(tup2[3:6])可以截取元组的一部分,输出的结果为(4, 19, 198)
D. print(tup2[5])可以访问元组的第六个元素,输出的结果为198
19、下列说法错误的是?( )
A. 列表的大小是固定的,不可以改变
B. len()方法可以返回列表的元素个数
C. 假设list2列表有十个元素,则list2[2]可以读取list2列表中的第三个元素
D. 列表的数据项不需要具有相同的类型
20、请根据运行结果将代码空白处填上合适的选项?( )
代码:
num1 = 1
while num1 <= 5:
num2 = 1
while num2 <= 5:
___________
num2 += 1
print()
num1 += 1
运行结果:
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
A. print(num2, end="")
B. print(num2, end=" ")
C. print(num1)
D. print(num1, end=" ")
21、关于下列伪代码(虚拟代码)说法正确的是?( )
if x < 10:
代码块A
elif x >= 10 and x < 20:
代码块B
else:
代码块C
A. 如果 x = 200,代码块ABC都不会被执行
B. 如果 x = 20,执行代码块C
C. 如果 x = 20,执行代码块B
D. 程序先执行C,再执行B,最后执行A
22、执行以下程序,输入"中国梦2022",输出结果是?( )
w = input()
for x in w:
if x == '0' or x == '2':
continue
else:
w.replace(x, '@')
print(w)
A. 中国梦2022
B. 中国@2022
C. @@@2022
D. 2022中国梦
23、字典dic = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'},len(dic)的结果是?( )
A. 3
B. 6
C. 9
D. 12
24、以下不能创建一个字典的语句是?( )
A. dic = {"name": "python"}
B. dic = {"age": 13}
C. dic = {[1, 2]: "user"}
D. dic = {}
25、关于字符串的操作,下列说法错误的是?( )
A. len()返回字符串长度
B. count()统计字符或者字符串在整个字符串中的个数
C. sort()可以给字符串排序
D. split()是给字符串进行分割
二、判断题(共10题,每题2分,共20分)
26、字典中的键是唯一的,不能重复。而值对应于键,值是可以重复的。( )
27、print(len('See You'))这句指令的长度是有7个字符,因为两个单词间的空格也算一个字符。( )
28、以下程序的执行结果是“假”。( )
x = 2
if 10 > 20 and x > 0:
print('真')
else:
print('假')
29、列表和元组都可以作为字典的键。( )
30、
a = [1, 2, 3, 4]
s = 0
for i in a:
s += 1
print(s)
以上代码的运行结果是4。( )
31、元组是不可变的序列,这里的不可变包括不能对元组对象进行增加元素、删除元素,修改元素位置是可以的。( )
32、运行下列程序段后,屏幕上绘制的是一个五边形。( )
import turtle as t
for i in range(1, 5):
t.forward(50)
t.left(90)
33、若 s = "人脸识别可以识别人脸信息",则执行 s.replace("人脸","图像") 语句后,s 的值为"图像识别可以识别图像信息"。( )
34、(127, 3.56, '1&5#!^*2', '4.(.$0..6')是一个合法的元组。( )
35、在Python中 range(),表示的是正整数序列,负数是无效的。( )
三、编程题(共2题,共30分)
36、某航空公司对于托运行李有尺寸要求,必须满足以下条件:
每件托运行李的长、宽、高三边之和须大于或等于60厘米,且小于或等于203厘米。(注意只是三边,不考虑立方体的整个周长,相当于只求长+宽+高三个数字的和,如,长宽高为:20、30、40,则之和为90)
编写一个重复执行的程序,要求如下:
1、用户一次性输入三个数字,分别代表行李的长、宽、高(单位:厘米),三个数字直接用英文的逗号隔开;如:23,45,67
2、程序自动将输入的长宽高转化为列表或者元组;
3、程序需要判断用户输入的托运行李尺寸是否满足此航空公司的要求。
4、如果满足要求,就输出"可以托运"。如果不满足要求,就输出"不可以托运"。
5、然后重复以上操作,重复次数不限。
37、统计一段文本中有几句话
编写程序,要求如下:
1、程序开始运行后,需要用户输入一段中文;
2、根据用户的输入,统计其中共有几句话(以句末为“。”“?”或“!”为依据,判断一句话);
3、 输出统计结果,如:“这段话中共有3句话”。
参考答案及解析:
一、单选题答案及解析
1. C
- 解析:列表`means`中有两个元素,所以`len(means)`为2。
2. D
- 解析:`range(1, 11)`生成1到10的整数序列。选项A是0到10;选项B是1到9;选项C是0到9。
3. D
- 解析:选项D输出的是键值对,不是只输出值。选项A、B、C都正确地输出了字典的值。
4. B
- 解析:向字典中添加元素`d[5] = 'sheep'`,删除元素`del d[3]`,再添加`d[3] = 'dog'`,结果为`{1: 'monkey', 2: 'panda', 4: 'fish', 5: 'sheep', 3: 'dog'}`。
5. A
- 解析:元组可以通过索引获取元素,选项A正确。元组不能像函数一样调用,也不能通过索引赋值修改元素,所以B、C、D错误。
6. B
- 解析:列表`a = list(range(2, 10))`,索引从0开始,最后一个元素的索引是长度减1,即6,对应选项B。
7. B
- 解析:`tuple(list('Python'))`先将字符串转换为列表,再转换为元组,结果为`('P', 'y', 't', 'h', 'o', 'n')`。
8. C
- 解析:`list_a.sort(reverse=True)`对列表进行降序排序,结果为`[5, 4, 3, 2, 1]`。选项A、B是升序排序;选项D是升序排序且不改变原始列表。
9. A
- 解析:判断10是否在列表`s`中,不在则返回`True`。
10. D
- 解析:`list1`中有两个元素,所以`len(list1)`为2。
11. B
- 解析:A 选项语法错误。B 选项`ls1.pop(2)`会移除并返回索引为 2 的元素,使原列表变为`['a', 'A', 9, 'a']`,符合要求。C 选项会清空列表不符合。D 选项只会移除第一个出现的`'a'`不符合。所以答案是 B。
12. D
- 解析:`ls[2][1]`表示访问列表`ls`中索引为2的元素(即`[3, 4]`),再取这个列表中的索引为1的元素,结果为4。
13. A
- 解析:循环遍历1到5,当`i % 3 == 0`时跳出循环,否则输出`i`,结果为`1, 2,`。
14. A
- 解析:`x in d`判断`x`是否是字典`d`中的键。
15. A
- 解析:字符串切片`str1[1:9:2]`从索引1开始到索引9(不包括),步长为2,结果为`1357`。
16. B
- 解析:`min(a)`返回元组`a`中的最小值,为135.0。
17. A
- 解析:选项 A:"20" + "22"是字符串拼接,结果为"2022"。选项 B:20 + 22是数字加法,结果为42。选项 C:"2022" in "2022"是判断"2022"是否在"2022"中,结果是True,不是2022。选项 D:s[3:4]是截取字符串s,s = "你好2022",s[3:4]结果为2,不是2022。所以答案是 A。
18. A
- 解析:tup2[1:-1]表示从索引 1 开始到倒数第二个元素,对于元组tup2 = (1, 14, 51, 4, 19, 198, 10),输出结果应该是(14, 51, 4, 19, 198),而不是(14, 51, 4, 19, 198, 10)。
19. A
- 解析:列表的大小是可变的,可以添加、删除元素,A错误。B、C、D选项正确。
20. D
- 解析:内层循环每次输出当前的`num1`值,并用空格分隔,外层循环换行,结果为`1 1 1 1 1`等。选项A没有空格分隔;选项B输出`num2`值;选项C输出`num1`后没有空格分隔。
21. B
- 解析:如果`x = 20`,满足`x >= 10 and x < 20`,执行代码块B。A选项代码块B会被执行;C选项不满足条件;D选项执行顺序错误。
22. A
- 解析:用户输入“中国梦2022”赋值给`w`。循环遍历`w`中字符,当字符非`'0'`和`'2'`时执行`w.replace(x, '@')`,但该操作不直接修改`w`且未重新赋值,所以最后输出仍是“中国梦2022”,答案是 A。
23. A
- 解析:字典`dic = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}`中有三个键值对,所以`len(dic)`为3。
24. C
- 解析:字典的键必须是不可变类型,列表是可变类型不能作为字典的键。选项A、B、D可以创建字典。
25. C
- 解析:字符串没有`sort()`方法,列表可以使用`sort()`方法排序。A、B、D选项对字符串的操作正确。
二、判断题答案及解析
26. √
- 解析:字典中的键是唯一的,不能重复,值可以重复。
27. √
- 解析:`len('See You')`计算字符串长度,两个单词间的空格也算一个字符,长度为7。
28. √
- 解析:`10 > 20`为假,且关系中只要有一个为假则结果为假,`x > 0`为真,但整体为假,所以输出“假”。
29. ×
- 解析:列表是可变类型,不能作为字典的键,元组是不可变类型,可以作为字典的键。
30. √
- 解析:列表a中有4个元素,所以循环中的下级代码会执行4次,每次执行时,变量s的值会加1,所以代码运行结束时,变量s的值是4。
31. ×
- 解析:元组是不可变的序列,不能对元组对象进行增加元素、删除元素、修改元素位置等操作。
32. ×
- 解析:循环`range(1, 5)`只执行4次,绘制的是四边形不是五边形。
33. ×
- 解析:s.replace("人脸","图像")这行代码会返回一个新的字符串,其中所有的 “人脸” 都被替换为 “图像”,但是它并不会修改原始的字符串s。所以执行完这段代码后,输出s的值仍然是 “人脸识别可以识别人脸信息”。
34. √
- 解析:元组可以包含不同类型的元素,这个元组是合法的。
35. ×
- 解析:`range()`可以接受负数参数,如`range(-5, 0)`会生成-5到-1的整数序列。
三、编程题解析
36. 参考代码:
while True:
# 创建一个无限循环,使得程序可以重复执行
input_str = input("请输入行李的长、宽、高(用逗号隔开):")
# 获取用户输入的字符串,格式为长、宽、高用逗号隔开
a, b, c = map(int, input_str.split(','))
# 将用户输入的字符串按逗号分割后,通过 map 函数将分割后的每个元素转换为整数,分别赋值给 a、b、c
if 60 <= a + b + c <= 203:
# 判断行李的长、宽、高之和是否在 60 到 203 厘米之间
print("可以托运")
# 如果满足条件,输出可以托运
else:
print("不可以托运")
# 如果不满足条件,输出不可以托运
总结:这段 Python 代码实现了一个重复执行的程序,用于判断用户输入的行李长、宽、高是否满足某航空公司的托运行李尺寸要求。程序通过无限循环接收用户输入,将输入的字符串转换为整数后进行条件判断,并输出相应的结果,以便用户确定行李是否可以托运。
37. 参考代码:
text = input("请输入一段中文:")# 从用户获取一段中文文本并赋值给变量 text
sentence_endings = ['.', '?', '!']# 定义一个包含句末标点符号的列表,用于判断句子的结束
count = 0# 初始化句子计数变量为 0
for char in text:
# 遍历输入的文本中的每个字符
if char in sentence_endings:
# 如果当前字符在句末标点符号列表中
count += 1 # 句子计数加一
print(f"这段话中共有{count}句话。")# 输出统计结果,告诉用户输入的文本中共有多少句话
总结:这段 Python 代码的功能是统计用户输入的中文文本中的句子数量。它通过遍历文本中的每个字符,检查是否为句末标点符号(“。”“?”“!”)来确定句子的数量,最后输出统计结果,让用户了解输入文本中的句子总数。
学科网(北京)股份有限公司
$$