全国青少年软件编程Python五级卷与答案Word文档格式.docx
《全国青少年软件编程Python五级卷与答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《全国青少年软件编程Python五级卷与答案Word文档格式.docx(27页珍藏版)》请在冰点文库上搜索。
[0,1,6,8,10,12]
[12,10,8,6,1,0]
20211113-ssn-04
5.下列元组的声明,非法的是哪一项?
t=0,
t=0,1
t=(0)
t=(0,1)
20211113-ssn-05
6.下列函数或操作,错误的为哪一项?
>
tuple('
helloworld'
)
tuple(range(3))
tuple(str,range(3))
tuple(map(str,range(3)))
20211113-ssn-06
7.赋值语句path=r'
c:
\abc\xyz\tag.txt'
,执行结果是?
path的值是'
\bc\yz\ag.txt'
\\abc\\xyz\\tag.txt'
提示出错
20211113-ssn-07
8.print('
\x65'
)的结果是?
\x65
‘\x65’
e
A
20211113-ssn-08
9.求执行下列操作后的正确结果?
(
url='
url.split()
[www,lxsz,com]
['
www’,’lxsz’,’com'
]
20211113-ssn-09
10.运行下列代码,正确的结果是?
print("
{:
06.2f}"
.format(3.1415926))
’003.14’
003.14
’3.14’
3.14
20211113-ssn-10
B
11.下列语句的输出结果是?
foriin'
xyz'
:
forjinrange(1,3):
print(i,end='
ifi=='
z'
break
xxyzz
.xxyyzz
xxyy
xxyyz
20211113-ssn-11
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)
1
2
3
4
20211113-ssn-12
较难
13.下列语句的输出结果是?
foriinrange(6):
ifi%2==0:
else:
1,3,5,
1,3,5
0,2,4,
没有输出
20211113-ssn-13
14.有如下
Python
程序段:
importrandom
c=0
s=0
foriinrange(0,10):
n=random.randint(1,101)
ifn%2==0:
s+=i
c+=1
print(i)该程序段被执行后,下列说法不正确的是?
把程序s+=i改为s=s+i后,得到的结果是一样的。
i=9
语句c+=1可能执行了10次
变量s中存储的生成的10个随机数中偶数相加的和
20211113-ssn-14
15.下列声明字典的语句,错误的是?
d={}
d={‘name’:
Tom'
’age’:
20,’salary’:
3900}
d=dict(title='
Python'
author='
price=59)
d=dict[('
name'
Jerry'
),('
age'
20)]
20211113-ssn-15
16.已知字典dict={"
姓名"
["
张三"
"
李四"
王五"
],"
投票数"
[18001,19682,23468]},
则print(dict["
][1],dict["
][0])的结果为?
张三18001
张三19682
李四18001
李四19682
20211113-ssn-16
17.下列说法,正确的是?
集合类型是一个元素集合,元素之间有序
集合类型是一个元素集合,元素不能重复
s=set{1,2,’3’},声明了一个集合S
集合类型是一个元素集合,元素之间无序,元素类型必修相同
20211113-ssn-17
18.运行下列代码,正确的结果是?
x=set('
runoob'
y=set('
google'
x
|
y
{‘o’,’o’}
{'
r'
'
b'
u'
n'
}
l'
e'
g'
o'
20211113-ssn-18
19.使用map函数可以实现列表数据元素类型的转换,而无需通过循环。
则将列表l=['
1'
3'
5'
7'
]转换为列表[1,3,5,7]的函数写法为?
map(int,l)
map(l,int)
list(map(int,l))
list(map(l,int))
20211113-ssn-19
20.m=[i**2foriinrange(4)]的结果的是?
16
8
[0,1,4,9]
[1,4,9,16]
20211113-ssn-20
21.importrandom
fibo=[1]*11
foriinrange(2,11):
fibo[i]=fibo[i-1]+fibo[i-2]
n=random.randint(1,10)
print(fibo[n])
运行该程序段,输出结果不可能是?
21
35
89
20211113-ssn-21
22.下列代码的运行结果是?
defjishu(n):
returnn%2==
newlist=filter(jishu,[1,2,3,4,5,6,7,8,9,10])
n=list(newlist)
print(n)
[1,2,3,4,5,6,7,8,9,10]
[10,9,8,7,6,5,4,3,2,1]
[2,4,6,8,10]
[1,3,5,7,9]
20211114-ssn-001
23.importrandom
lis=[0]*6
i=0
whilei<
6:
lis[i]=random.randint(1,100)
iflis[i]%2!
=i%2:
i+=1
运行该程序段,lis[0]~lis[5]各元素值可能的是?
[3,19,0,0,0,0]
[95,44,39,24,0,0]
[2,37,88,61,56,9]
[0,0,0,0,0,0]
20211114-ssn-002
A
24.有关jieba库的描述,错误的是?
jieba库的分词原理是利用中文词库,将待处理的内容与词库比对后找到
最大概率的词组
jieba.lcut(s)返回的可能是一个元组类型
jieba.cut(s)返回的可能是一个元组类型
jieba.add_word(w)向分词词典中增加新词w
20211114-ssn-003
25.要生成如下效果的图片,用不到的是以下哪个python库?
jieba
wordcloud
matplotlib
pandas
20211114-ssn-004
二、判断题(共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),('
1),('
c'
2)]
28.>
'
{0:
%}'
.format(3.14)返回'
3.140000%'
;
.2f}'
3.14'
。
20211114-ssn-007
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
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
④getDays(year)
(1分)
参考程序:
foriinrange(m-1):
s=s+monthdays[i]
=0ory%400==0)andm>
2:
theday=getDays(year)
37.素数是只能被1和本身整除的正整数,因式分解就是将一个正整数分解成若干个素数相乘的形式。
用户从键盘输入小于1000的整数,对其进行因式分解,例如:
10=2*5,60=2*2*3*5。
完善程序代码。
#用户从键盘输入小于1000的整数,对其进行因式分解。
例如:
x=input('
Pleaseinputanintegerlessthan1000:
x=int(x)
t=x
result=[]
whileTrue:
ift==1:
ift%i==0:
result.
②
t=t/i
③
s='
foriinresult:
s=
④
⑤
print(x,'
='
s)
20211114-ssn-102
i=2
(2分)
append(i)
i+=1
s+str(i)+'
*'
⑤
s[:
-1]
(2分)
x=eval(x)
i=2
result.append(i)
i+=1
s=s+str(i)+'
s=s[:
-1]
38.设计一个算法,汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。
大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。
大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。
并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
有三个单字符字符串和一个整数。
三个字符表示三个杆子的编号,整数为盘子的数目。
根据上述计算规则,补全下列代码。
函数名:
hannota(n,a,b,c)
参数表:
n--正整数表示盘子数,a--a杆子,b--b杆子,c--c杆子。
返回值:
移动路径。
示例:
n=3,返回:
A-->
C
B
C-->
B-->
defhannota(n,a,b,c):
ifn==1:
print(a,"
-->
c)
return