2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(六级)真题
青少年软件编程(Python)等级考试试卷(六级)
答案解析:https://blog.csdn.net/qq_33897084/article/details/147341458
一、单选题(共25题,共50分)
1. 在tkinter的常用组件中,可以显示文本和位图的是?( )
A. Entry
B. Label
C. Text
D. Button
Label标签组件,可以显示文本和位图
Text文本组件,用于显示多行的文本内容
Button按钮组件,在程序中显示按钮
2. 下列选项中JSON对象格式表示方法正确的是?( )
A. jsonObject = [“name”: “John”, “age”: 30, “city”: “New York”]
B. jsonObject = [‘name’: ‘John’, ‘age’: 30, ‘city’: ‘New York’]
C. jsonObject= {“name”: “John”, “age”: 30, “city”: “New York”}
D. jsonObject = {“name”: “John”; “age”: 30; “city”: “New York”}
3. 使用tkinter模块创建GUI应用程序时,可以使用什么方法来保持应用程序活动?( )
A. mainloop()
B. run()
C. show()
D. create()
4. 小明编写Python程序时,使用open函数打开"data1.txt"文件并将相关数据追加到文件中,下列代码最合理的是?( )
A. open(‘data1.txt’,‘r’')
B. open(‘data1.txt’,‘w’)
C. open(‘data1.txt’,‘a’)
D. open(‘data1.txt’,‘w+’)
5. 运行以下程序,输出结果是?( )
a=[[‘a’,‘b’,‘c’],[1,2,3],[‘d’,‘e’,‘f’],[4,5,6]]
print(a[0:2])
A. [[‘a’, ‘b’, ‘c’], [1, 2, 3]]
B. [[‘a’,‘b’,‘c’],[1,2,3],[‘d’,‘e’,‘f’]]
C. ‘b’
D. ‘c’
6. 以下Python程序的运行结果为?( )
import numpy as np
print(np.linspace(0, 10, 11))
A. [ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
B. [ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]
C. [ 0. 0.9 1.8 2.7 3.6. 4.5 5.4 6.3 7.2 8.1 9.]
D. [0. , 0.9, 1.8, 2.7, 3.6, 4.5, 5.4, 6.3, 7.2, 8.1, 9.]
7. 如果要从一个CSV文件中读取某一行的数据,然后进行一些分析,如求和、平均值、最大值、最小值等。下面哪个方法可以用来读取文件中的一行?( )
A. readline()
B. readlines()
C. read()
D. readall()
8. 假设你正在编写一个图书管理系统,需要创建一个表示书籍的类,其中包含书名和作者名。如何正确创建一个名为"Python Basics"由"Jane Ming"编写的Book类的实例?( )
class Book:
def init(self, title, author):
self.title = title
self.author = author
A. Book(“Python Basics”, “Jane Ming”)
B. Book.new(“Python Basics”, “Jane Ming”)
C. new Book(“Python Basics”, “Jane Ming”)
D. Book.create(“Python Basics”, “Jane Ming”)
9. 在开发一个简单的员工管理系统时,你定义了一个Employee类,其中包含一个表示员工计数的类属性。每当创建一个Employee实例时,以下哪项会发生?( )
class Employee:
employee_count = 0
def init(self, name):
self.name = name
Employee.employee_count += 1
A. name属性的值会递增
B. employee_count属性的值会递增
C. employee_count属性会重置为0
D. name属性会被共享到所有实例
10. 在一个动物园管理软件中,你需要创建一个Bird类作为Animal类的子类。创建一个Bird实例时,以下哪个描述是正确的?( )
class Animal:
def init(self, name):
self.name = name
class Bird(Animal):
def fly(self):
print(“Flapping wings”)
A. Bird实例不能访问name属性
B. Bird类需要重新定义一个__init__方法来设置name属性
C. 创建Bird实例时必须提供name参数
D. Bird类的fly方法会覆盖Animal类的任何方法
11. 有Python程序段如下,下列选项错误的是?( )
class Cat():
def init(self,name,color):
self.name=name
self.color=color
def sit(self):
print(self.color +self.name+“is sitting.”)
A. A.使用class关键字来定义一个Cat类,类名的首字母必须要大写
B. 方法__init()__定义了三个参数:self、name和color,其中self参数可省略
C. 语句“self.color=color”获取存储在参数color中的值并存储到self的属性color中
D. Cat类还定义了一个方法sit()
12. 有如下Python代码:
with open(‘data.txt’) as f:
data1=f.readline()
print(data1)
运行程序后,下列说法正确的是?( )
A. 读取data文件中的所有内容
B. 读取data文件中的一行数据,返回的数据是列表
C. 读取data文件中的一行数据,返回的数据是字符串
D. 无法打开data文件
13. 有如下Python代码:
with open(‘data1.txt’) as f:
data=f.readline()
with open(‘data2.txt’,‘w’) as f:
f.write(data)
‘data1.txt’内容如下图所示,‘data2.txt’文件无内容
执行该代码后,下列说法正确的是?( )
A. data2.txt文件中仍旧无内容
B. data2.txt文件中的内容为’hello,world,’
C. data2.txt文件中的内容为’hello,world,I like Python’
D. data1.txt文件中的内容将丢失
14. 执行下列代码,输出结果是?( )
import numpy as np
x = [(0,1,2),(3,4,5),(6,7,8)]
a = np.asarray(x)
print (a)
A. [(0 1 2)
(3 4 5)
(6 7 8)]
B. [(0 1 2),
(3 4 5),
(6 7 8)]
C. [[0 1 2]
[3 4 5]
[6 7 8]]
D. [[0 1 2],
[3 4 5],
[6 7 8]]
15.使用matplotlib模块绘制如图所示的图像:
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,2,50)
plt.plot(x,x2,label=“quadratic”)
plt.plot(x,x3,label=“cubic”)
plt.xlabel(“X axis”)
plt.title(“Simple Plot”)
plt.legend()
plt.show()
划线处应填入的代码为?( )
A. plt.ylabel()
B. plt.ylabel(“Y axis”)
C. plt.ylim(“Y axis”)
D. plt.ylim()
16. 下列关于plt.plot(x,y1,label=“sin(x )” ,color=“r”,linewidth=2)的说法,错误的是?( )
A. 绘制出的图像为线形图
B. color指定了图表的背景色
C. label给线条指定了一个标签名
D. linewidth设置了线条的宽度
17. 如图所示是使用Python编程完成的一组图像,其程序代码如下:
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-1,1,5)
for i in _______________:
y=x*i
plt.scatter(x ,y)
plt.show()
横线处为一个列表,该列表中有几个元素?( )
A. 10
B. 5
C. 40
D. 1
18. 有如下Python程序:
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
arr = np.add(a, b)
print(arr[0][1])
运行程序后,输出的结果是?( )
A. 6
B. 14
C. 8
D. 12
19. 以下哪个选项是正确地使用Python SQLite3模块执行查询并获取所有结果的语句?( )
A. result = conn.execute(“SELECT * FROM employees”)
B. result = conn.execute(“SELECT * FROM employees”).fetchall()
C. result = conn.execute(“SELECT * FROM employees”).fetchone()
D. result = conn.execute(“CREAT * FROM employees”)
20. 下列关于SQLite数据库的说法,不正确的是?( )
A. SQLite是一个轻量级的、跨平台的关系型数据库,具有独立性、非服务式、元处理、开放性等特点
B. SQLite表SQLite和传统数据库(如Oracle、SQL Server等)相比,功能一样强大
C. 可以使用create table用来创建表
D. connect( )可以用来连接SQLite数据库
21. 有如下Python程序段:
import sqlite3
conn = sqlite3.connect(‘cj.db’)
cur = conn.cursor()
a= cur.execute(“SELECT * FROM student”).fetchall()
conn.commit()
conn.close
s=0
for i in a:
s=s+i[1]
pirnt(s)
其中’cj.db’的student表中内容如下图所示,则执行程序后,打印的结果是?( )
A. 100
B. 294
C. 289
D. 李雷
22. 有如下Python代码:
import sqlite3
conn = sqlite3.connect(‘cj.db’)
cursor = conn.cursor()
cursor.execute(‘SELECT * FROM student’)
rows = cursor.fetchmany(5)
for row in rows:
print(row)
cursor.close()
conn.close()
已知查询的数据表中的数据超过5行,则执行程序后,下列说法正确的是?( )
A. 链接的数据库文件是student
B. 查询的数据表名称是select
C. 若只想获取一条查询数据,可以将fetchmany()换成fetchall()
D. print(len(rows))得到的结果是5
23. 有如下Python代码:
def f(*args):
print(comboxlist.get()) #打印选中的值
import tkinter as tk
from tkinter import ttk
root=tk.Tk() #构造窗体
comboxlist=ttk.Combobox(root)
comboxlist[“values”]=(“a”,“b”,“c”,“d”)
comboxlist.current(0)
comboxlist.bind(“<>”,f)
comboxlist.pack()
以下说法正确的是?( )
A. comboxlist下拉框中的选项有1,2,3,4
B. comboxlist没有和任何事件绑定
C. 点击下拉框中的a,a会被输出打印
D. 下拉框不会显示在窗体中
24. 有如下Python代码:
from tkinter import *
def close_app():
root.destroy()
root = Tk()
root.geometry(‘300x200’)
root.title(‘my window’)
btn1 = Button(root,text=‘按钮1’,bg=‘blue’,command=close_app)
btn1.pack(side=BOTTOM)
root.mainloop()
执行代码后,说法正确的是?( )
A. 窗口的标题是’按钮1’
B. 按钮的颜色是白色
C. 按钮位于窗口最下方
D. 单击按钮后,窗口不会关闭
25. 在使用csv.writer向CSV文件写入数据时,newline=''参数的作用是?( )
A. 它指定了写入文件的新行字符
B. 它防止在Windows系统上写入额外的空行
C. 它防止在Windows系统上写入额外的换行符
D. 它用于指定编码方式
二、判断题(共10题,共20分)
26. Python的tkinter库中,使用grid()方法管理布局,需要将Label标签放入第一行第一列的写法是:grid(row=1,column=1) 。( )
27. JSON数据是纯文本格式,因此它可以很容易地被机器解析和生成。( )
28. 使用json.loads( )函数将Python对象转换为JSON字符串。( )
json.loads( )将已编码的 JSON 字符串解码为 Python 对象。
29. 绘制图形如图所示,画线处的的语句填写是否正确 ?( )
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
plt.plot(x, y)
plt.xlabel(‘y=x**2’)
plt.show()
30. 有一个文本文件(data.txt),该文件中包含多行文本。每行有一个整数。下面这段程序能从该文件中读取每一行的内容,并将其转换为整数,然后求和并输出结果。( )
with open(“data.txt”) as f:
total = 0
for line in f:
total += int(line)
print(total)
31. 使用matplotlib的 plt.text() 函数可以在图表的任意位置添加文本注释,但是无法控制文本的对齐方式。( )
32. 在Python中,子类可以覆盖父类中的方法,但不能覆盖父类中的属性。( )
33. readline()函数读取文本文件内容,返回的是一个列表,其中每一行的数据为一个元素。( )
34. Python的SQLite库中的execute()方法只能执行SQL查询,不能执行SQL命令。( )
35. __init__是一个类的构造器,Python中每个类只能有一个__init__方法。( )
三、编程题(共3题,共30分)
36. 计算圆形的面积
编写一个父类Shape,具有一个属性color和一个方法get_area(),用于计算形状的面积。然后,基于Shape类创建子类Circle,表示圆形。子类需要实现父类的方法get_area()来计算自身的面积。
具体要求:
(1)Shape类包含以下属性和方法:
属性:color(字符串类型,表示颜色)
方法:get_area()(计算并返回面积,方法体为空,由子类实现)
(2)Circle类是Shape类的子类,包含以下属性和方法:
属性:radius(浮点数类型,表示圆形的半径)
方法:重写并实现get_area()方法,根据圆形的半径计算并返回面积。
请根据要求,补全代码。
import math
class Shape:
def ① :
self.color = color
def get_area(self):
Pass
class Circle( ② ):
def ③ :
super().init(color)
self.radius = radius
def get_area(self):
return math.pi * self.radius ** 2
circle = ④ (“blue”, 2)
print( ⑤ )
评分标准:
(1)init(self,color) 或等效答案;(2分)
(2)Shape 或等效答案;(2分)
(3)init(self,color,radius) 或等效答案;(3分)
(4)Circle 或等效答案;(1分)
(5)circle.get_area() 或等效答案。(2分)
37. 学生数据库
编写程序操作SQLite数据库,并读出表中的数据。
具体要求如下:
(1)打开数据库连接;
(2)清除已存在的表 -students;
(3)创建一个表students;
(4)向新表插入数据;
(5)读取表students中数据。
(本题无需运行通过,写入代码即可)
import sqlite3
#打开数据库连接
conn = sqlite3. ① (‘test.db’)
print(“Opend database successfully”)
#清除已存在的表 -students
conn. ② (‘’‘DROP TABLE students’‘’);
conn. ③
#创建一个表students
conn.execute(‘’’ ④ students
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL);‘’‘)
print(“Table created successfully”);
conn.commit()
#插入数据
conn.execute(“INSERT INTO students(ID,NAME,AGE) VALUES(1,‘Allen’,25)”);
conn.execute(“INSERT INTO students(ID,NAME,AGE) VALUES(2,‘Maxsu’,20)”);
conn.execute(“INSERT INTO students(ID,NAME,AGE) VALUES(3,‘Teddy’,24)”);
conn.commit()
print(“Records Insert successfully”);
print(“-------------------”);
#读取表students
⑤ =conn.execute(“SELECT * from students”)
print (“ID NAME AGE”)
for it in cursor:
for i in range(len(it)):
print(it[i])
print (’\n’)
conn.close()
评分标准:
(1)connect 或等效答案;(2分)
(2)execute 或等效答案;(2分)
(3)commit() 或等效答案;(2分)
(4)CREATE TABLE 或等效答案;(2分)
(5)cursor 或等效答案。(2分)
38. 进制问题
如图所示为’data1.txt’中存储的数据,其中每一行都为24个由’0’和’1’组成的二进制数字,现编写Python程序读取’data1.txt’文件中的数据,并将二进制数字转换成十进制数字,转换规则为每八位二进制数字转换为一个十进制数,相应的Python代码如下,请补充完整。
f=open(‘/data/ ① ‘,‘r’)
line=f.readline().strip(’\n’)
s=0
s1=‘’
while line:
for i in range(len(line)):
s=s*2+ ②
if (i+1)%8==0:
s1=s1+str(s)+‘,’
③
s1=s1+‘\n’
line= ④ .strip(‘\n’)
print(s1)
评分标准:
(1)data1.txt 或等效答案;(2分)
(2)int(line[i]) 或等效答案;(2分)
(3)s=0 或等效答案;(3分)
(4)f.readline() 或等效答案。(3分)
答案解析:https://blog.csdn.net/qq_33897084/article/details/147341458