资源简介 2022年12月青少年软件编程(Python)等级考试6级试题1. 数据文件“abc.txt”中包含若干个英文单词,如图所示: 读取文件“abc.txt”中数据的Python程序段如下: file = 'abc.txt' word_b = [] for word in open(file): if word[0:1] = = 'a' and len(word)>4: word_b.append(word) 该程序段执行后,列表word_b中的数据为?( ) A. 文件“abc.txt”中所有包含字母“b”且长度大于4的单词B. 文件“abc.txt”中所有首字母为“a”且长度大于4的单词C. 文件“abc.txt”中所有第2个字母为“a”且长度大于4的单词D. 文件“abc.txt”中所有第1、2个字母均为“a”且长度大于4的单词2. 下列关于文件的描述错误的是?( ) A. 按数据的组织形式可以把文件分为文本文件和二进制文件两大类B. 使用readlines()可以从文件中读入—行文本C. 可以使用open()打开文件,用close()关闭文件D. 文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符”\n”结尾3. with open("readme.txt","r") as f: r=f.read()with open("writeme.txt", ① ) as p: p.write(r)以上程序实现将readme文件内容追加写入writeme文件中,① 处的模式为?( ) A. "w"B. "t"C. "r"D. "a"4. 小林编写一段文件读写操作代码,文件如下图,代码段如下: file=open('ceshi.txt','w') file.write("python is a programming language.") file.close( ) file=open('ceshi.txt','r') print(file.read( )) 该代码段运行后,输出的结果为?( ) A. IA Distributed System Based on Python.B. python is a programming language.C. IA Distributed System Based on Python. python is a programming language.D. 程序编译错误,不会输出结果5. 下面选项中能创建按钮的是?( ) A. tkinter.Tk()B. tkinter.Label()C. tkinter.Button()D. tkinter.Text()6. 使用grid()方法管理布局,需要将Label标签放入第一行第一列,正确写法是?( ) A. grid(row=0,column=0)B. grid(row=1,column=1)C. grid(row=0,column=1)D. grid(row=1,column=0)7. tkinter中的geometry函数的作用是?( ) A. 设置窗口标题B. 设置字体C. 设置窗口大小D. 设置按钮大小8. import tkinter as tkwindow = tk.Tk()window.title('Mywindow')window.geometry('200x100')var = tk.StringVar()p= tk.Label(window,textvariable=var,bg='green',font=('Arial', 12),width=15, height=2)p.pack()on_hit = Falsedef hit_me(): global on_hit if on_hit == False: on_hit = True var.set('You hit me!') else: on_hit = False var.set('I Love Python!')b=tk.Button(window, text='点我', width=15, height=2,command=hit_me)b.pack()window.mainloop()运行如上代码,对按钮点击二次后,在文本框中显示的文字为?( ) A. You hit me!B. I Love Python!C. You hit me!I Love Python!D. I Love Python!You hit me!9. 有Python程序段如下,下列选项错误的是?( ) class Car(): def __init__(self,name,color): self.name=name self.color=color def run(self): print(self.color +self.name+"is running") A. 使用class关键字来定义一个Car类,类名的首字母必须要大写B. 方法__init()__定义了三个参数:self、name和color,其中self参数可省略C. 语句“self.color=color”获取存储在参数color中的值并存储到self的属性color中D. Car类还定义了一个方法run()10. 创建了Car类后,用以下代码语句创建了car对象:car=Car() 那么需要调用car对象的drive方法,下列选项正确的是?( ) A. car.drive()B. Car.drive()C. Car.driveD. car.drive11. 有如下Python程序: class Car(): def __init__(self,name,color): self.name=name self.color=color def run(self): print(self.color+self.name+'is running') class Bus(Car): def __init__(self,name,color): super().__init__(name,color) car1=Bus('公交车','红色') car1.run() 上述代码描述了面向对象的哪个特征?( ) A. 封装B. 继承C. 多态D. 隐藏12. 以下代码的运行结果是?( ) class Num(): def __init__(self,a,b,c): self.a=a self.b=b self.c=c def run(self): print(self.a*10) print(self.b*5) print(self.c*2) e = Num('C','BB','AAA') e.run() A. AAAAAAAAAA BBBBBBBBBB CCCCCC B. AAAAAAAAAA BBBBB CC C. CCCCCCCCCC BBBBBBBBBB AAAAAA D. CCCCCCCCCC BBBBB AA 13. 下列关于数据的说法,不正确的是?( ) A. 一维数据采用线性方式组织,是有序的B. 二维数据由多个一维数据构成C. 二维数据可由二维列表表达,也可由表格或csv格式的文件表达D. 一维数据可由列表表示,也可用集合表示14. 文件“score2.csv”中存放了3位同学的成绩数据,内容如图所示,小李编写了如下程序: csv_file = open("score2.csv","r") flines = csv_file.readlines() csv_file.close() 执行程序后,flines的结果是?( ) A. ['202008480,18', '202008319,19', '2202008333,20']B. ['202008480,18\n', '202008319,19\n', '2202008333,20\n']C. ['准考证号,成绩', '202008480,18', '202008319,19', '2202008333,20']D. ['准考证号,成绩\n', '202008480,18\n', '202008319,19\n', '2202008333,20\n']15. “人口性别年龄结构数据.csv”文件存放了若干年的人口数据,内容如图所示。小李想要读取“0-14岁”列的数据,他编写了如下代码: import csv with open('人口性别年龄结构数据.csv', 'r') as f: reader = csv.reader(f) for i in reader: print(________) 画线处语句正确的是?( ) A. iB. i[2]C. i[3]D. i[3][0]:16. 有如下程序代码: import csv headers = ['学号','姓名','分数'] rows = [('202001','张三','98'), ('202002','李四','95'), ('202003','王五','92')] with open('score.csv','w',encoding='utf8',newline='') as f : writer = csv.writer(f) writer.writerow(headers) writer.writerow(rows) 下列说法不正确的是?( ) A. 在相同路径下生成一个score.csv文件B. f是一个文件对象C. headers 是字段名称D. writer.writerow(rows)将写入多行数据17. 有如下程序代码: import json s = '''[{"name":"kingsan","age":23}, {"name":"xiaolan","age":22}] ''' print(type(s)) data = json.loads(s) print(data) print(type(data)) 下列说法正确的是?( ) A. s的数据类型是listB. data的数据类型是字符串C. loads()用于将字符串转化为JSON对象D. JSON数据可以用双引号来包围,也可以用单引号18. 下列命令语句能实现在SQLite数据库插入记录数据的命令是?( ) A. createB. insertC. selectD. delete19. 使用Python语言对SQLite数据库进行操作,实现打开和关闭名为test.db数据库文件。有下列语句命令: ①conn = sqlite3.connect("test.db") ②cur = conn.cursor( ) ③import sqlite3 ④conn.close( ) ⑤cur.close( ) 要实现上述功能,上述语句执行的先后顺序正确是?( ) A. ③①②⑤④B. ③②①⑤④C. ③①②④⑤D. ①②⑤④③20. 打开名为data.db的数据库(SQLite数据库)文件,下列命令能创建名为test数据表的是?( ) A. create table testB. create testC. insert into testD. data.append(test)21. 执行下列代码,说法错误的是?( ) import sqlite3DATABASE = 'data.db'db = sqlite3.connect(DATABASE)cur = db.cursor()cur.execute("CREATE TABLE IF NOT EXISTS list(id INTEGER PRIMARY KEY autoincrement, name text)")mit()cur.execute("SELECT COUNT(*) FROM list")if cur.fetchall()[0][0] == 0: cur.execute('INSERT INTO list(id,name) VALUES(1,"lilei")') mit() A. data.db文件中有一张名为list的数据表B. list数据表中有两个字段id和nameC. list数据表中没有记录D. 去掉最后一行的mit(),对程序有影响22. matplotlib模块中提供了丰富的函数,关于函数的功能,下列选项中表达错误的是?( ) A. plot() 函数的功能是绘制图形。 B. title()的功能是设置标题内容。 C. show()的功能是显示绘图。 D. subplot()的功能是图形叠加。 23. 某用户随机生成1000个数字进行排序、计算和绘图,一定不会使用下列哪个模块?( ) A. matplotlibB. randomC. scipyD. wordcloud24. 下列代码的执行结果是?( ) import numpy as np a = np.arange(9, dtype = np.float_).reshape(3,3) b = np.array([100,10,10]) print (np.divide(a,b)) A. [[0. 0.1 0.2 ][0.03 0.4 0.5 ][0.06 0.7 0.8 ]]B. [[0. 0.01 0.2 ][0.3 0.04 0.5 ][0.6 0.07 0.8 ]]C. [[0. 0.1 0.02 ][0.3 0.4 0.05 ][0.6 0.7 0.08 ]]D. [[0. 0.01 0.2 ][0.03 0.04 0.5 ][0.06 0.07 0.8 ]]25. 执行下列代码,输出结果是?( ) import numpy as np x = [(1,2,3),(4,5,6),(8,9,0)] a = np.asarray(x) print (a) A. [[1 2 3] [4 5 6] [8 9 0]]B. [(1, 2, 3) (4, 5, 6) (8, 9, 0)] C. [(1, 2, 3), (4, 5, 6) , (8, 9, 0)] D. ((1, 2, 3) (4, 5, 6) (8, 9, 0))二、判断题(共10题,共20分)26. 使用内置函数open()的“r”模式打开包含多行内容的文本文件并返回文件对象fp,那么表达式fp.readline()[-1]的值一定为"\n"。( ) 正确 错误 27. Tkinter是Python的标准GUI库。Python使用Tkinter可以快速的创建GUI应用程序。( ) 正确 错误 28. 在面向对象编程中,类是用来描述具有相同属性和方法的对象的集合,它定义了该集合中每个对象共有的属性和方法。对象是类的实例,可以被赋予对象以独特的个性。( ) 正确 错误 29. 可以通过直接修改属性的值,及通过方法修改属性的值,这两种方法修改一个对象的属性,但是不能通过方法对属性的值进行递增/减。( ) 正确 错误 30. JSON(JavaScript Object Notation 对象表示法)是一种流行的结构化数据的方式,可以使用json.loads()返回JSON字符串。( ) 正确 错误 31. CSV数据存储格式是国际通用的一二维数据存储格式,一般每行一个一维数据,采用逗号分隔。( ) 正确 错误 32. SQLite 的 UPDATE 查询用于修改表中已有的记录。可以使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新。( ) 正确 错误 33. Matplotlib 是 Python 的绘图库,它不能与 NumPy 一起使用,只能与图形工具包一起使用。( ) 正确 错误 34. 运行下列代码,输出结果是[1. 1. 1. 1. 1.]。( ) import numpy as np x = np.ones(5) print(x) 正确 错误 35. 对于文本文件, 使用Python内置函数open()以读文本模式成功打开后,返回的文件对象可以使用for循环直接迭代。( ) 正确 错误 三、编程题(共3题,共30分)36. 当前,我国正在开展新型冠状病毒疫苗接种,自今年 2 月份以来,许多学校的教职员工积极利用空余时间,到当地卫健部门指定的接种点去接种,为了帮助政教员小叶排摸全校教职员工接种情况,根据每天汇总的接种登记表(包含全校教职员工的姓名、组别、年龄、是否接种等信息,已转换为csv格式,见图1”),小徐利用 Python 编写了一个统计程序,方便向校领导汇报各教研组接种情况及全校接种比例等。该程序运行的部分界面如图2所示,请在程序划线处填入合适的代码。 import csvf = 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 = 0zu_max = 0line = 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]] += 1for 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)/100print("各组接种人数:", Vac_T)print("各组未接种人数:", Vac_F)print("全校接种比例:", tot_per)print("接种疫苗比例最高的组:", zu) 37. 小强建立了一个简易的学生信息系统,使用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("修改成功!") 请在画线处填入正确的代码。 38. 编程定义一个类,实现求长方体体积,并输出当长方体的长度、宽度和高度分别为10、20和30时的体积,请保留小数点后两位数字。 请补全代码: class Box(): def __init__( ① ): ② =length1 ③ =width1 ④ =height1 def volume(self): return ⑤ my_box=Box(10,20,30) print("长方体体积是%.2f"%my_box.volume()) 2022年12月青少年软件编程(Python)等级考试6级试题答案解析1. 数据文件“abc.txt”中包含若干个英文单词,如图所示: 读取文件“abc.txt”中数据的Python程序段如下: file = 'abc.txt' word_b = [] for word in open(file): if word[0:1] = = 'a' and len(word)>4: word_b.append(word) 该程序段执行后,列表word_b中的数据为?( ) A. 文件“abc.txt”中所有包含字母“b”且长度大于4的单词B. 文件“abc.txt”中所有首字母为“a”且长度大于4的单词C. 文件“abc.txt”中所有第2个字母为“a”且长度大于4的单词D. 文件“abc.txt”中所有第1、2个字母均为“a”且长度大于4的单词试题编号:20220422-jx-016试题类型:单选题标准答案:B试题难度:一般试题解析:用for循环从“abc.txt”文件中依次读取数据行,如果单词的长度大于4,并且word[0:1]第一个字符为'a'的话,加入到列表word_b中。故选B考生答案:B考生得分:2是否评分:已评分评价描述:2. 下列关于文件的描述错误的是?( ) A. 按数据的组织形式可以把文件分为文本文件和二进制文件两大类B. 使用readlines()可以从文件中读入—行文本C. 可以使用open()打开文件,用close()关闭文件D. 文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符”\n”结尾试题编号:20220422-jx-017试题类型:单选题标准答案:B试题难度:一般试题解析:在Python语言中,文件读取方法有(设f代表文件变量)∶f.read():从文件中读入整个文件内容。f.readline():从文件中读入一行内容。f.readlines():从文件中读入所有行,以每行为元素形成一个列表。f.seek():改变当前文件操作指针的位置。考生答案:B考生得分:2是否评分:已评分评价描述:3. with open("readme.txt","r") as f: r=f.read()with open("writeme.txt", ① ) as p: p.write(r)以上程序实现将readme文件内容追加写入writeme文件中,① 处的模式为?( ) A. "w"B. "t"C. "r"D. "a"试题编号:20220422-jx-019试题类型:单选题标准答案:D试题难度:容易试题解析:模式"a":打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。考生答案:D考生得分:2是否评分:已评分评价描述:4. 小林编写一段文件读写操作代码,文件如下图,代码段如下: file=open('ceshi.txt','w') file.write("python is a programming language.") file.close( ) file=open('ceshi.txt','r') print(file.read( )) 该代码段运行后,输出的结果为?( ) A. IA Distributed System Based on Python.B. python is a programming language.C. IA Distributed System Based on Python. python is a programming language.D. 程序编译错误,不会输出结果试题编号:20220422-jx-020试题类型:单选题标准答案:B试题难度:一般试题解析:读取的方式为w模式,因为该文件存在,文件指针指向文件头位置,原文件内的数据被覆盖删除。故选B考生答案:B考生得分:2是否评分:已评分评价描述:5. 下面选项中能创建按钮的是?( ) A. tkinter.Tk()B. tkinter.Label()C. tkinter.Button()D. tkinter.Text()试题编号:20220422-jx-036试题类型:单选题标准答案:C试题难度:一般试题解析:tkinter.Tk() 创建一个主窗体对象,tkinter.Label()创建一个标签,tkinter.Button()创建一个按钮,tkinter.Text()创建一个文本框考生答案:C考生得分:2是否评分:已评分评价描述:6. 使用grid()方法管理布局,需要将Label标签放入第一行第一列,正确写法是?( ) A. grid(row=0,column=0)B. grid(row=1,column=1)C. grid(row=0,column=1)D. grid(row=1,column=0)试题编号:20220422-jx-037试题类型:单选题标准答案:A试题难度:一般试题解析:grid的方法中column为指定组件插入的列(0表示第一列),row为指定组件插入的行(0表示第一行),故答案为A。考生答案:A考生得分:2是否评分:已评分评价描述:7. tkinter中的geometry函数的作用是?( ) A. 设置窗口标题B. 设置字体C. 设置窗口大小D. 设置按钮大小试题编号:20220422-jx-038试题类型:单选题标准答案:C试题难度:一般试题解析:geometry函数是设置窗口大小的函数考生答案:A考生得分:0是否评分:已评分评价描述:8. import tkinter as tkwindow = tk.Tk()window.title('Mywindow')window.geometry('200x100')var = tk.StringVar()p= tk.Label(window,textvariable=var,bg='green',font=('Arial', 12),width=15, height=2)p.pack()on_hit = Falsedef hit_me(): global on_hit if on_hit == False: on_hit = True var.set('You hit me!') else: on_hit = False var.set('I Love Python!')b=tk.Button(window, text='点我', width=15, height=2,command=hit_me)b.pack()window.mainloop()运行如上代码,对按钮点击二次后,在文本框中显示的文字为?( ) A. You hit me!B. I Love Python!C. You hit me!I Love Python!D. I Love Python!You hit me!试题编号:20220422-jx-041试题类型:单选题标准答案:B试题难度:较难试题解析:tkinter程序执行二次,由于on_hit不断的变化,第一次按下按钮为if的结果,第二次为else的结果,故答案为B考生答案:C考生得分:0是否评分:已评分评价描述:9. 有Python程序段如下,下列选项错误的是?( ) class Car(): def __init__(self,name,color): self.name=name self.color=color def run(self): print(self.color +self.name+"is running") A. 使用class关键字来定义一个Car类,类名的首字母必须要大写B. 方法__init()__定义了三个参数:self、name和color,其中self参数可省略C. 语句“self.color=color”获取存储在参数color中的值并存储到self的属性color中D. Car类还定义了一个方法run()试题编号:20220505-lfy-022试题类型:单选题标准答案:B试题难度:一般试题解析:方法__init()__定义了三个形参:self、name和color,其中self参数必不可少,且必须位于所有参数的前面。Python调用_init()_来创建Car实例时,将自动传入实参self,每个与类相关联的方法调用都能够自动传递实参self。每当根据Car类创建实例时,都只需给后两个形参(name和color)提供值。因此self不能省略。考生答案:B考生得分:2是否评分:已评分评价描述:10. 创建了Car类后,用以下代码语句创建了car对象:car=Car() 那么需要调用car对象的drive方法,下列选项正确的是?( ) A. car.drive()B. Car.drive()C. Car.driveD. car.drive试题编号:20220505-lfy-023试题类型:单选题标准答案:A试题难度:容易试题解析:根据Car类创建实例(对象)后,就可以使用句点表示法来调用Car类中定义的任何方法。要调用方法,可指定实例的名称(这里就是car)和要调用的方法dive(),并用句点分隔。遇到代码car.drive()时,Python在类Car中查找方法drive()并运行其代码。 方法调用格式:实例名.方法名() 考生答案:A考生得分:2是否评分:已评分评价描述:11. 有如下Python程序: class Car(): def __init__(self,name,color): self.name=name self.color=color def run(self): print(self.color+self.name+'is running') class Bus(Car): def __init__(self,name,color): super().__init__(name,color) car1=Bus('公交车','红色') car1.run() 上述代码描述了面向对象的哪个特征?( ) A. 封装B. 继承C. 多态D. 隐藏试题编号:20220505-lfy-024试题类型:单选题标准答案:B试题难度:一般试题解析:继承可以让子类具有父类的特性,提高了代码的重用性。一个类继承另一个类时,它将自动获得另一个类的所有属性和方法,原有的类称之为父类或基类,而新建的类称之为子类。子类继承了父类的所有属性和方法,同时可以定义自己的属性和方法。 封装(隐藏):隐藏对象的属性和实现细节,只对外提供必要的方法。 多态是指同一个方法调用由于对象不同会产生不同的行为。 代码中用到的super()是一个特殊函数,帮助Python将父类和子类关联起来。“super().__init__(name,color)”这行代码让Python调用Bus的父类方法__init__,让Bus实例包含父类的所有属性。父类也称为超类(superclass),名称super因此得名。 考生答案:B考生得分:2是否评分:已评分评价描述:12. 以下代码的运行结果是?( ) class Num(): def __init__(self,a,b,c): self.a=a self.b=b self.c=c def run(self): print(self.a*10) print(self.b*5) print(self.c*2) e = Num('C','BB','AAA') e.run() A. AAAAAAAAAA BBBBBBBBBB CCCCCC B. AAAAAAAAAA BBBBB CC C. CCCCCCCCCC BBBBBBBBBB AAAAAA D. CCCCCCCCCC BBBBB AA 试题编号:20220505-lfy-025试题类型:单选题标准答案:C试题难度:一般试题解析:class Num(): def __init__(self,a,b,c): self.a=a self.b=b self.c=c def run(self): print(self.a*10) print(self.b*5) print(self.c*2) e = Num('C','BB','AAA') e.run() #创建了Num类的实例e,自动传入实参self,并给后三个形参a,b,c分别提供了三个值'C','BB','AAA',输出时根据语句参数'C'要10次,'BB'要5次,'AAA'要2次,所以选C。 考生答案:C考生得分:2是否评分:已评分评价描述:13. 下列关于数据的说法,不正确的是?( ) A. 一维数据采用线性方式组织,是有序的B. 二维数据由多个一维数据构成C. 二维数据可由二维列表表达,也可由表格或csv格式的文件表达D. 一维数据可由列表表示,也可用集合表示试题编号:20220506-jwl-007试题类型:单选题标准答案:A试题难度:一般试题解析:一维数据由对等关系的有序或者无序数据构成。考生答案:D考生得分:0是否评分:已评分评价描述:14. 文件“score2.csv”中存放了3位同学的成绩数据,内容如图所示,小李编写了如下程序: csv_file = open("score2.csv","r") flines = csv_file.readlines() csv_file.close() 执行程序后,flines的结果是?( ) A. ['202008480,18', '202008319,19', '2202008333,20']B. ['202008480,18\n', '202008319,19\n', '2202008333,20\n']C. ['准考证号,成绩', '202008480,18', '202008319,19', '2202008333,20']D. ['准考证号,成绩\n', '202008480,18\n', '202008319,19\n', '2202008333,20\n']试题编号:20220506-jwl-008试题类型:单选题标准答案:D试题难度:一般试题解析:readlines()返回的是一个列表,读取csv带标题,每一行带有换行符。考生答案:C考生得分:0是否评分:已评分评价描述:15. “人口性别年龄结构数据.csv”文件存放了若干年的人口数据,内容如图所示。小李想要读取“0-14岁”列的数据,他编写了如下代码: import csv with open('人口性别年龄结构数据.csv', 'r') as f: reader = csv.reader(f) for i in reader: print(________) 画线处语句正确的是?( ) A. iB. i[2]C. i[3]D. i[3][0]试题编号:20220506-jwl-009试题类型:单选题标准答案:C试题难度:一般试题解析:列索引为3,因此应该填i[3]。考生答案:B考生得分:0是否评分:已评分评价描述:16. 有如下程序代码: import csv headers = ['学号','姓名','分数'] rows = [('202001','张三','98'), ('202002','李四','95'), ('202003','王五','92')] with open('score.csv','w',encoding='utf8',newline='') as f : writer = csv.writer(f) writer.writerow(headers) writer.writerow(rows) 下列说法不正确的是?( ) A. 在相同路径下生成一个score.csv文件B. f是一个文件对象C. headers 是字段名称D. writer.writerow(rows)将写入多行数据试题编号:20220506-jwl-010试题类型:单选题标准答案:D试题难度:一般试题解析:writer.writerows(rows)将写入多行数据考生答案:D考生得分:2是否评分:已评分评价描述:17. 有如下程序代码: import json s = '''[{"name":"kingsan","age":23}, {"name":"xiaolan","age":22}] ''' print(type(s)) data = json.loads(s) print(data) print(type(data)) 下列说法正确的是?( ) A. s的数据类型是listB. data的数据类型是字符串C. loads()用于将字符串转化为JSON对象D. JSON数据可以用双引号来包围,也可以用单引号试题编号:20220506-jwl-011试题类型:单选题标准答案:C试题难度:一般试题解析:s的数据类型是str,data的数据类型是list;loads()方法将字符串转化为JSON对象;JSON数据需要用双引号来包围,不能使用单引号,不然易出现解析错误。考生答案:C考生得分:2是否评分:已评分评价描述:18. 下列命令语句能实现在SQLite数据库插入记录数据的命令是?( ) A. createB. insertC. selectD. delete试题编号:20220509-tjt-032试题类型:单选题标准答案:B试题难度:一般试题解析:insert能实现在SQLite数据库插入记录。考生答案:B考生得分:2是否评分:已评分评价描述:19. 使用Python语言对SQLite数据库进行操作,实现打开和关闭名为test.db数据库文件。有下列语句命令: ①conn = sqlite3.connect("test.db") ②cur = conn.cursor( ) ③import sqlite3 ④conn.close( ) ⑤cur.close( ) 要实现上述功能,上述语句执行的先后顺序正确是?( ) A. ③①②⑤④B. ③②①⑤④C. ③①②④⑤D. ①②⑤④③试题编号:20220509-tjt-033试题类型:单选题标准答案:A试题难度:一般试题解析:先导入sqlite3模块,然后建立连接,建立游标,最后关闭。考生答案:A考生得分:2是否评分:已评分评价描述:20. 打开名为data.db的数据库(SQLite数据库)文件,下列命令能创建名为test数据表的是?( ) A. create table testB. create testC. insert into testD. data.append(test)试题编号:20220509-tjt-034试题类型:单选题标准答案:A试题难度:一般试题解析:增加数据表为creat table。考生答案:A考生得分:2是否评分:已评分评价描述:21. 执行下列代码,说法错误的是?( ) import sqlite3DATABASE = 'data.db'db = sqlite3.connect(DATABASE)cur = db.cursor()cur.execute("CREATE TABLE IF NOT EXISTS list(id INTEGER PRIMARY KEY autoincrement, name text)")mit()cur.execute("SELECT COUNT(*) FROM list")if cur.fetchall()[0][0] == 0: cur.execute('INSERT INTO list(id,name) VALUES(1,"lilei")') mit() A. data.db文件中有一张名为list的数据表B. list数据表中有两个字段id和nameC. list数据表中没有记录D. 去掉最后一行的mit(),对程序有影响试题编号:20220509-tjt-035试题类型:单选题标准答案:C试题难度:一般试题解析:list数据表中有一条记录id=1,name="lilei"。考生答案:C考生得分:2是否评分:已评分评价描述:22. matplotlib模块中提供了丰富的函数,关于函数的功能,下列选项中表达错误的是?( ) A. plot() 函数的功能是绘制图形。 B. title()的功能是设置标题内容。 C. show()的功能是显示绘图。 D. subplot()的功能是图形叠加。 试题编号:20220514-cjf-11试题类型:单选题标准答案:D试题难度:容易试题解析:本题考查matplotlib模块中的常用函数功能,其中,subplot()函数的功能是绘制子图,而不是图形叠加。考生答案:A考生得分:0是否评分:已评分评价描述:23. 某用户随机生成1000个数字进行排序、计算和绘图,一定不会使用下列哪个模块?( ) A. matplotlibB. randomC. scipyD. wordcloud试题编号:20220514-cjf-12试题类型:单选题标准答案:D试题难度:容易试题解析:本题考查常用模块的功能,并结合具体问题选择相应模块,较简单。考生答案:A考生得分:0是否评分:已评分评价描述:24. 下列代码的执行结果是?( ) import numpy as np a = np.arange(9, dtype = np.float_).reshape(3,3) b = np.array([100,10,10]) print (np.divide(a,b)) A. [[0. 0.1 0.2 ][0.03 0.4 0.5 ][0.06 0.7 0.8 ]]B. [[0. 0.01 0.2 ][0.3 0.04 0.5 ][0.6 0.07 0.8 ]]C. [[0. 0.1 0.02 ][0.3 0.4 0.05 ][0.6 0.7 0.08 ]]D. [[0. 0.01 0.2 ][0.03 0.04 0.5 ][0.06 0.07 0.8 ]]试题编号:20220514-cjf-14试题类型:单选题标准答案:A试题难度:一般试题解析:本题考查numpy模块的用法以及常用的数组运算。考生答案:B考生得分:0是否评分:已评分评价描述:25. 执行下列代码,输出结果是?( ) import numpy as np x = [(1,2,3),(4,5,6),(8,9,0)] a = np.asarray(x) print (a) A. [[1 2 3] [4 5 6] [8 9 0]]B. [(1, 2, 3) (4, 5, 6) (8, 9, 0)] C. [(1, 2, 3), (4, 5, 6) , (8, 9, 0)] D. ((1, 2, 3) (4, 5, 6) (8, 9, 0))试题编号:20220514-cjf-16试题类型:单选题标准答案:A试题难度:较难试题解析:本题考查Numpy 模块的从已有数组创建新数组的方法,包括返回值为列表、各元素之间的表示等。考生答案:A考生得分:2是否评分:已评分评价描述:二、判断题(共10题,共20分)26. 使用内置函数open()的“r”模式打开包含多行内容的文本文件并返回文件对象fp,那么表达式fp.readline()[-1]的值一定为"\n"。( ) 正确 错误 试题编号:20220422-jx-011试题类型:判断题标准答案:正确试题难度:一般试题解析:使用“r”读取文件返回文件对象后,文件指针指向末位置的后一个位置(即文本内容的下一行),该行为空行。考生答案:错误考生得分:0是否评分:已评分评价描述:27. Tkinter是Python的标准GUI库。Python使用Tkinter可以快速的创建GUI应用程序。( ) 正确 错误 试题编号:20220422-jx-039试题类型:判断题标准答案:正确试题难度:容易试题解析:Tkinter是Python的标准GUI库。Python使用Tkinter可以快速的创建GUI应用程序。考生答案:正确考生得分:2是否评分:已评分评价描述:28. 在面向对象编程中,类是用来描述具有相同属性和方法的对象的集合,它定义了该集合中每个对象共有的属性和方法。对象是类的实例,可以被赋予对象以独特的个性。( ) 正确 错误 试题编号:20220505-lfy-020试题类型:判断题标准答案:正确试题难度:容易试题解析:在面向对象编程中,编写表示现实世界中的事物和情景的类,并基于类创建对象。编写类时,定义一类对象都有的通用行为。基于类创建对象时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性。根据类来创建对象被称为实例化,可以使用类的实例。考生答案:正确考生得分:2是否评分:已评分评价描述:29. 可以通过直接修改属性的值,及通过方法修改属性的值,这两种方法修改一个对象的属性,但是不能通过方法对属性的值进行递增/减。( ) 正确 错误 试题编号:20220505-lfy-021试题类型:判断题标准答案:错误试题难度:容易试题解析:修改属性的值可以通过三种不同的方式:直接通过实例修改;通过方法设置;通过方法递增/递减(增加/减少特定的值)。考生答案:错误考生得分:2是否评分:已评分评价描述:30. JSON(JavaScript Object Notation 对象表示法)是一种流行的结构化数据的方式,可以使用json.loads()返回JSON字符串。( ) 正确 错误 试题编号:20220506-jwl-012试题类型:判断题标准答案:错误试题难度:一般试题解析:loads()用于将字符串转化为JSON对象考生答案:正确考生得分:0是否评分:已评分评价描述:31. CSV数据存储格式是国际通用的一二维数据存储格式,一般每行一个一维数据,采用逗号分隔。( ) 正确 错误 试题编号:20220506-jwl-013试题类型:判断题标准答案:正确试题难度:一般试题解析:CSV数据存储格式是国际通用的一二维数据存储格式,一般每行一个一维数据,采用逗号分隔考生答案:错误考生得分:0是否评分:已评分评价描述:32. SQLite 的 UPDATE 查询用于修改表中已有的记录。可以使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新。( ) 正确 错误 试题编号:20220510-tjt-036试题类型:判断题标准答案:正确试题难度:一般试题解析:SQLite 的 UPDATE 查询用于修改表中已有的记录。可以使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新。考生答案:错误考生得分:0是否评分:已评分评价描述:33. Matplotlib 是 Python 的绘图库,它不能与 NumPy 一起使用,只能与图形工具包一起使用。( ) 正确 错误 试题编号:20220514-cjf-13试题类型:判断题标准答案:错误试题难度:容易试题解析:本题考查Matplotlib绘图库的基本功能及常用方法。考生答案:正确考生得分:0是否评分:已评分评价描述:34. 运行下列代码,输出结果是[1. 1. 1. 1. 1.]。( ) import numpy as np x = np.ones(5) print(x) 正确 错误 试题编号:20220514-cjf-15试题类型:判断题标准答案:正确试题难度:一般试题解析:本题考查特殊数组的生成方法。考生答案:正确考生得分:2是否评分:已评分评价描述:35. 对于文本文件, 使用Python内置函数open()以读文本模式成功打开后,返回的文件对象可以使用for循环直接迭代。( ) 正确 错误 试题编号:20220422-jx-002试题类型:判断题标准答案:正确试题难度:容易试题解析:对于文本文件, 使用Python内置函数open()以读文本模式成功打开后,返回的文件对象可以使用for循环直接迭代计算操作。考生答案:正确考生得分:2是否评分:已评分评价描述:三、编程题(共3题,共30分)36. 当前,我国正在开展新型冠状病毒疫苗接种,自今年 2 月份以来,许多学校的教职员工积极利用空余时间,到当地卫健部门指定的接种点去接种,为了帮助政教员小叶排摸全校教职员工接种情况,根据每天汇总的接种登记表(包含全校教职员工的姓名、组别、年龄、是否接种等信息,已转换为csv格式,见图1”),小徐利用 Python 编写了一个统计程序,方便向校领导汇报各教研组接种情况及全校接种比例等。该程序运行的部分界面如图2所示,请在程序划线处填入合适的代码。 import csvf = 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 = 0zu_max = 0line = 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]] += 1for 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)/100print("各组接种人数:", Vac_T)print("各组未接种人数:", Vac_F)print("全校接种比例:", tot_per)print("接种疫苗比例最高的组:", zu) 试题编号:202212-P6-36试题类型:编程题标准答案:参考程序: import csvf = 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 = 0zu_max = 0line = f.readline()while line: line = line.strip('\n') data = line.split(",") list1.append(data) line = f.readline()print(list1[:5])print("--------------------------------------------")f.close() num = len(list1)for i in range(num): line_list = list1[i] if line_list[3] == "是": Vac_T[line_list[1]] += 1 else: Vac_F[line_list[1]] += 1for 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 zrs += Vac_T[i]tot_per = int(zrs/num*10000+0.5)/100print("各组接种人数:", Vac_T)print("各组未接种人数:", Vac_F)print("全校接种比例:", tot_per)print("接种疫苗比例最高的组:", zu)试题难度:一般试题解析:评分标准: (1)line = f.readline() ; (3分)(2)line_list[3] == "是" ; (4分)(3)zrs += Vac_T[i] 。 (3分)展示地址:点击浏览考生答案:(此题已作答)考生得分:10是否评分:已评分评价描述:37. 小强建立了一个简易的学生信息系统,使用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("修改成功!") 请在画线处填入正确的代码。 试题编号:202212-P6-37试题类型:编程题标准答案:参考程序: 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(): # 定义user_select函数,用于读取学生数据 con = sqlite3.connect(' students.db ') # 连接students.db cursor = con.cursor() # 创建游标 cursor.execute ('select * from users') # 执行SQL语句 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: user_select() # 读取数据 s = int(input("请输入操作符:1-增加记录,2-修改记录,3-退出系统")) # 输入操作符 if s == 3 : # 选择3代表退出系统 break user_id = int(input("请输入id:")) # 输入user_id user_name = input("请输入name:") # 输入user_name user_age = input("请输入age:") # 输入user_age if s == 1: # 增加记录 user_insert(user_id, user_name, user_age) # 调用插入函数 print("插入成功!") # 显示插入成功信息elif s == 2: # 修改记录 user_update(user_id, user_name, user_age) # 调用user_update函数 print("修改成功!") # 显示修改成功信息 试题难度:一般试题解析:评分标准: (1)students.db;(2分) (2)cursor.execute;(2分) (3)user_select();(2分) (4)s == 3;(2分) (5)user_insert(user_id, user_name, user_age)。(2分) 展示地址:点击浏览考生答案:(此题已作答)考生得分:8是否评分:已评分评价描述:38. 编程定义一个类,实现求长方体体积,并输出当长方体的长度、宽度和高度分别为10、20和30时的体积,请保留小数点后两位数字。 请补全代码: class Box(): def __init__( ① ): ② =length1 ③ =width1 ④ =height1 def volume(self): return ⑤ my_box=Box(10,20,30) print("长方体体积是%.2f"%my_box.volume()) 试题编号:202212-P6-38试题类型:编程题标准答案:参考程序: class Box(): def __init__(self,length1,width1,height1): self.length=length1 self.width=width1 self.height=height1 def volume(self): return self.length*self.width*self.height my_box=Box(10,20,30) print("长方体体积是%.2f"%my_box.volume()) 试题难度:一般试题解析:评分标准: (1)self,length1,width1,height1;(2分) (2)self.length;(2分) (3)self.width; (2分) (4)self.height;(2分) (5)self.length*self.width*self.height。(2分) 展示地址:点击浏览考生答案:(此题已作答)考生得分:10是否评分:已评分评价描述: 展开更多...... 收起↑ 资源列表 全国电子信息学会考级2022年12月份6年级下学期Python编程6级考级试题.docx 全国电子信息学会考级2022年12月份6年级下学期Python编程6级考级试题答案.docx