青少年软件编程(Python)等级考试试卷(二级)
202403真题与解析
分数:100 题数:37 测试时长:60分钟
一、单选题(共25题,共50分)
1.期末考试结束了,全班的语文成绩都储存在列表 score 中,班主任老师请小明找到全班最高分,小明准备用 Python 来完成,以下哪个选项,可以获取最高分呢?( )
A.min(score)
B.max(score)
C.score.max()
D.score.min()
2.已知列表 a = [1,2,3,4,5,6],想输出[2,3,4],可以使用以下哪个语句?( )
A.print(a[2:4])
B.print(a[2:5])
C.print(a[1:4])
D.print(a[0:4])
3.第一小组成员姓名和年龄如下
dic1 = {'张明':12,'李红':12,'王长江':13}
现新增成员龙小勤,年龄为 13,以下代码正确的是?( )
A..dic1['龙小勤'] = 13
B.['龙小勤'] = 13
C.dic1.['龙小勤'] = 13
D.dic1('龙小勤') = 13
4.已知列表 ls = list(range(3,33,3)),则 ls 第 5 个元素是?( )
A.15
B.18
C.21
D.24
5.执行如下代码,tuple 不属于元组的选项是?( )
A.tuple = ()
B.tuple = ('北京')
C.tuple = ('芜湖',)
D.tuple = ('北京', '芜湖', '合肥', '上海')
6.已知 festival = {"正月初一":"春节", "正月十五":"元宵节", "五月初五":"端午节", "八月十五":"中秋节"},则输出 "正月初一" 对应节日的代码是?( )
A.print(del festival["正月初一"])
B.print(festival["正月初一"])
C.print(festival.clear())
D.print(festival[1])
7.已知列表 name=["德丽莎"],运行以下哪段代码,可打印出结果“德丽莎天下
第一可爱!”(不包含双引号)?( )
A.print(name+"天下第一可爱!")
B.print(name[1]+"天下第一可爱!")
C.print(name[0]+"天下第一可爱!")
D.print(name+天下第一可爱!)
8.k为整型,下述 while 循环执行的次数为?( )
k = 20
while k >1 :
print(k)
k=k//2
A.3
B.4C.5
D.6
9.以下程序的输出结果是?( )
ls1=list()
ls2=['吉林','黑龙江','辽宁','东北三省']
ls1+=ls2
ls1.clear()
print(ls1)
A.['吉林','黑龙江','辽宁']
B.['吉林','黑龙江','辽宁','东北三省']
C.终端区会报错
D.[]正确答案:D
10.已知列表 ls=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],以下哪个选项无法将列表 ls 逆序
排列?( )
A.ls.sort(reverse=True)
B.sorted(ls,reverse=True)
C.sort(ls,reverse=True)
D.sort(ls,reverse=True)
11.已知字典 jd={'哈尔滨':['冰雪大世界','侵华日军第七三一部队罪证陈列馆','太阳岛','中央大街'],'沈阳':['沈阳故宫','辽宁省博物馆','张学良旧居','清昭陵'],'长春':['伪满皇宫博物院','净月潭','长影世纪城','长春一汽']},字典 jd的长度是?( )
A.3
B.4
C.12
D.15
12.以下哪段程序的运行结果无法打印 1-100 之间所有整数的和?( )
A.print(sum(range(1,100)))B.i=1
he=0
while i<=100:
he+=i
i+=1
print(he)
C.he=0
for i in range(1,101):
he+=i
print(he)
D.print(sum(range(1,101)))
13.小明的篮球教练告诉小明,如果他能连续投中 3 次中投,并且换手运球 100次,就可以让他加入球队,请问教练的要求,可以用哪个逻辑运算符来表示?( )
A.or
B.and
C.not
D.!=
14.某小学 1-6 年级都各有 8 个班,将年级和班级数存入如下列表: lst=[['一年级', '二年级', '三年级', '四年级', '五年级', '六年级'], ['1 班', '2 班', '3 班', '4 班', '5 班', '6 班', '7 班', '8 班']] 请问下列选项中能正确打印出 '四年级 6 班'(不含引号) 的字样的是哪一个?( )
A.lst[0][4]+lst[1][5]
B.lst[0][4]+lst[1][6]
C.print(lst[0][4]+lst[1][6])
D.print(lst[0][3]+lst[1][5])
15.如果有一个变量 name = "小明",现在需要另一个变量 str 中使用 name 变量的值,并且想要在这个值后面加上"同学"两个字,应该怎么做?( )
A.str = "同学".add(name).add("同学")
B.str = name + "同学"
C.str = "同学" . name . "同学"D.str = name.append("同学")
16.小明在做数学题,题目要求找出来从 1 数到 100 中不能被 7 整除的数字(即跳过 7 的倍数不显示)。以下哪个 Python 循环可以帮他完成这个任务?( )
A.i = 1
while i <= 100:
if i % 7 != 0:
print(i)
i += 1
B.i = 1
while i >= 100:
if i % 7 != 0:
print(i)
i += 1
C.i = 1
while i <= 100:
if i % 7 == 0:
break
print(i)
i += 1D.for i in range(1, 101):
if i % 7 == 0:
print(i)
else:
continue
17.已知字符串 str="Happy new year",则执行命令 print(list(str))的输出结果是?( )
A.['H', 'a', 'p', 'p', 'y', 'n', 'e', 'w', 'y', 'e', 'a', 'r']
B.[H,a,p,p,y,n,e,w,y,e,a,r]
C.['H', 'a', 'p', 'p', 'y', ' ', 'n', 'e', 'w', ' ', 'y', 'e', 'a', 'r']
D.[H,a,p,p,y, ,n,e,w, ,y,e,a,r]
18.已知元组 tuple = (1,2,3,4,5),以下语句正确的是?( )
A.t = tuple[2]
B.tuple[2] = '6'
C.tuple.append(6)
D.tuple.pop()
19.以下关于字典的说法不正确的是?( )
A.字典中的值不支持索引查询
B.字典以关键字为键,关键字可以是任意不可变数据类型
C.字典里面的值(不是键)可以包含列表和其他数据类型
D.字典是一种有序的对象集合,可以用下标进行访问
20.创建列表时,使用下列哪个符号?( )
A.()
B.[]
C.<>
D.''
21.运行下列程序,要想输出的结果是小明的身高是 1.55。横线处需要填入的代码为?( )
height = 1.55
print('小明的身高是____。' % height)
A.%d
B.%f
C.%.f
D.%.2f
22.关于分支结构的说法错误的是?( )
A.在 Python 中,分支结构一般由 if、elif、else 组成
B.在 Python 中,分支结构一般有单分支结构、双分支结构和多分支结构
C.在 Python 中,分支结构必须包含 else 语句
D.在 Python 中,if 语句后面跟条件表达式
23.春节(Spring Festival),是中国民间最隆重最富有特色的传统节日之一。春节民俗众多,以下列表保存了春节的常见民俗,list_sf = ['喝腊八粥', '祭灶神', '扫尘', '贴春联', '除夕守岁', '吃饺子', '拜年', '逛庙会'],上面民俗中少了非常重要的一项:压岁钱。下列哪一项能将"压岁钱",存入 list_sf 列表中 "吃饺子" 元素的后面?( )
A.list_sf.insert(0, '压岁钱')
B.list_sf.insert(5, '压岁钱')
C.list_sf.insert(6, '压岁钱')
D.list_sf.insert(7, '压岁钱')
24.定义元组 tup1 = ('快乐', '你好', '生日', '中国', '祖国', '祝福'),执行语句:print( tup1[-5] + tup1[3] ),得到的结果是?( )
A.你好祖国
B.生日快乐
C.祝福祖国
D.你好中国
25.下列说法中,错误的是?( )
A.break 语句可以跳出 for 和 while 的循环体
B.如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行
C.continue 语句被用来告诉 Python 跳过当前循环中的本次循环,然后继续进行下一次循环
D.Python 中的 for 循环可以使用 else 语句来在迭代完成后执行特定操作。当 for循环正常结束时(没有被 break 或者 return 等提前退出),不会执行 else 语句下面的代码。
二、判断题(共 10 题,每题 2 分,共 20 分)
26.元组中的元素可以是不同的数据类型。( )
27.for 循环能实现的功能,while 循环也可以实现。( )
28.死循环无法退出,没有任何作用。( )
29.通过以下代码,可以访问列表 age 中的每一个元素。( )
age=[15,18,16,19,19]
for it in age:
print(age[it])
30.'ya'*3 的返回值为'yayaya'。类比数学的逆运算,'yayaya'/3 的结果是'ya'。( )
31.在 Python 中,可使用 d1={}的方式,创建一个空字典。( )正确
32.表达式(1,2,3)==(3,2,1)的结果是 True。( )
33.'星期'+4 的结果是'星期 4'。( )
34.条件判断语句 if 's' in 'string':与 if s in 'string':是等效的,结果也一定
是一样的。( )
35.每条 if 语句的核心都是一个值为 True 或 False 的表达式,这种表达式为条件语句。( )
三、编程题(共 2 题,共 30 分)
36.请编写程序求一个长方形周长和面积的计算器。
要求:(1)用户从控制台输入长和宽(有可能是小数,单位是厘米);
(2)如果用户输入的数不大于 0(不考虑浮点数之外的数据类型),显示信息:“输入有误,请重新输入!”;
(3)输出长方形的周长和面积,结果保留两位小数,并注明哪个是周长,哪个是面积。
提示:周长公式:周长=(长+宽)*2
面积公式:面积=长*宽
37.某小学女篮校队招募新成员,要求加入女篮校队的成员身高在 135 厘米以上(不含 135 厘米)。本次报名的人员有 10 人,她们的身高分别是 125、127、136、134、137、138、126、135、140、145。请问本次女篮校队能够招募多少新成员,并将新成员的身高按照从矮到高的身高排序输出?
要求:
(1)必须使用列表或者元组;
(2)输出格式:“女篮校队新增成员数目:*,她们的身高从矮到高分别是:**”(注:*代表女篮校队招募的新成员数目;**代表从矮到高新成员的身高。)
参考答案及解析:
一、单选题答案及解析
1. B
- 解析:`max(score)`可以获取列表`score`中的最高分;`min(score)`获取最低分;列表没有`.max()`和`.min()`方法。
2. C
- 解析:列表切片中,`a[1:4]`表示从索引1开始到索引4(不包括4)的元素,即[2, 3, 4]。
3. A
- 解析:向字典中添加键值对的正确方式是`字典名[键] = 值`,所以`dic1['龙小勤'] = 13`正确。
4. D
- 解析:本题主要考察的实 range()的使用,本题中 ls 的元素有从 3 开始,到 33 结束 (不包含 33),步长为 3 的元素构成,即:[3, 6, 9, 12, 15, 18, 21, 24, 27, 30], 所以第 5 个数为:15
5. B
- 解析:A选项`tuple = ()`是一个空元组;C选项`tuple = ('芜湖',)`是一个只有一个元素的元组;D选项是一个包含多个元素的元组;B选项`tuple = ('北京')`创建的是字符串而不是元组。
6. B
- 解析:字典通过键访问值,`print(festival["正月初一"])`可以输出“正月初一”对应节日。A选项`del`是删除操作,不能输出值;C选项`clear()`是清空字典;D选项字典不能通过索引1访问。
7. C
- 解析:列表通过索引访问元素,`name[0]`是“德丽莎”,然后进行字符串连接,`print(name[0]+"天下第一可爱!")`可以输出结果。
8. B
- 解析:k=20,每次执行 k=k//2,k 循环过程中的值依次变化为:20,10,5,2,1,当 k=1 时, 循环条件 k>1 不成立,退出循环,故循环共计 4 次。正确答案为 B。
9. D
- 解析:`ls1 += ls2`将`ls2`的元素添加到`ls1`中,然后`ls1.clear()`清空列表,所以最后输出空列表`[]`。
10. C
- 解析:`sort()`方法是对列表进行原地排序,正确的用法是`ls.sort(reverse=True)`,不能直接使用`sort(ls,reverse=True)`。A、B、D选项的方法可以将列表逆序排列。
11. A
- 解析:字典的长度是指字典中键值对的个数,这里`jd`中有三个键值对,所以长度是3。
12. A
- 解析:`print(sum(range(1,100)))`计算的是1到99的和,不包括100。B、C、D选项都能正确计算1到100之间所有整数的和。
13. B
- 解析:连续投中3次中投并且换手运球100次,需要用“与”(`and`)逻辑运算符表示。
14.D
- 解析:题中列表 lst 为嵌套列表,'四年级'为 lst[0][3],'6 班'为 lst[1][5],打印完整的' 四年级 6 班'需将两个字符串连接起来并打印,即答案 为 print(lst[0][3]+lst[1][5])
15. B
- 解析:将两个字符串连接起来可以使用“+”,`str = name + "同学"`可以实现需求。A选项语法错误;C选项语法错误;D选项`append`是列表的方法,不是字符串的方法。
16. A
- 解析:循环遍历1到100,当`i % 7!= 0`时打印`i`,即输出不能被7整除的数字。B选项循环条件错误;C选项当`i % 7 == 0`时跳出循环,输出的是7的倍数;D选项当`i % 7 == 0`时打印`i`,不符合要求。
17. C
- 解析:`list(str)`将字符串转换为字符列表,每个字符都是一个单独的元素,包括空格,结果为['H', 'a', 'p', 'p', 'y', ' ', 'n', 'e', 'w', ' ', 'y', 'e', 'a', 'r']。
18. A
- 解析:元组是不可变的,不能通过索引赋值修改元组中的元素,也不能使用`append`和`pop`方法,但是可以通过索引访问元组中的元素,`t = tuple[2]`是正确的。
19. D
- 解析:字典是无序的对象集合,不能用下标进行访问。A选项字典中的值不支持索引查询正确;B选项字典以关键字为键,关键字可以是任意不可变数据类型正确;C选项字典里面的值可以包含列表和其他数据类型正确。
20. B
- 解析:创建列表使用方括号`[]`;圆括号`()`用于创建元组、函数调用等;`<>`不是创建列表的符号;单引号`''`用于创建字符串。
21. D
- 解析:`%.2f`可以格式化输出浮点数保留两位小数,所以`print('小明的身高是%.2f。' % height)`可以输出“小明的身高是1.55。”。
22. C
- 解析:在Python中,分支结构不一定包含`else`语句,可以只有`if`或`if...elif`。A选项分支结构一般由`if`、`elif`、`else`组成正确;B选项分支结构一般有单分支结构、双分支结构和多分支结构正确;D选项`if`语句后面跟条件表达式正确。
23. C
- 解析:列表`list_sf`中“吃饺子”的索引是5,要将“压岁钱”存入“吃饺子”元素的后面,应该使用`list_sf.insert(6, '压岁钱')`。
24. D
- 解析:`tup1[-5]`是“你好”,`tup1[3]`是“中国”,连接起来是“你好中国”。
25. D
- 解析:当`for`循环正常结束时(没有被`break`或者`return`等提前退出),会执行`else`语句下面的代码。A选项`break`语句可以跳出`for`和`while`的循环体正确;B选项如果从循环中终止,任何对应的循环`else`块将不执行正确;C选项`continue`语句的作用正确。
二、判断题答案及解析
26. √
- 解析:元组中的元素可以是不同的数据类型。
27. √
- 解析:`for`循环能实现的功能,`while`循环也可以实现,只是写法不同。
28. ×
- 解析:死循环在某些特定情况下是有作用的,比如服务器监听请求等。
29. ×
- 解析:循环中`for it in age`,`it`是列表中的元素,应该直接打印`it`而不是`age[it]`,会导致索引错误。
30. ×
- 解析:字符串不能进行除法运算,`'yayaya'/3`会报错。
31. √
- 解析:可以使用`d1={}`的方式创建一个空字典。
32. ×
- 解析:`(1,2,3)`和`(3,2,1)`是不同的元组,比较结果为`False`。
33. ×
- 解析:字符串和整数不能直接用“+”连接,会报错。
34. ×
- 解析:`if 's' in 'string':`是判断字符`s`是否在字符串`string`中;`if s in 'string':`中`s`如果未定义会报错,即使定义了也不一定和上一种情况等效。
35. √
- 解析:每条`if`语句的核心都是一个值为`True`或`False`的表达式,这种表达式为条件语句。
三、编程题解析
36. 参考代码:
a = float(input('请输入长方形的长:'))
# 获取用户输入的长方形的长,并转换为浮点数类型赋值给变量 a
b = float(input('请输入长方形的宽:'))
# 获取用户输入的长方形的宽,并转换为浮点数类型赋值给变量 b
if a <= 0 or b <= 0:# 判断长或宽是否不大于 0
print("输入有误,请重新输入!") # 输出错误提示信息
else:
c = (a + b) * 2 # 计算长方形的周长并赋值给变量 c
d = a * b # 计算长方形的面积并赋值给变量 d
print("周长是:{:.2f}厘米".format(c))# 输出周长结果,保留两位小数
print("面积是:{:.2f}平方厘米".format(d))# 输出面积结果,保留两位小数
总结:这段代码将长方形的长和宽分别用变量a和b表示,周长用变量c表示,面积用变量d表示。通过接收用户输入的长和宽,判断输入是否合法,若合法则计算并输出长方形的周长和面积。
37.参考代码:
ht1 = [125, 127, 136, 134, 137, 138, 126, 135, 140, 145]# 定义一个包含报名人员身高的列表 ht1
ht2 = []# 创建一个空列表 ht2,用于存储符合条件的身高
ct = 0
# 初始化新增成员数目为 0
for i in ht1:
# 遍历 ht1 列表中的每个身高
if (i > 135):
# 如果身高大于 135
ct += 1
# 新增成员数目加一
ht2.append(i)
# 将符合条件的身高添加到 ht2 列表中
ht2.sort()
# 对 ht2 列表进行排序
print("女篮校队新增成员数目:{},她们的身高从矮到高分别是:{}".format(ct, ht2))
# 输出结果,包括新增成员数目和从矮到高的身高列表
总结:这段 Python 代码的目的是从给定的身高列表中筛选出身高大于 135 的成员,并统计新增成员数目,同时将符合条件的身高按从矮到高的顺序输出。首先定义了一个包含报名人员身高的列表`ht1`,然后通过遍历`ht1`,将符合条件的身高添加到新的列表`ht2`中,并统计新增成员数目。最后,对`ht2`进行排序并输出结果。