2022-06 Python五级真题
分数:100
题数:38
测试时:60min
一、单选题(共25题,共50分)
1.Python中print("八进制{:o}".format(12))正确的输出结果是?(D)(2分)
A.八进制:O
B.八进制:O14
C.八进制14O
D.八进制14
答案解析:字符串的format()格式。
2.下列的程序为求10的阶乘,则在①处应填入的是?(D )(2分)
ans=1
for i in range(①):
ans*=i
print(ans)
A.10
B.1,10
C.11
D.1,11
答案解析:10!,数据范围1—10,包含10,range是左闭右开的,所以取(1,11)。
3.下列程序为求1—>100所有偶数之和,则在①处应填入?(C )(2分)
ans=0
for i in range(①):
ans+=i
print(ans)
A.1,100,2
B.1,101,2
C.2,101,2
D.2,100,2
答案解析:根据题意,起始值为2,终止值包含100,步长为2,所以为(2,101,2)。
4.下列程序为降序输出1—>100所有偶数,则在①处应填入?( B)(2分)
for i in range(①):
print(i)
A.101,2,-2
B.100,1,-2
C.2,101,-2
D.2,100,-2
答案解析:根据题意,降序输出,起始值为100,终止值取到2即可,所以为(100,1,-2)。
5.下列程序为倒序输出列表的元素,则在①处应填入?(A )(2分)
lst=[1,4,5,7,9]
for i in range(①):
print(lst[i])
A.len(lst)-1, -1, -1
B.len(lst)-1, 0, -1
C.len(lst), -1, -1
D.len(lst)-1, -1
答案解析:列表最大下标为len(lst)-1,起始下标为0,根据左闭右开原则,终止值为-1。
6.Python中字符串可以使用反斜线进行转义,实现某些难以用字符表示的效果。下列可以实现换行效果的转义字符是?(B )(2分)
A.\b
B.\n
C.\t
D.\r
7.下列可以正确输出
池塘里”快乐的歌唱家”
字符的Python语句是?( D)(2分)
A.print("池塘里\"快乐的歌唱家")
B.print("池塘里\"快乐的歌唱家\")
C.print('池塘里'\"快乐的歌唱家\")
D.print('池塘里\"快乐的歌唱家\"')
8.现有字符串S="Wherethere'sawillthere'saway.",现在需要计算并输出字符串中'e'在S出现的次数,正确的语句是?( C)(2分)
A.print(S.find('e',1))
B.print(S.index('e'))
C.print(S.count('e'))
D.print(S.index('e',0,len(S)))
9.下列哪个选项是Pythonmath库的数字常数?(C )(2分)
A.math.sin
B.math.sqrt
C.math.e
D.math.pow
10.下列可以输出当前时刻时间的正确的语句是?(A)(2分)
A.print(time.ctime())
B.print(time.strptime())
C.print(time.nowtime())
D.print(time.local())
11.Python中可以实现随机生成1-20之间int类型整数的语句是?(B)(2分)
A.print(random.int(1,20))
B.print(random.randint(1,20))
C.print(random.sample(1,20))
D.print(random.shuffle(1,20))
12.Python中词云主要是对文本数据中出现频率较高的“关键词”通过不同颜色、大小的渲染,在视觉上突出表现。常用的主要有WordCloud库,下列是WordCloud常用参数的是?( A)(2分)
A.width,height,background_color,max_words,mask
B.width,height,bold,memset,jieba,max_words
C.background_color,jieba,time,random,mask,max_words
D.max_words,mask,width,height,jieba,text_color
13.元组变量name=("张三","李四","小明","小红"),则name[::-1]的运行结果是?(A)(2分)
A.('小红','小明','李四','张三')
B.['小红','小明','李四','张三']
C.('小红')
D.运行出错
答案解析:本题主要考察Python列表中双冒号的使用。list[start:end:step],start表示起始位置,end表示结束位置,step表示步长。-1表示从右侧开始取步长,因此A选项正确。
14.已知一个元组t=('x','y',['X','Y'])。执行如下代码后,输出的结果是?(B )(2分)
t[2][0]='xx'
t[2][1]='yy'
print(t)
A.元组t不发生变化,仍为('x','y',['X','Y'])。
B.结果为:('x','y',['xx','yy'])
C.结果为:('x','y','xx','yy')
D.运行时错误
答案解析:本题主要考察学生对元组内元素不变性的理解。表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。
15.运行下列语句,输出的结果是?( B)(2分)
nums=[i * i for i in range(1, 10) if i % 3 == 0]
print(nums)
A.[1,4,9,16,25,36,49,64,81]
B.[9,36,81]
C.[3,6,9]
D.[4,16,36,64]
16.运行下列程序,以下选项正确的是?(D )(2分)
def k(num):
if num==1:
return False
for i in range(2,num):
if(num%i)==0:
return False
else:
return True
nums=[i for i in range(1,100) if k(i)]
print(nums)
A.输出结果为1到99(包括99)所有整数组成的列表。
B.输出结果为1到98(包括98)所有偶数数组成的列表。
C.输出结果为1到99(包括99)所有奇数组成的列表。
D.输出结果为1到97(包括97)所有质数(素数)组成的列表。
答案解析:本题主要考察使用函数作为推导式的条件。把推导的条件放在函数中,既可以应对复杂的条件,又可以利用推导式的简洁写法。
17.运行下列语句,输出的结果是?(C )(2分)
>>>x=["A","B","C"]
>>>y=["a","b","c"]
>>>{i:jfori,jinzip(x,y)}
A.{['A','a'],['B','b'],['C','c']}
B.{'a','b','c'}
C.{'A':'a','B':'b','C':'c'}
D.{'A','B','C'}
18.运行下列程序,输出的结果是?( B)(2分)
letter=list({'a':1,'b':2,'c':3,'d':4})
print(letter)
A.[1,2,3,4]
B.['a','b','c','d']
C.['a',1,'b',2,'c',3,'d',4]
D.['a':1,'b':2,'c':3,'d':4]
19.有如下Python程序段:
L=[5,8,7,2,6,4,1,8]
p=0
for i in range(1,len(L)):
if L[i] < L[p]:
p=i
则程序执行后,p的值是?(D )(2分)
A.3
B.4
C.5
D.6
20.运行下列程序,输出的结果是?(C )(2分)
c=[5,3,5,8,2,7,6]
c.pop(5)
c.remove(5)
print(c)
A.[3,8,2,7,6]
B.[5,3,8,7,6]
C.[3,5,8,2,6]
D.[5,3,8,2,6]
答案解析:本题主要考核对列表函数pop(),remove()的应用和区别
21.运行下列程序,输出的结果是?( C)(2分)
x=['bike','car','bus','train']
print(list(map(len,x)))
A.[0,1,2,3]
B.[1,2,3,4]
C.[4,3,3,5]
D.[4,3,3,4]
答案解析:本题主要考核map()函数对列表的操作,将函数映射到列表上的每个元素
22.运行下列程序,输出的结果是?(B )(2分)
>>>a={1,2,3,4,5,6}
>>>b={4,5,6,7,8,9}
>>>print(a&b)
A.{1,2,3}
B.{4,5,6}
C.{7,8,9}
D.{1,2,3,4,5,6,7,8,9}
23.运行下列程序,输出的结果是?( A)(2分)
>>>fruit={'apple','orange','pear'}
>>>fruit.update("pear")
>>>print(fruit)
A.{'e','r','p','a','apple','orange','pear'}
B.{'pear','orange','apple'}
C.{'pear','orange','apple','pear'}
D.{'orange','apple'}
答案解析:本题主要考核集合的update()函数功能:合并另外一个集合中的元素到当前集合中。注意参数为字符串时,会将字符串中每个元素作为集合元素放到集合中。
24.运行下列程序,输出的结果是?(A )(2分)
scores={"语文":89,"数学":92}
scores["数学"]=90
scores[100]="技术"
print(scores)
A.{'语文':89,'数学':90,100:'技术'}
B.{'语文':89,'数学':90,'技术':100}
C.{'语文':89,'数学':92,'技术':100}
D.'语文':89,'数学':90,100:'技术'
25.编写Python程序实现:输入任意一个数字,输出所需火柴棍的数量。划线处应填入的代码是?(C )(2分)
num=input()
code={0:6,1:2,2:5,3:5,4:4,5:5,6:6,7:3,8:7,9:6}
count=________
print("共需火柴棍:",count)
A.int(num)
B.code(int(num))
C.code[int(num)]
D.code[num]
二、判断题(共10题,共20分)
26.range(start,stop,step)函数返回一个对象,该对象产生一个整数序列,开始与结束位置所组成的区间[start,stop],是左闭右闭的,start默认是0,step默认是1。(错 )
答案解析:range()返回的序列是左闭右开区间,即:包含左边不包含右边。
27.Python中对字符串进行修改时只需使用原有的内存空间,其内存地址不会发生变化。(错 )
28.在Python中设定字符串str="HelloPython",则str.find(‘w’)返回值为0。( 错)
29.Python默认安装包含PyInstaller内置模块,可以直接运行。(错 )
30.从存储内容上看,元组可以存储整数、实数、字符串、列表、元组等任何类型的数据,并且在同一个元组中,元素的类型是相同的。(错 )
答案解析:元组可以存储整数、实数、字符串、列表、元组等任何类型的数据,并且在同一个元组中,元素的类型可以不同。
31.对于数字n,如果表达式0 in [ n%d for d in range(2,n)]的值为False,则说明n是素数。(对 )
32.
>>>sub=['语文','数学','英语','科学','思品','体育']
>>>score=[105,97,156,105,72]
>>>list(zip(sub,score))
结果是:[('语文',105),('数学',97),('英语',156),('科学',105),('思品',72)]。( 对)
答案解析:本题主要考核zip()函数对列表的操作使用,zip()函数用于将多个列表中元素重新组合为元组,列表不等长,以短为准。
33.集合是一个无序的不重复元素序列,用{}作为界定符,如集合{1,2,[3,4],"ab"}。(错 )
34.用set("12323")和{str(i) for i in range(1,4)}可以创建相同的集合。(对 )
答案解析:本题主要考核集合元素之间不允许重复,所以二个集合相同,
都为{'1','2','3'}。
35.在Python中,字典是一个无序、可变和有索引的键、值对的集合,每一对键、值对之间用分号“;”间隔。(错 )
三、编程题(共3题,共30分)
36.明明得到一个数值列表,想知道列表中只出现过一次的元素。请你帮忙编写程序输出这些元素。注意元素必须按照它们在数字列表中初始顺序输出。输入格式:输入共1行,若干个数值之间以空格隔开。输出格式:输出共1行,若干个数值之间以空格隔开。
输入样例:19 73 258 6 73 234
输出样例:19 258 6 234
a=[int(i)for i in input().split()]
n=len( ① )
for i in range( ② ):
f=0
for j in range(n):
if(a[i]== ③ and i!=j):
f=1
break;
if(f==0):
print( ④ ,end='')
参考程序:
a=[int(i)for i in input().split()]
n=len(a)
for i in range(n):
f=0
for j in range(n):
if(a[i]== a[j] and i!=j):
f=1
break;
if(f==0):
print( a[i] ,end='')
评分标准:
(1)a或等效答案;(3分)
(2)n或等效答案;(2分)
(3)a[j]或等效答案;(2分)
(4)a[i]或等效答案。(3分)
37.数字序列交集
已知两个整数序列num1和num2,求解两个整数序列的交集。输出结果中的每个元素一
定是唯一的。我们可以不考虑输出结果的顺序。例如,nums1=[4,9,5],nums2=
[9,4,9,8,4]。输出结果可以为[9,4]或[4,9]。
请将程序代码补全:
def aa(nums1=[],nums2=[]):
set1=①
set2=②
if len(set1)>len(set2):
③
return[x for x in set1 if x in ④]
nums1=[4,9,5]
nums2=[9,4,9,8,4]
print(aa(nums1,nums2))
参考程序:
def aa(nums1=[],nums2=[]):
set1=set(nums1)
set2=set(nums2)
if len(set1)>len(set2):
set1,set2=set2,set1
return[xforxinset1ifxinset2]
nums1=[4,9,5]
nums2=[9,4,9,8,4]
print(aa(nums1,nums2))
评分标准:
(1)set(nums1);(2分)
(2)set(nums2);(2分)
(3)set1,set2=set2,set1;(4分)
(4)set2。(2分)
38.“石头剪刀布”游戏是猜拳的一种,两人玩,起源于中国,游戏规则中,石头克剪刀,
剪刀克布,布克石头。小明编写了Python程序代码,决定与电脑大战“石头剪刀布”。
输入格式:
共1行,一个数表示用户出拳的类型(石头1、剪刀2、布3)。
输出格式:
共1行,输出电脑的出拳类型与游戏结果。
输入样例:
2
输出样例:
电脑出的是布,这局恭喜用户胜出!
import random
win = [('石头','剪刀'),①,('布','石头',)]
cq = {1:'石头',2:'剪刀',3:'布'}
while True:
user = int(input('请出拳:1.石头2.剪刀3.布\n'))
if user not in range(②):
print("输入有误,请重新输入……")
continue
computer =random.randint(1,3)
if user == computer:
print("电脑出的是%s,这局是平局!"%cq[computer])
break
elif(③,cq[computer]) in win:
print("电脑出的是%s,这局恭喜用户胜出!"%cq[computer])
break
else:
print("电脑出的是%s,这局恭喜电脑胜出!"%cq[computer])
break
参考程序:
import random
win = [('石头','剪刀'),('剪刀','布'),('布','石头',)]
cq = {1:'石头',2:'剪刀',3:'布'}
while True:
user = int(input('请出拳:1.石头2.剪刀3.布\n'))
if user not in range(1, 4):
print("输入有误,请重新输入……")
continue
computer =random.randint(1,3)
if user == computer:
print("电脑出的是%s,这局是平局!"%cq[computer])
break
elif(cq[user],cq[computer]) in win:
print("电脑出的是%s,这局恭喜用户胜出!"%cq[computer])
break
else:
print("电脑出的是%s,这局恭喜电脑胜出!"%cq[computer])
break
答案解析:
评分标准:
(1)('剪刀','布')或等效答案;(3分)
(2)1,4或等效答案;(3分)
(3)cq[user]或等效答案。(4分)