青少年软件编程(Python)等级考试试卷(二级)
202103真题与解析
分数:100 题数:37 测试时长:60分钟
一、单选题(共25题,每题2分,共50分)
1、对于字典 infor = {"name":"tom", "age":13, "sex":"male"},删除 "age":13 键值对的操作正确的是?( )
A. del infor['age']
B. del infor["age":13]
C. del infor
D. infor.clear()
2、用Python语句计算:长方形的长和宽分别为4和5,则长方形的周长为?( )
A.
a = 4
b = 5
c = 2 * a + 2 * b
print(c)
B.
a = 4
b = 5
c = 2 * a + b
print(c)
C.
a = 4
b = 5
c = a * b
print(c)
D.
a = 4
b = 5
c = a + b * 2
print(c)
3、下列代码输出结果是?( )
list1 = ['A', '&', 'A', 8, 'A']
list1.remove('A')
print(list1)
A. [ 'A','&', 'A', 8]
B. ['&', 'A', 8, 'A']
C. [ '&', 8]
D. ['A','&', 8, 'A']
4、数学课代表将同学们的数学成绩存放在列表s1中,s1 = [99, 92, 87, 90, 100, 95],如果按照成绩由低到高输出,以下哪个程序可以实现?( )
A.
s1 = [99, 92, 87, 90, 100, 95]
s2 = sorted(s1)
print(s2)
B.
s1 = [99, 92, 87, 90, 100, 95]
s2 = sort()
print(s2)
C.
s1 = [99, 92, 87, 90, 100, 95]
sort(reverse=True)
print(s1)
D.
s1 = [99, 92, 87, 90, 100, 95]
s2 = sorted(s1, reverse=True)
print(s2)
5、执行下列语句,将输出:
>>> list1 = ['b', 'c', 1, 2, 3, 4, 5]
>>> list1.append('a')
>>> list1
A. ['b', 'c', 1, 2, 3, 4, 5, 'a']
B. 无任何输出
C. b
D. ['b','c',1,2,3,4,5]
6、已知 t = (88, 77, 95, 64, 85),那么t[1:3]的结果是?( )
A. [88, 77]
B. (88, 77)
C. (77, 95)
D. [77, 95]
7、可以定义一个字典week1,用数字1-7表示中文的星期一到星期日(如1表示星期一),正确的语句是?( )
A. week1 = (1:'星期一', 2:'星期二', 3:'星期三', 4:'星期四', 5:'星期五', 6:'星期六', 7:'星期日')
B. week1 = [1:'星期一', 2: '星期二', 3: '星期三', 4: '星期四', 5: '星期五', 6: '星期六', 7: '星期日']
C. week1 = {'1';'星期一', '2';'星期二', '3';'星期三', '4';'星期四', '5';'星期五', '6';'星期六', '7';'星期日'}
D. week1 = {1: '星期一', 2: '星期二', 3: '星期三', 4: '星期四', 5: '星期五', 6: '星期六', 7: '星期日'}
8、下列不会产生死循环的程序是?( )
A.
i = 1
while True:
i += 1
if i % 2 == 0:
continue
print(i)
B.
i = 1
while True:
if i % 2 == 0:
continue
print(i)
C.
i = 0
while True:
i += 1
if i == 100:
break
print(i)
D.
i = 1
while i == 1:
print(i)
9、下列程序运行完成时,i 的值为?( )
for i in 'I enjoy coding.':
if i == 'c':
break
print(i, end='')
A. 'o'
B. 'c'
C. I enjoy
D. ' '
10、语句 list6 = [0, 6] 的含义是?( )
A. 定义一个变量list6,值为0~6之间的随机值
B. 定义一个变量list6,值为0.6
C. 定义一个列表list6,包含两个元素:0和6
D. 生成一个数字序列list6,值为0~6
11、有如下Python程序段,执行程序段后,输出的结果是?( )
x = 10
y = 5
if x / y == x // y:
print("相等")
else:
print("不相等")
A. "相等"
B. "不相等"
C. 相等
D. 不相等
12、下列代码的输出结果是?( )
lis = list(range(5))
print(lis)
A. 0, 1, 2, 3, 4, 5
B. [0, 1, 2, 3, 4]
C. 0, 1, 2, 3, 4
D. [0, 1, 2, 3, 4, 5]
13、执行下列语句,将输出:
>>> x = [1, 2, 3, 4, 5]
>>> y = [2, 3, 5]
>>> z = []
>>> z.append(x[1] * y[2])
>>> z
A. x[1] * y[2]
B. 25
C. [3]
D. [10]
14、下列程序的运行结果是?( )
a = 1
if a > 0:
a = a + 1
if a > 1:
a = 5
print(a)
A. 1
B. 2
C. 5
D. 0
15、已知字符串 st = 'Python',执行语句 x = a[::2] 后,变量 x 的值为?( )
A. 'Pyt'
B. 'Py'
C. 'yhn'
D. 'Pto'
16、已知 a = "1",b = "2",则表达式 a + b 的值为?( )
A. 3
B. 12
C. '12'
D. '21'
17、
list1 = [1, 3, 4]
list2 = [3, 5, 2]
(list1 + list2) * 2 的值为?( )
A. [8, 16, 12]
B. [1, 3, 4, 3, 5, 2, 1, 3, 4, 3, 5, 2]
C. [1, 3, 4, 1, 3, 4, 3, 5, 2, 3, 5, 2]
D. [2, 6, 8, 6, 10, 4]
18、下列代码输出结果是?( )
ls = ['python', '2021']
print(type(ls))
A. <class 'dict'>
B. <class 'set'>
C. <class 'list'>
D. <class 'tuple'>
19、已知 t = (2, 3, 5, 7, 9),下列哪条指令可以求元组数据的和?( )
A. len(t)
B. min(t)
C. max(t)
D. sum(t)
20、已知变量 stra = "IloveTX",执行语句 print("love" in stra) 的结果为?( )
A. True
B. False
C. 1
D. 0
21、有如下Python程序段,执行程序段后,输出的结果为?( )
lista = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
s = 0
for i in range(0, len(lista), 2):
s = s + lista[i]
print("s=", s)
A. 25
B. s = 25
C. s = 30
D. s = 55
22、运行下列程序语句后,字典 a 是空值的是?( )
A.
a = {'职业': '警察', '年龄': 25, '姓名': '李四'}
a.clear()
B.
a = {'职业': '警察', '年龄': 25, '姓名': '李四'}
c = {'职业': '教师'}
a = c.copy()
C.
a = {'职业': '警察', '年龄': 25, '姓名': '李四'}
del a['职业']
D.
a = {'职业': '警察', '年龄': 25, '姓名': '李四'}
a.popitem()
23、下列程序的运行结果是?( )
L = [1, 2, 3, 4, 5, 2, 1]
L.pop(3)
L.pop(2)
print(L)
A. [1, 2, 4, 5, 1]
B. [1, 2, 3, 5, 2]
C. [1, 2, 5, 2, 1]
D. [1, 2, 3, 5, 1]
24、有如下Python程序段,执行该程序段后,输出的结果为?( )
tup1 = (1, 2, 3, 4, 5)
x = tup1[1] + tup1[-1]
print("x=", x)
A. 3
B. x = 3
C. 7
D. x = 7
25、下列程序运行的结果是?( )
infor = {"name": "tom", "age": 13, "sex": "male"}
print(len(infor))
A. 6
B. 3
C. 4
D. 1
二、判断题(共10题,每题2分,共20分)
26、下列程序的输出结果是('A','p','p,'l','e')。
vowels = ('a', 'p', 'p', 'l', 'e')
vowels[0] = 'A'
print(vowels)
27.Python语句的循环结构中for循环是条件循环。
28.字典中的元素称为键值对,包括一个键和一个值,键和值中间用逗号隔开。
29.在循环语句中break语句的作用是提前结束所有循环。
30.若 s = '春眠不觉晓,处处闻啼鸟。',则s[2:4]的值是'不觉'。
31.元组是可变的,可以通过下标索引访问元素。
32."好好学习" + "天天向上" 的输出结果是"好好学习""天天向上"。
33.当使用循环时,有时候在满足某个条件时,想要退出循环,我们可以使用break语句。
34、程序设计的三种基本结构为:顺序结构、选择结构和分支结构。
35、count() 方法用于统计某个元素在列表中出现的次数。
三、编程题(共2题,共30分)
36.设计一个停车场收费计算器(收费规则,2小时以内收费5元,超出部分每小时加收2元),要求如下:
(1)设计的程序要能输入停车时间(单位为小时,输入的小时数为整数);
(2)程序可以根据输入的停车时间自动计算出停车费,并且显示出来;
(3)程序可以重复使用。
37.用户输入一个半径r,求该半径下的圆的面积s与周长c。
要求如下:
(1)输出的面积与周长都保留俩位小数;
(2)输出的格式为:“圆的周长是**,面积是**”;
(3)pi取3.14;
(4)使用print()格式化输出(%方法)。
参考答案及解析:
一、单选题答案及解析
1. A
- 解析:在 Python 中,使用`del`语句可以删除字典中的特定键值对,`del infor['age']`可以正确删除字典`infor`中键为`age`的键值对。B 选项语法错误;C 选项`del infor`会删除整个字典;D 选项`infor.clear()`会清空整个字典。
2. A
- 解析:长方形周长公式为 2×(长 + 宽),A 选项`c = 2 * a + 2 * b`正确计算了长方形的周长。B、C、D 选项公式错误。
3. B
- 解析:`list1.remove('A')`会移除列表中第一个出现的`'A'`,所以结果是`['&', 'A', 8, 'A']`。
4. A
- 解析:`sorted()`函数可以对列表进行排序并返回一个新的已排序列表,默认是升序。B 选项`sort()`用法错误;C 选项`sort(reverse=True)`是对列表本身进行降序排序,但没有赋值给任何变量;D 选项`reverse=True`是降序排序。
5. A
- 解析:`list1.append('a')`会在列表`list1`末尾添加元素`'a'`,所以结果是`['b', 'c', 1, 2, 3, 4, 5, 'a']`。
6. C
- 解析:元组的切片操作`t[1:3]`会返回从索引 1 到索引 2 的元素,即`(77, 95)`。A、D 选项是列表的表示形式;B 选项不是正确的切片结果。
7. D
- 解析:在 Python 中,字典使用大括号`{}`定义,键和值之间用冒号`:`分隔,各个键值对之间用逗号`,`分隔。A、B、C 选项语法错误。
8. C
- 解析:A 和 B 选项中没有设置退出条件,会陷入死循环;D 选项`while i == 1`如果初始`i`为 1 也会陷入死循环;C 选项当`i == 100`时使用`break`跳出循环,不会产生死循环。
9. B
- 解析:当遇到字符`'c'`时,`break`语句会跳出循环,此时`i`的值为`'c'`。
10. C
- 解析:`list6 = [0, 6]`定义了一个列表,包含两个元素 0 和 6。A 选项描述错误;B 选项不是 0.6;D 选项不是生成数字序列。
11. B
- 解析:在 Python 中,“/”表示普通除法,结果为浮点数;“//”表示整数除法,结果为整数。 这里x = 10,y = 5,x/y = 10/5 = 2.0,而x//y = 10//5 = 2。 因为数据类型不同,2.0不等于2,所以条件x/y == x//y不成立,执行 else 分支,输出“不相等”, 答案是 B。
12. B
- 解析:`list(range(5))`会生成一个包含 0 到 4 的整数列表,即`[0, 1, 2, 3, 4]`。
13. D
- 解析:`x[1] * y[2] = 2 * 5 = 10`,然后`z.append(10)`,所以`z`为`[10]`。
14. C
- 解析:首先`a = 1`,因为`a > 0`,所以`a = a + 1 = 2`,又因为`a > 1`,所以`a = 5`,最后输出`a`的值为 5。
15. D
- 解析:切片操作`[::2]`表示从开始到结束,步长为 2,所以`st = 'Python'`,`x = st[::2]`的值为`'Pto'`。
16. C
- 解析:在 Python 中,字符串相加是拼接操作,所以`a + b`的值为`'12'`。
17. B
- 解析:`list1 + list2`得到`[1, 3, 4, 3, 5, 2]`,然后乘以 2 就是重复两次这个列表,即`[1, 3, 4, 3, 5, 2, 1, 3, 4, 3, 5, 2]`。
18. C
- 解析:`['python', '2021']`是一个列表,所以`type(ls)`的结果是`<class 'list'>`。
19. D
- 解析:`len(t)`是求元组长度;`min(t)`求元组中的最小值;`max(t)`求元组中的最大值;`sum(t)`求元组数据的和。
20. A
- 解析:`"love" in stra`判断字符串`"love"`是否在`stra`中,这里是存在的,所以结果为`True`。
21. B
- 解析:遍历列表`lista`,步长为 2,累加对应位置的元素,结果为`s = 1 + 3 + 5 + 7 + 9 = 25`,输出`s = 25`。
22. A
- 解析:A 选项`a.clear()`会清空字典`a`使其变为空值;B 选项是将字典`c`复制给`a`,不是空值;C 选项只删除了一个键值对,不是空值;D 选项弹出一个键值对,不是空值。
23. C
- 解析:`L.pop(3)`移除索引为 3 的元素,`L.pop(2)`移除索引为 2 的元素,最终结果为`[1, 2, 5, 2, 1]`。
24. D
- 解析:元组`tup1[1]`为 2,`tup1[-1]`为 5,相加结果为 7,输出`x = 7`。
25. B
- 解析:字典`infor`有三个键值对,所以`len(infor)`的值为 3。
二、判断题答案及解析
26. ×
- 解析:元组是不可变的,不能通过赋值改变其中的元素。
27. ×
- 解析:for 循环是遍历循环,while 循环是条件循环。
28. ×
- 解析:字典中的元素由键和值组成,称为键值对,键和值中间用冒号分隔,键值对之间用逗号分隔。
29. ×
- 解析:break 语句的作用是提前结束当前所在的最内层循环。
30. √
- 解析:在 Python 中,字符串切片操作`s[2:4]`表示从索引 2 到索引 3 的字符,结果是'不觉'。
31. ×
- 解析:元组是不可变的,不能通过下标索引修改元素。
32. ×
- 解析:`"好好学习" + "天天向上"`的输出结果是“好好学习天天向上”。
33. √
- 解析:在循环中,当满足某个条件时,可以使用 break 语句提前退出循环。
34. ×
- 解析:程序设计的三种基本结构为:顺序结构、选择结构和循环结构。
35. √
- 解析:`count()`方法用于统计某个元素在列表中出现的次数。
三、编程题解析
36. 参考代码:
while True: # 创建一个无限循环,使得程序可以重复运行
a = int(input("请输入停车时间(单位为小时,整数):")) # 提示用户输入停车时间
if a <= 2: # 判断停车时间是否小于等于 2 小时
c = 5 # 如果停车时间小于等于 2 小时,停车费为 5 元
else:
c = 5 + (a - 2) * 2 # 如果停车时间大于 2 小时,计算停车费为基础费用 5 元加上超出 2 小时部分每小时 2 元的费用
print(f"停车费为{c}元。") # 打印出计算得到的停车费
总结:这段 Python 代码实现了一个简单的停车场收费计算器。程序通过无限循环不断接收用户输入的停车时间,根据收费规则判断停车时间是否小于等于 2 小时,从而确定停车费为固定的 5 元还是按照超出部分每小时 2 元的规则进行计算。最后将计算出的停车费打印出来,以便用户查看。
37. 参考代码:
r = float(input("请输入半径:")) # 提示用户输入半径,并将输入的值转换为浮点数类型赋值给变量 r
pi = 3.14 # 定义常量 pi,值为 3.14
s = pi * r * r # 根据圆的面积公式(面积 = π×半径×半径)计算圆的面积,并将结果赋值给变量 s
c = 2 * pi * r # 根据圆的周长公式(周长 = 2×π×半径)计算圆的周长,并将结果赋值给变量 c
print("圆的周长是%.2f,面积是%.2f" % (c, s)) # 打印出圆的周长和面积,保留两位小数
总结:这段 Python 代码实现了根据用户输入的半径计算圆的周长和面积的功能。首先,程序接收用户输入的半径值,并将其转换为浮点数类型。然后,定义了常量 `pi` 为 3.14。接着,分别使用圆的周长和面积公式计算出圆的周长和面积,并将结果分别存储在变量 `c` 和 `s` 中。最后,使用格式化字符串的方式打印出圆的周长和面积,保留两位小数,以便更清晰地展示结果。