青少年软件编程(Python)等级考试试卷(五级)
答案解析:https://blog.csdn.net/qq_33897084/article/details/147341437
一、单选题(共25题,共50分)
1. 以下哪个选项不是Python中的推导式?( )
A. 列表推导式
B. 字典推导式
C. 集合推导式
D. 元组推导式
2. 以下Python代码的返回结果是?( )
[x**2 for x in range(5)]
A. [0, 1, 4, 9, 16]
B. [1, 4, 9, 16, 25]
C. [0, 1, 4, 9, 16, 25]
D. [1, 4, 9, 16, 25, 36]
3. 已知列表list1=[“张三”,“李四”,“王五”,“赵六”],能输出[‘张三’, ‘王五’]的是?( )
A. print(list1[0:2])
B. print(list1[0::2])
C. print(list1[0,2])
D. print(list1[1:3])
4. 下列Python代码的输出为?( )
g=[1,2,3,4,5]
a=g.pop(1)
print(g[-a])
A. 2
B. 5
C. 3
D. 4
g[-a]=4
考察了pop和列表元素定位。
5. 下面Python程序运行后,结果?( )
list1=[‘a’,1,‘c’,2]
del list1[1:3]
print(list1)
A. [‘c’,2]
B. [‘a’,1]
C. [‘a’,2]
D. [1,‘c’]
6. 有如下Python程序段,执行该程序段后,输出显示的内容是?( )
list1=[]
for i in range(15):
if i%30:
continue
elif i%50:
break
list1.append(i)
print(list1)
A. [0,1,2]
B. [1,2,4]
C. [0,1,2,4]
D. [1,2,4,5]
7. 元组变量name=(‘Betty’,‘Linda’,‘Whitney’,‘Lily’),则name[::-1]的运行结果是?( )
A. (‘Betty’,‘Linda’,‘Whitney’,‘Lily’)
B. (‘Lily’, ‘Whitney’, ‘Linda’, ‘Betty’)
C. 运行出错
D. ( “Lily”)
8. 有如下Python程序,请问此程序的执行结果是?( )
tup1 = (‘Google’, ‘Firefox’,‘UC’,‘QQ’,‘360’)
tup1[1] =“火狐”
print(tup1[1])
A. Firefox
B. 火狐
C. Google
D. 程序出现错误
9. 学校组织了一次阅读打卡活动,每日读书时长被记录在列表 reading_times = [30, 45, 60, 35, 40, 50] 中,同时有对应的参与学生姓名列表 names = [‘小明’, ‘小红’, ‘小亮’, …]。若想找出所有读书时长大于等于45分钟的学生姓名并存入新的列表,以下哪个表达式是正确的?( )
A. long_readers = [names[i] for i in reading_times if i >= 45]
B. long_readers = [nreading_times[i] for i in range(len(names)) if reading_times[i] >= 45]
C. long_readers = [names[i] for i in range(len(reading_times)) if reading_times[i] >= 45]
D. long_readers = [names[i] for i in names if reading_times[i] >= 45]
10. 下列关于字符串的说法中,错误的是?( )
A. 字符串支持成员关系操作符(in)
B. 字符串是不可变序列,但是字符串有replace()方法,可以改变部分字符
C. 字符串是任意字符的无序组合
D. 字符串支持双向索引切片操作
11. 下列选项中,输出结果是大写字母A的是?( )
A. print(‘\101’)
B. print(‘\102’)
C. print(‘\x47’)
D. print(‘\x48’)
print(‘\102’) #B 3位八进制数对应的字符
print(‘\x47’) #G 2位十六进制数对应的字符
print(‘\x48’) #H 2位十六进制数对应的字符
12. 要想输出结果保留2位小数,下列选项中正确的是?( )
A. print(‘六年级一班的数学平均分为{0:2f}’.format(4321/50))
B. print(‘六年级一班的数学平均分为{0.:2f}’.format(4321/50))
C. print(‘六年级一班的数学平均分为{0:.f2}’.format(4321/50))
D. print(‘六年级一班的数学平均分为{0:.2f}’.format(4321/50))
print(‘六年级一班的数学平均分为{0.:2f}’.format(4321/50)) 报错
print(‘六年级一班的数学平均分为{0:.f2}’.format(4321/50)) 报错
print(‘六年级一班的数学平均分为{0:.2f}’.format(4321/50))输出结果为:六年级一班的数学平均分为86.42
13. 运行下列Python代码,输出结果是?( )
s=‘good job’
print(s.capitalize())
print(s.title())
A. Good Job
Good job
B. Good Job
Good Job
C. Good job
Good Job
D. Good job
Good job
14. 下列选项中的程序在运行时会引发异常的是?( )
A. a=4**0.5
print(a)
B. import math
b=math.sqrt(4)
print(b)
C. c=(-4)**0.5
print©
D. import math
d=math.sqrt(-4)
print(d)
15. jieba是常用的Python扩展库。以下函数中,不是jieba库函数的是?( )
A. lcut()
B. cut()
C. add_word( )
D. find( )
16. wordcloud是一个优秀的Python第三方扩展库,它可以将一段文本变成一张词云图片,方便人们阅读理解。当我们使用wordcloud创建一个WordCloud对象时,参数mask的作用是?( )
A. 指定图片的大小
B. 指定图片的宽度
C. 指定词云形状
D. 指定词云的背景颜色
17. time库是常用的Python标准库,我们可以方便地获取与时间相关的对象。下面的代码是一种简单方便的获取时间的方法。运行该程序后的输出结果可能是?( )
import time
localtime=time.asctime(time.localtime(time.time()))
print(‘当前本地时间为:{}’.format(localtime))
A. 当前本地时间为:Wed Feb 7 13:19:21 2024
B. 当前本地时间为:Feb 7 13:19:21 2024
C. 当前本地时间为:Wed Feb 7 13:19:21
D. 当前本地时间为:Feb 7 13:19:21
18. 如果要创建一个列表a=[10, 9, 8, 7, 6, 5, 4, 3, 2, 1],可以使用哪个选项里的代码?( )
A. a=list(range(10,0,-1))
B. a=list(range(11,0,-1))
C. a=list(range(0,10,-1))
D. a=list(range(10,1,-1))
19. 运行下列Python代码,输出结果是?( )
a=range(10)
print(a[5])
A. 4
B. 5
C. 6
D. 报错
20. 如果想输出结果为"科目三",则在①处应填入?( )
s=‘没有科目三的晚会是不完美的’
n=‘’
for i in range( ① ):
n=n+s[i]
print(n)
A. 2,6
B. 1,5
C. 2,5
D. 2,6,2
21. 如果运行下列代码的输出结果是:[1,2,3,4,5],则在①处应填入?( )
a=[1,0,2,0,3,0,4,0,5,0]
b=[]
for i in range( ① ):
b.append(a[i])
print(b)
A. 0,10,2
B. 0,10,1
C. 0,11,2
D. 0,11
range(0,11,2)可以取到的值为0,2,4,6,8,10,超出了列表的索引范围,程序会抛出异常。
22. 执行该程序段后, 下列语句能正确输出单词"apple"出现次数的是?( )
words = [“apple”, “pear”, “apple”, “apple”, “keep”, “day”]
dic = {}
for i in words:
if i in dic:
dic[i] = dic[i] + 1
else:
dic[i] = 1
A. print(dic[0])
B. print(dic{0})
C. print(dic[“apple”])
D. print(dic{“apple”})
23. Python字典中update()方法用于更新字典中的键/值。有字典dic={“数学”:89 ,“语文”:78,“英语”:96},d={“物理”:97,“语文”:90,“信息技术”:91,“地理”:78}执行语句dic.update(d)后,dic的值为?( )
A. {“数学”:89,“语文”:90, “英语”:96, “物理”:97, “信息技术”:91,“地理”:78}
B. {“数学”:89, “语文”:78,“英语”:96, “物理”:97 ,“信息技术”:91,“地理”:78}
C. {“数学”:89,“语文”:78, “英语”:96, “物理”:97, “语文”:90, “信息技术”:91, “地理”:78}
D. {“数学”:89, “英语”:96, “物理”:97, “信息技术”:91 ,“地理”:78}
其中,dict是要更新的字典,other可以是一个字典,也可以是一个键值对元组序列。update()函数会将other中的键值对添加到dict中,如果字典中已存在该键,则会用other中对应的值覆盖字典中原有的值。
24. 执行以下Python语句,得到的结果是?( )
s = {1, 2, 3,4}
s.update({4,5,6})
print(s)
A. {1,2,3,4,4,5,6}
B. {4,5,6}
C. {1,2,3,4,5,6}
D. {1,2,3}
25. 以下语句在运行时会出现错误的是?( )
A. s={1,‘two’,3,‘four’,(5,6,7)}
B. s={1,2,3,3,5,6}
C. s=set(range(1,7))
D. s = {1,2,[‘three’, ‘four’ ],(5, 6)}
二、判断题(共10题,共20分)
26. 判断下面的说法是否正确:在Python中,集合推导式和列表推导式的语法完全相同。( )
27. list(range(5))可以生成列表[0,1,2,3,4]。( )
28. 有元组tup = (‘Google’,‘Firefox’,‘UC’,‘QQ’,‘360’),可以通过del tup删除元组tup。( )
29. 运行下列Python代码不会报错。( )
s=‘good good study’
print(s.find(‘day’))
30. Python兴趣小组共有36位同学,按1-36编号。现在想随机抽取一名同学的编号,可以用random.randrange(36)实现。( )
31. 列表[2.1,3.1,4.1,5.1]可以用list(range(2.1,6.1))来创建。( )
32. 同一个字典中,字典的键不允许重复,值是可以重复的。( )
33. 如果原来的序列数据中存在重复元素,则在转化为集合时只留一个。( )
34. 关系运算符>、>=、<、<=作用于集合时,可比较集合中元素的大小关系。( )
35. 在Python中,字符串方法split()可以将一个字符串按照指定的分隔符拆分成多个子字符串,并返回一个列表。( )
三、编程题(共3题,共30分)
36. 共同的兴趣
小明正在开发一个社交网络应用程序,需要实现一个功能来帮助用户找到共同的兴趣爱好。用户可以输入自己的兴趣爱好,然后系统会将用户输入的兴趣爱好与其他用户的兴趣爱好进行比对,找出共同的兴趣爱好并统计数量展示给用户。请在下面程序空白处填上正确内容,以实现程序功能。
示例:
请输入用户A的兴趣爱好,用逗号分隔:阅读,旅行,游泳,瑜伽
请输入用户B的兴趣爱好,用逗号分隔:游泳,瑜伽,摄影,登山
共同的兴趣爱好: {‘游泳’, ‘瑜伽’}
共同兴趣爱好的数量: 2
所有兴趣爱好的总集合: {‘瑜伽’, ‘游泳’, ‘登山’, ‘摄影’, ‘阅读’, ‘旅行’}
hobbies_a = set(input(“请输入用户A的兴趣爱好,用逗号分隔:”). ① )
hobbies_b = set(input(“请输入用户B的兴趣爱好,用逗号分隔:”). ② )
common_hobbies = hobbies_a.intersection( ③ )#交集运算
common_hobbies_count = len(common_hobbies)
all_hobbies = hobbies_a.union(hobbies_b)
print(“共同的兴趣爱好:”, common_hobbies)
print(“共同兴趣爱好的数量:”, ④ )
print(“所有兴趣爱好的总集合:”, all_hobbies)
评分标准:
(1)split(‘,’) 或等效答案;(2分)
(2)split(‘,’) 或等效答案;(2分)
(3)hobbies_b 或等效答案;(3分)
(4)common_hobbies_count 或等效答案。(3分)
37. 完全数
数学老师告诉小明,数字王国中有一组耀眼的明星,它们叫完全数。其特点是一个正整数等于除它之外其他所有除数之和,就称之为完全数。
例如:6除它之外的除数有1、2、3,并且1+2+3=6,所以它是完全数。数学老师让小明找出500以内的完全数。小明写下求500以下完全数的程序,但因为粗心遗漏了关键的代码,请根据上面需求补全程序代码。
for i in range(1,500):
str1=[]
for j in ① :
if i%j==0:
②
if ③ :
print(f’{i}是完全数’)
评分标准:
(1)range(1,i) 或等效答案;(3分)
(2)str1.append(j) 或等效答案;(3分)
(3)i==sum(str1) 或等效答案。(4分)
38. 字符串替换
小明在信息科技课上学习了word的基本操作后,了解到word中替换功能可以将文档中指定内容一次性全部替换成其他文本,于是试着在Python中编程实现相关功能,功能描述如下:
在字符串s中,查找指定的字符c1(可以是单个字符,也可以是多个字符的组合)并替换成其他字符c2。例如:输入s的值为:“A person in need is a person indeed!”,输入c1的值为:person,输入c2的值为"friend",则显示的结果是"A friend in need is a friend indeed!"。实现上述功能的python代码如下:运行界面如图所示:
请在划线处填入适当的代码.
s=input(“请输入文本字符串:”)
c1=input(“请输入要替换的字符:”)
c2=input(“请输入要替换成的新字符:”)
n=len(c1)
s1=“”
i=0
while i<len(s):
c= ①
if c==c1:
s1=s1+c2
i= ②
else:
s1= ③
④
print(“替换后的结果:”,s1)
评分标准:
(1)s[i:i+n] 或等效答案;(3分)
(2)i+n 或等效答案;(3分)
(3)s1+s[i] 或等效答案;(2分)
(4)i=i+1 或等效答案。(2分)
答案解析:https://blog.csdn.net/qq_33897084/article/details/147341437