2022年12月电子学会青少年软件编程(Python六级)等级考试试卷
操作/编程
六级
2022
2023-01-09 19:34:46
70次
一、编程题
小强建立了一个简易的学生信息系统,使用SQlite进行数据的增加记录和修改记录操作,存储数据,每位学生的记录包含id、name和age这3个字段。程序运行界面如图所示。

程序运行时,显示数据库students.db中的数据表users中的所有记录,用户输入1表示增加记录,输入id、name和age后,记录将增加到数据库中。用户输入2表示修改记录,输入id、name和age后,根据id修改对应的name 和age的值。
程序代码如下:
import sqlite3
con = sqlite3.connect('students.db')
cursor = con.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS users( id int(8) primary key,
name varchar(18),
age int(8))
''')
cursor.close()
con.commit()
con.close()
def user_insert(user_id, user_name, user_age):
con = sqlite3.connect('students.db')
cursor = con.cursor()
cursor.execute("insert into users (id,name,age) values (?,?,?)", (user_id, user_name, user_age))
cursor.close()
con.commit()
con.close()
def user_select():
con = sqlite3.connect(' ① ')
cursor = con.cursor()
② ('select * from users')
print(cursor.fetchall())
cursor.close()
con.close()
def user_update(user_id, user_name, user_age):
con = sqlite3.connect('students.db')
cursor = con.cursor()
cursor.execute('UPDATE users SET name=?,age=? WHERE id =?',(user_name, user_age,user_id))
cursor.close()
con.commit()
con.close()
print("------------学生信息系统样例------------")
while True:
③
s = int(input("请输入操作符:1-增加记录,2-修改记录,3-退出系统"))
if ④ :
break
user_id = int(input("请输入id:"))
user_name = input("请输入name:")
user_age = input("请输入age:")
if s == 1: # 增加记录
⑤
print("插入成功!")
elif s == 2: # 修改记录
user_update(user_id, user_name, user_age)
print("修改成功!")
请在画线处填入正确的代码。
【知识点】 电子学会Python六级
当前,我国正在开展新型冠状病毒疫苗接种,自今年 2 月份以来,许多学校的教职员工积极利用空余时间,到当地卫健部门指定的接种点去接种,为了帮助政教员小叶排摸全校教职员工接种情况,根据每天汇总的接种登记表(包含全校教职员工的姓名、组别、年龄、是否接种等信息,已转换为csv格式,见图1”),小徐利用 Python 编写了一个统计程序,方便向校领导汇报各教研组接种情况及全校接种比例等。该程序运行的部分界面如图2所示,请在程序划线处填入合适的代码。

图1

图2
import csv
f = open("/data/vi.csv", "r")
Vac_T = {"语文组": 0, "数学组": 0, "英语组": 0, "物理组": 0, "化学组": 0, "生物组": 0, "政治组":0,"历史组":0,"地理组":0,"技术组":0,"体音美组":0,"后勤组":0,"政教组": 0}
Vac_F = {"语文组": 0, "数学组": 0, "英语组": 0, "物理组": 0, "化学组": 0, "生物组": 0, "政治组":0,"历史组":0,"地理组":0,"技术组":0,"体音美组":0,"后勤组":0,"政教组": 0}
list1 =[]
zrs = 0
zu_max = 0
line = f.readline()
while line:
line = line.strip('\n')
data = line.split(",")
list1.append(data)
①
print(list1[:5])
print("--------------------------------------------")
f.close()
num = len(list1)
for i in range(num):
line_list = list1[i]
if ② :
Vac_T[line_list[1]] += 1
else:
Vac_F[line_list[1]] += 1
for i in Vac_T:
zu_per = Vac_T[i]/(Vac_T[i]+Vac_F[i])
if zu_per > zu_max:
zu_max = zu_per
zu = i
③
tot_per = int(zrs/num*10000+0.5)/100
print("各组接种人数:", Vac_T)
print("各组未接种人数:", Vac_F)
print("全校接种比例:", tot_per)
print("接种疫苗比例最高的组:", zu)
【知识点】 电子学会Python六级
