全国青少年软件编程Python五级卷与答案.docx
《全国青少年软件编程Python五级卷与答案.docx》由会员分享,可在线阅读,更多相关《全国青少年软件编程Python五级卷与答案.docx(27页珍藏版)》请在冰豆网上搜索。
全国青少年软件编程Python五级卷与答案
青少年软件编程(Python)等级考试试卷(五级)
分数:
100 题数:
38
一、单选题(共25题,共50分)
1.关于列表和元组的关系,下列描述不正确的是?
()
A. 列表是包含若干元素的有序内存空间
B. 元组是包含若干元素的有序内存空间
C. 列表是包含若干元素的连续内存空间
D. 元组和列表本质上没有区别,只是元组是放在小括号中,列表是放于方括号中而已
试题编号:
20211113-ssn-01
试题类型:
单选题
标准答案:
D
试题难度:
一般
试题解析:
2.以下序列对象的描述,非法的或者值为False的选项是?
()
A. []
B. [None,0,'',]
C. (8)!
=8
D. (8)!
=[8]
试题编号:
20211113-ssn-02
试题类型:
单选题
标准答案:
C
试题难度:
一般
试题解析:
3.对于列表的方法pop()与remove()的区别与相同点,正确的描述是?
()
A. 都是删除与参数表中参数相同的元素
B. pop()没有返回值
C. remove()没有返回值
D. pop()如果不带参数,则表示默认参数值为0
试题编号:
20211113-ssn-03
试题类型:
单选题
标准答案:
C
试题难度:
一般
4.执行下列代码,正确的答案是?
()
>>>l=[10,0,1,6,12,8]
>>>l.sort(key=float)
>>>l
A. [10.0,0.0,1.0,6.0,12.0,8.0]
B. [0,1,10,12,6,8]
C. [0,1,6,8,10,12]
D. [12,10,8,6,1,0]
试题编号:
20211113-ssn-04
试题类型:
单选题
标准答案:
C
试题难度:
一般
5.下列元组的声明,非法的是哪一项?
()
A. t=0,
B. t=0,1
C. t=(0)
D. t=(0,1)
试题编号:
20211113-ssn-05
试题类型:
单选题
标准答案:
C
试题难度:
一般
试题解析:
6.下列函数或操作,错误的为哪一项?
()
A. >>>tuple('helloworld')
B. >>>tuple(range(3))
C. >>>tuple(str,range(3))
D. >>>tuple(map(str,range(3)))
试题编号:
20211113-ssn-06
试题类型:
单选题
标准答案:
C
试题难度:
一般
7.赋值语句path=r'c:
\abc\xyz\tag.txt',执行结果是?
()
A. path的值是'c:
\abc\xyz\tag.txt'
B. path的值是'c:
\bc\yz\ag.txt'
C. path的值是'c:
\\abc\\xyz\\tag.txt'
D. 提示出错
试题编号:
20211113-ssn-07
试题类型:
单选题
标准答案:
C
试题难度:
一般
试题解析:
8.print('\x65')的结果是?
()
A. \x65
B. ‘\x65’
C. e
D. A
试题编号:
20211113-ssn-08
试题类型:
单选题
标准答案:
C
试题难度:
一般
试题解析:
9.求执行下列操作后的正确结果?
( )
>>>url=''
>>>url.split()
A. [www,lxsz,com]
B. ['www’,’lxsz’,’com']
C. []
D. ['']
试题编号:
20211113-ssn-09
试题类型:
单选题
标准答案:
D
试题难度:
一般
试题解析:
10.运行下列代码,正确的结果是?
()
>>>print("{:
06.2f}".format(3.1415926))
A. ’003.14’
B. 003.14
C. ’3.14’
D. 3.14
试题编号:
20211113-ssn-10
试题类型:
单选题
标准答案:
B
试题难度:
一般
11.下列语句的输出结果是?
()
foriin'xyz':
forjinrange(1,3):
print(i,end='')
ifi=='z':
break
A. xxyzz
B. .xxyyzz
C. xxyy
D. xxyyz
试题编号:
20211113-ssn-11
试题类型:
单选题
标准答案:
D
试题难度:
一般
试题解析:
12.请确认以下程序中有几处错误?
()
inputturtle
colors=['blue','red','green','yellow']
t=turtle.Pen()
foriinrange(100)
t.color(colors[i%5])
w+=2
t.forward(w)
t.left(89)
A. 1
B. 2
C. 3
D. 4
试题编号:
20211113-ssn-12
试题类型:
单选题
标准答案:
C
试题难度:
较难
试题解析:
13.下列语句的输出结果是?
()
foriinrange(6):
ifi%2==0:
break
else:
print(i,end=',')
A. 1,3,5,
B. 1,3,5
C. 0,2,4,
D. 没有输出
试题编号:
20211113-ssn-13
试题类型:
单选题
标准答案:
D
试题难度:
一般
14.有如下 Python 程序段:
importrandom
c=0
s=0
foriinrange(0,10):
n=random.randint(1,101)
ifn%2==0:
s+=i
c+=1
print(i)该程序段被执行后,下列说法不正确的是?
()
A. 把程序s+=i改为s=s+i后,得到的结果是一样的。
B. i=9
C. 语句c+=1可能执行了10次
D. 变量s中存储的生成的10个随机数中偶数相加的和
试题编号:
20211113-ssn-14
试题类型:
单选题
标准答案:
D
试题难度:
较难
试题解析:
15.下列声明字典的语句,错误的是?
()
A. d={}
B. d={‘name’:
'Tom',’age’:
20,’salary’:
3900}
C. d=dict(title='Python',author='Tom',price=59)
D. d=dict[('name','Jerry'),('age',20)]
试题编号:
20211113-ssn-15
试题类型:
单选题
标准答案:
D
试题难度:
一般
试题解析:
16.已知字典dict={"姓名":
["张三","李四","王五"],"投票数":
[18001,19682,23468]},
则print(dict["姓名"][1],dict["投票数"][0])的结果为?
()
A. 张三18001
B. 张三19682
C. 李四18001
D. 李四19682
试题编号:
20211113-ssn-16
试题类型:
单选题
标准答案:
C
试题难度:
一般
17.下列说法,正确的是?
()
A. 集合类型是一个元素集合,元素之间有序
B. 集合类型是一个元素集合,元素不能重复
C. s=set{1,2,’3’},声明了一个集合S
D. 集合类型是一个元素集合,元素之间无序,元素类型必修相同
试题编号:
20211113-ssn-17
试题类型:
单选题
标准答案:
B
试题难度:
一般
试题解析:
18.运行下列代码,正确的结果是?
()
>>>x=set('runoob')
>>>y=set('google')
>>>x | y
A. {‘o’,’o’}
B. {'r','b','u','n'}
C. {'l','n','r','e','b','g','u','o'}
D. {'o'}
试题编号:
20211113-ssn-18
试题类型:
单选题
标准答案:
C
试题难度:
一般
试题解析:
19.使用map函数可以实现列表数据元素类型的转换,而无需通过循环。
则将列表l=['1','3',
'5','7']转换为列表[1,3,5,7]的函数写法为?
()
A. map(int,l)
B. map(l,int)
C. list(map(int,l))
D. list(map(l,int))
试题编号:
20211113-ssn-19
试题类型:
单选题
标准答案:
C
试题难度:
一般
试题解析:
20.m=[i**2foriinrange(4)]的结果的是?
()
A. 16
B. 8
C. [0,1,4,9]
D. [1,4,9,16]
试题编号:
20211113-ssn-20
试题类型:
单选题
标准答案:
C
试题难度:
一般
21.importrandom
fibo=[1]*11
foriinrange(2,11):
fibo[i]=fibo[i-1]+fibo[i-2]
n=random.randint(1,10)
print(fibo[n])
运行该程序段,输出结果不可能是?
()
A. 1
B. 21
C. 35
D. 89
试题编号:
20211113-ssn-21
试题类型:
单选题
标准答案:
C
试题难度:
一般
试题解析:
22.下列代码的运行结果是?
()
defjishu(n):
returnn%2== 0
newlist=filter(jishu,[1,2,3,4,5,6,7,8,9,10])
n=list(newlist)
print(n)
A. [1,2,3,4,5,6,7,8,9,10]
B. [10,9,8,7,6,5,4,3,2,1]
C. [2,4,6,8,10]
D. [1,3,5,7,9]
试题编号:
20211114-ssn-001
试题类型:
单选题
标准答案:
C
试题难度:
一般
试题解析:
23.importrandom
lis=[0]*6
i=0
whilei<6:
lis[i]=random.randint(1,100)
iflis[i]%2!
=i%2:
i+=1
else:
break
运行该程序段,lis[0]~lis[5]各元素值可能的是?
()
A. [3,19,0,0,0,0]
B. [95,44,39,24,0,0]
C. [2,37,88,61,56,9]
D. [0,0,0,0,0,0]
试题编号:
20211114-ssn-002
试题类型:
单选题
标准答案:
A
试题难度:
较难
试题解析:
24.有关jieba库的描述,错误的是?
()
A. jieba库的分词原理是利用中文词库,将待处理的内容与词库比对后找到
最大概率的词组
B. jieba.lcut(s)返回的可能是一个元组类型
C. jieba.cut(s)返回的可能是一个元组类型
D. jieba.add_word(w)向分词词典中增加新词w
试题编号:
20211114-ssn-003
试题类型:
单选题
标准答案:
B
试题难度:
一般
试题解析:
25.要生成如下效果的图片,用不到的是以下哪个python库?
()
A. jieba
B. wordcloud
C. matplotlib
D. pandas
试题编号:
20211114-ssn-004
试题类型:
单选题
标准答案:
D
试题难度:
一般
二、判断题(共10题,共20分)
26.对于列表l=[(0,),1,2,3,4],all(l)的值是True。
正确 错误
试题编号:
20211114-ssn-005
试题类型:
判断题
标准答案:
正确
试题难度:
一般
试题解析:
27.>>>list(zip("abcd",range(3)))
返回出错
正确 错误
试题编号:
20211114-ssn-006
试题类型:
判断题
标准答案:
错误
试题难度:
一般
试题解析:
正确的答案是[('a',0),('b',1),('c',2)]
28.>>>'{0:
%}'.format(3.14)返回'3.140000%';
>>>'{0:
.2f}'.format(3.14)返回'3.14'。
正确 错误
试题编号:
20211114-ssn-007
试题类型:
判断题
标准答案:
错误
试题难度:
一般
试题解析:
'{0:
%}'.format(3.14)返回'314.000000%'
29.>>>str='nihao\nliping\nzhangsan'
>>>str.split()
结果是:
['nihao','liping','zhang','san']
正确 错误
试题编号:
20211114-ssn-008
试题类型:
判断题
标准答案:
正确
试题难度:
一般
试题解析:
在调用方法split()时,若不传递任何参数,则会使用任何空白字符(包括空格、换行符、制表符等)作为分隔符;若字符串存在连续的空白字符,则按一个空白字符对待,并且返回结果中不包含任何空字符串。
30.>>>dict(enumerate(range(3)))
返回值为{‘0’:
0, ‘1’:
1, ‘2’:
2}
正确 错误
试题编号:
20211114-ssn-009
试题类型:
判断题
标准答案:
错误
试题难度:
一般
试题解析:
返回值为{0:
0,1:
1,2:
2}。
31.某 Python程序段如下:
s="Errorsshouldneverpasssilently."
d={}
forchins:
ifchind:
d[ch]+=1
else:
d[ch]=1
print(d["e"])
运行该程序段,输出结果是2。
正确 错误
试题编号:
20211114-ssn-010
试题类型:
判断题
标准答案:
错误
试题难度:
较难
试题解析:
正确答案是3。
32.set()函数可以用于生成集合,输入的参数可以是任意组合数据类型,返回结果是一个无重复且有序的集合。
正确 错误
试题编号:
20211114-ssn-011
试题类型:
判断题
标准答案:
错误
试题难度:
一般
试题解析:
33.列表、元组、字符串均可以用set()转换为集合,例如:
>>>set((1,2,2,3,4)),结果是{1,2,3,4}
正确 错误
试题编号:
20211114-ssn-012
试题类型:
判断题
标准答案:
正确
试题难度:
一般
试题解析:
34.下列两个语句的功能可能是等价:
>>>l=[i*iforiinrange(5)]
>>>m=list(map(lambdax:
x*x,range(5)))
正确 错误
试题编号:
20211114-ssn-013
试题类型:
判断题
标准答案:
正确
试题难度:
一般
试题解析:
35.利用日期时间模块datetime,可以获取“今天”的日期,方法如下:
>>>importdatetime
>>>date.today().weekday()
如果“今天”是星期天,则返回0
正确 错误
试题编号:
20211114-ssn-014
试题类型:
判断题
标准答案:
错误
试题难度:
一般
试题解析:
返回日期是星期几,[0,6],0表示星期一,6表示星期天。
三、编程题(共3题,共30分)
36.输入年月日,计算这一天是这一年的第几天。
编写自定义函数完成程序功能,完善程序代码。
"""
根据年月日,计算这一天是这一年的第几天
函数名 defgetDays(year)
参数 year:
表示日期;字符串类型如20211201
返回值 :
整数。
表示这一天是这年的第几天
"""
defgetDays(year):
s=0
y=int(year[:
4])
m=int(year[4:
6])
d=int(year[6:
8])
monthdays=(31,28,31,30,31,30,31,31,30,31,30,31)
foriinrange( ① ):
s=s+ ②
if(y%4==0andy%100!
=0ory%400==0)and ③ :
s=s+1
s=s+d
returns
year="20211201"
theday= ④
print(theday)
试题编号:
20211114-ssn-101
试题类型:
编程题
标准答案:
评分标准:
①m-1 (3分)
②monthdays[i] (3分)
③m>2 (3分)
④getDays(year) (1分)
试题难度:
一般
试题解析:
参考程序:
defgetDays(year):
s=0
y=int(year[:
4])
m=int(year[4:
6])
d=int(year[6:
8])
monthdays=(31,28,31,30,31,30,31,31,30,31,30,31)
foriinrange(m-1):
s=s+monthdays[i]
if(y%4==0andy%100!
=0ory%400==0)andm>2:
s=s+1
s=s+d
returns
year="20211201"
theday=getDays(year)
print(theday)
37.素数是只能被1和本身整除的正整数,因式分解就是将一个正整数分解成若干个素数相乘的形式。
用户从键盘输入小于1000的整数,对其进行因式分解,例如:
10=2*5,60=2*2*3*5。
完善程序代码。
#用户从键盘输入小于1000的整数,对其进行因式分解。
例如:
10=2*5,60=2*2*3*5。
x=input('Pleaseinputanintegerlessthan1000:
')
x=int(x)
t=x
①
result=[]
whileTrue:
ift==1:
break
ift%i==0:
result. ②
t=t/i
else:
③
s=''
foriinresult:
s= ④
s= ⑤
print(x,'=',s)
试题编号:
20211114-ssn-102
试题类型:
编程题
标准答案:
评分标准:
① i=2 (2分)
② append(i) (2分)
③ i+=1 (2分)
④ s+str(i)+'*'(2分)
⑤ s[:
-1] (2分)
试题难度:
一般
试题解析:
参考程序:
#用户从键盘输入小于1000的整数,对其进行因式分解。
例如:
10=2*5,60=2*2*3*5。
x=input('Pleaseinputanintegerlessthan1000:
')
x=eval(x)
t=x
i=2
result=[]
whileTrue:
ift==1:
break
ift%i==0:
result.append(i)
t=t/i
else:
i+=1
s=''
foriinresult:
s=s+str(i)+'*'
s=s[:
-1]
print(x,'=',s)
38.设计一个算法,汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。
大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。
大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。
并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
有三个单字符字符串和一个整数。
三个字符表示三个杆子的编号,整数为盘子的数目。
根据上述计算规则,补全下列代码。
函数名:
hannota(n,a,b,c)
参数表:
n--正整数表示盘子数,a--a杆子,b--b杆子,c--c杆子。
返回值:
移动路径。
示例:
n=3,返回:
A-->C
A-->B
C-->B
A-->C
B-->A
B-->C
A-->C
defhannota(n,a,b,c):
ifn==1:
print(a,"-->",c)
return