试卷 2023年9月青少年软件编程Python等级考试(六级)试卷
2023年9月青少年软件编程Python等级考试(六级)试卷
单选题
第 1 题    单选题
以下选项中,不是tkinter变量类型的是?( )
A.
IntVar()
B.
StringVar()
C.
DoubleVar()
D.
FloatVar()
第 2 题    单选题
有关数据可视化常用图表,下面说法错误的是?( )
A.
折线图⽤于查看因变量随⾃变量改变的趋势
B.
柱形图直观展示对象之间数值的⼤⼩关系
C.
散点图⽆法反映特征之间的统计关系
D.
直⽅图⽐较直观地看出数据特征的分布状态
第 3 题    单选题

import numpy as np

np.arange(16).reshape(4,4),求点(3,2)的值是?( )

A.

14

B.

9

C.

10

D.

6

第 4 题    单选题
创建一个3*3的数组,下面代码错误的是?( )
A.

import numpy as np 

np.arange(0,9).reshape(3,3)

B.

import numpy as np 

np.random.random([3,3,3])

C.

import numpy as np 

np.eye(3)

D.

import numpy as np 

np.mat('1,2,3;4,5,6;7,8,9')

第 5 题    单选题

已知文件1.txt内容为:abcdefghijklmnopqrstuvwxyz,文件1.txt与程序文件保存在同一个目录,运行以下程序,输出结果是?( )

with open("1.txt","r") as f:

    f.seek(10)

    print(f.read(1))

A.

j

B.

a

C.

k

D.

i

第 6 题    单选题

对于二维数据文件fname,下面代码中的变量 x,以下选项中描述最合理的是?( )

fo = open (fname, "r")
for x in fo:
    print(x)
fo. close ()
A.
变量x表示⽂件中的⼀个字符
B.
变量x 表示⽂件中的⼀组字符
C.
变量x表示⽂件中的全体字符
D.
变量x表示⽂件中的⼀⾏字符
第 7 题    单选题

执行如下代码:

fname = input("请输入要写入的文件:")
fo = open(fname, "w+")
ls=["清明时节雨纷纷,","路上行人欲断魂,","借问酒家何处有?","牧童遥指杏花村。"]
fo.writelines(ls)
fo.seek(0)
for line in fo:
    print(line)
fo.close ()

以下选项中描述错误的是?( )

A.
执⾏代码时,从键盘输⼊“清明.txt”,则清明.txt 被创建
B.
代码主要功能为向⽂件写⼊⼀个列表类型,并打印输出结果
C.
fo.seek(0)这⾏代码可以省略,不影响输出效果
D.
fo.writelines(ls)将元素全为字符串的 ls列表写⼊⽂件
第 8 题    单选题

文件水果.txt中的内容如图所示:

undefined

执行如下Python代码,输出的结果是?( )
s={}
with open('水果.txt') as f:
   a=f.readlines()
for i in a:
   if i in s:
       s[i]+=1

else:

s[i]=1
print(s["苹果"])

A.

1

B.

2

C.

3

D.

4

第 9 题    单选题

有如下Python程序段:

a=[1,2,3,5,6,8,9,11,15,0] #0表示该位置未存储元素

num=int(input( "输入需要插入的数据:"))

for i in range(len(a)):

    if a[i]>num:

        for j in range(len(a)-1,i-1,-1):

            a[j]=a[j-1]

    a[i]=num

    break

else:

    a[-1]=num

print(a)

执行程序后,输入数字9,则位置下标发生改变的数据个数?( )

A.

3

B.

2

C.

1

D.

0

第 10 题    单选题

有如下Python程序段,执行程序后,输出的结果是?( )

import csv
with open('123.csv', 'w',newline='') as f:
    w=csv.writer(f)
    w.writerows([('hello','world'), ('I','love','you')])
with open('123.csv', 'r') as f:
    sp= csv.reader(f)
    for row in sp:
        print(row[0],end=',')
A.

hello,I,

B.

hello,world

C.

I,you

D.
程序有误
第 11 题    单选题
利用Python列表创建一个二维数组,不正确的方法是?( )
A.

a=[[1,1,3],[2,6,7],[4,7,1]]

B.

b=[[0 for i in range(3)] for j in range(2)]

C.

c=[0]*4*4

D.

d=[[0]*3,[9]*3,[4]*3]

第 12 题    单选题

有如下Python程序段:

n=3

m=2

a=[[0 for i in range(n)] for j in range(m)]

a.append([0,0,n-m])

a.insert(-1,[n for i in range(n)])

print(a)

执行程序后,下列选项中值为1的是?( )

A.

a[m][n]

B.

a[n][m]

C.

a[len(a)-1][0]

D.

a[m][0]

第 13 题    单选题

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

class Parent():

def __init__(self, name):

self.name = name

def greetings(self):

print("Parent: Hi, I'm", self.name)

class Child(Parent):

def greetings(self):

super().greetings()

print("Child: Hello!")

parent = Parent("Alice")

child = Child("Bob")

child.greetings()

A.

Parent: Hi, I'm Alice 

Child: Hello!

B.

Parent: Hi, I'm Bob. 

Child: Hello!

C.
Parent: Hi, I'm Bob
D.
Parent: Hi, I'm Bob
第 14 题    单选题
下面定义类的方法正确的是?( )
A.
def cat()
B.
def Cat()
C.
class cat()
D.
class Cat()
第 15 题    单选题

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

class Person():

def __init__(self, name, age):
       self.name = name
       self.age = age

def say_hello(self):

print(f"Hello, my name is {self.name}. I am {self.age} years old.")

person1 = Person("Alice", 25)
person2 = Person("Bob", 30)

person1.say_hello()

A.
Hello, my name is Alice. I am 25 years old.
B.
Hello, my name is Bob. I am 30 years old.
C.
Hello, my name is Bob. I am 25 years old.
D.

Hello, my name is Alice. I am 30 years old.

第 16 题    单选题
假设有一个名为"Person"的类,如何创建一个名为"john"的类的实例?( )
A.
person = Person()
B.
person = john.Person()
C.
john = Person()
D.
john = person.Person()
第 17 题    单选题
在一个Python表示的二维数组b=[[3,5,9,4],[5,1,6,11],[2,1,6,6]]的第三列位置插入一列新的数据后,能够实现访问该数组中数据11的语句是?( )
A.
b[1][3]
B.
b[2][3]
C.
b[2][1]
D.
b[1][4]
第 18 题    单选题

给定以下 Python 代码,连接到一个 SQLite 数据库并查询表 students。请问,查询结果中包含多少个学生?( )

import sqlite3

conn = sqlite3.connect(":memory:")

cursor = conn.cursor()

cursor.execute("""

CREATE TABLE students (

id INTEGER PRIMARY KEY,

name TEXT NOT NULL,

score INTEGER NOT NULL

);

""")

cursor.execute("INSERT INTO students (name, score) VALUES ('小明', 90)")

cursor.execute("INSERT INTO students (name, score) VALUES ('小芳', 85)")

cursor.execute("INSERT INTO students (name, score) VALUES ('轩轩', 92)")

cursor.execute("INSERT INTO students (name, score) VALUES ('乐乐', 88)")

conn.commit()

cursor.execute("SELECT * FROM students WHERE score >= 90")

result = cursor.fetchall()

conn.close()

print(result)

A.

0

B.

1

C.

2

D.

3

第 19 题    单选题
在使⽤SQLite数据库时,游标的主要作⽤是?( )
A.
管理数据库连接
B.
⽤于数据库的备份和恢复
C.
储存数据库的表结构
D.
执⾏SQL查询并获取结果
第 20 题    单选题
以下哪个Python代码片段正确地执行了一个SQL查询并获取了所有结果?( )
A.
cursor.execute("SELECT * FROM students") results = cursor.scroll()
B.
cursor.execute("SELECT * FROM students") results = cursor.fetchall()
C.
results = cursor.execute("SELECT * FROM students").fetchone(
D.
cursor.begin("SELECT * FROM students") results = cursor.fetchmany()
第 21 题    单选题
假设你正在开发一个电子商务网站,你需要存储用户订单信息。需要创建一个名为 orders 的表,下面哪个 SQL 语句最合适?( )
A.
CREATE TABLE orders (id INTEGER PRIMARY KEY, user_id INTEGER, quantity INTEGER, price REAL)
B.
CREATE TABLE orders (user_id INTEGER, product_name TEXT, quantit REAL)
C.
CREATE TABLE orders (id INTEGER PRIMARY KEY, user_id INTEGER, TEXT)
D.
CREATE TABLE orders (id INTEGER, user_id INTEGER, product_name T INTEGER, price REAL)
第 22 题    单选题

编写一个程序,如下图所示,用于计算输入两个数的和,并通过窗口输出计算结果。空白处应补充的代码是?( ).

undefinedundefined

import tkinter as tk

import tkinter.messagebox
win=tk.Tk()
a=tk.IntVar()
b=tk.IntVar()
def jia():
       a1=a.get()
       b1=b.get()
       tk.messagebox.showinfo(message=str(a1)+'+'+str(b1) +'=' + str(a1+b1))
c=tk.Entry(win,textvariable=a)
d=tk.Entry(win,textvariable=b)
ok=tk.Button(win,text='+',command=_________)
c.place(x=10,y=10,width=80,height=20)
d.place(x=10,y=40,width=80,height=20)
ok.place(x=10,y=80,width=50,height=20)
win.mainloop()

A.
add
B.
plus
C.
jia()
D.
jia
第 23 题    单选题

以下程序中,a= Spinbox(win1,from_=10,to=100)的作⽤是?( ) 

from tkinter import * 

win1= Tk() 

a= Spinbox(win1,from_=10,to=100)

 a.pack() 

mainloop()

A.
⽣成10-100之间的随机数
B.
只能选择10或者100
C.
设置窗⼝尺⼨为10x100
D.
限制输⼊范围是10-100之间,包含10和100
第 24 题    单选题
关于tkinter,以下说法错误的是?( )
A.
Label是签控件,可以显示⽂本和位图
B.
Radiobutton是发送消息控件
C.
Text是⽂本控件,⽤于显示多⾏⽂本
D.
Button是按钮控件,在程序中显示按钮
第 25 题    单选题
关于matplotlib模块中函数的功能,下列描述正确的是?( )
A.
scatter()函数⽤于绘制散点图
B.
bar()函数⽤于绘制折线图
C.
plot()函数⽤于绘制⽔平柱形图
D.
barh()函数⽤于绘制垂直柱形图
判断题
第 26 题    判断题

运行以下程序,程序不会报错,将打开窗口,显示文字为"成功"。( )

from tkinter import *

messagebox.showinfo('提示信息','成功')

A.
正确
B.
错误
第 27 题    判断题
在Python中,当不再需要使用SQLite数据库时,应关闭游标和数据库连接以释放资源。( )
A.
正确
B.
错误
第 28 题    判断题
在Python中,子类可以调用父类的方法,并且可以通过重写父类的方法来修改其行为。( )
A.
正确
B.
错误
第 29 题    判断题

下列代码输出结果是10。( )

class MyClass():
class_attribute = 10
MyClass.class_attribute = 20
print(MyClass.class_attribute)
A.
正确
B.
错误
第 30 题    判断题
在python的json库中,json.dumps 用于将 Python 对象编码成 JSON 字符串。( )
A.
正确
B.
错误
第 31 题    判断题

有如下Python代码:

import json
Data1 = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = json.loads(Data1)
print(text)

输出的text是dict类型数据。( )

A.
正确
B.
错误
第 32 题    判断题
对文件进行读写操作之后必须关闭文件以防止文件丢失。( )
A.
正确
B.
错误
第 33 题    判断题
执行语句 f=open('demo.txt', 'r'),demo.txt 文件必须己经存在,否则会报错。
A.
正确
B.
错误
第 34 题    判断题
使用 matplotlib.figure的作用是构建一张空白的画布,可以在空白的figure上直接绘图。( )
A.
正确
B.
错误
第 35 题    判断题
在用matplotlib绘图时,修改X轴、Y轴的标签和绘制的图形没有先后。( )
A.
正确
B.
错误
编程题
第 36 题    问答题

钢筋问题

统计三角形数量及钢筋总长度。某工程需要很多由钢筋组成的三角形,在文本文件“data.txt”中每一行的三个数字分别表示三根钢筋的长度(整数,单位:厘米,数字间用空格隔开),若这三根钢筋能组成三角形,要求统计并输出三角形数量以及这些钢筋材料的总长度(若不能组成三角形则不对这些数据进行统计),文本文件数据如图a所示,程序运行界面如图b所示。

完成该任务的思路是:首先从文本文件“data.txt”读取文本内容到变量line,提取边长数据后,统计数据并输出结果。

相关代码如下,请补全代码:

def readfile(filename):

    f = open(filename,encoding = "utf-8")     

    m=[]; n=[]; k=[]

    line = f.readline()  

    while line:

        x=line.strip().split(" ") 

        m.append(int(x[0]))      

        n.append(int(x[1]))      

        k.append(int(x[2]))    

                ①        

    f.close()

    return m,n,k

 

def triangle(x,y,z):     # 判断数据x、y、z能否组成三角形

    flag=False

    if          ②        :

        flag=True

    return flag

 

a,b,c=readfile("/data/        ③        ")    #读入文件

n=len(a);count=0;sum=0

print("能组成三角形的数据有:")

for i in range(n):

    if          ④        :

        sum+=a[i]+b[i]+c[i]

        print(a[i],b[i],c[i])

        count+=1   

print("能组成三角形的共有:",count,"组")

print("共需要材料长度共是:",sum)

第 37 题    问答题

工资管理

编写简单的工资管理程序,系统中包含工人(worker)和经理(manage),所有员工都有员工号、姓名、基本工资等属性。

工人:工人具有工作小时数和时薪的属性,工资计算方法为基本工资 + 工作小时数 * 时薪;

经理: 具有固定的月薪,计算方法为固定月薪。

根据以上的要求设计类,显示人员的信息和工资情况,运行结果如下:

工号:001,姓名:King,本月工资:10000
King的月薪是:10000
工号:002,姓名:Lily,本月工资:20000
Lily每天的工作时长:10小时
Lily的月薪是: 20000


class Person():
   def __init__(self,id,name,salary):
       self.id = id
       self.name = name
               ①        
   def __str__(self):#查看对象,触发执行print语句
       msg = '工号:{},姓名:{},本月工资:{}'.format(self.id,self.name,self.salary)
       return msg
class Worker(Person):
   def __init__(self,id,name,salary,hours,per_hour):
       super().__init__(id,name,salary)
       self.hours = hours
       self.per_hour = per_hour
   def getSalary(self):
       money = self.hours * self.per_hour
               ②        
       return         ③        
class Manage(Person):
   def __init__(self,id,name,salary,time):
       super().__init__(id,name,salary)
       self.time = time
       
   def getSalary(self):
       return self.salary,self.time

worker = Worker('001','King',2000,160,50)
sal = worker.getSalary()
print(worker)
print('King的月薪是:{}'.format(sal))

manage = Manage('002','Lily',20000,10)
       ④        ,  work_time   = manage.getSalary()
print(manage)
print('{}每天的工作时长:{}小时'.format('Lily',        ⑤        ))
print('Lily的月薪是:',sal)

第 38 题    问答题

考试成绩处理

将某班级的期末考试成绩存放于data.db数据库文件的score数据表内,部分成绩截图如下。

现要求求出english成绩大于或等于80的所有学生的总分平均分,并输出结果。(无需运行通过,写入代码即可)undefined

import sqlite3
conn=sqlite3.connect("data.db")
cur=conn.cursor( )
sql="select * from score        ①        "
cur.execute(sql)
       ②        
conn.commit()
cur.close()
conn.close()
zf=0
for i in range(len(list1)):
   zf+=sum(        ③        )
pjf=zf/len(list1)
print("english大于或等于80分同学的总分平均分是",pjf)

答题卡
单选题
判断题
编程题
36 37 38
题目总数:38
总分数:100
时间:120分钟