当前位置:   article > 正文

2024年03月Python五级真题+答案解析(中国电子学会 )

python五级

Python、Scratch所有等考真题点这里

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

分数:100  题数:38

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

1.以下代码的输出结果是?( )

nums = list(range(100, 201))

print(nums[::10])

A.[100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200]

B.[100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 200]

C.[100, 111, 122, 133, 144, 155, 166, 177, 188, 199]

D.[199, 188, 177, 166, 155, 144, 133, 122, 111, 100]

试题编号:202306-zpf-016

试题类型:单选题

标准答案:A

试题难度:容易

试题解析:list(range(100, 201)) 表示包含 100 到 200 一百个整数的列表,而 nums[::10] 表示从开头(即索引 0)开始,每隔 10 个元素取一个数,因此输出结果为 [100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200]。

2.以下代码的输出结果是?( )

def count_odd_numbers(n):

    return len([num for num in range(n) if num % 2 != 0])

print(count_odd_numbers(20))

A.5

B.8

C.10

D.15

试题编号:202306-zpf-017

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:range(n) 表示包含 0 到 n-1 之间的所有整数,而 [num for num in range(n) if num % 2 != 0] 表示从 0 到 n-1 中选出所有奇数,而这些奇数正好有 1, 3, 5, 7, 9, 11, 13, 15,17,19所以输出结果为 10

3.以下代码的输出结果是?( )

for i in range(5):

    print(' '*(5-i) + '*'*(2*i+1))

A.错误,代码无法运行

B.打印出一个梯形状的星星

C.打印出一个倒立的三角形

D.打印出一个正立的三角形

试题编号:202306-zpf-018

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:这段代码使用 for 循环,每次循环时打印一个字符串,其中空格和星号的数量是不同的。在第一次循环中,有五个空格和一个星号;在第二次循环中,有四个空格和三个星号;以此类推。因此该程序打印出一个正立的三角形。

4.运行以下代码的结果是?( )

nums = range(1, 11)

sliced_nums = nums[2:8]

result = sum(sliced_nums) * 3

print(result)

A.90

B.99

C.81

D.72

试题编号:202306-zpf-019

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:range(1, 11) 表示包含 1 到 10 十个整数,而 nums[2:8] 表示从索引 2 开始(即第三个元素),到索引 8 结束之前(即第九个元素)的子列表,即 [3, 4, 5, 6, 7, 8],其和为 33,乘以 3 得到结果 99。

5.集合a={1,2,3,4,5,6},b={1,3,5,7,9},则a&b的结果是?( )

A.{1, 3, 5}

B.{2, 4, 6}

C.{1,2,3,4,5,6,1,3,5,7,9}

D.[1, 3, 5]

试题编号:20230620-lly-017

试题类型:单选题

标准答案:A

试题难度:容易

试题解析:集合有交集、并集、差集,"&"表示交集,所以选项B和选项C错误,集合用{},选项D用[]错误。答案选A

6.下列程序的运行结果?( )

a={6,5,4,3,2,1}

a.remove(1)

print(a)

A.{6,5,4,3,2}

B.{1,2,3,4,5}

C.(6,5,4,3,2)

D.[2,3,4,5,6]

试题编号:20230620-lly-018

试题类型:单选题

标准答案:A

试题难度:容易

试题解析:remove() 方法从集合中删除指定的元素。本题把集合a中的1删除,选A。选项C、D不能用()、[]。

7.智慧种植社团想要确定农植园西红柿元组的最大值,可以使用下列方法?( )

A.list()

B.max()

C.min()

D.sum()

试题编号:20230620-qdc-005

试题类型:单选题

标准答案:B

试题难度:容易

试题解析:内置函数max(),计算元组中元素最大值。

8.统计黑色"black"在当前pen元组中出现的次数

pen=('blue','black','red','black','blue','black')

print(pen.count('black'))

输出的结果是?( )

A.1

B.3

C.5

D.6

试题编号:20230620-qdc-006

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:Python元组元素的统计函数count()。

9.科学课上,王老师做了一个实验,一张纸对折1次厚度是原来的2倍,对折2次厚度是原来的4倍,对折3次厚度是原来的8倍,…依此类推,对折n次后,厚度是原来的多少倍?( )

A.ans=math.pow(10,n)

B.ans=math.comb(n,2)

C.ans=math.factorial(n)

D.ans=math.pow(2,n)

试题编号:20230620-qdc-022

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:运用Python math.pow()计算快速幂,math.pow(2,n)表示2的n次方。

10.有关中文分词jieba库的描述,错误的是?( )

A.jieba.add_word(w)向分词词典中增加新词w

B.jieba.lcut(s)返回的可能是一个字符串类型

C.jieba.cut(s)返回的可能是一个可迭代的数据类型

D.jieba库的分词原理是利用中文词库,将待处理的内容与词库比对后找到最大概率的词组

试题编号:20230620-qdc-023

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:jieba.lcut(s)返回的可能是一个列表类型。

11.石头剪刀布游戏,规则如下:石头胜剪刀,剪刀胜布,布胜石头。编写 Python 程序模拟石头剪刀布游戏,并判定游戏的输赢,代码中数字 0 代表石头,数字 1 代表剪刀,数字 2 代表布。模拟玩家A出拳的程序代码是?( )

A.random.uniform(0,3)

B.random.randint(0,2)

C.random.sample(2,1)

D.random.seed()

试题编号:20230620-qdc-024

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:Python random. randint(a, b),用于生成一个指定范围内的随机整数,两个参数其中一个是上限,一个是下限。

12.Python中wordcloud库把词云当作一个WordCloud对象。

向阳小学阅读社团计划编写一个读书笔记的词云,根据笔记的数量,计划使用以下哪个指令自定义设置词云的图片尺寸参数?( )

A.wordcloud.WordCloud(font_step=5)

B.wordcloud.WordCloud(width=1600,height=800)

C.wordcloud.WordCloud(max_words=20)

D.wordcloud.WordCloud(min_font_size=10)

试题编号:20230620-qdc-025

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:wordcloud.WordCloud() 是以WordCloud对象为基础,配置参数并生成词云。

13.以下哪个选项可以添加一个键值对到字典中?( )

A.my_dict.add(key, value)

B.my_dict[key] = value

C.my_dict.append(key, value)

D.my_dict.insert(key, value)

试题编号:20230624-ph-020

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:要向字典中添加一个键值对,可以使用中括号语法将键和值分别放在方括号内。

14.以下哪个选项可以删除字典中指定的键值对?( )

A.my_dict.remove(key)

B.del my_dict[key]

C.my_dict.clear(key)

D.my_dict.delete(key)

试题编号:20230624-ph-021

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:要删除字典中的一个键值对,可以使用 del 关键字,后跟要删除的键。

15.执行下列代码的结果是?( )

>>> a = "3.1415926"

>>> b = 6

>>> c = "<"

>>> print("{0:{2}.{1}}".format(a,b,c))

A.3.1415926

B.003.14

C.3.1415

D.003.141

试题编号:20230625-cj-009

试题类型:单选题

标准答案:C

试题难度:容易

试题解析:相当于print('{0:<.6}'.format(a))

16.字符串变量str = 'Wfall0343',执行语句print(str.find('3')),输出的结果是?( )

A.6

B.8

C.3

D.7

试题编号:20230625-cj-011

试题类型:单选题

标准答案:A

试题难度:一般

试题解析:find的作用是找到某个字符在字符串中第一次出现的位置。本题中,是要找到字符'3'在字符串中的位置,从0开始计数,'3'第一次出现的位置为6。

17.print('\x68')的结果是?( )

A.\x68

B.68

C.x68

D.h

试题编号:20230625-cj-012

试题类型:单选题

标准答案:D

试题难度:较难

试题解析:\x**表示2位十六进制数对应的字符。

18.设str1 = '*@python@*', 语句print(str1[1:].strip('@'))的执行结果是?( )

A.python@*

B.python*

C.*@python@*

D.* python*

试题编号:20230625-cj-014

试题类型:单选题

标准答案:A

试题难度:容易

试题解析:str1[1:]取到了'@python@*',str1[1:].strip('@')是要将'@python@*'两端的@去掉。左边可以,右边有*号挡着,删不到@。

19.某Python程序段如下:

s=["seasons","spring","summer","fall","winter"]

print(s[1][2:6])

程序运行后,输出的结果是?( )

A.ring

B.pring

C.eason

D.easo

试题编号:20230628-lcy-001

试题类型:单选题

标准答案:A

试题难度:一般

试题解析:本题考察列表的访问

20.某Python程序段如下:

lis=[11,22,33,44,55]

lis[2],lis[3]=lis[3],lis[2]

print(lis)

程序运行后,输出的结果是?( )

A.[11,22,33,44,55]

B.[11,22,22,33,55]

C.[11,22,44,33,55]

D.[11,33,33,44,55]

试题编号:20230628-lcy-002

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:本题考察列表的访问与列表元素的交换。

21.已知列表Lista=[1,2,3,4],执行语句Lista=[2]+Lista后,列表Lista中的元素为?( )

A.[3,4,5,6]

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

C.[1,2,2,3,4]

D.[2,1,2,3,4]

试题编号:20230628-lcy-003

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:本题考察列表的基本操作。

22.已知list1=list("php"),执行语句list1[2:]=list("Python")后,列表list1中的内容为?( )

A.['p','h','p','P','y','t','h','o','n']

B.['p','P','y','t','h','o','n']

C.['p','h','P','y','t','h','o','n']

D.['P','y','t','h','o','n']

试题编号:20230628-lcy-004

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:本题考查的是列表的替换操作。将列表list1中第3至最后一个元素内容替换为″Python″。

23.某Python程序段如下:

import random

a=[random.randint(1,5)*2 for i in range(5)]

print(a)

程序运行后,输出结果不可能是?( )

A.[4,4,8,10,8]

B.[8,8,2,4,2]

C.[2,5,6,8,4]

D.[2,4,6,8,10]

试题编号:20230628-lcy-027

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:本题考察列表推导式,产生5个2-10之间的偶数。

24.某Python程序段如下:

l= ["python" +i+"级" for i in "一二三四五六"]

print(l[4])

程序运行后,输出结果是?( )

A.python二级

B.python三级

C.python四级

D.python五级

试题编号:20230628-lcy-028

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:列表推导式会遍历后面的可迭代对象,然后按照for前的表达式进行运算生成列表。

25.闰年是公历中的名词,分为普通闰年和世纪闰年。普通闰年是4年一次,若公历年份是4的倍数且不是100的倍数则为普通闰年(如2004年、2020年就是普通闰年),现在想输出1949年到今年(2024年)之间的所有普通闰年,正确的列表推导式是?( )

A.print([i for i in range(1949,2025)if i %4==0 and i%100!=0])

B.print([i for i in range(1949,2025)if i %4!=0 and i%100!=0])

C.print([for i in range(1949,2025)if i %4==0 and i%100=0])

D.print([for i in range(1949,2025)if i %4!=0 and i%100=0])

试题编号:20230628-lcy-029

试题类型:单选题

标准答案:A

试题难度:一般

试题解析:本题考察列表推导式的应用。循环变量i的范围是1949-2024,条件是能被4整除但不能被100整除。

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

26.以下代码的输出结果是 48。( )

nums = range(1, 9)

result = sum([num for num in nums if num % 3 != 0]) * 2 - 6试题编号:202306-zpf-020

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:range(start, stop) 表示从 start 开始到 stop-1 结束的所有整数,因此 range(1, 9) 表示包含从 1 到 8 的所有整数。而 [num for num in nums if num % 3 != 0] 表示选取其中不能被 3 整除的元素,即 [1, 2, 4, 5, 7, 8]。这些数加起来是 27,再乘以 2 得到 54,减去6得48.

27.在Python中,可以仅仅使用一对空的花括号{}来创建集合。( )试题编号:20230620-lly-032

试题类型:判断题

标准答案:错误

试题难度:较难

试题解析:本题属于较难题,本题的难点在于:如果仅仅使用一对花括号{},创建的对象将是一个空的字典而不是集合。为了创建一个空集合,必须在花括号中包含一个空格字符。在Python中,集合(set)是一种非常重要的数据类型,它可以存储任意类型的数据对象,并且确保不含有重复元素。使用内置的set()函数是创建一个空集合的最简单的方法。这个函数不接收任何参数,返回一个空的集合对象。在Python中,可以使用花括号来创建一个集合对象。如果仅仅使用一对花括号{},创建的对象将是一个空的字典而不是集合。

28.无法通过引用索引来访问集合中的元素,但是可以用for循环来遍历集合中的元素。( )试题编号:20230620-lly-033

试题类型:判断题

标准答案:正确

试题难度:容易

试题解析:在 Python 中,集合是无序和无索引的集合。无法通过引用索引来访问集合中的元素,可以通过 for 循环来遍历集合的元素,另外,还可以使用 in 关键字来判断集合中是否存在某个元素。

29.科技社团将个人信息定义为元组,使用小括号,数据可以是不同的数据类型,各个数据之间用逗号隔开。( )试题编号:20230620-qdc-027

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:元组特点:定义元组使用小括号,且逗号隔开各个数据,数据可以是不同的数据类型。

30.Jieba是优秀的中文分词第三方库,jieba.cut(s)精确模式,可以把文本精确的切分开,不存在冗余单词。( )试题编号:20230620-qdc-035

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:jieba精确模式是最常用的分词模式,就是把一段文本精确的切分成若干个中文单词,若干个中文单词之间经过组合就精确的还原为之前的文本,其中不存在冗余单词。

31.字典中的键必须是唯一的,但值可以重复。( )试题编号:20230624-ph-022

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:字典中的键必须是唯一的,每个键对应一个值。但是,不同的键可以对应相同的值。

32.print('It's a wonderful day!')的结果是It's a wonderful day!。( )试题编号:20230625-cj-010

试题类型:判断题

标准答案:错误

试题难度:容易

试题解析:需要用转义字符,不然出错。

33.

str="This is a disposable cup"

sub="is"

print(str.rfind(sub))的结果为5。( )

试题编号:20230625-cj-013

试题类型:判断题

标准答案:错误

试题难度:容易

试题解析:rfind的作用为找到子串在字符串中最后出现的位置。本题中应为11。

34.有列表a=[1,2,3],b=a*3,执行语句print(len(b))输出结果是9。( )试题编号:20230628-lcy-005

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:本题考察*在列表中的应用,*3出现在列表中为将列表元素重复三次。

35.小明想在变量a中存储26个小写字母,但他不想手动输入,可以使用列表推导式[chr(i+97)for i in range(26)]实现。( )试题编号:20230628-lcy-030

试题类型:判断题

标准答案:正确

试题难度:较难

试题解析:本题考察列表推导式的应用。

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

36.火柴棍游戏

用火柴棍拼成数字0~9,具体拼法如图所示:

编写Python程序,实现输入火柴棍的数量,输出符合该火柴棍数的三位数组合,若找不到,则输出“没有符合要求的数”,见样例,程序如下:

请在划线处填入合适代码。

code={0:6,1:2,2:5,3:5,4:4,5:5,6:6,7:3,8:7,9:6}

num=int(input("请输入火柴棍数量:"))

flag=False

for i in range(        ①        ):

    if         ②        +code[i//10%10]+        ③         ==num:

        print("可以组成的三位数:",i,sep="")

        flag=True

if          ④        :

    print("可以组成的三位数:","没有符合要求的数",sep="")

试题编号:202403-P5-36

试题类型:编程题

参考程序:

code={0:6,1:2,2:5,3:5,4:4,5:5,6:6,7:3,8:7,9:6}

num=int(input("请输入火柴棍数量:"))

flag=False

for i in range(100,1000):

    if  code[i//100]+code[i//10%10]+code[i%10]==num:

        print("可以组成的三位数:",i,sep="")

        flag=True

if   flag==False:

    print("可以组成的三位数:","没有符合要求的数",sep="")

试题难度:一般

试题解析:

评分标准:

(1)100,1000 或100,1000,1 或等效答案;(2分)

(2)code[i//100] 或等效答案;(3分)

(3)code[i%10] 或效等价答案;(3分)

(4)flag==False 或等效答案 。(2分)“False”首字符小写不给分,只写一个等号不给分。

37.得分处理

智龙是一名篮球队的教练,为了方便对球员进行精准分析,他需要记录球队每个队员的得分,并按照得分从高到低进行排序。请你帮助他完成以下任务:

(1)创建一个空的列表 scores,用于存储队员的得分;

(2)使用循环,依次输入每个队员的得分,将得分添加到 scores 列表中;当输入“stop”时停止输入。

(3)使用 sorted() 函数对 scores 列表进行排序,得到一个新的列表 sorted_scores,按照得分从高到低排序;

(4)打印出排序后的队员得分。

程序代码如下,请你补全代码。

scores=        ①        

while True:

    score =        ②        ("请输入队员的得分(输入stop字符串结束):")

    if score == "stop":

             ③        

    scores.append(int(score))

sorted_scores =        ④        

print("排序后的队员得分:", sorted_scores)

参考程序:

# 创建空的列表存储队员得分

scores = []

# 输入每个队员的得分并添加到列表中

while True:

    score = input("请输入队员的得分(输入stop字符串结束):")

    if score == "stop":

        break

    scores.append(int(score))

# 使用sorted()函数对列表进行排序

sorted_scores = sorted(scores, reverse=True)

# 打印排序后的队员得分

print("排序后的队员得分:", sorted_scores)

试题难度:一般

评分标准:

(1)[] 或等效答案;(2分)

(2)input 或等效答案;(1分)

(3)break 或等效答案;(3分)

(4)sorted(scores, reverse=True) 或等效答案。(4分)

说明:首先,我们创建一个空的列表 scores,用于存储队员的得分。然后,使用循环,依次输入每个队员的得分,并将得分添加到 scores 列表中。接下来,使用 sorted() 函数对 scores 列表进行排序,得到一个新的列表 sorted_scores,按照得分从高到低排序。最后,打印出排序后的队员得分。

38.知识竞赛活动

学校开展“学宪法"知识竞赛活动,其中有一项任务为完成“学宪法”答卷记得分。答卷含有5个客观题和5个主观题,其中客观题1-4题为单选题,第5题为多选题,单选题每题分值为2分;多选题全对得2分,漏选、少选得1分,多选错选不得分。为了提高改卷效率,学校信息技术组的老师设计并编写了一个Python小程序,输入客观题正确答案和答卷上的答案,即可计算得分。实现上述功能的Python程序如下,运行界面如图所示。

请输入客观题(5道)标准答案:AABDACD

请输入客观题(5道)题学生答案:ABBDAC

该学生客观题得分为:7分

实现上述功能的 Python 程序如下,请在划线处填入合适的代码。

def judge(x,y):

    f=True

    i=0

    while i<len(y):

        if y[i] not in x:

                    ①        

            break

        i+=1

    return f

num=0

key=input("请输入客观题(5道)标准答案:")

s=input("请输入客观题(5道)题学生答案:")

for j in range(5):

    if j==4:

        if key[j:len(key)]==s[j:len(s)]:

            num+=2

        elif        ②        :

            num+=1

    else:

        if s[j]==key[j]:

                    ③        

print("该学生客观题得分为:"+        ④        +"分")

试题编号:202403-P5-38

试题类型:编程题

参考程序:

def judge(x,y):

    f=True

    i=0

    while i<len(y):

        if y[i] not in x:

            f=False

            break

        i+=1

    return f

num=0

key=input("请输入客观题(5道)标准答案:")

s=input("请输入客观题(5道)题学生答案:")

for j in range(5):

    if j==4:

        if key[j:len(key)]==s[j:len(s)]:

            num+=2

        elif  judge(key[j:len(key)],s[j:len(s)]):

            num+=1

    else:

        if s[j]==key[j]:

            num+=2

print("该学生客观题得分为:"+str(num) +"分")

试题难度:较难

试题解析:

评分标准:

(1)f=False 或等效答案;(3分)

(2)judge(key[j:len(key)],s[j:len(s)]) 或等效答案;(3分)

(3)num+=2 或等效答案;(2分)

(4)str(num) 或等效答案。(2分)

说明:

①judge函数判断多选题的漏选情况,y[i] not in x:说明错选,直接返回false。同时可以判断,x是标准答案,y是学生答案。

②j==4说明该分支处理多选题,key[j:len(key)]==s[j:len(s)]说明多选题全队得2分,所以②处分支表示漏选的情况,得1分,将标准答案和学生答案作为参数传给自定义函数judge进行判断。

③该分支下,j<=4,说明在处理单选题,标准答案key[j]与学生答案s[j]一致说明正确,得两分。

④得分是num,与字符串拼接,因此答案是str(num) 。

更多电子学会Python五级等级考试真题学习资料

↓ 点 击 关 注 ↓回 复 "P5"  获 取 历届真题~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/961473
推荐阅读
相关标签
  

闽ICP备14008679号