• 2022年12月 Python(六级)真题解析#中国电子学会#全国青少年软件编程等级考试


    在这里插入图片描述

    Python等级考试(1~6级)全部真题・点这里

    一、单选题(共25题,每题2分,共50分)

    第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)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    该程序段执行后,列表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的单词

    答案:B

    用for循环从“abc.txt”文件中依次读取数据行,如果单词的长度大于4,并且word[0:1]第一个字符为’a’的话,加入到列表word_b中。故选B

    第2题

    下列关于文件的描述错误的是?( )

    A: 按数据的组织形式可以把文件分为文本文件和二进制文件两大类
    B: 使用readlines()可以从文件中读入—行文本
    C: 可以使用open()打开文件,用close()关闭文件
    D: 文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符”\n”结尾

    答案:B

    在Python语言中,文件读取方法有(设f代表文件变量)∶
    f.read():从文件中读入整个文件内容。
    f.readline():从文件中读入一行内容。
    f.readlines():从文件中读入所有行,以每行为元素形成一个列表。
    f.seek():改变当前文件操作指针的位置。

    第3题

    with open("readme.txt","r") as f:
        r=f.read()
    with open("writeme.txt",) as p:
        p.write(r)
    
    • 1
    • 2
    • 3
    • 4

    以上程序实现将readme文件内容追加写入writeme文件中,① 处的模式为?( )

    A: “w”
    B: “t”
    C: “r”
    D: “a”

    答案: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( 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    该代码段运行后,输出的结果为?( )

    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: 程序编译错误,不会输出结果

    答案:B

    读取的方式为w模式,因为该文件存在,文件指针指向文件头位置,原文件内的数据被覆盖删除。故选B

    第5题

    下面选项中能创建按钮的是?( )

    A: tkinter.Tk()
    B: tkinter.Label()
    C: tkinter.Button()
    D: tkinter.Text()

    答案:C

    tkinter.Tk() 创建一个主窗体对象,tkinter.Label()创建一个标签,tkinter.Button()创建一个按钮,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)

    答案:A

    grid的方法中column为指定组件插入的列(0表示第一列),row为指定组件插入的行(0表示第一行),故答案为A。

    第7题

    tkinter中的geometry函数的作用是?( )

    A: 设置窗口标题
    B: 设置字体
    C: 设置窗口大小
    D: 设置按钮大小

    答案:C

    geometry函数是设置窗口大小的函数

    第8题

    import tkinter as tk
    window = 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 = False
    def 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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    运行如上代码,对按钮点击二次后,在文本框中显示的文字为?( )

    A: You hit me!
    B: I Love Python!
    C:
    You hit me!
    I Love Python!
    D:
    I Love Python!
    You hit me!

    答案:B

    tkinter程序执行二次,由于on_hit不断的变化,第一次按下按钮为if的结果,第二次为else的结果,故答案为B

    第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")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    A: 使用class关键字来定义一个Car类,类名的首字母必须要大写
    B: 方法__init()__定义了三个参数:self、name和color,其中self参数可省略
    C: 语句“self.color=color”获取存储在参数color中的值并存储到self的属性color中
    D: Car类还定义了一个方法run()

    答案:B

    方法__init()__定义了三个形参:self、name和color,其中self参数必不可少,且必须位于所有参数的前面。Python调用_init()_来创建Car实例时,将自动传入实参self,每个与类相关联的方法调用都能够自动传递实参self。每当根据Car类创建实例时,都只需给后两个形参(name和color)提供值。因此self不能省略。

    第10题

    创建了Car类后,用以下代码语句创建了car对象:car=Car()
    那么需要调用car对象的drive方法,下列选项正确的是?( )

    A: car.drive()
    B: Car.drive()
    C: Car.drive
    D: car.drive

    答案:A

    根据Car类创建实例(对象)后,就可以使用句点表示法来调用Car类中定义的任何方法。要调用方法,可指定实例的名称(这里就是car)和要调用的方法dive(),并用句点分隔。遇到代码car.drive()时,Python在类Car中查找方法drive()并运行其代码。方法调用格式:实例名.方法名()

    第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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    上述代码描述了面向对象的哪个特征?( )

    A: 封装
    B: 继承
    C: 多态
    D: 隐藏

    答案:B

    继承可以让子类具有父类的特性,提高了代码的重用性。一个类继承另一个类时,它将自动获得另一个类的所有属性和方法,原有的类称之为父类或基类,而新建的类称之为子类。子类继承了父类的所有属性和方法,同时可以定义自己的属性和方法。封装(隐藏):隐藏对象的属性和实现细节,只对外提供必要的方法。多态是指同一个方法调用由于对象不同会产生不同的行为。代码中用到的super()是一个特殊函数,帮助Python将父类和子类关联起来。“super().init(name,color)”这行代码让Python调用Bus的父类方法__init__,让Bus实例包含父类的所有属性。父类也称为超类(superclass),名称super因此得名。

    第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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    A:

    AAAAAAAAAA
    BBBBBBBBBB
    CCCCCC
    
    • 1
    • 2
    • 3

    B:

    AAAAAAAAAA
    BBBBB
    CC
    
    • 1
    • 2
    • 3

    C:

    CCCCCCCCCC
    BBBBBBBBBB
    AAAAAA
    
    • 1
    • 2
    • 3

    D:

    CCCCCCCCCC
    BBBBB
    AA
    
    • 1
    • 2
    • 3

    答案:C

    创建了Num类的实例e,自动传入实参self,并给后三个形参a,b,c分别提供了三个值’C’,‘BB’,‘AAA’,输出时根据语句参数’C’要10次,'BB’要5次,'AAA’要2次,所以选C。

    第13题

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

    A: 一维数据采用线性方式组织,是有序的
    B: 二维数据由多个一维数据构成
    C: 二维数据可由二维列表表达,也可由表格或csv格式的文件表达
    D: 一维数据可由列表表示,也可用集合表示

    答案:A

    第14题

    文件“score2.csv”中存放了3位同学的成绩数据,内容如图所示,小李编写了如下程序:

    在这里插入图片描述

    csv_file = open("score2.csv","r")
    flines = csv_file.readlines()
    csv_file.close()
    
    • 1
    • 2
    • 3

    执行程序后,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’]

    答案:D

    readlines()返回的是一个列表,读取csv带标题,每一行带有换行符。

    第15题

    “人口性别年龄结构数据.csv”文件存放了若干年的人口数据,内容如图所示。小李想要读取“0-14岁”列的数据,他编写了如下代码:

    在这里插入图片描述

    import csv
    with open('人口性别年龄结构数据.csv', 'r') as f:
         reader = csv.reader(f)
         for i in reader:
              print(________)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    画线处语句正确的是?( )

    A: i
    B: i[2]
    C: i[3]
    D: i[3][0]

    答案:C

    第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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    下列说法不正确的是?( )

    A: 在相同路径下生成一个score.csv文件
    B: f是一个文件对象
    C: headers 是字段名称
    D: writer.writerow(rows)将写入多行数据

    答案:D

    第17题

    有如下程序代码:

    import json
    s = '''[{"name":"kingsan","age":23},
            {"name":"xiaolan","age":22}]
        '''
    print(type(s))
    data = json.loads(s)
    print(data)
    print(type(data))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    下列说法正确的是?( )

    A: s的数据类型是list
    B: data的数据类型是字符串
    C: loads()用于将字符串转化为JSON对象
    D: JSON数据可以用双引号来包围,也可以用单引号

    答案:C

    s的数据类型是str,data的数据类型是list;loads()方法将字符串转化为JSON对象;JSON数据需要用双引号来包围,不能使用单引号,不然易出现解析错误。

    第18题

    下列命令语句能实现在SQLite数据库插入记录数据的命令是?( )

    A: create
    B: insert
    C: select
    D: delete

    答案:B

    第19题

    使用Python语言对SQLite数据库进行操作,实现打开和关闭名为test.db数据库文件。有下列语句命令:
    ①conn = sqlite3.connect(“test.db”)
    ②cur = conn.cursor( )
    ③import sqlite3
    ④conn.close( )
    ⑤cur.close( )
    要实现上述功能,上述语句执行的先后顺序正确是?( )

    A: ③①②⑤④
    B: ③②①⑤④
    C: ③①②④⑤
    D: ①②⑤④③

    答案:A

    先导入sqlite3模块,然后建立连接,建立游标,最后关闭。

    第20题

    打开名为data.db的数据库(SQLite数据库)文件,下列命令能创建名为test数据表的是?( )

    A: create table test
    B: create test
    C: insert into test
    D: data.append(test)

    答案:A

    第21题

    执行下列代码,说法错误的是?( )

    import sqlite3
    DATABASE = 'data.db'
    db = sqlite3.connect(DATABASE)
    cur = db.cursor()
    cur.execute("CREATE TABLE IF NOT EXISTS list(id INTEGER PRIMARY KEY autoincrement, name text)")
    db.commit()
    cur.execute("SELECT COUNT(*) FROM list")
    if cur.fetchall()[0][0] == 0:
        cur.execute('INSERT INTO list(id,name) VALUES(1,"lilei")')
        db.commit()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    A: data.db文件中有一张名为list的数据表
    B: list数据表中有两个字段id和name
    C: list数据表中没有记录
    D: 去掉最后一行的db.commit(),对程序有影响

    答案:C

    第22题

    matplotlib模块中提供了丰富的函数,关于函数的功能,下列选项中表达错误的是?( )

    A: plot() 函数的功能是绘制图形。
    B: title()的功能是设置标题内容。
    C: show()的功能是显示绘图。
    D: subplot()的功能是图形叠加。

    答案:D

    本题考查matplotlib模块中的常用函数功能,其中,subplot()函数的功能是绘制子图,而不是图形叠加。

    第23题

    某用户随机生成1000个数字进行排序、计算和绘图,一定不会使用下列哪个模块?( )

    A: matplotlib
    B: random
    C: scipy
    D: wordcloud

    答案:D

    第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))
    
    • 1
    • 2
    • 3
    • 4

    A:

    [[0. 0.1 0.2 ]
    [0.03 0.4 0.5 ]
    [0.06 0.7 0.8 ]]
    
    • 1
    • 2
    • 3

    B:

    [[0. 0.01 0.2 ]
    [0.3 0.04 0.5 ]
    [0.6 0.07 0.8 ]]
    
    • 1
    • 2
    • 3

    C:

    [[0. 0.1 0.02 ]
    [0.3 0.4 0.05 ]
    [0.6 0.7 0.08 ]]
    
    • 1
    • 2
    • 3

    D:

    [[0. 0.01 0.2 ]
    [0.03 0.04 0.5 ]
    [0.06 0.07 0.8 ]]
    
    • 1
    • 2
    • 3

    答案:A

    第25题

    执行下列代码,输出结果是?( )

     import numpy as np
     x =  [(1,2,3),(4,5,6),(8,9,0)]
     a = np.asarray(x)
     print (a)
    
    • 1
    • 2
    • 3
    • 4

    A:

    [[1 2 3]
    [4 5 6]
    [8 9 0]]
    
    • 1
    • 2
    • 3

    B:

    [(1, 2, 3)
    (4, 5, 6)
    (8, 9, 0)]
    
    • 1
    • 2
    • 3

    C:

    [(1, 2, 3),
    (4, 5, 6) ,
    (8, 9, 0)]
    
    • 1
    • 2
    • 3

    D:

    ((1, 2, 3) (4, 5, 6) (8, 9, 0))
    
    • 1

    答案:A

    二、判断题(共10题,每题2分,共20分)

    第26题

    使用内置函数open()的“r”模式打开包含多行内容的文本文件并返回文件对象fp,那么表达式fp.readline()[-1]的值一定为"\n"。( )

    答案:正确

    使用“r”读取文件返回文件对象后,文件指针指向末位置的后一个位置(即文本内容的下一行),该行为空行。

    第27题

    Tkinter是Python的标准GUI库。Python使用Tkinter可以快速的创建GUI应用程序。( )

    答案:正确

    Tkinter是Python的标准GUI库。Python使用Tkinter可以快速的创建GUI应用程序。

    第28题

    在面向对象编程中,类是用来描述具有相同属性和方法的对象的集合,它定义了该集合中每个对象共有的属性和方法。对象是类的实例,可以被赋予对象以独特的个性。( )

    答案:正确

    在面向对象编程中,编写表示现实世界中的事物和情景的类,并基于类创建对象。编写类时,定义一类对象都有的通用行为。基于类创建对象时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性。根据类来创建对象被称为实例化,可以使用类的实例。

    第29题

    可以通过直接修改属性的值,及通过方法修改属性的值,这两种方法修改一个对象的属性,但是不能通过方法对属性的值进行递增/减。( )

    答案:错误

    修改属性的值可以通过三种不同的方式:直接通过实例修改;通过方法设置;通过方法递增/递减(增加/减少特定的值)。

    第30题

    JSON(JavaScript Object Notation 对象表示法)是一种流行的结构化数据的方式,可以使用json.loads()返回JSON字符串。( )

    答案:错误

    第31题

    CSV数据存储格式是国际通用的一二维数据存储格式,一般每行一个一维数据,采用逗号分隔。( )

    答案:正确

    CSV数据存储格式是国际通用的一二维数据存储格式,一般每行一个一维数据,采用逗号分隔

    第32题

    SQLite 的 UPDATE 查询用于修改表中已有的记录。可以使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新。

    答案:正确

    SQLite 的 UPDATE 查询用于修改表中已有的记录。可以使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新。

    第33题

    Matplotlib 是 Python 的绘图库,它不能与 NumPy 一起使用,只能与图形工具包一起使用。( )

    答案:错误

    第34题

    运行下列代码,输出结果是[1. 1. 1. 1. 1.]。( )

    import numpy as np
    x = np.ones(5)
    print(x)
    
    • 1
    • 2
    • 3

    答案:正确

    第35题

    对于文本文件, 使用Python内置函数open()以读文本模式成功打开后,返回的文件对象可以使用for循环直接迭代。( )

    答案:正确

    三、编程题(共3题,共30分)

    第36题

    当前,我国正在开展新型冠状病毒疫苗接种,自今年 2 月份以来,许多学校的教职员工积极利用空余时间,到当地卫健部门指定的接种点去接种,为了帮助政教员小叶排摸全校教职员工接种情况,根据每天汇总的接种登记表(包含全校教职员工的姓名、组别、年龄、是否接种等信息,已转换为csv格式,见图1”),小徐利用 Python 编写了一个统计程序,方便向校领导汇报各教研组接种情况及全校接种比例等。该程序运行的部分界面如图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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    答案:

    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)
        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]] += 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
        zrs += Vac_T[i]
    tot_per = int(zrs/num*10000+0.5)/100
    print("各组接种人数:", Vac_T)
    print("各组未接种人数:", Vac_F)
    print("全校接种比例:", tot_per)
    print("接种疫苗比例最高的组:", zu)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    评分标准:
    (1)line = f.readline() ; (3分)
    (2)line_list[3] == “是” ; (4分)
    (3)zrs += Vac_T[i] 。 (3分)

    第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("修改成功!")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    请在画线处填入正确的代码。

    答案:

    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    评分标准:
    (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分)

    第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())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    答案:

    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    评分标准:
    (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分)

  • 相关阅读:
    实验3-1
    王道p18 第12题假设 A中的 n个元素保存在一个一维数组中,请设计一个尽可能高效的算法,找出A的主元素。若存在主元素,则输出该元素:否则输出-1
    数据传输如何做才安全:保障隐私的5大秘诀!
    【Maven】Could not transfer artifact xxx from/to xxx的解决方案
    【LeetCode】6. N 字形变换
    k8s 容忍和污点
    【Linux】-模拟实现一个缓冲区
    [安洵杯 2019]easy_web
    如何使用工程仪器设备在线监测管理系统
    uniapp 阿里云点播 视频播放(加密版)(APP版)记录播放进度
  • 原文地址:https://blog.csdn.net/gozhuyinglong/article/details/134349546