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

2023年06月01日

选择题

第 1 题 单选题

以下关于Python二维数据的描述中,错误的是?( )

A. 表格数据属于二维数据,由整数索引的数据构成

B. CSV格式每行表示—个—维数据,用英文半角逗号分隔

C. 二维数据由多条—维数据构成,可以看作—维数据的组合形式

D. —种通用的二维数据存储形式是CSV格式

第 2 题 单选题

有以下Python程序段功能为:输出整型数组元素a[0]到a[9]中最大值和最小值

from random import randint
a=[randint(1,20) for i in range(10)]
print(a)
amin=a[0]
amax=a[0]
i=1;j=9
while i<=j:
	if a[i]>a[j]:
			   (1)    
			   (2)    
	else:
			   (3)    
			   (4)    
	i=i+1
	j=j-1
print(amin,amax)

上述程序段中可选语句为?(  )

A. ④③②①

B. ④②③①

C. ③②④①

D. ③①④②

第 3 题 单选题

小明将我国部分省份及其省会城市存储到二维数组中,并依次输出各省及其省会名称。例如“浙江省的省会是杭州市”,相关代码如下:

a = [["浙江省", "杭州市"], ["吉林省", "长春市"], ["湖南省", "长沙市"], ["江苏省", "南京市"], ["安徽省", "合肥市"]] 
for p in a:
	 print(f"{     ①     }的省会是{     ②     }")

则划线①和②处分别应填写的代码为?(  )

A. ① p[1] ② p[0]

B. ① a[p][0] ② a[p][1]

C. ① p[0] ② p[1]

D. ① p[1] ② p[2]

第 4 题 单选题

有如下Python程序段:

a=[27,15,21,36,18]
f=[False]*5
i=0
while i<4 and not f[i]:
	for j in range(4,i,-1):
		if a[j]>a[j-1]:
			a[j],a[j-1]=a[j-1],a[j]
			f[i]=True
	i=i+1

则程序运行之后,数组f中值为True的元素的个数是?(  )

A. 1

B. 2

C. 3

D. 4

第 5 题 单选题

某Python程序如下:

a = [28,45,17,43,75,40,54,13]
m = int(input("请输入一个整数:"))
pos=-1
for i in range(len(a)):
	if a[i]>m:
		if pos==-1 or a[i]<a[pos]:
			pos=i
print(pos)

运行该段程序,若输入40,输出的结果是?(  )

A. 1

B. 4

C. 3

D. 5

第 6 题 单选题

有关SQLite数据库中游标对象的方法,下列哪一个方法用于从结果中读取一条记录,并将游标指向下一条记录?(  )

A. scroll()

B. fetchall()

C. fetchmany()

D. fetchone()

第 7 题 单选题

关于SQLite数据库,下列说法中哪一个描述不正确?(  )

A. SQLite是一个开源的关系型数据库,具有零配置、自我包含、便于传输等优点

B. SQLite数据库中的数据存放于多个二维表,在表中列称为记录,行称为字段

C. 设计表结构时,可指定某字段是否允许空,若不允许为空,可用NOT NULL关键字加以限制

D. 在大多数表中,往往指定一个非空且唯一的字段作为主键(PRIMARY KEY),便于快速检索

第 8 题 单选题

在Python中创建了SQLite数据库和数据表,如下图所示:

import sqlite3

conn=sqlite3.connect('d:/fruit.db')

cur=conn.cursor()

conn.execute("INSERT INTO fruit VALUES('桔子',4.5)")

conn.execute("INSERT INTO fruit VALUES('葡萄',2.5)")

conn.commit()

conn.execute("DELETE FROM fruit WHERE price=2.5")

conn.commit()

cur.execute('SELECT * FROM fruit')

conn.close()

执行完上述代码后,数据表中还剩下多少条数据?(  )

A. 6

B. 5

C. 4

D. 3

第 9 题 单选题

根据如下图所示的数据结构,在D盘根目录下建立一个空数据库buyfruit.db,按如图所示的表结构,创建一周水果购买情况记录表base。

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

A. 实数型REAL:浮点数,以8字节指数形式存储,不可指定位数,只能指定小数位数

B. 整数型INTEGER:有符号整数,按实际存储大小,通常不需要指定位数

C. 文本型TEXT:字符串,以数据库编码方式存储

D. 上述表结构中,应该设置“编号”为主键更合理

第 10 题 单选题

编写Python程序时,需要打开代码同目录下的“test.txt”文件,使用open函数只读方式打开,下列代码正确的是?(  )

A. open('test.txt','r'')

B. open('text.txt','w')

C. open('test.txt','a')

D. open('text.txt','a+')

**第 11 题 单选题*

有如下Python代码,关于这段代码描述正确的是?(  )

with open('test.txt') as f:
	data=f.readline()
print(data)

A. 读取test文件中的所有内容

B. 读取test文件中的一行数据,返回的数据是列表

C. 读取test文件中的一行数据,返回的数据是字符串

D. 无法打开test文件

第 12 题 单选题

有一段Python代码,'test1.txt'内容如下图所示,'test2.txt'文件无内容,执行该代码后,下列说法正确的是?(  )

with open('test1.txt') as f:
	data=f.readline()
with open('test2.txt','w') as f:
	f.write(data)

A. test2.txt文件中仍旧无内容

B. test2.txt文件中的内容为'hello world,'

C. test2.txt文件中的内容为'hello world,I like Python'

D. test1.txt文件中的内容将丢失

第 13 题 单选题

关于函数的功能,下列描述正确的是?(  )

A. bar()函数用于绘制水平柱形图

B. plot()函数用于绘制饼图

C. barh()函数用于绘制垂直柱形图

D. scatter()函数用于绘制散点图

第 14 题 单选题

有如下程序代码:

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(10, 20, 100)
y = x ** 10
print(type(x), type(y))
plt.plot(x, y)
plt.show()

执行代码后,运行效果图正确的是?(  )

A.

B.

C.

D.

第 15 题 单选题

绘制sin(x)的图形如图所示,画线处的的语句是?(  )

import matplotlib.pyplot  as plt
import numpy  as  np
x = np.linspace(0, 10, 30) 
_________
plt.show()

A. plt.plot(x, np.sin(x))

B. plt.scatter(x, np.sin(x))

C. plt.bar(x, y)

D. plt.scatter(x, y)

第 16 题 单选题

文文收集了某题的选择数据,并根据数据制作了选答比例,如图所示。

语句如下程序如下:

_______
plt.rcParams["font.sans-serif"] = "SimHei"
opt = [204, 509, 159, 213]
_______
plt.title("各选项的选答比例")
_______

选填语句有:

①import matplotlib.pyplot as plt

②plt.pie(opt, labels=['A', 'B', 'C', 'D'], autopct='%1.2f%%')

③plt.show()

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

A. ②③①

B. ①②③

C. ③①②

D. ②①③

第 17 题 单选题

打开一个已有文件,逐行读取内容,并顺序写入到另一个文件内,代码如下,则划线处的语句为?(  )

file_read = open("1.jpg","rb")
file_write = open("2.jpg","wb")
while True:
	 ______________________________
	 if not text:
		 break
	 file_write.write(text)
file_read.close()
file_write.close()

A. text = file_read.readline()

B. text = file_read.readlines()

C. text = file_read

D. text = '1,jpg'

第 18 题 单选题

下面不属于tkinter中的常用控件的是?(  )

A. Canvas

B. Button

C. Entry

D. scatter

第 19 题 单选题

执行下面代码,说法正确的是?(  )

import tkinter as tk
from tkinter import messagebox
root= tk.Tk() 
root.title('演示窗口')
root.geometry("300x100+630+80") 
btn1 = tk.Button(root) 
btn1["text"]= "点击"
btn1.pack() 
def call(event):
	messagebox.showinfo('窗口名称','点击成功')
btn1.bind('<Button-1>',call)

A. 窗口的名称为‘点击’

B. 窗口中有两个以上的按钮

C. 窗口内的按钮无法点击

D. 按钮和call绑定

第 20 题 单选题

关于下列代码,说法正确的是?(  )

from tkinter import *
root = Tk()
Button(root,text='按钮1').pack(side=TOP,expand=YES,fill=X)
Button(root,text='按钮2').pack(side=TOP,expand=YES,fill=X)

A. 两个按钮从上到下排列

B. 两个按钮从左到右排列

C. 当主窗体大小变化时,按钮大小不会发生改变

D. 两个按钮都在竖直方向填充

第 21 题 单选题

有如下Python代码,执行该代码,说法正确的是?(  )

def go(*args):   
	print(comboxlist.get()) #打印选中的值   
import tkinter as tk
root=tk.Tk() #构造窗体
comboxlist=tk.ttk.Combobox(root)
comboxlist["values"]=("1","2","3","4")
comboxlist.current(0)  
comboxlist.bind("<<ComboboxSelected>>",go)  
comboxlist.pack()

A. comboxlist没有和任何事件绑定

B. comboxlist下拉框中的选项有0,1,2,3,4,

C. 点击下拉框中的1,1会被输出打印

D. 下拉框不会显示在窗体中

第 22 题 单选题

下面有关类与对象的概念描述,错误的是?( )

A. 定义类,类名的首字母必须大写,后面跟圆括号。

B. 类中的函数称为方法,方法__init__() 是一个特殊的方法,开头和末尾各有两个下划线,这种约定避免Python默认方法与普通方法发生名称冲突。

C. 定义方法__init__() 时,self 必不可少,还必须位于其他形参的后面。

D. 定义的变量都有前缀self ,以self为前缀的变量可供类中所有方法使用。

第 23 题 单选题

请阅读下列代码,①、②、③、④处的输出结果依次是?(  )

class Fruit:
	price=0
	def __init__(self):
		 self.color='red'
		 country="China"
if __name__=="__main__":
	print(Fruit.price)  #①
	apple=Fruit()
  print(apple.color)  #②
  Fruit.price=Fruit.price+15
  print( "apple's price:"+str(apple.price))  #③
  banana=Fruit()
  print ("banana's price:"+str(banana.price))  #④

A. 0 red apple's price:15 banana's price:0

B. 0 red apple's price:15 banana's price:15

C. 15 red apple's price:15 banana's price:0

D. 15 red apple's price:15 banana's price:15

第 24 题 单选题

关于类的属性,下列表达错误的是?(  )

A. 类由属性(attribute)和方法(method)组成。类的属性指的是对数据的封装,类的方法则表示对象具有的行为。

B. 根据类属性的名称可以判断类属性的类型,如果函数、方法或属性的名称以双下划线开始和结束,则表示公有属性;如果函数、方法或属性的名字不是以两个下划线开始和结束,则表示私有属性。

C. 根据作用范围,类的属性分为私有属性(private attribute)和公有属性(public attribute)。类之外的函数不能够调用的属性称为类的私有属性;相反,类之外的函数能够调用的属性称为类的公有属性。

D. 类的属性又分为实例属性和静态属性:实例属性指的是以 self 作为前缀的属性,静态属性指的是静态变量。

第 25 题 单选题

关于面向对象编程,下列表述错误的是?(  )

A. 继承是面向对象编程的重要特性之一,它可以重复使用已经存在的数据(属性)和行为(方法),避免重复编写代码。继承指的是父子关系,子类继承父类的所有公有实例变量和方法。

B. 根据类来创建对象的过程称为实例化。类将需要使用的变量和函数组合在一起,称为封装。

C. Python 语言不允许子类继承多个父类。如果父类定义了 __init__ 方法,子类必须显式调用父类的 __init__ 方法;如果子类需要扩展父类的行为,不可以添加 __init__ 方法中的参数。

D. 继承指的是父子关系,子类继承父类的所有公有实例变量和方法。

第 26 题 判断题

json库主要包括两类:操作类函数和解析类函数,操作类函数主要完成外部json格式和程序内部数据类型之间的转换功能;解析类函数主要用于解析键值对内容。

A. 正确

B. 错误

第 27 题 判断题

SQLite是Python的内置库,可用import sqlite3语句导入模块,其程序中编写的有关SQL的语句对大小写很敏感,所以必须用大写的形式表示才行。

A. 正确

B. 错误

第 28 题 判断题

在Python的matplotlib库中,plt.bar()函数可用来绘制散点图。

A. 正确

B. 错误

第 29 题 判断题

在调用Python的matplotlib库后,为了显示图形,必须调用plt.show()函数。

A. 正确

B. 错误

第 30 题 判断题

在Windows平台使用Python,很多时候open函数的默认编码方式为gbk。

A. 正确

B. 错误

第 31 题 判断题

open()函数的'rb+'模式表示以二进制的格式打开一个文件用于读写。文件指针将会放在文件开头。

A. 正确

B. 错误

第 32 题 判断题

在tkinter中,pack 是三种布局管理中最常用的. 另外两种布局需要精确指定控件具体的显示位置, 而 pack 布局可以指定相对位置, 精确的位置会由 pack 系统自动完成。

A. 正确

B. 错误

第 33 题 判断题

在Python语言中定义类时,如果某个成员名称前有2个下划线则表示是私有成员。

A. 正确

B. 错误

第 34 题 判断题

在类定义的外部,没有任何办法来访问对象的私有成员。

A. 正确

B. 错误

第 35 题 判断题

语句a=[[i+j for i in range(10)]for j in range(10) if j %2 ==1]产生一个10*10的二维数组。

A. 正确

B. 错误

编程题

第 1 题 问答题

小明编写一个类实现设置马的品种、年龄、性别及速度,输出相应的语句,请补全代码。

如下代码输出结果为“一匹阿拉伯12岁的公马,在草原上奔跑的速度为50km/h”。

class         ①        :
	def __init__(self, category, gender, age):
		self.category = category
			   ②        
		self.age = age
		self.speed = 0
	def get_descriptive(self):
		self.info = "一匹" + self.category +        ③        + "岁的" +self.gender + "马"
	def write_speed(self, new_speed):
		self.speed = new_speed
		addr = "在草原上奔跑的速度为"
		print(        ④        + "," + addr + str(self.speed) + "km/h。")
horse = Horse("阿拉伯","公",12)
horse.get_descriptive()
horse.write_speed(50)

第 2 题 问答题

有十位选手参加某项比赛,共有10位评委参与评分。每位选手得分已保存在“score1.txt”文件中,如图所示。

第一行表示1号选手的所有得分,第二行表示2号选手的所有得分,依次类推。最终得分的计分规则为去掉一个最高分,去掉一个最低分,求余下分数的平均分。请找出最终得分最高的选手。“score1.txt”文件的内容如图所示。

程序代码如下:

with open("/data/        ①        ", encoding="UTF-8") as f:
	data = f.readline().strip()
	i = 0
	m = 0
	while data:
			   ②        
		score = list(map(float, data.split()))
		result = (sum(score) - min(score) - max(score)) / (len(score) - 2)
		if         ③        :
			m = result
			pos = i
		data =        ④        .strip()
	

print("成绩最佳的选手是:" + ⑤ + "号,得分:" + str(m) + "分")

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

第 3 题 问答题

使用Python的sqlite3库完成以下问题。

1.在data.db文件内创建一个学生成绩表student(不考虑data.db的路径)

2.student中包含

学号(num),类型INTEGER PRIMARY KEY

姓名(name),类型TEXT

成绩(grade),类型int

名次(rank),类型int

3.增加一条记录(1,"lilei",100,50)

程序如下,请补全代码。

import sqlite3
conn=        ①        
cur =        ②        
cur.execute("CREATE TABLE IF NOT EXISTS student(num INTEGER PRIMARY KEY ,name text,grade int,rank int)")
cur.execute("insert into student(        ③        ) values(        ④        )")
		⑤        
cur.close()
conn.close()