一、单选题
1、
以下选项中,不是tkinter变量类型的是?( )
A、IntVar()
B、StringVar()
C、DoubleVar()
D、FloatVar()
2、关于tkinter,以下说法错误的是?( )
A、Label是签控件,可以显示文本和位图
B、Radiobutton是发送消息控件
C、Text是文本控件,用于显示多行文本
D、Button是按钮控件,在程序中显示按钮
3、以下程序中,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
4、编写一个程序,如下图所示,用于计算输入两个数的和,并通过窗口输出计算结果。空白处应补充的代码是?( ).
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
5、假设你正在开发一个电子商务网站,你需要存储用户订单信息。需要创建一个名为 orders 的表,下面哪个 SQL 语句最合适?( )
A、CREATE TABLE orders (id INTEGER PRIMARY KEY, user_id INTEGER, product_name TEXT, quantity INTEGER, price REAL)
B、CREATE TABLE orders (user_id INTEGER, product_name TEXT, quantity INTEGER, price REAL)
C、CREATE TABLE orders (id INTEGER PRIMARY KEY, user_id INTEGER, product_name TEXT)
D、CREATE TABLE orders (id INTEGER, user_id INTEGER, product_name TEXT, quantity INTEGER, price REAL)
6、以下哪个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()
7、在使用SQLite数据库时,游标的主要作用是?( )
A、管理数据库连接
B、用于数据库的备份和恢复
C、储存数据库的表结构
D、执行SQL查询并获取结果
8、给定以下 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
9、在一个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]
10、假设有一个名为"Person"的类,如何创建一个名为"john"的类的实例?( )
A、person = Person()
B、person = john.Person()
C、john = Person()
D、john = person.Person()
11、运行以下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.
12、下面定义类的方法正确的是?( )
A、def cat()
B、def Cat()
C、class cat()
D、class Cat()
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 AliceChild: Hello!
B、Parent: Hi, I'm Bob.Child: Hello!
C、Parent: Hi, I'm Bob
D、Parent: Hi, I'm Bob
14、有如下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]
15、利用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]
16、有如下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、程序有误
17、有如下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
18、文件水果.txt中的内容如图所示:
执行如下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
19、执行如下代码:
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列表写入文件
20、对于二维数据文件fname,下面代码中的变量 x,以下选项中描述最合理的是?( )
fo = open (fname, “r”)
for x in fo:
print(x)
fo. close ()
A、变量x表示文件中的一个字符
B、变量x 表示文件中的一组字符
C、变量x表示文件中的全体字符
D、变量x表示文件中的一行字符
21、已知文件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、l
22、创建一个3*3的数组,下面代码错误的是?( )
A、import numpy as npnp.arange(0,9).reshape(3,3)
B、import numpy as npnp.random.random([3,3,3])
C、import numpy as npnp.eye(3)
D、import numpy as npnp.mat('1,2,3;4,5,6;7,8,9')
23、import numpy as np
np.arange(16).reshape(4,4),求点(3,2)的值是?( )
A、14
B、9
C、10
D、6
24、有关数据可视化常用图表,下面说法错误的是?( )
A、折线图用于查看因变量随自变量改变的趋势
B、柱形图直观展示对象之间数值的大小关系
C、散点图无法反映特征之间的统计关系
D、直方图比较直观地看出数据特征的分布状态
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 = 10MyClass.class_attribute = 20 print(MyClass.class_attribute)
A 正确
B 错误
30、在python的json库中,json.dumps 用于将 Python 对象编码成 JSON 字符串。( )
A 正确
B 错误
31、有如下Python代码:import jsonData1 = '{"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) | |
参考答案:
参考程序: 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])) line = f.readline() f.close() return m,n,k def triangle(x,y,z): # 判断数据x、y、z能否组成三角形 flag=False if x+y>z and x+z>y and y+z>x: flag=True return flag a,b,c=readfile(”/data/data.txt") #读入文件 n=len(a);count=0;sum=0 print(“能组成三角形的数据有:”) for i in range(n): if triangle(a[i],b[i],c[i]****): 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)
参考答案:
标准答案:
class Person(): def init(self,id,name,salary): self.id = id self.name = name self.salary = salary def str(self): 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 self.salary**+=**money return self.salary 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) sal,work_time = manage.getSalary() print(manage) print(‘{}每天的工作时长:{}小时’.format(‘Lily’,work_time)) print(‘Lily的月薪是:’,sal)
38、考试成绩处理
将某班级的期末考试成绩存放于data.db数据库文件的score数据表内,部分成绩截图如下。
现要求求出english成绩大于或等于80的所有学生的总分平均分,并输出结果。(无需运行通过,写入代码即可)
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)
参考答案:
参考程序:
import sqlite3
conn=sqlite3.connect(“data.db”)
cur=conn.cursor()
sql=“select * from score where english >=80”
cur.execute(sql)
list1 =cur.fetchall()
conn.commit()
cur.close()
conn.close()
zf=0
for i in range(len(list1)):
zf+=sum(list1[i][1:])
pjf=zf/len(list1)
print(“english大于或等于80分同学的总分平均分是”,pjf)
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!