内容正文:
青少年软件编程(Python)等级考试试卷(二级)
202212真题与解析
分数:100 题数:37 测试时长:60分钟
一、单选题(共25题,每题2分,共50分)
1、运行下列程序,最终输出的结果是?( )
info = {1:'小明', 2:'小黄', 3:'小兰'}
info[4] = '小红'
info[2] = '小白'
print(info)
A. {1:'小明', 2:'小白:',3:'小红', 4:'小兰'}
B. {1:'小明', 2:'小白', 3:'小兰', 4:'小红'}
C. {1:'小白', 2:'小名', 3:'小兰', 4:'小红'}
D. {1:'小明', 2:'小红', 3:'小兰', 4:'小白'}
2、下列Python程序的功能是求?( )
s = 0
k = 1
for i in range(1, 101):
s = s + k*i
k = -k
print(s)
A. s = 1 + 2 + 3 + 5 + 6 + … + 100的值
B. s = 1 - 2 + 3 - 4 + 5 - 6 + … - 100的值
C. s = 1 + 2 + 3 + 4 + 5 + 6+ … +101的值
D. s = 1 - 2 + 3 - 4 - 5 - 6 - … - 101的值
3、有以下三个词组的列表,
game_name = ['一只蜗牛', '一只猫', '一只兔子', '孩子们', '运动员们', '一朵云']
game_where = ['在伞底下', '在沙滩上', '在沙发上', '在石头上', '在天空中', '在公园里']
game_what = ['搭了个窝', '在慢慢爬', '玩滑梯', '打排球', '正在睡觉', '遮住太阳']
如果造词的输出结果是“一只兔子在公园里搭了个窝”,代码正确的是?( )
A. print(game_name[-4] + game_where[-1] + game_what[0])
B. print(game_name[2] + game_where[6] + game_what[0])
C. print(game_name[3] + game_where[6] + game_what[1])
D. print(game_name[-4] + game_where[5] + game_what[1])
4、执行下面代码,输出的结果是?( )
for leibie in 'student':
if leibie == 'u':
break
print(leibie)
A. st
B. stu
C.
s
t
D.
s
t
u
5、score = {'跳绳' 85, '跳远' 99, '跑步' 92}。下列哪个代码可以将跳绳的85修改成95?( )
A. score[跳绳] = 95
B. score['跳绳'] = 95
C. score[0] = 95
D. score['0'] = 95
6、已知列表a = [2, 4, 6],执行语句 print(2*a),显示的结果是?( )
A. [[2, 4, 6], [2, 4, 6]]
B. [2, 4, 6, 2, 4, 6]
C. [4, 16, 36]
D. [4, 8, 12]
7、下列程序执行后,打印的结果是?( )
a = [3, 9, 5]
b = a
b[0] = 7
print(b)
A. [3, 9, 5]
B. [7, 3, 9, 5]
C. [3, 9, 5, 7]
D. [7, 9, 5]
8、
toy = ['魔方', '拼图']
toy.append('积木')
print(toy)
以上代码的运行结果是?( )
A. ['魔方', '拼图', ['积木']]
B. ['魔方', '拼图', '积木']
C. ['积木', '魔方', '拼图']
D. '魔方', '拼图', '积木'
9、
a = 1
for i in range(4):
if i == 3:
break
a += 1
else:
a += 2
print(a)
以上代码的运行结果是?( )
A. 4
B. 5
C. 6
D. 7
10、想要删除gift字典中的键值对 '糖果':10, 可以使用的代码是?( )
A. gift.pop('糖果' 10)
B. gift.pop('糖果')
C. gift.remove('糖果' 10)
D. gift.remove('糖果')
11、在空格处填入以下哪个语句,不能得到从大到小的排序结果是?( )
list1 = [1, 5, 9, 67, 4, 44, 99]
for i in range(2):
a = int(input())
list1.append(a)
_________________
for i in list1:
print(i, end=“ ” )
A. list1.sort()
B. list1 = sorted(list1, reverse=True)
C. list1.sort(reverse=True)
D.
list1.sort()
list1 = list1[-1::-1]
12、下列关于列表变量ls操作的描述中,错误的是?( )
A. min(ls)找出ls中最小元素
B. ls.remove(x)删除ls中所有x元素
C. ls.index(x)返回元素x在列表中的下标
D. ls.copy()生成一个新列表,复制ls的所有元素
13、下面代码的输出结果是?( )
name = Python语言程序设计
for i in range(5):
print(name[i], end='')
A. Python
B. Pytho
C. ython
D. Python语言程序
14、下列程序的运行结果是?( )
str1 = “cat dog cat dog cat dog”
str2 = str1.replace(“cat”, “mouse”, 2)
print(str2)
A. cat dog mouse dog cat dog
B. 2 dog mouse dog cat dog
C. mouse mouse dog mouse mouse dog cat dog
D. mouse dog mouse dog cat dog
15、下列程序的运行结果是?( )
tem = (4, 7, 4, 6, 9)
tem = tem + (4,)
print(tem.count(4))
A. 2
B. 0
C. 程序报错
D. 3
16、下列说法正确的是?( )
A. if语句通常用于重复执行某一段程序
B. while语句通常用于执行条件判断
C. 在Python中可以使用do..while循环
D. break语句可以跳出for和while的循环体
17、已知有字符串str2 = Good Morning!,则执行print(len(str2[1:-2]))输出的结果是?( )
A. 8
B. 9
C. 10
D. 11
18、运行下列程序段后,输出的结果是?( )
i = 1
while i = 5:
i = i + 2
print(i)
A. 3
B. 7
C. 5
D. 6
19、运行语句print(“ab”<”ac”)后,输出的结果是?( )
A. 0
B. 1
C. True
D. False
20、若a = [1, 2],b = [3, 4],则执行a = a + b语句后,a的值是?( )
A. [1, 2]
B. [4, 6]
C. [1, 2, 3, 4]
D. [3, 4]
21、小明用列表s存储小组同学的身高,s = [136.0, 135.0, 142.0, 140.0],则max(s)的值是?( )
A. 136.0
B. 135.0
C. 142.0
D. 140.0
22、已知list8列表有8个元素,执行print(list8[1:-2])输出的结果是一个列表,则输出的列表有几个元素?( )
A. 4
B. 5
C. 6
D. 7
23、下面的d是一个字典变量,能够输出数字9的语句是?( )
d = {'奥运奖牌' {'金牌' 5, '银牌' 4}, '金牌' 9, '银牌' 4}
A. print(d['奥运奖牌']['金牌'])
B. print(d['金牌'])
C. print(d['奥运奖牌'][-1])
D. print(d['金牌'][1])
24、设有元组tup = (5, 2, 8, 1, 89, 43, 7, 22),执行下列语句,结果是?( )
tup1 = sorted(tup)
print(tup1)
A. [89, 43, 22, 8, 7, 5, 2, 1]
B. (89, 43, 22, 8, 7, 5, 2, 1)
C. [1, 2, 5, 7, 8, 22, 43, 89]
D. (1, 2, 5, 7, 8, 22, 43, 89)
25、下列代码输出的结果是?( )
tup = ('python', 2022, '神州十三号')
print(type(tup))
A. class 'dict'
B. class 'set'
C. class 'list'
D. class 'tuple'
二、判断题(共10题,每题2分,共20分)
26、字典的元素可以通过键来访问,也可以通过索引(下标)来访问。( )
27、Python中,可以通过索引来访问列表、字符串等序列,也可以通过索引对列表中的元素和字符串中的字符进行修改。例如:a = 'python',a[0] = 'P',字符串a将被修改为“Python”。( )
28、break用来跳出最内层for或者while循环,脱离该循环后程序继续执行后续代码。( )
29、单分支结构是用if语句判断满足一个条件,就执行相应的处理代码。( )
30、tem1 = (1),用type(tem1)检查其类型应该为tuple。( )
31、在语句for i in range(5)中,当进入第5次循环时,i的值为5。( )
32、clear()方法可以移除列表中第一次出现的该元素。( )
33、运行如下代码:
words = “123abc”
slice1 = words[-1::-1]
print(slice1)
结果为:“cba321”。( )
34、元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。( )
35、else保留字除了可以和if语句一起搭配使用构成if...else..,也可以和while或for循环搭配使用,构成while...else...和for...else...结构。( )
三、编程题(共2题,共30分)
36、编写一个重复执行的程序,要求用户输入一个字符串。
如果输入的字符串的长度是奇数,就输出字符串最中间的字符。
如果字符串的长度是偶数,就输出字符串的最后一个字符。然后重复以上操作。
37、 从键盘输入任意字符串,按照下面要求分离字符串中的字符:
1、分别取出该字符串的第偶数位的元素(提醒注意:是按照从左往右数的方式确定字符串的位置);
2、并依次存储到一个列表中;
3、 输出这个列表。
参考答案及解析:
一、单选题答案及解析
1. B
- 解析:字典`info`初始有三个键值对,然后添加新键值对`info[4] = '小红'`,修改键为2的值为'小白',结果为`{1 '小明', 2 '小白', 3 '小兰', 4 '小红'}`。
2. B
- 解析:循环中每次将`i`与`k`相乘后累加到`s`,`k`在每次循环中交替为正负,所以是求`s = 1 - 2 + 3 - 4 + 5 - 6 + … - 100`的值。
3. A
- 解析:“一只兔子在公园里搭了个窝”对应的索引分别是`game_name[-4]`(“一只兔子”)、`game_where[-1]`(“在公园里”)、`game_what[0]`(“搭了个窝”)。
4. A
- 解析:这段代码遍历字符串'student',当遇到字符'u'时,使用break跳出循环。
在遍历过程中,依次输出s、t,当遇到u时跳出循环,所以答案是 A
5. B
- 解析:字典通过键访问值,修改字典中键为“跳绳”的值为95,应使用`score['跳绳'] = 95`。
6. B
- 解析:`2 * a`将列表`a`重复两次连接在一起,结果为`[2, 4, 6, 2, 4, 6]`。
7. D
- 解析:`b = a`使得`b`和`a`指向同一个列表,修改`b[0]`也会影响`a`,结果为`[7, 9, 5]`。
8. B
- 解析:`append`方法将元素添加到列表末尾,结果为`['魔方', '拼图', '积木']`。
9. D
- 解析:以下是对这段代码的分析:
在这个循环中,`range(4)`会产生 0、1、2、3 这四个值。
当 `i` 为 0 时,进入 `else` 分支,`a += 2`,此时 `a` 变为 3。
当 `i` 为 1 时,再次进入 `else` 分支,`a += 2`,此时 `a` 变为 5。
当 `i` 为 2 时,又进入 `else` 分支,`a += 2`,此时 `a` 变为 7。
当 `i` 为 3 时,满足 `if i == 3` 的条件,执行 `break`,跳出循环。
最后输出 `a` 的值为 7。
答案是 D。
10. B
- 解析:使用`pop`方法通过键删除字典中的键值对,应是`gift.pop('糖果')`。`remove`方法用于列表,且参数应是值不是键值对。
11. A
- 解析:A`list1.sort()`是对列表进行升序排序,不能得到从大到小的排序结果。B:`list1 = sorted(list1, reverse=True)`会返回一个新的降序排序后的列表,将其赋值给`list1`,可以得到从大到小的排序结果。C:`list1.sort(reverse=True)`直接对原列表进行降序排序,可以得到从大到小的排序结果。D:`list1.sort()`先进行升序排序,然后`list1 = list1[-1::-1]`对排序后的列表进行反转,也可以得到从大到小的排序结果。 综上所述,答案是 A。
12. B
- 解析:`ls.remove(x)`只删除列表中第一个值为`x`的元素,不是所有`x`元素。A、C、D选项描述正确。
13. B
- 解析:在代码中,变量`name`赋值为`Python语言程序设计`,这是一个字符串。然后使用`for`循环遍历索引从 0 到 4 的位置,即分别取字符串的第 0、1、2、3、4 个字符并打印,且使用`end=''`表示不换行输出。所以输出的结果是`Pytho`。
14. D
- 解析:`str1.replace('cat', 'mouse', 2)`将字符串`str1`中的前两个“cat”替换为“mouse”,结果为“mouse dog mouse dog cat dog”。
15. D
- 解析:元组是不可变的,但是可以通过拼接创建新元组。`tem = tem + (4,)`后新元组中值为4的元素有三个,`tem.count(4)`结果为3。
16. D
- 解析:`if`语句用于条件判断;`while`语句用于循环;Python 中没有`do...while`循环;`break`语句可以跳出`for`和`while`循环体。
17. C
- 解析:`str2[1-2]`即`str2[-1]`,字符串长度为10,所以`len(str2[1-2])`结果为10。
18. B
- 解析:循环中每次`i`增加2,当`i = 5`时不满足条件退出循环,此时`i = 7`。
19. C
- 解析:在 Python 中,字符串比较按字典序进行。“ab”和“ac”首字符相同,比较第二个字符,“b”字典序小于“c”,所以“ab”<“ac”为真,输出结果是`True`,答案是 C。
20. C
- 解析:列表`a = a + b`将两个列表连接在一起,结果为`[1, 2, 3, 4]`。
21. C
- 解析:`max(s)`返回列表`s`中的最大值,为142.0。
22. B
- 解析:`list8[1:-2]`表示取列表`list8`从索引 1 开始到倒数第二个元素(不包括倒数第二个元素)。 假设有一个示例列表`[0, 1, 2, 3, 4, 5, 6, 7]`。 `list8[1:-2]`就是`[1, 2, 3, 4, 5]`,有 5 个元素。 答案是 B。
23. B
- 解析:字典`d`中可以通过键“金牌”访问值9,即`print(d['金牌'])`。选项A访问的是嵌套字典中的值;选项C和D语法错误。
24. C
- 解析:`sorted(tup)`对元组`tup`进行排序并返回一个新的列表,结果为`[1, 2, 5, 7, 8, 22, 43, 89]`。
25. D
- 解析:`type(tup)`返回`tup`的类型,结果为`class 'tuple'`。
二、判断题答案及解析
26. ×
- 解析:字典的元素可以通过键来访问,不能通过索引(下标)来访问。
27. ×
- 解析:字符串是不可变对象,不能通过索引对字符串中的字符进行修改。
28. √
- 解析:`break`用来跳出最内层`for`或者`while`循环,脱离该循环后程序继续执行后续代码。
29. √
- 解析:单分支结构是用`if`语句判断满足一个条件,就执行相应的处理代码。
30. ×
- 解析:`tem1 = (1)`创建的是整数1,不是元组,只有`tem1 = (1,)`才是元组。
31. ×
- 解析:在语句`for i in range(5)`中,当进入第5次循环时,`i`的值为4。
32. ×
- 解析:`clear()`方法是清空列表,不是移除列表中第一次出现的该元素。
33. √
- 解析:以下是对这段代码的分析: `words = "123abc"`定义了字符串。`slice1 = words[-1::-1]`对字符串进行反向切片操作。`print(slice1)`打印结果为`"cba321"`。
34. √
- 解析:元组中的元素值是不允许删除的,但可以使用`del`语句来删除整个元组。
35. √
- 解析:`else`保留字除了可以和`if`语句一起搭配使用构成`if...else..`,也可以和`while`或`for`循环搭配使用,构成`while...else...`和`for...else...`结构。
三、编程题解析
36. 参考代码:
while True:# 开启一个无限循环,使得程序可以重复执行
s = input("请输入一个字符串:")# 接收用户输入的字符串,并将其赋值给变量 s
if len(s) % 2 == 1:
# 判断字符串长度是否为奇数,如果是奇数则执行以下代码
print(s[len(s)//2])# 输出字符串 s 的最中间的字符,通过 len(s)//2 得到中间字符的索引
else:
# 如果字符串长度不是奇数(即偶数),则执行以下代码
print(s[-1])
# 输出字符串 s 的最后一个字符,使用 -1 作为索引可以直接获取最后一个字符
总结:这段 Python 代码实现了一个重复执行的程序。程序在一个无限循环中,不断要求用户输入一个字符串。然后根据输入字符串的长度是奇数还是偶数,分别输出字符串的最中间字符或最后一个字符。这样的程序可以方便地对用户输入的不同长度的字符串进行特定字符的输出操作,通过不断循环可以满足多次输入和输出的需求。
37. 参考程序:
s = input('请输入字符串:')# 接收用户输入的一个字符串,并将其赋值给变量 s
l = []# 创建一个空列表 l,用于存储特定字符
i = 1
# 初始化变量 i 为 1,用于表示字符串的索引位置(从第二个字符开始,因为偶数位置从索引 1 开始)
while i < len(s):
# 当索引 i 小于字符串 s 的长度时,进入循环
l.append(s[i])
# 将字符串 s 中索引为 i 的字符添加到列表 l 中
i += 2
# 索引 i 增加 2,以便下次循环时取字符串的下一个偶数位置的字符
print(l)
# 输出列表 l,其中包含了输入字符串的所有偶数位置的字符
总结:这段 Python 代码的作用是从用户输入的字符串中提取出所有偶数位置(从左往右数)的字符,并将这些字符存储在一个列表中,最后输出这个列表。通过使用循环和索引操作,实现了对字符串中特定位置字符的筛选和收集。这种方式可以灵活地处理不同长度的字符串,提取出所需的字符序列。
学科网(北京)股份有限公司
$$