试卷总分:100分


选择题 25题 50分

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25


判断题 10题 20分

26 27 28 29 30 31 32 33 34 35


编程题 3题 30分

36 37 38

E1055 电子学会青少年软件编程等级考试-Python -202512Python五级真题-考试

选择题 共25道

01

在计算机课上,小明想用Python存储自己的三次数学测验成绩(90, 85, 95)。下列选项中,能正确创建一个包含三个成绩的列表的是? ( )

2分
登录后查看选项
02

小明在编写程序统计班级"诚信之星"评选的多次得分,要求选出最高分。初始数据为 scores = [85, 90, 88, 90, 82, 85]。他尝试用以下代码实现,请选择程序运行的正确输出?( )

scores = [85, 90, 88, 90, 82, 85]

a = scores.sort(reverse=True)

print(a)

2分
登录后查看选项
03

小红需要将新收集的“节约用水”宣传次数添加到班级记录中。原数据为 records = [3, 5, 2],她想追加一次新记录 4,于是编写了以下代码:

records = [3, 5, 2]

records.append(4)  

print(records)  

请选择程序运行的正确输出? ( )

2分
登录后查看选项
04

小明的妈妈让他用Python记录购物清单的价格,并计算总花费。已知购物列表为:prices = [5, 8, 3, 10, 2], 依次为牛奶、面包、苹果、鸡蛋、糖果的价格,计算总花费正确的选项是?( )

2分
登录后查看选项
05

小明的购物车字典为cart = {"苹果": 3, "香蕉": 0, "橘子": 5},他想删除库存为0的“香蕉”这一项。以下哪个操作正确?( )

2分
登录后查看选项
06

小红用字典记录学生选课情况:courses = {"李明": "Python", "王芳": "Java"}。她想查询“李华”是否已选课,若未选则返回False。以下哪种方式最合适?( )

2分
登录后查看选项
07

在Python中,执行以下程序,输出的结果是?( )

t=('12',3,[4,5,6])

t[1]='9'

print(t)

2分
登录后查看选项
08

在Python中,下列元组的声明不正确的是?( )

2分
登录后查看选项
09

在Python中,求两个集合x和y的并集时,用以下哪个表达式? ( )

2分
登录后查看选项
10

某Python程序如下:

x={1,2}

y={3,4,5,6}

x.add(7)

s=min(x)+max(y)-len(x)

print(s)

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

2分
登录后查看选项
11

在Python中,下列哪个选项中的代码能够去除字符串 s = "------Hello World------"中的"-"? ( )

2分
登录后查看选项
12

在Python中,如果想输出 He said, 'Hello',以下哪个选项正确地输出这个字符串? ( )

2分
登录后查看选项
13

在Python中,现在有一个字符串 s = "welcome to python's world",下列选项中,哪个选项中的代码可以将每个单词的首字母大写。( )

2分
登录后查看选项
14

在Python中,有字符串 s1 = "Hello" 和 s2 = "Python",以下哪种方法不能正确地连接这两个字符串?( )

s1 = "Hello"

s2 = "Python"

2分
登录后查看选项
15

小明正在编写一个程序,用于处理一个班级学生的成绩。他需要筛选出所有及格的成绩(60分及以上)。以下是他的代码:

scores = [58, 72, 85, 64, 43, 90, 56]

JiGe = [score for score in scores if score >= 60]

print(JiGe)

请问这段代码的输出结果是?( )

2分
登录后查看选项
16

关于下列代码运行结果的说法,错误的是? ( )

scores = [58, 72, 85, 64, 43, 90, 56]

HeGe = (score for score in scores if score >= 60) #筛选合格的同学

ZongFen = sum(HeGe) #计算合格同学们的总分

RenShu=len(HeGe) #统计合格同学的人数

print(RenShu)

2分
登录后查看选项
17

在Python中,运行下面的代码,输出结果为?( )

evens = (x for x in range(10) if x % 2 == 0)

print(next(evens))

print(next(evens))

2分
登录后查看选项
18

以下代码运行后,输出的结果是? ( )

r = range(10, 0, -2)

print(list(r)[-1])

2分
登录后查看选项
19

表达式len(range(1,10,3))的值是? ( )

2分
登录后查看选项
20

执行以下代码后,输出的结果是? ( )

for i in range(6):

   if i % 2 == 0:

       continue

   else:

       print(i, end=',')

2分
登录后查看选项
21

以下哪个选项能生成一个从0到9的整数序列? ( )

2分
登录后查看选项
22

合唱比赛时,需要对10个班的出场顺序随机排序,对每个班级编号1-10,存入列表a,即a=[1,2,3,4,5,6,7,8,9,10],下列语句可以实现对a进行随机排序的是?( )

2分
登录后查看选项
23

在Python中导入math模块,执行语句x=math.ceil(5.26)后,变量x的值为?( )

2分
登录后查看选项
24

以下哪个参数用于设置词云生成的图片背景颜色?( )

2分
登录后查看选项
25

执行以下代码后,输出的结果是? ( )

import jieba

jieba.add_word("深度学习")

s = "深度学习是人工智能的核心技术"

result = jieba.lcut(s)

print(result)

2分
登录后查看选项

判断题 共10道

26

在Python中,执行下列语句后,修改list2的元素不会影响list1。( )


list1 = [1, 2]

list2 = list1

list2.append(4)

print(list1)

2分
登录后查看选项
27

小刚尝试用列表作为字典的键,例如key = [1, 2, 3],并执行my_dict = {key: "数据"}。这种做法是否正确?( )

2分
登录后查看选项
28

在Python中,执行语句tuple(zip('xyz',range(4)))后,返回的结果是 (('',0)('x', 1), ('y', 2), ('z', 3))。( )

2分
登录后查看选项
29

在Python中,集合中元素类型可以是数字、字符串、列表、元组,但同一个集合中每个元素都是唯一的,不允许重复。( )

2分
登录后查看选项
30

执行以下Python语句后,程序会报错。( )

>>> fruit={'apple','banana','peach'}

>>> fruit.remove('grape')

2分
登录后查看选项
31

在Python中,以下代码的输出结果一定为True。( )

str1='好好学习,天天向上。'*1000

str2='好好学习,天天向上。'*1000

print(id(str1)==id(str2))

2分
登录后查看选项
32

在Python中,字符串 s = "Hello AI",用s.find(" Ai")找出子串 " AI" 在字符串s 中的起始索引位置时会报错。( )

2分
登录后查看选项
33

在Python中,可以用如下代码找到两个列表中相同的元素。( )

list1=[2,6,8]

list2=[6,7,8,9]

same=[(a,b) for a in list1 for b in list2 if a==b ]

print(same)

2分
登录后查看选项
34

range()函数可以用于生成一个包含浮点数的数列。( )

2分
登录后查看选项
35

在jieba模块中,jieba.cut 需要手动转换为列表,jieba.lcut 直接返回列表。( )

2分
登录后查看选项

编程题 共3道

36

指令序列优化

在人工智能系统中,历史操作指令常以列表形式存储。为提高存储效率和确保数据不可变性,需将连续重复的指令分组成元组。例如指令序列 [5,5,5,2,2,3] 会被优化为 [(5,5,5), (2,2), (3,)]。给定一个由整数组成的列表,请将其转换为由元组构成的列表,每个元组包含原列表中连续相同的元素片段。按顺序输出所有分组后的元组。

例如:

输入:

5 5 5 2 2 3

输出:

(5,5,5),(2,2),(3,)

下面是小明编写的代码,请你将空白内容补充完整。

numbers_input = input("请输入一些用空格分隔的数字: ")

numbers = []

for num_str         ①        numbers_input.split():

   numbers.append(int(num_str))

# 用于存储分组结果的列表

grouped_numbers = []

if len(numbers) ==         ②        :

   print("你没有输入任何数字。")

else:

 

   current_group = [numbers[0]]

   for i in range(1, len(numbers)):

       if numbers[i] == numbers[        ③        ]:

           current_group.append(numbers[i])

       else:

           grouped_numbers.append(tuple(        ④        ))

           current_group = [numbers[i]]

   grouped_numbers.append(tuple(current_group))

   output = ""

   for group in grouped_numbers:

       group_str = str(group)

       if output == "":

           output = group_str

       else:

           output = output + "," +         ⑤        

   print(output)

10分
登录后作答
37

字符消消乐

有一个字符消消乐游戏。随机产生一串长度为n只包含数字“456”的字符串,如有连续相同的字符则进行消除,提示:字符“0”的 ASCII码值是十进制48。

如字符串“455655565”,其消除过程如下:

第一步:消除字符“5”后形成新字符串“4655565”;

第二步,消除字符“5”后形成新字符串“4665”;

第三步,消除字符“6”后形成新字符串“45”;

最后消除结束,结果为“45”。

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

import random

n=int(input("请输入字符串长度:"))

s=""

for i in range(n):         #生成n个由“456”字符组成的字符串

   m=random.randint(4,6)

   s=s+chr(48+        ①        )

print("字符串为:",s)

i=0

while i<len(s):     #变量i存储连续相同字符的起始位置索引

   r=i    #变量r存储连续相同字符的末尾位置索引

   while r<len(s)-1 and          ②         :   #留意r值的范围,索引不能越界

       r=r+1

   if         ③        :       #当有2个及以上连续相同的字符,需要消除

       s=s[:i]+        ④        

               ⑤        

   else:

       i=i+1

print("消除后,字符串为:",s)

10分
登录后作答
38

打卡考勤

大明是学校Python编程社团的管理员,他用Python写了一个打卡考勤的程序,统计不同学生到信息技术教室编程打卡的次数以及未打卡的学生名单。这个程序可以一次输入已打卡学生姓名,用空格隔开,然后程序就会自动统计已打卡学生的名单和次数。如果有未打卡的学生,就输出未打卡的学生的名单,否则输出所有学生都已打卡。请你补全代码,实现上述功能。

# 创建一个空列表来存储打卡的学生姓名

checked_in_list = []

students_input = input("请输入已打卡学生姓名,用空格隔开: ")

# 将输入的学生姓名分割并添加到列表中

students = students_input.split()

checked_in_list.        ①        

# 将列表转换为集合

checked_in_students =         ②        

# 创建一个集合存储所有学生总名单

all_students = {"唐僧", "孙悟空", "猪八戒", "沙和尚"}

# 统计打卡的名单和次数

checked_count = {}

for student in checked_in_students:

   checked_count[student]=checked_in_list.count(student)

   

# 输出打卡的学生名单和次数

print("打卡的学生名单和次数:")

for         ③         in checked_count.items():

   print(f"{student}: {count}次")

# 找出未打卡的学生名单

not_checked_students = list(        ④        )

# 输出未打卡的学生名单

if not_checked_students:

   print("未打卡的学生名单:")

   for student in not_checked_students:

       print(student)

else:

   print("所有学生都已打卡。")

————————示例运行结果——————————

请输入已打卡学生姓名,用空格隔开: 孙悟空 沙和尚 唐僧 唐僧 孙悟空 孙悟空    

打卡的学生名单和次数:

唐僧: 2次

孙悟空: 3次

沙和尚: 1次

未打卡的学生名单:

猪八戒

10分
登录后作答