内容正文:
青少年软件编程(Python)等级考试试卷(二级)
202312真题与解析
分数:100 题数:37 测试时长:60分钟
一、单选题(共25题,共50分)
1. 给定字符串s,下列表示s最后一个字符的是?( )
A.s[:-1] B.s[1] C.s[0:-1] D.s[-1]
2. 运行下列代码,终端区打印的结果是?( )
nums = [1, 2, 3, 4]
nums.append(nums[4])
print(nums)
A.[1, 2, 3, 4, 5]
B.[1, 2, 3, 4, 4]
C.[1, 2, 3, 4]
D.终端区会报错
3. 下列哪个选项是元组类型的数据?( )
A.[1, 2, 3]
B.(1, 2, 3)
C.{1, 2, 3}
D.{1:'小明', 2:'小李'}
4. 下列代码片段执行的结果是?( )
poet=[{'唐':['李白','王维','孟浩然'],'宋':['苏轼','陆游','王安石']},'618年-907年',['960年-1279年']]
print(len(poet))
A.1 B.2 C.3 D.4
5. 下列代码运行的结果是?( )
ls=['富强','民主','文明','和谐','自由','平等','公正','法治']
print(ls[::2])
A.['富强','民主','文明','和谐'] B.['自由','平等','公正','法治']
C.['法治', '平等', '和谐', '民主'] D.['富强', '文明', '自由', '公正']
6. 阿宝想在屏幕终端上打印出文字“我的名字叫阿宝,我今年10岁了,我的爱好是编程。”, 阿宝已经定义的变量如下:
name='阿宝'
age=10
hobby='编程'
下列输出语句错误的是?( )
A.print('我的名字叫{1},我今年{0}岁了,我的爱好是{2}。'.format(age,name,hobby))
B.print('我的名字叫{},我今年{}岁了,我的爱好是{}。'.format(name,hobby,age))
C.print('我的名字叫%s,我今年%d岁了,我的爱好是%s。'%(name,age,hobby))
D.print('我的名字叫%s,我今年%s岁了,我的爱好是%s。'%(name,age,hobby))
7. ls=[3,7,2,1]
for i in range(3,0,-1):
for j in range(i):
if ls[j]>ls[j+1]:
ls[j],ls[j+1]=ls[j+1],ls[j]
print(ls)
以上程序打印的结果是?( )
A.[1,3,2,7]
B.[1,2,3,7]
C.[3,2,1,7]
D.[1,7,3,2]
8. 下列程序运行后,输出的结果是?( )
list = ['春季', '夏季', '秋季', '冬季', '1+1', 6+1, 'ab']
print(list[0])
print(list[5])
print(list[6])
print(list[4])
A. 春季
6+1
ab
1+1
B.春季
7
ab
1+1
C.春季
7
ab
2
D.冬季
7
ab
1+1
9. 运行下列程序,输出的结果是?( )
s1 = "Good
"
s2 = "Morning."
print(s1 + s2)
print(len(s1))
A.Good Morning.
6
B.Good
Morning.
6
C.Good Morning.
7
D.Good
Morning.
7
10. 请问下列程序运行后,输出结果应该是?( )
t1 = (2, 3, 4, 5)
t2=t1*2
print(min(t2)+max(t2)+len(t2))
A.15 B.14 C.13 D.12
11. ls = ["cat", "dog","tiger","pig"],下列哪个选项可以向ls的末尾添加新元素"monkey"?( )
A.ls.append('monkey') B.ls.insert('monkey')
C.ls.extend('monkey') D.ls.add('monkey')
12. 下列选项不属于分支结构语句的是?( )
A.if B.elif C.else D.then
13. 执行下列程序代码,得到的输出结果是?( )
i = 1
while i < 10 :
i += 1
print(i)
A.1 B.9 C.10 D.11
14. 下列语句创建了一个Python字典的是?( )
A.{ } B.{a,bb,ccc} C.[a,bb,ccc] D.(a,bb,ccc)
15. 下列哪个语句,是用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环?( )
A.exit B.pass C.break D.continue
16. 在下列选项中,哪个选项可以正确地从字典里,获取'西瓜'这个字符串?( )
name_dict = {1:'西瓜', 2:'南瓜'}
A.name_dict['西瓜']
B.name_dict['南瓜']
C.name_dict[1]
D.name_dict[2]
17. 下列选项中,对下面程序的打印结果描述正确的是?( )
a = [0, 1, 2, 3]
i = len(a) - 1
while i > 0:
print(a[i])
i -= 1
A.3
2
1
B.1
2
3
C.0
1
2
3
D.3
2
1
0
18. 已知列表ls = list(range(1,13,3)),下列哪个命令能够获得列表中的倒数第二个元素?( )
A.ls[3] B.ls[4] C.ls[-1] D.ls[-2]
19. 已知字符串str = "Happy birthday",则执行print(list(str))的输出结果是?( )
A.['H','a','p','p','y','b','i','r','t','h','d','a','y']
B.[H,a,p,p,y,b,i,r,t,h,d,a,y]
C.['H','a','p','p','y',' ','b','i','r','t','h','d','a','y']
D.[H,a,p,p,y, ,b,i,r,t,h,d,a,y]
20. 下列说法正确的是?( )
A.sort函数对列表排序后,不会改变原有列表
B.sort函数排序时,对于列表中的元素数据类型没有要求
C.sort函数默认是按照从大到小的顺序进行排序的
D.sort函数如果加入 reverse=False,就会按照从小到大的顺序排序
21. 下列选项中,哪个选项的代码会报错?( )
A.t = (1, 2)
t[1] = 5
B.t = (1, 2)
a = sorted(t)
C.t = (1, 2)
t[0:1]
D.t = (1, 2)
sum(t)
22. 下列选项中,不能从字典中删掉'xiaoming'的是?( )
dic = {'name': 'xiaoming','age': 8}
A.del dic['name'] B.dic['name'] = 'clever' C.dic.clear() D.dic.pop(0)
23. 执行下列语句后,输出是?( )
dict0 = {"apple": 3, "banana": 5, "orange": 2}
dict0["banana"] += 2
dict0["grape"] = 4
dict0["grape"] += 4
print(dict0["grape"])
A.2 B.4 C.6 D.8
24. 执行下列程序,输入10,则y的值是?( )
x = int(input())
if x!=0:
if x>0:
y=-1
else:
y=1
else:
y=0
A.0 B.1 C.-1 D.10
25. 下列代码执行后的输出是?( )
mylist= [1, 2, 3, 4, 5]
newlist = mylist[1:4]
newlist.append(6)
print(newlist)
A.[1, 2, 3, 4, 6]
B.[1, 2, 3, 6]
C.[2, 3, 4, 6]
D.[2, 3, 4, 5, 6]
二、判断题(共10题,共20分)
26. 可以使用[ ]创建列表。( )
27. break 语句执行后,程序就会跳出本次循环,继续进行下一轮循环。( )
28. 字符串、列表和元组都是有序的,它们的区别是字符串和列表都可以切片而元组不可以切片。( )
29. 定义元组后,可以像访问列表那样,通过索引的方式访问元组元素。( )
30. a = " %s ! 第 %d 名!" % ('Python', 1)
print(a)
这个程序段运行后,显示的输出结果是:Python ! 第 1 名!( )
31. 字典是Python语言中的一种数据结构,用来存储键值对。( )
32. for循环一般用于循环次数已知的情况。所有的for循环都可以用while循环改写。( )
33. Python中的双分支结构必须要有elif才能实现。( )
34. if语句中可以嵌套while,while语句中可以嵌套if。( )
35. str1和str2分别是字符串类型,则str1+str2表示str1与str2两个字符串连接,str1-str2表示从str1中减去str2的字符串。( )
三、编程题(共2题,共30分)
36. 密码判断:编写一段能够实现密码判断功能的代码。
要求:
(1)程序运行开始后,用户通过键盘输入密码(格式为字符串);
(2)如果密码错误,让用户继续输入密码;
(3)如果密码正确,屏幕输出“密码正确,欢迎您!”,并终止循环,结束程序;
(4)正确的密码可以在程序中明确,无需用户输入。
示例:
如:程序中的密码为:123456
程序运行后提醒用户输入密码,密码错误没有提示,继续要求输入密码,如果密码正确,则屏幕输出“密码正确,欢迎您!”并且结束程序。
37. 蚂蚁觅食
蚂蚁是自然界的大力士:一只蚂蚁能够举起自身体重40倍的物体,能够拖运自身体重1700倍的物体。蚂蚁十分勤劳,为了保证以最快速度完成搬运,能够举起物体时绝不拖运。
现已知某只蚂蚁的体重为50毫克,地上的10块食物重量(单位:毫克)为500,60000, 25,1200, 2200, 1800, 10000, 80000, 3000, 65.请帮蚂蚁编程计算,可以举起和需要拖运的食物各有几个?
要求:
(1)必须使用列表或者元组;
(2)输出格式为:“该蚂蚁可以举起的食物有*个,可以拖运的食物有*个。”(不含引号);
(3)提醒:根据题意,“能够举起物体时绝不拖运”,所以拖运的食物和举起的食物不会重复。
参考答案及解析:
一、单选题答案及解析
1. D
- 解析:s[-1]表示字符串s的最后一个字符;s[:-1]表示从字符串开头到倒数第二个字符;s[1]表示字符串的第二个字符;s[0:-1]表示从字符串第一个字符到倒数第二个字符。
2. B
- 解析:列表 nums 有 4 个元素,最大的索引是 3,用 4 作为索引,程序就会报错。
3. B
- 解析:A选项是列表;C选项是集合;D选项是字典。B选项是元组,元组用小括号括起来。
4. C
- 解析:`poet`中有三个元素,一个字典、一个字符串和一个列表,所以`len(poet)`为3。
5. D
- 解析:`ls[::2]`表示从列表开头到结尾,步长为2进行切片,结果为['富强', '文明', '自由', '公正']。
6. B
- 解析:`print('我的名字叫{},我今年{}岁了,我的爱好是{}。'.format(name,hobby,age))`中参数顺序错误,应该是`format(age,name,hobby)`才能对应正确的输出。A、C、D选项的输出语句正确。
7. B
- 解析:这是一个冒泡排序算法,对列表`ls`进行排序,结果为[1, 2, 3, 7]。
8. B
- 解析:我们通过索引的方式来访问列表中的元素,这个和访问字符串中的字符的原理是一样的。从前往后访问时,索引的下标从 0 开始。'1+1'为字符串,应该原封不变输出;6+1做加法运算后输出;输出应该为:春季 7 ab 1+1。
9. B
- 解析:本题考查字符串的连接、字符串中转义符的处理、字符串处理函数:+可以用于连接两个字符串;转义符
组合表示换行的意思,识别为一个字符;len()返回字符串的长度。所以正确答案为B。
10. A
- 解析:`t1 = (2, 3, 4, 5)`,`t2 = t1 * 2`为(2, 3, 4, 5, 2, 3, 4, 5),`min(t2)`是2,`max(t2)`是5,`len(t2)`是8,结果为2 + 5 + 8 = 15。
11. A
- 解析:`ls.append('monkey')`可以向列表`ls`的末尾添加新元素;`ls.insert(index, element)`是在指定索引位置插入元素;`ls.extend(iterable)`是将可迭代对象中的元素逐个添加到列表末尾;列表没有`add`方法。
12. D
- 解析:在Python中,分支结构语句有`if`、`elif`、`else`,没有`then`。
13. C
- 解析:`while`循环中每次`i += 1`,当`i = 10`时退出循环,此时输出`i`的值为10。
14. A
- 解析:A选项`{ }`可以创建一个空字典;B选项是集合;C选项是列表;D选项是元组。
15. D
- 解析:`continue`用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环;`exit`一般用于退出程序;`pass`是占位语句,不做任何操作;`break`是跳出整个循环。
16. C
- 解析:字典通过键来访问值,在`name_dict`中,键1对应的值是'西瓜',所以`name_dict[1]`可以获取'西瓜'。
17. A
- 解析:循环从列表末尾开始,依次输出每个元素,结果为3、2、1。
18. D
- 解析:`ls = list(range(1,13,3))`即[1, 4, 7, 10],`ls[-2]`是倒数第二个元素10,`ls[3]`和`ls[4]`超出列表范围,`ls[-1]`是最后一个元素10不是倒数第二个元素。
19. C
- 解析:`list(str)`将字符串转换为字符列表,每个字符都是一个单独的元素,包括空格,结果为['H','a','p','p','y',' ','b','i','r','t','h','d','a','y']。
20. D
- 解析:`sort`函数对列表排序后会改变原有列表;`sort`函数排序时,列表中的元素数据类型必须一致;`sort`函数默认是按照从小到大的顺序进行排序的,如果加入`reverse=True`就会按照从大到小的顺序排序,加入`reverse=False`就会按照从小到大的顺序排序。
21. A
- 解析:元组是不可变的,不能通过索引赋值修改元组中的元素,A选项会报错;B选项`sorted(t)`会返回一个新的列表;C选项`t[0:1]`可以进行切片操作;D选项`sum(t)`可以对元组中的元素求和。
22. D
- 解析:A选项`del dic['name']`可以删除键为'name'的键值对;B选项将键为'name'的值改为'clever',相当于删除了原来的值;C选项`dic.clear()`可以清空字典;D选项`dic.pop(0)`会报错,因为字典中没有键为0的元素。
23. D
- 解析:先将字典中键为'banana'的值加2,变为7,然后添加键为'grape'的值为4,再将其值加4,变为8。
24. C
- 解析:输入10,`x!=0`为真,`x>0`为真,所以`y=-1`。
25. C
- 解析:`mylist[1:4]`是[2, 3, 4],`append(6)`后变为[2, 3, 4, 6]。
二、判断题答案及解析
26. √
- 解析:可以使用方括号`[ ]`创建列表。
27. ×
- 解析:`break`语句执行后,程序就会跳出整个循环,而不是跳出本次循环继续进行下一轮循环。`continue`才是跳过当前循环的剩余语句,然后继续进行下一轮循环。
28. ×
- 解析:字符串、列表和元组都是有序的,它们都可以切片。
29. √
- 解析:定义元组后,可以像访问列表那样,通过索引的方式访问元组元素。
30. √
- 解析:字符串格式化输出正确,结果为“Python! 第 1 名!”。
31. √
- 解析:字典是Python语言中的一种数据结构,用来存储键值对。
32. √
- 解析:`for`循环一般用于循环次数已知的情况,所有的`for`循环都可以用`while`循环改写。
33. ×
- 解析:双分支结构可以用`if...else...`实现,不一定要有`elif`。
34. √
- 解析:`if`语句中可以嵌套`while`,`while`语句中可以嵌套`if`。
35. ×
- 解析:字符串可以进行连接操作(`str1 + str2`),但不能进行减法操作(`str1 - str2`)。
三、编程题解析
36.参考程序:
while True:
# 创建一个无限循环,会不断重复执行以下代码块
pwd = input("请输入密码:")
# 获取用户输入的密码并赋值给变量 pwd
if pwd == "123456":
# 判断用户输入的密码是否为"123456"
break
# 如果密码正确,跳出循环,结束重复执行
print("密码正确,欢迎您!")
# 输出欢迎信息,表示密码正确后执行的操作
总结:这段 Python 代码实现了一个密码判断的功能。通过无限循环不断要求用户输入密码,一旦用户输入的密码等于预设的正确密码 “123456”,就跳出循环并输出 “密码正确,欢迎您!” 的信息。如果用户输入的密码不正确,程序会继续要求用户输入密码,直到输入正确为止。
37. 参考代码:
w = [500, 60000, 25, 1200, 2200, 1800, 10000, 80000, 3000, 65]
# 定义一个列表 w,包含了不同食物的重量
x = 50 * 40
# 计算蚂蚁能举起的最大重量(蚂蚁体重的 40 倍)
y = 50 * 1700
# 计算蚂蚁能拖运的最大重量(蚂蚁体重的 1700 倍)
num1 = 0# 初始化可以举起的食物数量为 0
num2 = 0# 初始化可以拖运的食物数量为 0
for i in w:
# 遍历列表 w 中的每个食物重量
if i <= x:
# 如果食物重量小于等于蚂蚁能举起的最大重量
num1 = num1 + 1
# 举起的食物数量加一
if i > x and i <= y:
# 如果食物重量大于蚂蚁能举起的最大重量且小于等于蚂蚁能拖运的最大重量
num2 = num2 + 1
# 拖运的食物数量加一
print("该蚂蚁可以举起的食物有{}个,可以拖运的食物有{}个。".format(num1, num2))
# 输出可以举起和拖运的食物数量
总结:这段 Python 代码的目的是计算给定列表中蚂蚁可以举起和拖运的食物数量。首先定义了蚂蚁能举起和拖运的最大重量,然后遍历食物重量列表,根据食物重量与蚂蚁举重和拖运能力的比较,分别统计可以举起和拖运的食物数量,最后输出结果。
学科网(北京)股份有限公司
$$