青少年软件编程(Python)等级考试试卷(六级)
编写:李兴球
分数:100.00 题数:37
一、单选题(共25题,每题2分,共50分)
- 一般情况下,下列哪种后缀名的文件不是文本文件?( )
A、.py
B、.txt
C、.bat
D、.png
- 以下代码打开一个文件,以下描述正确的是。( )
f = open(‘c:/在水一方.wav’,mode=’r’)
c = f.read
f.close()
A、由于.wav是二进制文件,所以第一行代码就错了。
B、c是一个字符串。
C、c是一个二进制的字节对象。
D、程序能正常运行。
- 关于下面程序,描述正确的是。( )
import json
d = dict(name=’张三’,age=12)
with open(‘c:/a.json’,mode=’w’) as f:
json.dump(d,f)
A、文件没有被正确关闭。
B、生成的a.json文件里有汉字。
C、用with自动管理资源能自动关闭文件。
D、保存的文件不是文本文件。
- 关于以下代码,描述 错误的是( )
import random
import turtle
cs = [‘red’,’green’,’blue’,random,turtle]
ts = [turtle.Turtle() for _ in range(3)]
[t.setheading(i*120) for i,t in enumerate(ts)]
[t.fd(100) for t in ts]
[t.color(c) for t ,c in zip(ts,cs[:3])]
A、cs列表中有两个模块名,理论上没有任何问题。
B、ts列表中有三只海龟。
C、每只海龟的方向都是一样的。
D、每只海龟的颜色不一样,并且都前进100个单位。
- 关于如下代码,描述正确的是( )
x = int(input())
s = ‘32,76,8’.split(‘,’)
e = [‘海洋’,’天空’,’宇宙’]
d = {}
for i in range(x):
d[s[i]] = e[i]
print(d)
A、只有输入3,程序才能运行正确。
B、输入5后,程序运行错误,并且d字典还是空字典。
C、如果输入字母,程序肯定出错。
D、第二行代码错误。
- 以下代码描述正确的是( )
import random
import numpy as np
a,b,c,d = [random.randint(1,10)for _ in range(4)]
a = np.array([[a, b], [c, d]])
print(a[0]+a[1])
A、由于用random.randint生成的最大整数是10,所以输出不可能超过20。
B、由于a被重新定义,而b,c,d还是整数,所以a不能和b,c,d进行相加操作了。
C、程序能正确运行。
D、由于最终a是二维数组,所以最后一行代码出错。
- 以下关于文件的描述,正确的是。( )
A、文件系统是组织数据的一种方式。
B、在Python中用open命令打开文件后不需要关闭。
C、二进制文件是不能用记事本打开的。
D、Python程序只能用IDLE进行编辑。
- 属于Python第三方库的是。( )
A、 turtle。
B、sys。
C、math。
D、matplotlib。
- 关于排序算法,以下说法正确的是( )
A、冒泡排序每趟循环必定是最大的数移到列表最右边。
B、选择排序每次循环从列表中选择最小的或者最大的,然后从剩下的数据中再次选择最小的或者最大的,依此类推。
C、Python中的列表用sort命令,只能让列表中的数据从小到大排序。
D、Python中的sorted命令是原地排序,返回为None。
- 关于以下程序,描述正确的是( )
import numpy as np
student = np.dtype([(‘name’,’S20′), (‘age’, ‘i1’)])
s1 = np.array([[‘翠花’,12],[‘大壮’,18]])
print(str(s1[0]).split()[-1])
A、最终输出一个列表。
B、s1其实是一个一维数组。
C、最终结果并不是一个字符串。
D、student表示numpy模块的一种数据类型。
- 以下代码运行后,输出的a,描述正确的是( )
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a.shape = (1,6)
print(a)
A、a是一个一维数组。
B、a是一个二维数组。
C、a[0]的值是1。
D、a[0][1]的值是1。
- f字符串表达式能格式化字符串,假设x =10,那么f”ab{x:03}”结果是( )
A、’ab010′
B、’ab 10′
C、’abxxx’
D、’abx03′
- python内置可视化界面模块tkinter中哪个命令用于新建按钮( )
A、Tkr
B、Label
C、Text
D、Button
- 关于SQlite数据库,以下描述不正确的是( )
A、它是由c语言编写的一个数据库系统。
B、数据库由多个磁盘文件组成。
C、由SQL查询语言进行数据库的操作。
D、一个不需要服务器支持的数据库系统。
- 代码class A:pass,以下选项不正确的是( )
A、a = A() ,实例化了一个对象叫a。
B、类的名称一定要大写开头。
C、a = A();print(a.x),代码会运行出错。
D、pass只是占位符。
- “ab{:03}”.format(10)的结果是( )
A、’ab001′
B、’ab010′
C、’ab333′
D、’ab100′
- 关于以下代码,以下描述正确的是( )
import numpy as np
import matplotlib.pyplot as plt
y = np.linspace(-10,10,20)
plt.plot(y)
plt.show()
A、显示的是一条曲线。
B、y所包含的值是-10到10之间的整数。
C、对y进行求和后的值是0.0
D、numpy模块是内置模块,不需要安装。
- GUI,即图形用户界面,它的英文全称是( )
A、graphical user interface
B、green user interface
C、gray ultra internet
D、good update island
- turtle基于tkinter模块开发,导入turtle模块后可以用turtle.TK引用tkinter模块。那么tkinter.messagebox.showinfo和下面哪句代码含义一样( )
A、turtle.TK.messagebox
B、TK.showinfo
C、turtle.Turtle.messagebox
D、showinfo.turtle.TK
- “%c%cYou”%(73,10084)的运行结果的长度是( )
A、1
B、3
C、5
D、7
- 关于以下程序,描述正确的是( )
import sqlite3
import numpy as np
a = np.arange(1,10,2)
dbfiles = [f”c:/test_{i}.dat” for i in map(str,a)]
conns = [sqlite3.connect(fn) for fn in dbfiles]
[conn.close() for conn in conns]
A、将会在c盘根目录建立10个数据库
B、a是一个一维数组,包含5个偶数
C、conns是一个sqlite3的数据库连接对象
D、数据库名不一定以db为扩展名,也可以自定义为其它扩展名或没有扩展名
- 下面的程序,描述正确的是( )
A、如果再执行一遍list(m)将返回一个空列表。
B、由于第5行已经将m生成为列表,而第7行好像作同样的事情,所以第7行是多余的。
C、生成的文件名是test_55.txt。
D、第4行的m是一个二维数组。
- 执行下面代码,以下描述错误的是( )
import turtle
class Ball:
def __init__(self,diameter,position):
self.diameter = diameter # 直径
self.x,self.y = position # 球的中心点坐标
self.dx = 3 # 水平单位位移
self.dy = 3 # 垂直单位位移
def move(self):
self.x += self.dx
self.y += self.dy
def draw(self,turtle):
turtle.goto(self.x,self.y)
turtle.dot(self.diameter)
turtle.penup()
turtle.speed(0)
turtle.delay(0)
turtle.hideturtle()
ball = Ball(100,(0,0))
while True:
turtle.clear()
ball.move()
ball.draw(turtle)
A、程序运行后,将会看到一个直径为100的圆形朝右上角移动。
B、在程序中,海龟起的作用是把圆形通过dot命令画出来。
C、 由于Ball类中的draw方法调用了turtle的相关命令,所以它是隐含继承turtle.Turtle类的。
D、 这是一个正确的程序
- 关于sqlite中的游标,以下说法错误的是( )
A、游标用来执行sql语句。
B、通过游标可以取得返回的记录。
C、不需要显式创建游标,用连接对象也能执行sql语句。
D、不能通过for循环直接遍历游标对象。
- 关于以下代码,不正确的描述是( )
class Test:
def __init__(self,n):
self.ns = n
def show(self):
print(self.ns)
A、实例化Test的代码是Test()。
B、ns是Test类的一个属性。
C、Test类并没有继承任何类。
D、self表示实例化后的对象,可以省略。
二、判断题(共10题,每题2分,共20分)
- tkinter模块用来做GUI程序,其实用turtle模块编制的程序也是GUI程序。( )
- 执行ord(“%c”%(10084))的结果也是10084。( )
- 执行’中{:华>5}’.format(‘人’)后的结果有5个‘华’字。( )
- sqlite数据库可由一个或多个文件组成。( )
- Python源文件扩展名一般为py ,并且一般是utf-8编码。( )
- 文件的读写操作并不是Python自带的,需要导入os模块。( )
- 用pip命令安装matplotlib的方法是pip install matplotlib。( )
- ‘255.0.123.55’.split(‘.’)执行后返回一些字符串。( )
- 运行如下,结果是显示10个红色的圆点。 ( )
import matplotlib.pyplot as plt
plt.plot(range(10),’or’)
plt.show()
- 一个类继承自另一个类,那么这个类是另一个类的子类。( )
三、编程题(共2题,共30分)
- 数字记录与显示
编制程序,要求合理地运用time、sqlite3、numpy和matplotlib模块把输入的数字存储在数据库中,并且线性显示出来。程序输入10,那么生成10个在1到100范围内的整数。输入20,则在1到100范围内生成20个整数可视化地显示出来。输入小于1的数则程序结束。
输入10的图形可以参考下面图:
评分标准:
(1)正确地导入了所有要应用到的模块。(3分);
(2)所输入的数据都能进入数据库。(3分);
(3)能正确地使用matplotlib显示数据。(3分);
(4)能正确地使用numpy生成一序列数据; (3分);
(5)程序有异常处理机制,无论如何输入都不会崩溃。(3分)
- 简易学生信息管理系统。
程序要求如下:
1、设计一个学生类,名为Student ,字段有姓名,年龄,成绩。
2、设计好display_records函数。用于显示所有学生信息。
3、设计好insert_record函数。它用于往数据库中插入一条学生记录。
4、程序运行后会有一个主循环,一般用while循环。它会不断地显示要求按1、2、3数字键,如果按其它的则提示输入错误。按1会显示所有学生信息,按2会往数据库中插入一条记录,按3中断循环。 以下是程序的参考结构:
答案:
评分标准:
(1)能够设计好Student类。(3分);
(2)能够正确地实例化一个Student类的对象。(3分);
(3)display_records函数能正确地显示所有学生信息。(3分);
(4)insert_record能正确地插入一条学生信息。(3分) ;
(5)合理地运用了异常处理机制,程序无论如何输入都不会出错而崩溃。(3分) ;