试卷 2024年3月青少年软件编程Python等级考试(六级)真题试卷
2024年3月青少年软件编程Python等级考试(六级)真题试卷
选择题
第 1 题    单选题

以下选项中,创建类正确的是?( 

A.

class test1:

    def prt(self):

    ……

B.

class Mg():

  def __init__(na, ag): 

     self.na = na

C.

class A():

    def print(self):

       print("Yes")

a=A()

a.print()

D.

class 3Point:

   def __init__( self):

   ……

第 2 题    单选题

运行以下Python程序,输出结果是?( 

class A():
    def __init__(self,x):
        self.x=x
    def add1(self):
       return self.x+self.x
t1=A(3)
t2=A(t1.add1())
print(t2.add1())
A.

10

B.

12

C.

程序报错

D.

6

第 3 题    单选题

运行以下Python程序,输出的结果是?( 

class T():
    def __init__(self):
         self.a=1
    def t1(self,b):
         self.a=b+b
c=T()
c.a=c.a+c.a
c.t1(5)
print(c.a)
A.

2

B.

12

C.

10

D.

6

第 4 题    单选题

要将一个数组[1,2,3,4,5]绘制成折线图,代码是?( )

A.

import matplotlib.pyplot as plt

plt.plot([1,2,3,4,5])

plt.show()

B.

import numpy as np

import matplotlib.pyplot as plt

plt.plot(np.array(1,5))

plt.show()

C.

import matplotlib.pyplot as plt

plt.bar([1,2,3,4,5])

plt.show()

D.

import matplotlib.pyplot as plt

plt.scatter([1,2,3,4,5])

plt.show()

第 5 题    单选题

要生成一个3*4的数组,并计算数组中偶数值之和,Python代码是?( )

A.

import numpy as np

arr = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])

np.sum(arr[arr%2==0])

B.

import numpy as np

arr = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])

np.sum(arr[:,arr%2==0])

C.

import numpy as np

arr = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])

np.sum(arr[np.get(arr%2==0)])

D.

import numpy as np

arr = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])

np.sum(arr[arr.even()])

第 6 题    单选题

在使用matplotlib库绘制图形时,如何设置x轴和y轴的标签?( )

A.

plt.title()plt.legend()

B.

plt.set_xlabel()plt.set_ylabel()

C.

plt.xlabel()plt.ylabel()

D.

plt.xticks()plt.yticks()

第 7 题    单选题

关于matplotlib函数的功能,下列描述错误的是?( )

A.

bar()函数用于绘制垂直柱形图

B.

plot()函数用于绘制线形图

C.

barh()函数用于绘制饼形图

D.

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

第 8 题    单选题

下列哪个选项是有效的JSON格式?( )

A.

{'name':'Alice', 'age':25, 'city':'New York'}

B.

{name:"Alice", age:25, city:"New York"}

C.

{"name":"Alice", age:25, city:'New York'}

D.

{"name":"Alice", "age":25, "city":"New York"}

第 9 题    单选题

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

A.

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

B.

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

C.

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

D.

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

第 10 题    单选题

下面Python代码的输出结果正确的是?( 

import json
json_str = '{"name": "Alice", "age": 25, "city": "New York"}'
data = json.loads(json_str)
print(data)
A.

{"name": "Alice", "age": 25, "city": "New York"}

B.

{'name': 'Alice', 'age': 25, 'city': 'New York'}

C.

[{'name': 'Alice', 'age': 25, 'city': 'New York'}]

D.

['name': 'Alice', 'age': 25, 'city': 'New York']

第 11 题    单选题

下面Python代码的输出结果正确的是?( 

import json
data = {
    "name": "Alice",
    "age": 25,
    "city": "New York"
}
text = json.dumps(data)
print(text)
A.

["name": "Alice", "age": 25, "city": "New York"]

B.

{'name': "Alice", 'age': 25, 'city': "New York"}

C.

{"name": "Alice", "age": 25, "city": "New York"}

D.

{'name': 'Alice', 'age': 25, 'city': 'New York'}

第 12 题    单选题

有关JSONJavaScript Object Notation)的概念,正确的是?( )

A.

是一种数据交换格式

B.

是一种编程语言

C.

是一种数据库

D.

是一种算法

第 13 题    单选题

使用tkinter设置一个按钮,将按钮放置在窗口最下方,则划线处的Python代码为?( )

from tkinter import *
root = Tk()
root.geometry('300x200')
root.title('my window')
btn1 = Button(root,text='按钮1',bg='red')
__________
root.mainloop()
A.

btn1.pack(side=TOP)

B.

btn1.pack()

C.

btn1.pack(side=BOTTOM)

D.

btn1.pack(side='')

第 14 题    单选题

以下代码实现将鼠标移到按钮上时按钮变红,鼠标移开时按钮变蓝,划线处的代码是?( 

from tkinter import *
root = Tk()
root.title( )
root.geometry('450x350')
btn1 = Button(root,text = '1')
btn1.place(x =200,y = 50,width = 40,height = 40)
def changebg(event):
    # 鼠标移到按钮上按钮变红
    event.widget['bg'] = 'red'
def changebg1(event):
    # 鼠标离开按钮上按钮变蓝
    event.widget['bg'] = 'blue'
____________
btn1.bind('<Leave>',changebg1)
root.mainloop()
A.

btn1.bind()

B.

btn1.bind('<Enter>',changebg)

C.

btn1.bind('<Enter>',changebg1)

D.

btn1.bind('<Button-1>',changebg1)

第 15 题    单选题

以下Python代码实现点击“点我”按钮,弹出信息“give flower”,划线处的代码是?( )

import tkinter as tk
import tkinter.messagebox
from tkinter import *
root = Tk()
bt = Button(root)
bt['text'] = '点我'
bt.pack()
def dianji(event):
    tk.messagebox.showinfo('message','give flower') 
bt.bind('<Button-1>',                 )  
root.mainloop()
A.

root

B.

dianji

C.

def

D.

give flower

第 16 题    单选题

使用tkinter模块,下列Python代码能创建一个输入框的是?( )

A.
from tkinter import *
root = Tk()
root.title("test")
e1 = Entry(root)
e1.pack()
root.mainloop()
B.
from tkinter import *
root = Tk()
root.title("test")
e1 = Button(root)
e1.pack()
root.mainloop()
C.
from tkinter import *
root = Tk()
root.title("test")
e1 = Label(root,text='123')
e1.pack()
root.mainloop()
D.
from tkinter import *
root = Tk()
root.title("test")
e1 = Checkbutton(root,text='123')
e1.pack()
mainloop()
第 17 题    单选题

执行以下Python代码,数据表中共有几条数据?( 

import sqlite3
conn = sqlite3.connect('student_info.db')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS Student
(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
cursor.execute("INSERT INTO Student (id, name, age) VALUES (1, 'Alice', 20)")
cursor.execute("INSERT INTO Student (id, name, age) VALUES (2, 'Bob', 22)")
cursor.execute("INSERT INTO Student (id, name, age) VALUES (3, 'Charlie', 21)")
cursor.execute("SELECT * FROM Student")
students = cursor.fetchall()
for student in students:
    print(f"ID: {student[0]}, Name: {student[1]}, Age: {student[2]}")
cursor.execute("UPDATE Student SET age = 23 WHERE id = 2")
cursor.execute("DELETE FROM Student WHERE id = 3")
conn.commit()
conn.close()
A.

2

B.

3

C.

4

D.

5

第 18 题    单选题

如下Python代码创建一个数据库表,表内有几个字段?( 

import sqlite3
connection = sqlite3.connect('test.db')
cursor = connection.cursor()
cursor.execute('''CREATE TABLE employees
                  (id INTEGER PRIMARY KEY, name TEXT, age INTEGER, salary REAL)''')
connection.close()
A.

3

B.

4

C.

5

D.

6

第 19 题    单选题

以下哪个Python代码片段用于创建一个SQLite数据库mydatabase连接?( )

A.

'connection = sqlite3.connection("mydatabase.db")'

B.

'connection = sqlite3.connect("mydatabase.db")'

C.

'connection = sqlite3.open("mydatabase.db")'

D.

'connection = sqlite3.connect("mydatabase.txt")'

第 20 题    单选题

运行以下Python代码输出的数据为?( 

import sqlite3 
connection = sqlite3.connect("students.db") 
cursor = connection.cursor() 
cursor.execute("CREATE TABLE students (name TEXT, age INTEGER)")
cursor.execute("INSERT INTO students VALUES ('John', 19)")
cursor.execute("INSERT INTO students VALUES ('John', 18)")
cursor.execute("DELETE FROM students WHERE name = 'John'")
cursor.execute("INSERT INTO students VALUES ('John', 17)")
cursor.execute("UPDATE students SET age = 22 WHERE name = 'John'")
cursor.execute("SELECT * FROM students")
results = cursor.fetchall()
for row in results:
    print(row)
connection.close()
A.

('John', 22)

B.

('John', 18)

C.

('John', 19)

D.

('John', 17)

第 21 题    单选题

以只读方式打开d:\myfile.txt文件的Python代码是?( )

A.

f=open("d:\\myfile.txt")

B.

f=open("d:\\myfile.txt","rt+")

C.

f=open("d:\\myfile.txt","r+")

D.

f=open("d:\\myfile.txt","a")

第 22 题    单选题

在进行文件读写时,以下为非二进制文件的是?( 

A.

timu.docx

B.

timu.mp4

C.

timu.txt

D.

timu.jpg

第 23 题    单选题

程序填空:程序的输出结果如下图所示,程序空白处应该是?( 

 with open("./text.txt","r",encoding='utf-8') as f: 
    a=f.read(           ) 
    print(a)
A.

10

B.

11

C.

9

D.

12

第 24 题    单选题

下面Python程序的输出结果是"like",请填空?( )

with open("text.txt", "r",encoding='utf-8') as f:
    f.seek(7)
    f.seek(          ,           )
    print(f.read(4))
A.

2,0

B.

2,1

C.

2,2

D.

0,2

第 25 题    单选题

运行以下Python程序,输出的结果是?( 

class F():
    def __init__(self,a):
        self.x=a+1
    def b(self):
       return self.x*self.x
f=F(3)
print(f.b())
A.

4

B.

8

C.

16

D.

20

判断题
第 26 题    判断题

Python创建类时,可以自定义类的名称,按照Python变量命名规则命名即可。

A.
正确
B.
错误
第 27 题    判断题

如果你想用numpy库来计算一个二维数组a中每一行的最大值,你可以用np.max(a, axis=1)来实现。( )

A.
正确
B.
错误
第 28 题    判断题

小华想要绘制一个表示某个城市一年内每个月的平均降雨量的折线图,他使用了以下的代码:

import matplotlib.pyplot as plt
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
rainfall = [50, 40, 60, 80, 100, 120, 140, 130, 110, 90, 70, 60]
plt.plot(months, rainfall)
plt.show()

运行上面这段代码后,会显示一个条形图。( 

A.
正确
B.
错误
第 29 题    判断题

JSON库中,JSON格式的数组将被解析为列表。( )

A.
正确
B.
错误
第 30 题    判断题

JSON中,可以使用数字作为键的数据类型。( )

A.
正确
B.
错误
第 31 题    判断题

Pythontkinter模块中,常用的控件的有CanvasButtonEntryscatter等。( )

A.
正确
B.
错误
第 32 题    判断题

更新"students"表中id1的记录的姓名为"Mike"可以使用语句UPDATE students SET name = 'Mike' WHERE id = 1实现。( )

A.
正确
B.
错误
第 33 题    判断题

使用with语句打开文件后,程序发生崩溃时,无法关闭文件。( )

A.
正确
B.
错误
第 34 题    判断题

使用writelines()向文件中写入内容时,写入的内容必须是字符串序列。( )

A.
正确
B.
错误
第 35 题    判断题

创建子类时,父类必须包含在本程序中,放置于子类前或子类后都可以。( 

A.
正确
B.
错误
编程题
第 36 题    问答题

电视类问题

 编写一个电视类,包括电视的品牌、型号、尺寸、价格等属性和开关电视、调节音量、切换频道等方法。再继承电视类创建一个智能电视类的子类,并分别创建它们的实例,测试它们的属性和方法。

class TV:
    def         ①        (self, brand, model, size, price):
        self.brand = brand  #品牌
        self.model = model  #型号
        self.size =        ②          #尺寸
        self.price = price  #价格 
        self.power = False
        self.volume = 50   #体积
        self.channel = 1
    def power_on(self):
        self.power = True
    def power_off(self):
        self.power = False 
    def adjust_volume(self, volume): #调整体积大小
        self.volume = volume
    def switch_channel(self, channel):  #切换频道
        self.channel = channel
class SmartTV(TV):
    def __init__(self, brand, model, size, price):
        super().__init__(brand, model, size, price)
        self.internet = False  
    def connect_internet(self):  #开启联网
        self.internet = True   
    def disconnect_internet(self):#关闭联网
                 ③        
    def watch_online(self, url):  #是否能看网络资源
        if         ④        :#判断是否联网
            print("正在观看:", url)
        else:
            print("请先连接网络")
# 创建普通电视和智能电视实例
tv1 = TV("创维", "LCD", 55, 3999)
tv2 =         ⑤        ("小米", "OLED", 65, 4999)
 
# 测试普通电视的属性和方法
tv1.power_on()
tv1.adjust_volume(60)
tv1.switch_channel(3)
print("电视品牌:{},电视型号:{},电视尺寸:{}英寸,电视价格:{}元,电视状态:{},音量:{},频道:{}".format(tv1.brand, tv1.model, tv1.size, tv1.price, tv1.power, tv1.volume, tv1.channel))
 
# 测试智能电视的属性和方法
tv2.power_on() 
tv2.adjust_volume(70)
tv2.switch_channel(5)
tv2.connect_internet()
tv2.watch_online("https://www.cctv.com")
print("电视品牌:{},电视型号:{},电视尺寸:{}英寸,电视价格:{}元,电视状态:{},音量:{},频道:{},是否连接网络:{}".format(tv2.brand, tv2.model, tv2.size, tv2.price, tv2.power, tv2.volume, tv2.channel, tv2.internet))
第 37 题    问答题

学生基本情况

1.准备工作及功能实现

1)建立一个空数据库Studase.db,按照如图所示的表结构,创建学生基本情况表students

2)为表students添加数据,内容是"学号—— 20210267、班级——1、姓名——孙玉洁、性别——女、身高——167"

3)删除表students1班的学生信息;

4)查询并输出表students的内容。

  根据要求,请补全代码。(本题无需运行通过,写入代码即可) 

2.程序

import sqlite3
conn =         ①        ('Studase.db')
cursor = conn.cursor()
cursor.execute('''        ②        students
 
                      (学号          ③        NOT NULL,
                       班级 INTEGER,
                       姓名  TEXT(10) NOT NULL,
                       性别  TEXT(1)   NOT NULL,
                       身高  INTEGER)''')
 
cursor.execute("        ④         ('20210267',1,'孙玉洁','女',167) ")
conn.commit()
cursor.execute("        ⑤        where 班级=1")
conn.commit()
cursor.execute("SELECT * FROM students")
for i in          ⑥        
    print(i)
conn.close()

第 38 题    问答题

随机列表问题

随机生成一个长度为100的整数列表,其元素范围为1100,将该列表以每10个一行(元素之间以空格分隔)写入一个文本文件("record.txt") ,将文本文件("record.txt")中的数字读入一个列表,并按数字的升序输出该列表。

注:enumerate() 取出的两个值,一个为数的索引,一个为数的值

from random import randint
lis = [ ]
for i in range(100):
    lis.append(randint(1,100))
with open("record.txt", "        ①        ") as f:
    str = ""
    for i, v in enumerate(lis):
        str = str + "{} ".format(v)
        if         ②         == 0:
            b =         ③        (str + "\n")
            str = ""
lis_date = [ ]
with open("record.txt") as f:
    for line in         ④        :
        line = line.strip()
        data = line.split()
        for v in data:
            lis_date.append(eval(v))
last_date =         ⑤        (lis_date)
print(last_date)
答题卡
选择题
判断题
编程题
36 37 38
题目总数:38
总分数:100
时间:90分钟