真题与解析 202406二级 青少年软件编程(Python)考级

青少年软件编程(Python)等级考试试卷(二级)

202406真题与解析

分数:100  题数:37  测试时长:60分钟

一、单选题(共25题, 共50分) 

1. 列表 fruit = ['西瓜', '菠萝', '哈密瓜', '葡萄'],以下哪个选项,可以获取列表最后一个元素?( )

(2分)

A fruit[len(fruit)]

B fruit[len(fruit) – 1]

C fruit[len(fruit) + 1]

D fruit[0]

2. 初唐四杰是指唐朝初期的四位文学家,分别是王勃、杨炯、卢照邻和骆宾王。 目前列表 names 如下:  

names = ['王勃', '杨炯', '白居易', '卢照邻', '骆宾王'] 

列表中多了一位不是初唐四杰的文学家,

以下哪个选项可以删除列表中的这位诗人?( )

(2分)

A names.pop()

B names.pop(1)

C names.pop(2)

D names.pop(3)

3. 小明在语文课学习了一个新成语:'从善如流';形容能迅速而顺畅地接受别人的正确意见,执行以下语句,终端区会打印什么内容?( )(2分)

idiom = '从善如流'for i in idiom:

    print(i)

A 从善如流

B

C

从善如流

从善如流

从善如流

从善如流

D

i

i

i

i

4. my_tuple = (1, 2, 3, 4, 5) print(my_tuple[::-2])  以上代码的输出是?( )

(2分)

A (1, 3, 5)

B (1, 2, 3, 4, 5)

C (5, 3, 1)

D (5, 4, 3, 2, 1)

5. 执行如下代码,输出结果是?( )

tuple = ('q', 'i', 'n', 'g', 'd', 'a', 'o', '1024')

print(max(tuple) + min(tuple))

A 1024 q

B 1024q

C q 1024

D q1024

6. for var in          :

    print(var)

哪个选项不符合上述程序空白处的语法要求?( )

(2分)

A range(0,10)

B (1, 2, 3)

C a>5

D "Wulaoshi"

7. 执行以下代码后,列表ls的元素个数多少个?( )

ls=[1,2,3,['a',"b"]]

ls.append(5)

ls[3].append(6)

A 6

B 5

C 4

D 7

8. 已知xs=(5,'女','北京大学'),该如何定义字符串geshi,才能在执行print(geshi%xs)后得到如下的运行结果?( )

学号:000005    性别:女    学校名称: 北京大学

A geshi='学号:%6d\t性别:%s\t学校名称: %s'

B geshi='学号:%06s\t性别:%s\t学校名称: %s'

C geshi='学号:%06d\t性别:%s\t学校名称: %s'

D geshi='学号:%6d\t性别:%d\t学校名称: %d'

9. 小圆同学想要创建空列表P,他可以通过以下哪条语句实现?( )

A P={}

B P=()

C P=[]

D P=""

10. ls1=[5,2,0,1,4,11,66,38],以下哪种函数或方法可实现列表ls1元素从大到小的排序?( )

A ls1.sort()

B ls1.sort(reverse=True)

C sorted(ls1)

D ls1.reverse()

11. 中国电子学会等级考试的官方网址是https://www.qceit.org.cn,用户可以通过注册账号和密码登入网站。不同用户的账号是不同的,但同一用户的账号和密码是一一对应的,最好采用以下哪种数据结构存储账号和密码的对应关系?( )

A 元组

B 字典

C 列表

D 字符串

12.month={1:'Jan',2:'Feb',3:'Mar',4:'Apr',5:'May',6:'Jun',7:'Jul',8:'Aug',9:'Sep',10:'Oct',11:'Nov',12:'Dec'},month[2]的值是?( )

A 'Mar'

B 3:'Mar'

C 2:'Fed'

D  'Feb'

13. 以下程序段运行后打印的结果是?( )

tp=('牢记历史', '不忘过去', '珍爱和平', '开创未来')

tq='山河已无恙','吾辈当自强'

new=tp+tqprint(new)print(len(new))

A ('牢记历史', '不忘过去', '珍爱和平', '开创未来','山河已无恙','吾辈当自强')

6

B ('牢记历史', '不忘过去', '珍爱和平', '开创未来','山河已无恙','吾辈当自强')

5

C ('牢记历史', '不忘过去', '珍爱和平', '开创未来','山河已无恙','吾辈当自强')

7

D 程序运行时错误

14. 下列哪个程序不会陷入死循环?( )

A false=‘false’

while false:

    print(该程序已经进入死循环!’)

B while 0:

    print(该程序已经进入死循环!’)

C while 1<2:

    print(该程序已经进入死循环!’)

D while 1:

print(该程序已经进入死循环!’)

15. 以下程序段执行后绘制出的图形是?( )

A

B

C

D

16. 执行语句print(list(range(1,5)))的输出结果是?( )

A [1, 2, 3, 4]

B [1, 2, 3, 4, 5]

C 1, 2, 3, 4

D 1, 2, 3, 4, 5

17. 以下各个选项中的Python语句执行的循环次数与其他不同的是?( )

A for i in range(10):

    print(i)

B fori in range(10,0,-1):

    print(i)

C i=0

while (i<=10):

    print(i)

    i=i+1

D i=10

while (i>0):

    print(i)

    i=i-1

18. 运行下列程序,输出的结果是?( )

s = '抽刀断水水更流。'print(s.replace('水', '#'))

A 抽刀断水水更流。

B 抽刀断更流

C 抽刀断##更流。

D 抽刀断#水更流。

19. 运行以下程序,输出结果为?( )

s = 0

l = [1, 2, 3, 4, 5]for i in l:

    if i == 2:

        continue

    if i == 4:

        break

    s = s + iprint(s)

A 15

B 13

C 4

D 10

20. 要想把字符串 s = 'abc' 转换成列表类型,以下选项中哪个命令是正确的?( )

A str(s)

B int(s)

C float(s)    

D list(s)

21. 下列选项中,关于sort()和sorted()函数说法错误的是?

A sort()函数是在原内存地址上进行排序,会改变原列表的值

B sorted()函数是在原内存地址上进行排序,会改变原列表的值

C sorted()函数会生成一个新的已排序列表,不会改变原列表的值

D sort()函数默认是按照从小到大的顺序进行排序

22. 小明将自己的考试成绩保存到字典(dictionary)中,如下所示:

dict1 = {'语文':90,'数学':95,'英语':98}

经过核对发现数学少加了2分,现在想修改字典中的数学成绩为97, 下列哪个程序可以实现此功能?( )

A dict1[1] = 97

B dict1[1][‘数学’] = 97

C else

D dict1['数学'] = 97

23. 定义字典 dict1 = {'姓名':'王小明', '性别':'男','身高':'150cm', '体重':'40kg'}  保存了小明的个人信息, 输入如下程序并执行后, dict1['爱好'] = '篮球'

dict1['体重'] = '42kg'

del dict1['性别']

请问字典dict1中的内容为?( )

A {'姓名':'王小明', '性别':'男','身高':'150cm', '体重':'40kg'}

B {'姓名':'王小明', '性别':'男','身高':'150cm', '体重':'40kg', '爱好': '篮球'}

C {'姓名':'王小明', '身高': '150cm', '体重': '40kg', '爱好': '篮球'}

D {'姓名':'王小明', '身高': '150cm', '体重': '42kg', '爱好': '篮球'}

24. 小明用Python编写了一个狗狗与人类年龄的转化程序如下, 假设小明家狗狗现在4岁,请问相当于人类年龄几岁?( )

A 14

B 22

C 31

D 32

25. 如果有一个列表fruits = ['苹果', '香蕉', '樱桃'],小明想在'香蕉'和'樱桃'之间添加一个新的水果'桔子',他应该怎么做?( )

A fruits.append('桔子')

B fruits.insert(1, '桔子')

C fruits.insert(2, '桔子')

D fruits.add('桔子')

二、判断题(共10题, 共20分) 

26. 元组和列表都属于序列类型,它们的元素都有下标,元素和长度都是可变的。( )

27.while()无限循环常常与if条件结构和break语句结合起来使用。( )

28.元组的元素不能被修改。( )

29.在Python中,for循环与while循环都可以用于遍历序列(如列表、元组、字符串等)中的元素。( )

30.已知score=93.2,那么代码 print("本次数学期末考试,本班平均分为%d" % (score)) 的写法是正确的。( )

31.字典的主要操作是依据键来存储和读取值。( )

32.while循环不断地运行,直到指定的条件满足为止。( )

33.使用min()函数可以找到字符串中最大的字符。( )

34.列表(list)是一个存储空间,可以存储一个元素,也可以存储多个元素。( )

35. 要检查两个人的年龄都不小于21岁,可以使用下面的条件语句。( )

age_0 = 22

age_1 = 18

if age_0 >= 21 and age_1 >= 21:

print('两个人年龄都不小于21岁!')

三、编程题(共2题, 共30分)

36. 成绩分级(15分)

期末数学考试满分为100分,需要将同学们的得分转换为A、B、C、D等级的形式进行期末素质考核评估,大于等于90分为A,大于等于80分小于90分为B,大于等于60分小于80分为C,小于60分为D,现在请编写一段程序,当输入成绩时(成绩为整数),程序能给出相应的等级,并且可循环输入成绩,直至输入字符“E”时结束程序。

37 飞花令(15分)

“飞花令”是中国人在饮酒时的一种助兴游戏,飞花令名字起源于诗词之中,因唐代诗人韩翃的《寒食》“春城无处不飞花”而得名。飞花令的规则是,参与者轮流说出含有特定字的诗句,这些字通常都是事先约定的,称为“雅令”,如“花”、“春”等。请用Python程序来实现飞花令。

功能实现:

(1)程序开始运行时,提示用户输入本局雅令,即约定好的关键字;

(2)输入完雅令后,回车后进入后面的输入诗句环节,

(3)提示用户输入含有雅令的诗句,诗句长度为5个字或者7个字;

(4)多个句子答案用" 、"分隔,并且将每一句转换成列表中的元素;

(5)回车代表结束诗句输入;

(6)统计雅令出现的次数,雅令出现一次计一分;

(7)格式化输出最后得分。

输入输出样例:

参考答案及解析:

一、单选题答案及解析

1. B

   – 解析:列表索引从0开始,`len(fruit)`表示列表长度,`fruit[len(fruit)-1]`可以获取列表最后一个元素。A选项会超出列表索引范围;C选项也超出列表索引范围;D选项是获取列表第一个元素。

2. C

   – 解析:列表`names`中“白居易”在索引2处,所以删除他应该使用`names.pop(2)`,C选项正确。

3. B

   – 解析:循环遍历字符串,每次输出一个字符,所以会输出“从善如流”每个字符分别占一行。

4. C

   – 解析:元组切片`[::-2]`表示从后向前,步长为2,结果为(5, 3, 1)。

5. D

   – 解析:元组中的字符可以比较大小,`max(tuple)`为'q',`min(tuple)`为'1024',输出结果为'q1024 '。

6. C

   – 解析:`for`循环可以遍历可迭代对象,A选项`range(0,10)`是可迭代的整数序列;B选项元组是可迭代对象;D选项字符串是可迭代对象;C选项`a>5`不是可迭代对象。

7. B

   – 解析:列表`ls`原本有4个元素,`append(5)`后增加一个元素,`ls[3].append(6)`在列表中的子列表中增加一个元素,所以总共有5个元素。

8. C

   – 解析:格式化字符串中`%06d`表示输出6位整数,不足6位前面补0;`%s`表示输出字符串。所以`geshi='学号:%06d\t性别:%s\t学校名称: %s'`可以在执行`print(geshi%xs)`后得到正确结果。

9. C

   – 解析:创建空列表用`[]`,A选项`{}`创建字典;B选项`()`创建元组;D选项`""`创建空字符串。

10. B

   – 解析:`ls1.sort(reverse=True)`可以实现列表`ls1`元素从大到小的排序;A选项`ls1.sort()`是从小到大排序;C选项`sorted(ls1)`返回一个新的已排序列表,不改变原列表;D选项`ls1.reverse()`只是反转列表,不是从大到小排序。

11. B

   – 解析:字典可以存储键值对,适合存储账号和密码的对应关系。元组不可变且不适合存储这种对应关系;列表和字符串也不适合。

12. D

   – 解析:字典通过键访问值,`month[2]`的值是'Feb'。

13. A

   – 解析:元组拼接后得到新的元组,长度为6,输出结果为('牢记历史', '不忘过去', '珍爱和平', '开创未来','山河已无恙','吾辈当自强'),长度为6。

14. B

   – 解析:答案是B。 分析如下: A选项,这里`false`被赋值为字符串`'false'`,在 Python 中,非空字符串被视为真值,所以这个循环会陷入死循环。 C选项,`1<2`为真,循环会一直执行,陷入死循环。 D选项,`while 1`中,1被视为真值,循环会一直执行,陷入死循环。 B选项,`while 0`,0被视为假值,循环条件不成立,不会进入循环体,不会陷入死循环。

15. B

   – 解析:段代码会生成三个等边三角形组成的图案,且三个三角形的颜色分别为橙色、绿色和粉色。

16. A

   – 解析:`range(1,5)`生成1、2、3、4,`list(range(1,5))`转换为列表为[1, 2, 3, 4]。

17. C

   – 解析:分析如下: A选项`for i in range(10)`会从0到9循环10次。 B选项`for i in range(10, 0, -1)`是从10到1进行循环,循环10次。 C选项`i = 0; while (i <= 10)`,从0到10循环11次。 D选项`i = 10; while (i > 0)`,从10到1循环10次。 所以C选项的循环次数与其他不同。

18. C

   – 解析:`s.replace('水', '#')`将字符串中的“水”替换为“#”,结果为“抽刀断##更流。”。

19. C

   – 解析:循环中遇到2时`continue`跳过本次循环,遇到4时`break`跳出循环,所以`s = s + i`执行了1+3,结果为4。

20. D

   – 解析:`list(s)`可以将字符串`s`转换成列表类型;A选项`str(s)`将对象转换为字符串;B选项`int(s)`将字符串转换为整数(如果字符串内容可以转换为整数);C选项`float(s)`将字符串转换为浮点数(如果字符串内容可以转换为浮点数)。

21. B

   – 解析:`sort()`函数是在原内存地址上进行排序,会改变原列表的值;`sorted()`函数会生成一个新的已排序列表,不会改变原列表的值。

22. D

   – 解析:修改字典中的值使用`字典名[键]=新值`,所以`dict1['数学'] = 97`可以实现此功能。

23. D

   – 解析:执行`dict1['爱好'] = '篮球'`添加键值对,`dict1['体重'] = '42kg'`修改体重,`del dict1['性别']`删除性别键值对,结果为{'姓名':'王小明', '身高': '150cm', '体重': '42kg', '爱好': '篮球'}。

24.D

   – 解析:如果小明家狗狗现在 4 岁,执行的是 age > 2 的分支。人类年龄 human = 22 + (4 – 2) * 5 = 22 + 2 * 5 = 22 + 10 = 32。所以相当于人类年龄 32 岁。

25. C

   – 解析:`fruits.insert(2, '桔子')`可以在列表索引2处(即“香蕉”和“樱桃”之间)添加新元素“桔子”;A选项`fruits.append('桔子')`在列表末尾添加;B选项`fruits.insert(1, '桔子')`在“苹果”和“香蕉”之间添加;D选项列表没有`add`方法。

二、判断题答案及解析

26. ×

   – 解析:元组的元素和长度是不可变的,列表的元素和长度是可变的。

27. √

   – 解析:`while()`无限循环常常与`if`条件结构和`break`语句结合起来使用,以便在满足特定条件时跳出循环。

28. √

   – 解析:元组是不可变的,元组的元素不能被修改。

29. √

   – 解析:在 Python 中,`for`循环与`while`循环都可以用于遍历序列(如列表、元组、字符串等)中的元素。

30. ×

   – 解析:`score=93.2`是浮点数,`%d`是格式化输出整数,应该使用`%f`或`%.2f`等格式化输出浮点数。

31. √

   – 解析:字典的主要操作是依据键来存储和读取值。

32. ×

   – 解析:`while`循环满足循环条件时不断地运行,直到指定的条件不满足为止。

33. ×

   – 解析:使用`max()`函数可以找到字符串中最大的字符,但不能用`min()`函数找到最大字符,且通常是根据字符的 ASCII 值进行比较。

34. √

   – 解析:列表(list)是一个存储空间,可以存储一个元素,也可以存储多个元素。

35. ×

   – 解析:`age_1 = 18`不满足条件,所以不能输出“两个人年龄都不小于21岁!”。

三、编程题解析

36. 参考代码:

while True:

    # 进入一个无限循环,持续接收用户输入

    score = input("请输入成绩(输入'E'结束程序):")

    # 获取用户输入的成绩或结束指令

    if score == 'E':

        # 如果用户输入'E',表示要结束程序

        break

    else:

        # 如果不是'E',则尝试将输入转换为整数类型的成绩

        score = int(score)

        if score >= 90:

            # 如果成绩大于等于 90 分,输出等级'A'

            print("A")

        elif score >= 80:

            # 如果成绩大于等于 80 分且小于 90 分,输出等级'B'

            print("B")

        elif score >= 60:

            # 如果成绩大于等于 60 分且小于 80 分,输出等级'C'

            print("C")

        else:

            # 如果成绩小于 60 分,输出等级'D'

            print("D")

总结:这段 Python 代码实现了一个成绩等级转换程序。程序通过一个无限循环不断接收用户输入的成绩,当用户输入'E'时,程序结束。对于输入的成绩,程序根据不同的分数范围将其转换为对应的等级(A、B、C、D)并输出。

37. 参考代码:

keyword = input("请输入本局雅令:")

# 获取用户输入的本局关键字(雅令)

print("现在请输入含有雅令的诗句,诗句长度为 5 个字或者 7 个字,多个句子答案用' 、'分隔,回车代表结束诗句输入。")  # 给出输入诗句的提示信息

poems = input().split(" 、")

# 获取用户输入的诗句,以" 、"进行分割,存储在列表 poems 中

score = 0

# 初始化得分变量为 0

for poem in poems:

    count = poem.count(keyword)

    # 统计当前诗句中雅令出现的次数

    score += count

    # 将当前诗句中的雅令次数累加到总得分中

print(f"最后得分为:{score}分。")

# 格式化输出最后得分

总结:这段 Python 代码实现了一个简单的飞花令程序。首先让用户输入本局的雅令关键字,然后提示用户输入含有该雅令的诗句,用户可以输入多个诗句并用" 、"分隔。程序将用户输入的诗句分割成列表,然后遍历这个列表,统计每个诗句中雅令出现的次数,并将这些次数累加起来得到总得分,最后格式化输出得分结果。

作者:晴朗向上

物联沃分享整理
物联沃-IOTWORD物联网 » 真题与解析 202406二级 青少年软件编程(Python)考级

发表回复