青少年软件编程(python六级)等级考试试卷(2022年12月)

2023年06月02日

一、单选题

第 1 题 单选题

数据文件“abc.txt”中包含若干个英文单词,如图所示:

读取文件“abc.txt”中数据的Python程序段如下:

file = 'abc.txt'
word_b = []
for word in open(file):
	if word[0:1] = = 'a' and len(word)>4:
		word_b.append(word)

该程序段执行后,列表word_b中的数据为?(?)

A. 文件“abc.txt”中所有包含字母“b”且长度大于4的单词

B. 文件“abc.txt”中所有首字母为“a”且长度大于4的单词

C. 文件“abc.txt”中所有第2个字母为“a”且长度大于4的单词

D. 文件“abc.txt”中所有第1、2个字母均为“a”且长度大于4的单词

第 2 题 单选题

下列关于文件的描述错误的是?(?)

A. 按数据的组织形式可以把文件分为文本文件和二进制文件两大类

B. 使用readlines()可以从文件中读入—行文本

C. 可以使用open()打开文件,用close()关闭文件

D. 文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符”\n”结尾

第 3 题 单选题

with open("readme.txt","r") as f:
	r=f.read()
with open("writeme.txt",   ①   ) as p:
	p.write(r)

以上程序实现将readme文件内容追加写入writeme文件中,① 处的模式为?(?)

A. "w"

B. "t"

C. "r"

D. "a"

第 4 题 单选题

小林编写一段文件读写操作代码,文件如下图,代码段如下:

file=open('ceshi.txt','w')

file.write("python is a programming language.")

file.close( )

file=open('ceshi.txt','r')

print(file.read( ))

该代码段运行后,输出的结果为?(?)

A. IA Distributed System Based on Python.

B. python is a programming language.

C. IA Distributed System Based on Python. python is a programming language.

D. 程序编译错误,不会输出结果

第 5 题 单选题

下面选项中能创建按钮的是?(?)

A. tkinter.Tk()

B. tkinter.Label()

C. tkinter.Button()

D. tkinter.Text()

第 6 题 单选题

使用grid()方法管理布局,需要将Label标签放入第一行第一列,正确写法是?(?)

A. grid(row=0,column=0)

B. grid(row=1,column=1)

C. grid(row=0,column=1)

D. grid(row=1,column=0)

第 7 题 单选题

tkinter中的geometry函数的作用是?(?)

A. 设置窗口标题

B. 设置字体

C. 设置窗口大小

D. 设置按钮大小

第 8 题 单选题

import tkinter as tk
window = tk.Tk()
window.title('Mywindow')
window.geometry('200x100')
var = tk.StringVar()
p= tk.Label(window,textvariable=var,bg='green',font=('Arial', 12),width=15, height=2)
p.pack()
on_hit = False
def hit_me():
	global on_hit
	if on_hit == False:
		on_hit = True
		var.set('You hit me!')
	else:
		on_hit = False
		var.set('I Love Python!')
b=tk.Button(window, text='点我', width=15, height=2,command=hit_me)
b.pack()
window.mainloop()

运行如上代码,对按钮点击二次后,在文本框中显示的文字为?(?)

A. You hit me!

B. I Love Python!

C. You hit me!

I Love Python!

D. I Love Python!

You hit me!

第 9 题 单选题

有Python程序段如下,下列选项错误的是?(?)

class Car():       
	def __init__(self,name,color):
		self.name=name
		self.color=color
	def run(self):  
		print(self.color +self.name+"is running")

A. 使用class关键字来定义一个Car类,类名的首字母必须要大写

B. 方法__init()__定义了三个参数:self、name和color,其中self参数可省略

C. 语句“self.color=color”获取存储在参数color中的值并存储到self的属性color中

D. Car类还定义了一个方法run()

第 10 题 单选题

创建了Car类后,用以下代码语句创建了car对象:car=Car()

那么需要调用car对象的drive方法,下列选项正确的是?(?)

A. car.drive()

B. Car.drive()

C. Car.drive

D. car.drive

第 11 题 单选题

有如下Python程序:

class Car():        
	def __init__(self,name,color):
		self.name=name
		self.color=color
	def run(self):
		print(self.color+self.name+'is running')

class Bus(Car):        
	def __init__(self,name,color):
		super().__init__(name,color)

car1=Bus('公交车','红色')
car1.run()

上述代码描述了面向对象的哪个特征?(?)

A. 封装

B. 继承

C. 多态

D. 隐藏

第 12 题 单选题

以下代码的运行结果是?(?)

class Num():
	def __init__(self,a,b,c):
		self.a=a
		self.b=b
		self.c=c

	def run(self):
		print(self.a*10)
		print(self.b*5)
		print(self.c*2)
e = Num('C','BB','AAA')
e.run()

A. AAAAAAAAAA

BBBBBBBBBB

CCCCCC

B. AAAAAAAAAA

BBBBB

CC

C. CCCCCCCCCC

BBBBBBBBBB

AAAAAA

D. CCCCCCCCCC

BBBBB

AA

第 13 题 单选题

下列关于数据的说法,不正确的是?(?)

A. 一维数据采用线性方式组织,是有序的

B. 二维数据由多个一维数据构成

C. 二维数据可由二维列表表达,也可由表格或csv格式的文件表达

D. 一维数据可由列表表示,也可用集合表示

第 14 题 单选题

文件“score2.csv”中存放了3位同学的成绩数据,内容如图所示,小李编写了如下程序:

csv_file = open("score2.csv","r")
flines = csv_file.readlines()
csv_file.close()

执行程序后,flines的结果是?(?)

A. ['202008480,18', '202008319,19', '2202008333,20']

B. ['202008480,18\n', '202008319,19\n', '2202008333,20\n']

C. ['准考证号,成绩', '202008480,18', '202008319,19', '2202008333,20']

D. ['准考证号,成绩\n', '202008480,18\n','202008319,19\n','2202008333,20\n']

第 15 题 单选题

“人口性别年龄结构数据.csv”文件存放了若干年的人口数据,内容如图所示。小李想要读取“0-14岁”列的数据,他编写了如下代码:

import csv
with open('人口性别年龄结构数据.csv', 'r') as f:
	 reader = csv.reader(f)
	 for i in reader:
		  print(________)

画线处语句正确的是?(?)

A. i

B. i[2]

C. i[3]

D. i[3][0]

第 16 题 单选题

有如下程序代码:

import csv
headers = ['学号','姓名','分数']
rows = [('202001','张三','98'),
		('202002','李四','95'),
		('202003','王五','92')]
with open('score.csv','w',encoding='utf8',newline='') as f :
	writer = csv.writer(f)
writer.writerow(headers)
writer.writerow(rows)

下列说法不正确的是?(?)

A. 在相同路径下生成一个score.csv文件

B. f是一个文件对象

C. headers 是字段名称

D. writer.writerow(rows)将写入多行数据

第 17 题 单选题

有如下程序代码:

import json
s = '''[{"name":"kingsan","age":23},
		{"name":"xiaolan","age":22}]
	'''
print(type(s))
data = json.loads(s)
print(data)
print(type(data))

下列说法正确的是?(?)

A. s的数据类型是list

B. data的数据类型是字符串

C. loads()用于将字符串转化为JSON对象

D. JSON数据可以用双引号来包围,也可以用单引号

第 18 题 单选题

下列命令语句能实现在SQLite数据库插入记录数据的命令是?(?)

A. create

B. insert

C. select

D. delete

第 19 题 单选题

使用Python语言对SQLite数据库进行操作,实现打开和关闭名为test.db数据库文件。有下列语句命令:

①conn = sqlite3.connect("test.db")

②cur = conn.cursor( )

③import sqlite3

④conn.close( )

⑤cur.close( )

要实现上述功能,上述语句执行的先后顺序正确是?(?)

A. ③①②⑤④

B. ③②①⑤④

C. ③①②④⑤

D. ①②⑤④③

第 20 题 单选题

打开名为data.db的数据库(SQLite数据库)文件,下列命令能创建名为test数据表的是?(?)

A. create table test

B. create test

C. insert into test

D. data.append(test)

第 21 题 单选题

执行下列代码,说法错误的是?(?)

import sqlite3
DATABASE = 'data.db'
db = sqlite3.connect(DATABASE)
cur = db.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS list(id INTEGER PRIMARY KEY autoincrement, name text)")
db.commit()
cur.execute("SELECT COUNT(*) FROM list")
if cur.fetchall()[0][0] == 0:
	cur.execute('INSERT INTO list(id,name) VALUES(1,"lilei")')
	db.commit()

A. data.db文件中有一张名为list的数据表

B. list数据表中有两个字段id和name

C. list数据表中没有记录

D. 去掉最后一行的db.commit(),对程序有影响

第 22 题 单选题

matplotlib模块中提供了丰富的函数,关于函数的功能,下列选项中表达错误的是?(?)

A. plot() 函数的功能是绘制图形。

B. title()的功能是设置标题内容。

C. show()的功能是显示绘图。

D. subplot()的功能是图形叠加。

第 23 题 单选题

某用户随机生成1000个数字进行排序、计算和绘图,一定不会使用下列哪个模块?(?)

A. matplotlib

B. random

C. scipy

D. wordcloud

第 24 题 单选题

下列代码的执行结果是?(?)

import numpy as np
a = np.arange(9, dtype = np.float_).reshape(3,3)
b = np.array([100,10,10])
print (np.divide(a,b))

A. [[0. 0.1 0.2 ]

[0.03 0.4 0.5 ]

[0.06 0.7 0.8 ]]

B. [[0. 0.01 0.2 ]

[0.3 0.04 0.5 ]

[0.6 0.07 0.8 ]]

C. [[0. 0.1 0.02 ]

[0.3 0.4 0.05 ]

[0.6 0.7 0.08 ]]

D. [[0. 0.01 0.2 ]

[0.03 0.04 0.5 ]

[0.06 0.07 0.8 ]]

第 25 题 单选题

执行下列代码,输出结果是?(?)

 import numpy as np
 x =  [(1,2,3),(4,5,6),(8,9,0)]
 a = np.asarray(x)
 print (a)

A.

[[1 2 3]
[4 5 6]
[8 9 0]]

B.

[(1, 2, 3)
(4, 5, 6) 
(8, 9, 0)]

C.

[(1, 2, 3), 
(4, 5, 6) ,
(8, 9, 0)]

D.

((1, 2, 3) (4, 5, 6) (8, 9, 0))

二、判断题

第 26 题 判断题

使用内置函数open()的“r”模式打开包含多行内容的文本文件并返回文件对象fp,那么表达式fp.readline()[-1]的值一定为"\n"。(?)

A. 正确

B. 错误

第 27 题 判断题

Tkinter是Python的标准GUI库。Python使用Tkinter可以快速的创建GUI应用程序。(?)

A. 正确

B. 错误

第 28 题 判断题

在面向对象编程中,类是用来描述具有相同属性和方法的对象的集合,它定义了该集合中每个对象共有的属性和方法。对象是类的实例,可以被赋予对象以独特的个性。(?)

A. 正确

B. 错误

第 29 题 判断题

可以通过直接修改属性的值,及通过方法修改属性的值,这两种方法修改一个对象的属性,但是不能通过方法对属性的值进行递增/减。(?)

A. 正确

B. 错误

第 30 题 判断题

JSON(JavaScript Object Notation 对象表示法)是一种流行的结构化数据的方式,可以使用json.loads()返回JSON字符串。(?)

A. 正确

B. 错误

第 31 题 判断题

CSV数据存储格式是国际通用的一二维数据存储格式,一般每行一个一维数据,采用逗号分隔。(?)

A. 正确

B. 错误

第 32 题 判断题

SQLite 的 UPDATE 查询用于修改表中已有的记录。可以使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新。(?)

A. 正确

B. 错误

第 33 题 判断题

Matplotlib 是 Python 的绘图库,它不能与 NumPy 一起使用,只能与图形工具包一起使用。(?)

A. 正确

B. 错误

第 34 题 判断题

运行下列代码,输出结果是[1. 1. 1. 1. 1.]。(?)

   import numpy as np
   x = np.ones(5)
   print(x)

A. 正确

B. 错误

第 35 题 判断题

对于文本文件, 使用Python内置函数open()以读文本模式成功打开后,返回的文件对象可以使用for循环直接迭代。(?)

A. 正确

B. 错误

编程题

第 1 题 问答题

当前,我国正在开展新型冠状病毒疫苗接种,自今年 2 月份以来,许多学校的教职员工积极利用空余时间,到当地卫健部门指定的接种点去接种,为了帮助政教员小叶排摸全校教职员工接种情况,根据每天汇总的接种登记表(包含全校教职员工的姓名、组别、年龄、是否接种等信息,已转换为csv格式,见图1”),小徐利用 Python 编写了一个统计程序,方便向校领导汇报各教研组接种情况及全校接种比例等。该程序运行的部分界面如图2所示,请在程序划线处填入合适的代码。

图1

图2

import csv
f = open("/data/vi.csv", "r")
Vac_T = {"语文组": 0, "数学组": 0, "英语组": 0, "物理组": 0, "化学组": 0, "生物组": 0, "政治组":0,"历史组":0,"地理组":0,"技术组":0,"体音美组":0,"后勤组":0,"政教组": 0}
Vac_F = {"语文组": 0, "数学组": 0, "英语组": 0, "物理组": 0, "化学组": 0, "生物组": 0, "政治组":0,"历史组":0,"地理组":0,"技术组":0,"体音美组":0,"后勤组":0,"政教组": 0}
list1 =[] 
zrs = 0
zu_max = 0
line = f.readline()
while line:
	line = line.strip('\n')
	data = line.split(",")
	list1.append(data)
			  ①           
print(list1[:5])
print("--------------------------------------------")
f.close()  
num = len(list1)
for i in range(num):
	line_list = list1[i]  
	if            ②           :
		Vac_T[line_list[1]] += 1
	else:
		Vac_F[line_list[1]] += 1

for i in Vac_T:
	zu_per = Vac_T[i]/(Vac_T[i]+Vac_F[i])  
	if zu_per > zu_max:
		zu_max = zu_per
		zu = i
			   ③          
tot_per = int(zrs/num*10000+0.5)/100
print("各组接种人数:", Vac_T)
print("各组未接种人数:", Vac_F)
print("全校接种比例:", tot_per)
print("接种疫苗比例最高的组:", zu)

第 2 题 问答题

小强建立了一个简易的学生信息系统,使用SQlite进行数据的增加记录和修改记录操作,存储数据,每位学生的记录包含id、name和age这3个字段。程序运行界面如图所示。

程序运行时,显示数据库students.db中的数据表users中的所有记录,用户输入1表示增加记录,输入id、name和age后,记录将增加到数据库中。用户输入2表示修改记录,输入id、name和age后,根据id修改对应的name 和age的值。

程序代码如下:

import sqlite3
con = sqlite3.connect('students.db')
cursor = con.cursor()
cursor.execute('''
			   CREATE TABLE IF NOT EXISTS users(  id     int(8) primary key,
				name   varchar(18),
				age    int(8))
				''')
cursor.close()
con.commit()
con.close()

def user_insert(user_id, user_name, user_age):
	con = sqlite3.connect('students.db')
	cursor = con.cursor()
	cursor.execute("insert into users (id,name,age) values (?,?,?)", (user_id, user_name, user_age))
	cursor.close()
	con.commit()
	con.close()

def user_select():
	con = sqlite3.connect('           ①           ')
	cursor = con.cursor()
			   ②            ('select * from users')
	print(cursor.fetchall())
	cursor.close()
	con.close()
def user_update(user_id, user_name, user_age):
	con = sqlite3.connect('students.db')
	cursor = con.cursor()
	cursor.execute('UPDATE users SET name=?,age=? WHERE id =?',(user_name, user_age,user_id))
	cursor.close()
	con.commit()
	con.close()
print("------------学生信息系统样例------------")
while True:
			   ③          
	s = int(input("请输入操作符:1-增加记录,2-修改记录,3-退出系统"))
	if            ④           :
		 break
	user_id = int(input("请输入id:"))
	user_name = input("请输入name:")
	user_age = input("请输入age:")
	if s == 1:    # 增加记录
				  ⑤           
		print("插入成功!")
elif s == 2:  # 修改记录
		user_update(user_id, user_name, user_age)
		print("修改成功!")

请在画线处填入正确的代码。

第 3 题 问答题

编程定义一个类,实现求长方体体积,并输出当长方体的长度、宽度和高度分别为10、20和30时的体积,请保留小数点后两位数字。

请补全代码:

class Box():
	def __init__(           ①           ):
				   ②           =length1
				   ③           =width1
				   ④           =height1

	def volume(self):
		return            ⑤           

my_box=Box(10,20,30)
print("长方体体积是%.2f"%my_box.volume())