浙江省湖州、衢州、丽水三地市2023届高三信息技术4月教学质量检测试卷

试卷更新日期:2023-05-25 类型:月考试卷

一、选择题(本大题共 12 小题,每小题 2 分,共 24 分,每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分。)

  • 1. 下列关于数据、信息和知识的说法,正确的是(   )
    A、机器学习训练的数据集可以是未经数字化的 B、数据的意义与其应用场景无关 C、知识由信息的积累、归纳、总结得出 D、借助网络搜索引擎可获得海量知识
  • 2. 下列有关大数据及其处理的说法,不正确的是 (   )
    A、大数据支持动态跟踪,提高了数据分析的即时性 B、大数据要分析的是全体数据,而不是抽样数据 C、非结构化的文本数据更利于大数据处理和分析 D、数据可视化可增强数据的解释力和吸引力
  • 3. 阅读以下材料,回答问题:

    学校使用校园一卡通系统进行管理。校园卡基于RFID技术,可用于门禁开启、食堂消费、图书借阅等,建卡、挂失、充值及信息错误修正等工作由学校财务人员负责。

    (1)、下列有关该信息系统的组成,说法正确的是(   )
    A、该系统的硬件由校园卡和刷卡机组成 B、使用记录数据只存储在校园卡的芯片中 C、学校财务人员属于信息系统的用户 D、校园一卡通系统属于系统软件
    (2)、为了提升信息系统的安全性,下列做法不可行的是 (   )
    A、安装防火墙 B、为不同用户设置相同的数据库访问权限 C、对个人敏感信息进行加密处理 D、系统服务器使用磁盘阵列进行数据冗余备份
  • 4. 下列关于网络技术的说法,正确的是 (   )
    A、网络是由计算机系统和网络软件两部分组成 B、网络操作系统只负责网络中软件资源的管理 C、局域网通信不需要遵循TCP/IP协议 D、移动终端可通过公共网络设施访问互联网
  • 5. 某算法的部分流程图如图所示,执行这部分流程,若输入的 x 依次为 4,5,9,14,0,则输出 n 的值是(   )

    A、1 B、2 C、3 D、4
  • 6. 用数组表示二叉树的示意图如下所示,则该二叉树的中序遍历序列为(   )

    A、BEDFAC B、ABDEFC C、DBEAFC D、BDAECF
  • 7. 有下列 Python 程序段:

    a=[[1,3],[1,0],[7,1],[4,5],[1,-1],[6,4]]

    x=1 p=head=2

    if x==a[p][0]:

        head=a[p][1]

    else:

        while p!=-1:

            if x==a[p][0]:

                a[pre][1]=a[p][1]

            else:

                pre=p p=a[p][1]

    运行该段程序后,a[2][1]的值为(   )

    A、-1 B、0 C、1 D、3
  • 8. 约定:T操作是指在队列中1个元素出队后再入队,E操作是指将1个元素入队,P操作是指队列中1个元素出队,队首指针head和队尾指针tail初始值均为0。则经过EETPETEP系列操作后,队首指针head和队尾指针tail的值分别为(   )
    A、3    4 B、3    5 C、4    5 D、4    6
  • 9. 数组 a 包含10个互不相同的元素,即a[0],a[1],…,a[9],其中a[0],a[2],…,a[8]称为奇数位元素,a[1],a[3],…,a[9]称为偶数位元素。有如下Python程序段:

    n=len(a)

    for i in range(n//2-1):

        for j in range(n-2,2*i,-2):

            if a[j]<a[j-2]:

            a[j],a[j-2]=a[j-2],a[j]

    该程序段实现的功能是(   )

    A、仅对奇数位元素升序排列 B、仅对偶数位元素升序排列 C、奇数位元素升序,偶数位元素降序排列 D、奇数位元素降序,偶数位元素升序排列
  • 10. 定义如下函数:

    def move(n,a,b,c):

        if n==1:

            print(a,"->",c) return

            move(n-1,a,c,b)

        move(1,a,b,c)

        move(n-1,b,a,c)

    执行语句  move(2,"A","B","C"),输出的第一行内容是(   )

    A、a -> c B、A -> C C、a -> b D、A -> B
  • 11. 有如下 Python 程序段:

    import random

    s=[3,2,7,6,9] ; st=[0]*len(s) ; top=-1 ; i=0

    while i<len(s):

        op=random.randint(0,1)

        if top==-1 or op==0 and s[i]>st[top]:

            top+=1 ; st[top]=s[i]

        elif top>=1 and op==1 and s[i]>st[top-1]:

            st[top]=s[i]

        i+=1

    while top!=-1:

        print(st[top] ,end=" ")

        top-=1

    执行该程序段后,输出的结果不可能是(   )

    A、3 B、9 6 2 C、9 6 3 D、9 7 3

二、非选择题(本大题共 3 小题,8+9+9,共 26 分)

  • 12. 小王搭建了鱼缸水质水位监测系统,基于 Python 的 Flask Web 框架进行开发,该系统结构示意图如图所示。

    (1)、客户端通过浏览器访问Web服务器,可获得水质、水位信息,这一方案设计环节属于信息系统搭建的 (单选,填字母。A .可行性分析 /B .开发模式选择)。
    (2)、系统定义water(act)函数用于发送操作指令,参数act为净水或注水,系统根据水质变量q、水位变量w的值发送指令。操作规则如表所示,下列Python程序段中符合要求的是       (多选,填字母)。

    水质情况

    水位情况

    操作

    水质差

    任意水位

    净水

    水质中

    水位<70

    注水

    水质优

    水位<50

    注水

    其它情况都不进行操作

    A、 B、 C、 D、
    (3)、系统的“净水”操作使用水质过滤器,该过滤器属于      (单选,填字母)。
    A、传感器 B、执行器 C、客户端
    (4)、该系统网站功能页面规划如表所示,当浏览器向Web服务器提交“净水”操作指令,服务器端应用实例app中,与该指令关联的路由设置语句是@app.route(" ")。

    序号

    访问地址

    功能说明

    1

    /

    主页,显示水质、水位情况

    2

    /water?t=注水

    t为注水(或净水),实现“注水”(或净水)操作

    3

    /get?id=2

    获取传感器 id 为 2 的所有数据

    4

    /view?id=1

    显示 id 为 1 的传感器数据折线图

    (5)、系统数据库中的数据表wstatus存储鱼缸的水质、水位信息,整型字段level存储水位,字符型字段quality存储水质,当前获取的值分别存储在水质变量q、水位变量w中,系统存储数据时,执行的SQL语句是      (单选,填字母) 。
    A、INSERT INTO wstatus (level,quality) VALUES (w,q) B、INSERT INTO wstatus (level,quality) VALUES (w,"q") C、SELECT * FROM wstatus WHERE level=w and quality=q D、SELECT * FROM wstatus WHERE level=w and quality="q"
  • 13. 某学院投票评选学生会优秀干事,候选人共10人,选出3人,每张选票最多可勾选5人,超过5人则选票无效。经一轮投票后,若得票数前三的候选人超过3人,则需对得票数前三的候选人进行下一轮投票,直至投出结果。

    小洪用Python编写投票系统,第一轮投票数据经处理后,保存在"vote2023.xlsx"文件中,部分数据如图a所示,请回答下列问题。

    图 a

    (1)、定义 check 函数,功能为:读取 Excel 文件返回有效票数据。函数代码如下:

    def check(datafile):

        df=pd.read_excel(datafile)

        df["票数"]=df.sum(axis=1)-df["序号"]    # 统计每张选票的票选数

        df1=df[    ]

        return df1

    划线处应填入的代码为       (单选,填字母)。

    A、df.票数<=5 B、df[票数]<5 C、df.票数==5 D、df["票数"]>5
    (2)、统计票数前三的候选人,若有并列也统计在内,并绘制的柱形图如图 b 所 示。部分 Python 程序如下,请在划线处填入合适的代码。

    df=check("vote2023.xlsx")

    df2=df.drop(["序号","票数"],axis=1)   # 删除序号列、票数列

    s=[];st=[]

    for i in df2.columns:

        s.append([i,int(df2[i].sum())])

        #统计每人选票数,格式如['李彤',377]

    for i in range(len(s)):

        num=1

        for j in range(len(s)):

            if  :

                num+=1

            if :

                st.append(s[i])     # 存储前三名数据

    for i in range(len(st)):

        plt.bar(st[i][0], )     # 绘制柱形图

    # 设置图表的标题及图例数据并显示图表,代码略

    图 b

    (3)、若对图b中5人采用投票系统进行第二轮投票,最多可投3人,5人的票数结果分别为600,211,211,589,589,则投票结果的图表中显示的候选人有个。
  • 14. 某工厂在流水线上设立转盘缓冲装置,该装置示意图如图所示。转盘共有12个孔位作为产品缓存区,产品在转盘队列中等待开关打开,当未包装产品数量低于工人数的两倍时开关打开,产品出队进入包装区,否则开关关闭。

    工人包装产品的熟练度不同,熟练度是指工人包装一件产品所花的时间(单位:秒)。系统运行期间,工人包装完一件产品后立即包装下一件,直至该批次产品包装结束。现编写Python程序统计工人的包装件数,并从高到低输出。

    (1)、若有3个工人熟练度分别为2、3、4,现需包装9件产品,则3个工人完成包装后,包装件数最多的工人完成了件。
    (2)、定义insort(status)函数,参数status每个元素由包装开始时间、持续时间和件数共3项组成。函数功能实现将status按包装件数由高到低排序,并返回status。

    def insort(status):

        for i in range(1,len(status)):

            current=status[i]

            j=i-1

            while

                current[2]>status[j][2]:    # 语句 1

                status[j+1]=status[j]    # 语句 2

                j-=1

            status[j+1]=current

        return status

    ①调用insort(status)函数,若status=[[36,37,9],[32,37,4],[36,37,6],[33,36,11]],则函数体内语句2处代码执行次数为 次。

    ②若将函数体内语句1画框处代码删除,调用该函数后程序提示错误,则错误原因可能是(单选,填字母)。

    A.变量未定义    B.索引超出范围    C.数据类型错误

    (3)、某批次共有1000件产品,产品包装完成后,输出工人的包装件数,由高到低排列。实现该功能的部分Python程序如下,请在划线处填入合适的代码。

    def in_que(num):

        points[1]+=1

        num_index=(points[1]+1)%max_que-1

        if num_index==-1:

            num_index=max_que-1

        queinfo[num_index]=num

    def out_que():

         

        num_index=points[0]%max_que

        outdata=queinfo[num_index]

        queinfo[num_index]=-1

        return outdata

    max_que=12       # 转盘容纳产品件数

    packarea=[ ]

    worker=[['A',3],['B',7],['C',2],['D',4]]      # 每个工人编号及熟练度 packmax=len(worker)*2         # 未包装产品数量最大值

    queinfo=[-1]*max_que

    points=[1,1]

    status=[[0,0,0]

    for i in range(len(worker))]

        i,n=0,1000

        while i<n or len(packarea)>0:

            if points[0]!=points[1] and len(packarea)<packmax:

                packarea.append(out_que())

            if i<n and points[1]-points[0]!=max_que:

                in_que(i)

                 

            w=0

            while len(packarea)>0 and w<len(worker):

                if status[w][1]-status[w][0]>worker[w][1]:     # 一件产品包装完成

                      

                    status[w][2]+=1

                    packarea=packarea[1:]

                status[w][1]+=1

                w+=1

    status=insort(status)

    # 输出工人的包装件数,由高到低排列,代码略