青少年软件编程(Python)等级考试试卷(二级)
分数:100 题数:37
一、单选题(共25题,每题2分,共50分)
01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A | A | B | C | C | B | A | B | C | D | A | C | C | B | B |
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
---|---|---|---|---|---|---|---|---|---|
C | C | A | C | C | C | A | C | B | C |
1、运行下列程序,输出的结果是?( )
tup1 = ('苏炳添', '谷爱凌', '北京冬奥会', '2022')
tup2 = (201, 8, 4, 21, 155, 255, 22)
print(tup1[-1::-2], sum(tup2))
- A. (‘2022’, ‘谷爱凌’) 666
- B. ‘2022’, ‘谷爱凌’ 666
- C. ‘2022’, ‘北京奥运会’ 666
- D. (‘2022’,) 666
- 标准答案:A
- 试题难度:中
- 试题解析:本题考查元组的截取操作和求和运算,反向截取的元组tup1的全部元素,步长为2返回的值分别是’2022’, ‘谷爱凌’,求和运算tup2结果为666,所以正确答案为A。
2、下列关于if-else中的代码块说法正确的是?( )
- A. 缩进是Python分支语句的语法部分,缩进不正确会影响分支功能。
- B. if语句中条件表达式可以省略不写。
- C. 代码块是固定的内容,一旦写入不能修改。
- D. if-else结构是不可以嵌套的。
- 标准答案:A
- 试题难度:中
- 试题解析:此题考查对条件语句的理解,代码块一定要缩进,否则会报错。if语句后面跟随条件表达式不可以省略,代码块中的程序,代码块中的程序,可随时根据需求变化更改,也同样是可以嵌套if-else语句的,故选择A。
3、下列哪个是一个合法的列表?( )
- A. (114, 5, 1, 4)
- B. [‘114’, ‘514’]
- C. “11,45,1,4”
- D. {11, ‘4’, 5, 14}
- 标准答案:B
- 试题难度:容易
- 试题解析:列表要用中括号括起来
4、运行下列程序,输出的结果是?( )
list4 = ['1', '3', '5']
list4.append('7')
print(len(list4))
- A. 2
- B. 3
- C. 4
- D. 5
- 标准答案:C
- 试题难度:容易
- 试题解析:append()方法给list4列表添加了一个列表项,所以len(list4)的输出结果为4
5、已知列表list9 = [114, 5, 14, 1, 91, 98, 10]
,下列说法错误的是?( )
- A.
print(max(list9))
可以输出列表的最大值,输出结果为114 - B.
print(min(list9))
可以输出列表的最小值,输出结果为1 - C.
print(list9.index(98))
可以输出数值98第一个匹配项的索引位置,输出结果为6 - D.
list9.pop()
可以移除列表中的最后一个元素
- 标准答案:C
- 试题难度:困难
- 试题解析:数值98的第一个匹配项是第6个元素,其索引是5,而不是6
6、小明将小组的50米跑步成绩存入列表s
,s
的值为[11.5, 11.4, 11.6, 11.2, 12.0, 11.5],则执行s.sort()
语句后,s
的值是?( )
- A. [11.5, 11.4, 11.6, 11.2, 12.0]
- B. [11.2, 11.4, 11.5, 11.5, 11.6, 12.0]
- C. [12.0, 11.6, 11.5, 11.5, 11.4, 11.2]
- D. [11.2, 11.4, 11.5, 11.6, 12.0]
- 标准答案:B
- 试题难度:较难
- 试题解析:
7、若s = ["中国", "I love you", [2022, 100]]
,则len(s)
的值是?( )
- A. 3
- B. 4
- C. 2002
- D. “中国”
- 标准答案:A
- 试题难度:容易
- 试题解析:
8、小明用元组a
存储自己喜欢吃的水果,a = ("apple", "banana", "orange", "banana", "pear")
,则a.index("banana")
的值是?( )
- A. 0
- B. 1
- C. 2
- D. 3
- 标准答案:B
- 试题难度:较难
- 试题解析:
9、运行下列程序,输出的结果是?( )
d = {"王明": 178, "张华": 158, "于飞": 189, "刘英": 164}
d["张华"] = 162
print(d)
- A. {‘王明’: 178, ‘张华’: 158, ‘于飞’: 189, ‘刘英’: 164}
- B. {‘张华’: 162}
- C. {‘王明’: 178, ‘张华’: 162, ‘于飞’: 189, ‘刘英’: 164}
- D. {‘王明’: 178, ‘张华’: 158, ‘于飞’: 189, ‘刘英’: 164, ‘张华’: 162}
- 标准答案:C
- 试题难度:容易
- 试题解析:
10、运行下列程序,输出的结果是?( )
for i in range(1, 5, 2):
print(i)
- A.
1
2
3
4
5
- B.
1
2
3
4
- C.
0
2
4
- D.
1
3
- 标准答案:D
- 试题难度:容易
- 试题解析:
11、运行下列程序,输出的结果是?( )
lis1 = ["a", "e", "i", "o", "u"]
strword = 'hello world'
lis2 = []
for i in strword:
if i not in lis1:
lis2.append(i)
print(lis2)
- A. [‘h’, ‘l’, ‘l’, ’ ', ‘w’, ‘r’, ‘l’, ‘d’]
- B. [‘h’, ‘l’, ‘l’, ‘w’, ‘r’, ‘l’, ‘d’]
- C. [‘e’, ‘o’, ‘o’]
- D. [‘e’, ‘’, ‘o’, ’ ', ‘o’]
- 标准答案:A
- 试题难度:困难
- 试题解析:考察列表元素的遍历及追加。
12、运行下列程序,输出的结果是?( )
lt = ["cat", 0, 1, 2, 3, 4, "tiger", 1024]
lt.remove(3)
print(lt)
- A. [‘cat’, 0, 2, 4, ‘tiger’, 1024]
- B. [‘cat’, 0, 1, 4, ‘tiger’, 1024]
- C. [‘cat’, 0, 1, 2, 4, ‘tiger’, 1024]
- D. [‘cat’, 0, 1, 2, 4, 1024]
- 标准答案:C
- 试题难度:容易
- 试题解析:考察列表remove()的用法。
13、运行下列程序,输出的结果是?( )
for s in "HelloWorld":
if s == "W":
continue
print(s, end="")
- A. World
- B. Hello
- C. Helloorld
- D. HelloWorld
- 标准答案:C
- 试题难度:困难
- 试题解析:考察if语句及 continue语句相关用法。
14、运行下列程序,输出的结果是?( )
s = 'kdk-kldk-dsd'
s = s.split('-')
print(''.join(s))
- A. [‘kdk’, ‘kldk’, ‘dsd’]
- B. kdkkldkdsd
- C. kdk kldk dsd
- D. kdk-kldk-dsd
- 标准答案:B
- 试题难度:较难
- 试题解析:split命令可以将字符串按指定字符分割,结果是一个列表;第2行代码执行后,s中存储的是[‘kdk’, ‘kldk’, ‘dsd’]。 join命令可以将存储着字符串的列表,使用指定字符串连接起来,所以第3行代码执行后,将列表[‘kdk’, ‘kldk’, ‘dsd’]中的字符串使用空字符串连接,结果是kdkkldkdsd。
15、
a = 2
b = 0
下列不能打印出2022的是?( )
- A.
print('%d%d%d%d' % (a, b, a, a))
- B.
print(''.join([a, b, a, a]))
- C.
print("{0}{1}{0}{0}".format(a, b))
- D.
print('%s%s%s%s' % (a, b, a, a))
- 标准答案:B
- 试题难度:较难
- 试题解析:使用join命令拼接字符串时,不能拼接整数,所以B选项错误。
16、运行下列程序,输出的结果是?( )
chengyu = {'四字成语': '杨柳依依', '三字成语': '风马牛', '六字成语': '一动不如一静', '四字成语': '百里挑一'}
print(chengyu)
- A. {‘四字成语’:‘杨柳依依’, ‘三字成语’:‘风马牛’, ‘六字成语’:‘一动不如一静’, ‘四字成语’:‘百里挑一’}
- B. 字典的键值对不允许重复,运行会报错
- C. {‘四字成语’: ‘百里挑一’, ‘三字成语’: ‘风马牛’, ‘六字成语’: ‘一动不如一静’}
- D. {‘四字成语’:[‘杨柳依依’,‘百里挑一’], ‘三字成语’:‘风马牛’, ‘六字成语’:‘一动不如一静’}
- 标准答案:C
- 试题难度:中
- 试题解析:字典的键不能重复,如果重复了,会用后面的值覆盖前面的值。
17、运行下列程序,输出的结果是?( )
i = 5
while i:
print(i)
i = i - 1
- A. 上述代码是死循环,会一直打印
- B. 上述代码的打印结果是:
5
4
3
2
1
0
- C. 上述代码的打印结果是:
5
4
3
2
1
- D. 上述代码的打印结果是:
4
3
2
1
0
- 标准答案:C
- 试题难度:中
- 试题解析:变量i的初始值是5,当i变成0时,0会被看做False,退出循环。 所以当i的值是0时,不会被打印。
18、想要统计数字1在列表number中出现的次数,正确的代码是?( )
- A.
n = 0
for i in range(len(number)):
if number[i] == 1:
n += 1
print(n)
- B.
n = 0
for i in range(len(number)):
if i == 1:
n += 1
print(n)
- C.
n = 0
for i in range(number):
if number[i] == 1:
n += 1
print(n)
- D.
n = 0
for i in range(len(number)):
n += 1
print(n)
- 标准答案:A
- 试题难度:较难
- 试题解析:本题考查for和if的嵌套。
19、执行result = [3, 2, 5] * 2
语句后,result的值是?( )
- A. [6, 4, 10]
- B. [3, 2, 5], [3, 2, 5]
- C. [3, 2, 5, 3, 2, 5]
- D. [9, 4, 25]
- 标准答案:C
- 试题难度:容易
- 试题解析:[3,5,2]*2是将列表中的元素复制后,添加到列表中,结果是[3,2,5,3,2,5]
20、a = ['Welcome', 'to', 'Python', 'World', '!']
,以下哪条语句无法删除列表a
中的元素Python?( )
- A.
del a[2]
- B.
a.pop(2)
- C.
a.pop('Python')
- D.
a.remove('Python')
- 标准答案:C
- 试题难度:中
- 试题解析:使用pop()函数,从列表中删除并返回一个对象,pop函数的参数为空或要从列表中删除的对象的下标(索引)
21、运行下列程序,输出的结果是?( )
d = {'语文': 96, '数学': 100, '英语': 100, '科学': 99}
for x in d:
print(x, end=' ')
- A. ‘语文’:96 ‘数学’:100 ‘英语’:100 ‘科学’:99
- B. 96 100 100 99
- C. 语文 数学 英语 科学
- D. [语文’ 96 ‘数学’ 100 ‘英语’ 100,‘科学’ 99]
- 标准答案:C
- 试题难度:中
- 试题解析:for循环遍历字典, 默认获取的是键。
22、下列说法,错误的是?( )
- A. 字典的键和值可以是任何类型的Python对象
- B. 字典的键是可以添加和删除的
- C. 如果字典非空,那么字典每项值的都是一个键值对,格式是key:value
- D. 字典可以是为空值,通常用{}表示
- 标准答案:A
- 试题难度:容易
- 试题解析:字典中的键必须是不可变数据类型
23、元组同列表那样可以有多个元素,但只能执行如下的哪个操作?( )
- A. 修改
- B. 添加
- C. 读取
- D. 删除
- 标准答案:C
- 试题难度:容易
- 试题解析:
24、运行下列程序,输出的结果是?( )
s1 = 'student'
s2 = 'school'
s3 = s1 + s2
print(s3[5:9])
- A. ents
- B. ntsc
- C. entsc
- D. ntsch
- 标准答案:B
- 试题难度:较难
- 试题解析:
25、运行下列程序,输出的结果是?( )
- A. 51 15
- B. 47 13
- C. 49 13
- D. 49 15
- 标准答案:C
- 试题难度:中
- 试题解析:
二、判断题(共10题,每题2分,共20分)
26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |
---|---|---|---|---|---|---|---|---|---|
√ | × | √ | √ | × | × | × | × | √ | √ |
26、
a = 0
while a < 10:
a += 0.5
print(a, end=" ")
打印结果最后的数是10.0。( )
- 正确();
- 错误();
- 标准答案:√
- 试题难度:中
- 试题解析:本题中while循环体内的a值为先赋值后输出,因此输出的值为:0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0,故此题正确。
27、字符串格式化符号%d可以输出格式化浮点数。( )
- 正确();
- 错误();
- 标准答案:×
- 试题难度:容易
- 试题解析:字符串格式化符号%d可以输出格式化整数
28、{'b': [4.9, 2.1], (0, 136, 97): (1.36, 11, 8), 321: {'a': 91, 55: 0}}
是一个合法的字典。( )
- 正确();
- 错误();
- 标准答案:√
- 试题难度:容易
- 试题解析:字典可任意嵌套
29、continue语句不能在循环体之外使用。( )
- 正确();
- 错误();
- 标准答案:√
- 试题难度:容易
- 试题解析:在Python中,continue语句只能在循环体里使用,不能在循环体之外使用
30、在Python中,if语句必须包含else命令。( )
- 正确();
- 错误();
- 标准答案:×
- 试题难度:容易
- 试题解析:单分支的条件判断不包含else命令。
31、打印空列表会提示错误。()
list = []
print(list)
- 正确();
- 错误();
- 标准答案:×
- 试题难度:中
- 试题解析:
32、列表是用方括号[ ]表示,元组是用尖括号< >表示。( )
- 正确();
- 错误();
- 标准答案:×
- 试题难度:容易
- 试题解析:
33、print('今天的最高气温是' + 35 + '度')
+这个符号是起到连接的作用,所以这个代码的输出结果是:今天的最高气温是35度。( )
- 正确();
- 错误();
- 标准答案:×
- 试题难度:容易
- 试题解析:
34、下列程序是对0~9之间的偶数相累加。( )
s = 0
for i in range(10):
if i % 2 == 0:
s = s + i
print(s)
- 正确();
- 错误();
- 标准答案:√
- 试题难度:中
- 试题解析:
35、len(tup)
可以返回元组tup的长度。( )
- 正确();
- 错误();
- 标准答案:√
- 试题难度:容易
- 试题解析:
三、编程题(共2题,共30分)
36
学过编程的小程同学想帮助医生对核酸检测人群进行分流和统计,根据健康码的颜色分配不同的核酸检测区域:
- 红码:A区
- 橙码:B区
- 绿码:C区
等待核酸检测人数众多,但是具体检测人数未知,请你帮小程编写一个程序来协助医生对核酸人群进行人群分流并统计人数。
要求如下:
(1)字母R代表红码,字母Y代表黄码,G代表绿码:
(2)程序运行后根据提示信息输入一个健康码(R、Y、G中之一),输入其他字母提示“输入错误请重新输入”;根据不同的健康码,自动返回区域信息:(红码:A区、橙码:B区、绿码:C区);
(3)程序一直在重复运行,但当输入“end”表示检测结束,输出下面信息(见要求4)后程序结束运行;
(4)检测结束后输出总人数和对应红码、黄码和绿码的人数。
运行案例如下:
> 输入样例1:
> R
> 输出样例1:
> 请到A区检测
>
> 输入样例2:
> Y
> 输出样例2:
> 请到B区检测
>
> 输入样例3:
> G
> 输出样例3:
> 请到C区检测
>
> 输入样例4:
> end
> 输出样例4:
> 检测结束,一共检测*人
> 红码:*人
> 黄码:*人
> 绿码:*人
>
> (说明:*代表实际统计的的数字)
参考程序:
注意:仅供参考,考生可以自行设计,结果符合题意即可。
total, r, y, g = 0, 0, 0, 0
while True:
code = input("输入一个健康码(R,Y,G):")
if code == "end":
break
if code == 'R':
r += 1
print("请到A区检测")
elif code == "Y":
y += 1
print("请到B区检测")
elif code == 'G':
g += 1
print("请到C区检测")
else:
print("输入错误请重新输入")
continue
total += 1
print(f"检测结束,一共检测{total}人")
print(f"红码:{r}人")
print(f"黄码:{y}人")
print(f"绿码:{g}人")
试题难度:中
评分标准:
(1)有无限循环语句;(2分)
(2)有条件判断语句;(2分)
(3)有break语句;(2分)
(4)当输入错误时,可以正确的输出判断结果(提示输入有错);(2分)
(5)当输入字母R、Y或G时,可以正确的提示检测区域;(6分,正确显示A区2分,正确显示B区2分,正确显示C区2分)
(6)当输入“end”时,可以正确地输出提示信息(显示相关统计数据),可以正确的终止循环;(4分。其中正确输出提示2分,正确终止循环2分)
(7)程序结果正确。(2分)
37
设计一个海龟绘图程序,程序效果如下图。
要求:
(1)程序开始后,弹出对话信息“请输入边数:”,要求用户输入所要绘制的图形的边数;
(2)海龟从里往外绘制图形,逆时针旋转(向左);
(3)线条初始长度为15,相邻两条边相差5(每一个线条均比前一个线条长5);
(4)线条颜色顺序依次为红色、蓝色、橘色、绿色(‘red’,‘blue’,‘orange’,‘green’)四个颜色组成的列表(必须使用列表方式进行读取);
(5)总共边数符合输入给定的数字。
参考程序:
注意:仅供参考,考生可以自行设计,结果符合题意即可。
import turtle
colors = ['red', 'blue', 'orange', 'green']
num = int(input('请输入边数:'))
i, j = 0, 15
while i < num:
turtle.pencolor(colors[i % 4])
turtle.forward(j)
turtle.left(90)
j += 5
i += 1
turtle.done()
试题难度:较难
评分标准:
(1)能导入海龟模块;(2分)
(2)能将画笔颜色设置在列表中;(1分);绘画中能够正确的使用列表中的画笔颜色(1分);
(3)画出的边数和输入的边数相符;(2分)
(4)实现每次线条长度加5;(2分)
(5)实现程序效果。(2分)