青少年软件编程(Python)等级考试试卷(五级)
编写:李兴球
分数:100.00 题数:37
一、单选题(共25题,每题2分,共50分)
- 假设列表的名字叫lis,在里面有10只海龟对象。那么能让所有海龟前进10个单位的正确代码是?( )
A、[t.fd(10) for t in lis]
B、[t.fd(10) for t in range(len(lis))]
C、for turtle in lis:turtle.right(90)
D、while True: lis.fd(10)
- 以下代码输出哪些数字?( )
for i in range(10):
if i==5:continue
print(i,end=”)
A、1234678910
B、0123456789
C、012346789
D、0,1,2,3,4,5,6,7,8,9
- 哪个整数没有在以下代码执行的结果中。( )
for i in range(100,1000):
s = str(i)
if (int(s[0]) + int(s[-1]))==17:
print(i)
A、928
B、849
C、809
D、910
- 根据以下代码,以下哪种说法是正确的。( )
import random
s = set()
while True:
i = random.randint(1,10)
s.add(i)
if i==0:break
A、s是一个集合,它里面的数据会多于10个。
B、s是一个集合,它里面的数据最终会等于10个。
C、代码中的while循环执行次数是有限的。
D、s中的每个数据依次加入,所以s中的数据有序。
- 运行如下代码,结果是?( )
a = {32,76,8}
b = {1024,76,8}
print(a&b)
A、{8, 76,32,1024}
B、{8, 76}
C、{1024,32}
D、set()
根据以下代码,以下哪种描述是不正确的。( )
for i in range(10,1000):
gw = i%10
sw = i//10
if (gw+sw)**2 == i:
print(i)
A、81在程序的输出结果中
B、100在程序的输出结果中
C、23不在程序的输出结果中
D、程序执行了990次
- 下面代码运行后,以下哪种说法是正确的。( )
from turtle import *
a = list(map(str,[Turtle() for _ in range(5)]))
print(a)
A、a是一个列表,里面存储了5只海龟对象
B、运行代码后,只能看到一只海龟,所以并没有生成5只海龟对象。
C、for _ in range(5)是错误的for循环
D、a是一个列表,里面有5个字符串。
- 以下关于生成器的说法不正确的是。( )
A、生成器只是保存了生成数据的算法,本身不存储数据。
B、可以用next命令把生成器中的数据一个一个地生成出来。
C、for循环可以把生成器中的数据全部生成出来。
D、用for循环把生成器中的数据全部遍历后,还能无限次再遍历。
- 以下关于turtle模块,说法不正确的是( )
A、海龟模块是第三方模块,安装方法是pip install turtle
B、turtle模块是内置模块,不需要安装。
C、import turtle的意思是导入海龟模块
D、from turtle import * 意思 是从海龟模块导入所有命令或常量等
- “abc{:05d}efg”.format(6)执行后结果是什么?( )
A、’00006abcefg’
B、’abc6efg’
C、’abc 6efg’
D、’abc00006efg’
- 根据以下代码,s最有可能的数据类型是?( )
from turtle import Screen
sc = Screen()
s = sc._shapes
print(s.keys())
A、列表
B、元组
C、集合
D、字典
- 根据以下代码,以下选项中描述错误的是?( )
jihe = set(‘abcdefgggg’)
print(jihe[-1])
A、jihe是一个集合
B、set命令可以把字符串转换成一个集合。
C、jihe中的数据有10个
D、第二行代码是错误的
- python脚本程序可以用下列个模块打包成windows下的exe可执行程序?( )
A、pyinstaller
B、p2e
C、turtle
D、jieba
- 假设有两个坐标点分别是a=(3,4),b=(24,55)。下面哪个表达式不能求两点距离,假设导入了math模块。( )
A、((a[0]-b[0])**2 + (a[1]-b[1])**2)**0.5
B、math.dist(a,b)
C、power(((a[0]-b[0])**2 + (a[1]-b[1])**2),0.5)
D、math.sqrt((a[0]-b[0])**2 + (a[1]-b[1])**2)
- 以下代码运行后,输出的结果是?( )
>>> d = ‘1234567’
>>> sum(map(int,list(d[::-1]).pop() ))
A、1
B、28
C、7
D、0
- 关于以下代码,以下说法正确的是。( )
>>> import turtle
>>> cs = [‘red’,’orange’,’yellow’,’green’]
>>> turtle.color = cs
>>> turtle.fd(100)
>>> turtle.color(cs[0])
A、海龟的颜色最终变成了红色
B、海龟前进了100个单位
C、cs[-1]的结果是’red’
D、cs[0][0]的结果是’yellow’
- 下面哪个选项输出了11个换行符?( )
A、for i in range(11):print(‘\n’)
B、print(‘/n’*10)
C、print(‘\n’*11)
D、print(‘\r’*11)
- 下列代码说法不正确的是?( )
import time
while True:
s = str(time.time())
if (s[-1])==5:break
A、上面的while会在一定条件下结束,所以是一个有限循环
B、break可用于中断while循环
C、s不是一个字符串
D、时间模块的time.time()命令获取自1970年元月1号0点0分到现在的秒数
- 关于以下代码,说法正确的是:( )
>>> s = ‘\r\”\n’
>>> len(s)
A、s是一个非法字符串
B、len(s)的结果是3
C、len(s)的结果是6
D、s[-1]是’n’这个字符
- 下面代码绘制的图形是?( )
>>> from turtle import *
>>> ts = [Turtle(visible=False) for _ in range(4)]
>>> [ts[i].setheading(i*90) for i in range(4)]
>>> [t.fd(100) for t in ts]
A、正方形
B、三角形
C、十字架
D、圆形
- 关于以下程序,如果输入234,那么描述正确的是?( )
>>> list = [32,76,8,9,10]
>>> input = list[n]
>>> s = eval(input(‘请以半角逗号为分隔输入整数’))
>>> print(s)
A、s将会是一个整数
B、由于input被重新定义,所以s未定义
C、不能将列表赋值给list,因为list是关键词
D、根据Python特性,即使list被重新定义,它仍能新建列表
- 以下程序的文件名是turtle.py。根据它代码,描述正确的是?( )
import turtle
s = “””
import turtle
print(s)
“””
print(s)
exec(s)
A、程序会无限执行。
B、程序会执行很多次输出,但最终会由于递归错误而停止。
C、程序只会输出一些字符串,然后终止。
D、文件名是不能存储为turtle.py的。
- 执行下面代码,以下描述正确的是?( )
for x in range(1,10,2):
b = set()
b.add(set())
A、b是一个集合,执行len(b)的结果是5。
B、b是一个集合,由于添加的都是空集合,所以最终b内只有一个对象
C、 由于每次循环b都是重新建立的一个空集合,只给它增加一个数据,所以执行len(b)结果是1。
D、 这是一个错误的程序
- 下面程序,以下选项中正确的是?( )
x = 10
f = 32
def f(a):
global x
return x + 10
print(str(f))
A、程序输出的结果是20
B、程序输出的结果是10
C、这是一个错误的程序
D、这个程序只是输出一个字符串
- 关于以下代码,输出结果是什么?( )
x = {key:value for key,value in zip(‘abcdefg’,’中华人民共和国’)}
lis = list(x)
print(”.join(lis))
A、[‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’]
B、abcdefg
C、[‘中’, ‘华’, ‘人’, ‘民’, ‘共’, ‘和’, ‘国’]
D、中华人民共和国
二、判断题(共10题,每题2分,共20分)
- 在代码 for _ in range(100):pass 中 一个变量也没有,这是充许的。( )
- s = ‘roblox’,然后执行s.split(),返回的也是一个字符串。( )
- 在Python计算机语言中,定义函数一定要用def开头,这是正确的。( )
- 在Python中for循环实现重复执行一组语句的本质是迭代序列或散列中的数据给变量。( )
- jieba模块中的lcut命令返回的是一个列表。( )
- 以下代码只会执行三次。( )
while [32,76,8]:
[32,76,8].pop()
- 字符串的title和capitalize方法对于纯数字组成的字符串来说返回结果一样。( )
- 以下代码执行后a,b,c的值分别和x,y,z的值一样。( )
import math
g = ( math.dist((0,0),(2,2)) for _ in range(3) )
a,b,c = g
x,y,z = g
- 运行如下,结果是55。 ( )
def fib(n): return 1 if n<=2 else fib(n-1) + fib(n-2)
print(sum(map(int,str(fib(10))) ))
- 为了让程序能正常运行,永远不崩溃,推荐用try…except…结构把程序全部包含在异常处理之中。( )
三、编程题(共2题,共30分)
- 显示词云图像
可以在海龟画图屏幕上把词云图像显示出来。下面是一段文本:
八十年代初期以来,食用菌栽培做为一项投资小、周期短、见效快的致富好项目在中国得以迅猛发展,食用菌产品曾一度供不应求,卖价不菲。食用菌产业是一项集经济效益、生态效益和社会效益于一体的短平快农村经济发展项目,食用菌又是一类有机、营养、保健的绿色食品。发展食用菌产业符合人们消费增长和农业可持续发展的需要,是农民快速致富的有效途径。有些国家还建成了年产鲜菇千吨以上的菇厂,还发展了既供观赏又供食品的家庭种菇和用菌丝体液体发酵生产食品添加剂的技术21世纪食用菌将发展成为人类主要的蛋白质食品之一2005年中国食用菌的总产量达1200万吨,居世界第一,据相关网站调查统计,2010年中国食用菌的总产量达2000万吨,占世界70%。由全禾菌业、九发集团等单位开发了食用菌液体菌种生产和工厂化栽培技术,大大提升了中国食用菌生产水平。食用菌产业已成为中国种植业中的一项重要产业。国内市场潜力巨大。因此,对国内市场要加大宣传力度及产业整合。
请把以上文本进行分词,把长度小于2的字符串去掉,然后用词云模块生成png图形,宽高是480×360,最后显示在Python海龟画图屏幕上,宽高是480×360。
评分标准:
(1)能够使用至少一种分词命令进行分词。(3分);
(2)能够把列表中的字符串长度小于2的去除。(3分);
(3)能够使用词云模块生成png图形。(3分);
(4)正确地设定海龟画图屏幕的宽高 ; (3分);
(5)能正确地把图片显示在海龟画图屏幕上。(3分)
- 海龟的切片操作。
程序要求如下:
1、程序会生成10只海龟,它们都放在一个列表中,比如列表的名字叫ts。
2、10只海龟会从左到右依次排开,比如,可以让它们每相隔50个单位。
3、程序需要合理地运用至少2个列表推导式,(硬凑的不算,下同)。
4、通过屏幕的textinput弹出对话框输入文本符号。文本中必需含有:号,即冒号,结果会对ts列表进行切片操作。如: screen.textinput(‘提示’,’请输入切片操作符号’)。
这个时候,输入1:4,则把索引为1,2,3的海龟隐藏并删除。输入[4:1:-1]则会把余下列表中的索引为4,3,2的海龟隐藏,并从ts列表中删除。(提示: 可用exec命令把字符串当成代码执行)。
5、要求在程序中合理地运用try…except…异常处理机制。
6、不断地重复输入,直到当所有海龟被隐藏及从ts列表中删除,最终ts列表为空,最后显示‘程序运行结束’几个大字。
答案:
评分标准:
(1)能够生成10只海龟,并一字排开。(2分);
(2)合理地运用了两个以上的列表推导式。(3分);
(3)运用了textinput进行输入。(2分) ;
(4)合理地运用了异常处理机制。(3分) ;
(5)海龟能按照输入的切片操作符正确地隐藏。(5分) ;
发表评论