浙江省2023年1月选考科目信息技术考试试卷

试卷更新日期:2023-02-17 类型:高考真卷

一、选择题(本大题共12小题,每小题2分,共24分。在每小题给出的四个选项中,只有一个符合题目要求)

  • 1. 阅读下列材料,请回答问题。

    2022卡塔尔世界杯将首次正式使用半自动越位识别(SAOT)系统。该系统使用 12 个专用摄像头来跟踪每名球员的29个数据点位,以此计算每一个球员的确切位置。同时,世界杯还使用了传感器足球,球内放置有惯性测量单元(IMU)传感器,其以每秒500次的频率将足球数据发送到视频操作室,从而可以非常精确地检测踢球点。该系统可为视频裁判快速提供自动越位警报,当视频裁判与现场裁判确认越位后,系统将生成3D动画,以最佳视角将越位画面在赛场大屏上进行播放。

    (1)、关于半自动越位识别(SAOT)系统,下列说法正确的是(   )
    A、该系统属于符号主义人工智能 B、该系统使用的摄像头属于输入设备 C、该系统生成的 3D 动画属于模拟数据 D、该系统使用的网络属于局域网
    (2)、关于该系统中相关的足球数据,下列说法正确的是(   )
    A、足球数据是已经产生的不可改变的数据,属于静态数据 B、视频裁判根据足球数据分析越位产生的原因告诫运动员避免越位再次发生 C、系统根据足球数据生成 3D 动画,这使用了 VR 技术 D、IMU 以每秒 500 频次将足球数据传到视频操作室,这说明大数据产生的速度非常快
    (3)、下列做法不利于该信息系统安全的是(   )
    A、将系统生成的3D动画在互联网上发布 B、对系统中的视频裁判开放所有权限以便他们能观察到所有数据 C、给每一位视频操作室人员分配一个绑定的“人脸识别”帐号 D、系统后台管理员注销某位“提前透露世界杯比赛结果”的内部操作人员帐号
  • 2. 使用UltraEdit软件观察某字符串内码如图所示:

    下列说法正确的是(  )

    A、该字符串中所有的ASCII码占用了10个字节的空间 B、将字符“1”的内码与字符“a”内码进行异域运算后可得到字符“n”的内码 C、由“1”的内码是31H,可得“10”的内码是3AH D、由图可知,计算机内部使用的是十六进制编码
  • 3. 某声音文件经过MP3格式压缩后的属性如图所示:

    以下说法不正确的是(   )

    A、将选中部分声音进行“裁剪”操作后,声音的总时间将被减少到2秒 B、该声音文件的大小约为315KB C、若未压缩前该文件小大为1.35MB,则该声音的量化位数为16位 D、将该文件还原为WAVE格式,可得到无损的原文件
  • 4. 下列Python表达式运算后,结果不为“C”是(   )
    A、ord("A"+2) B、chr(ord("B")+1) C、"China"[0:1] D、{1:"B",2:"C"}[2]
  • 5. 某排序算法排序过程如图所示,由图可知,该算法的时间复杂度为(   )

    A、O(n) B、O(n2) C、O(log2n) D、O(2n)
  • 6. 已知单向链表的节点类的Python代码定义如下:

    Class LinkNode:

    Def __init__(self,data_,next_=None):

    self.data=data_

    self.next=next_

    链表结构如图所示,已知原链表各节点值分别为“上->山->打->老->虎”。

    已知pre,p和r分别指向3个连续的节点,现在想要调整链表中某些节点的顺序,编写了如下的Python代码段:

    pre.next=r

    p.next=r.next

    r.next=p

    则程序执行后,该链表的结构可以表示为(   )

    A、上->山->打->老->虎 B、上->山->老->打->虎 C、山->上->打->老->虎 D、山->上->老->打->虎
  • 7. 使用列表生成式创建数组的Python代码如下:

    a=[i*i for i in range(10) if i%2==0]

    则执行语句 print(sum(a[1:-1]))后输出的结果为(   )

    A、20 B、52 C、56 D、116
  • 8. 有如下Python程序段:

    code="0123456789ABCDEF"

    RGB=(255,96,128)

    ans="#"

    for c in RGB:

        t=[]

        for i in range(2):

            t.append(code[c%16])

            c//=16

            ans+=''.join(t[::-1])

    print(ans)

    执行程序后,输出的结果为(   )

    A、#FF607E B、#FF6080 C、#8060FF D、#6E60FF
  • 9. 一颗二叉树的前序遍历是“知心几见曾来往”,中序遍历是“往来几曾见知心”,则以下说法正确的是(   )
    A、这颗树的叶子结点比非叶子结果多 1 B、这是一颗完全二叉树 C、其后序遍历为“往来曾见几心知” D、这颗树有3层
  • 10. 用>表示进栈操作,<表示出栈操作,若元素进栈的顺序为“+ / * \ %”,出栈顺序为“+ \ * %/”,则由 > 和 < 表示的操作串是(   )
    A、><>>><<><< B、><>><><<>< C、>>>><<><<< D、><>>>><<<<
  • 11. 用二分查找的方法求不等式 2x+3x-4<=n(n>=0)的最大正整数解,编写的程序如下:

    n=int(input("请输入 n:"))

    L,R=1,n+1

    while L<R:

        x=(L+R+1)//2

        if 2**x+3*x-4<=n:

              ①  

        else:

              ②  

    print(f"方程 2^x+3*x-4<={n}的最大正整数解为:",R)

    要使程序实现上述功能,则缺失的代码是(   )

    A、①L=x+1 ②R=x-1 B、①L=x②R=x-1 C、①R=x-1 ②L=x+1

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

  • 12. 某校高二年级2022年12月的物理学考模拟考试成绩如图a所示,等级赋分标准如图b所示。

    编写Python程序,统计各班的等第人数并进行可视化。

     

    (1)、主程序。读取 xls 数据文件,简化班级名称,并按赋分标准填入等第数据(如图c)。请在程序划线处填入合适的代码。

     

    import pandas as pd

    import matplotlib as plt

    df=pd.read_excel("xkmn.xls")

    df.insert(5,"等第","")   #在数据表最后位置插入一列

    df.drop(["准考证号","自定义考号"],axis=1,inplace=True)    #删除数据表前二列数据

    def dengdi(fs):    #根据等第赋分标准获取相应等第

        if fs>=76:d="A"

        elif fs>=56:d="B"

        elif fs>=41:d="C"

        elif fs>=22:d="D"

        else: d="E"

        return d

    for i in df.index:

        if df.得分[i]=="未扫描":

                #删除缺考考生数据

        else:

            df.班级[i]=df.班级[i][-2:]

            df.等第[i]=      #调用赋分函数填入相应等第数据

    #相应成绩查询系统代码略

    (2)、程序加框处的语句实现数据整理,删除缺考的考生,以下选项中可以实现的有(   )(多选)。
    A、df=df.drop(i) B、df.drop(i,inplace=True) C、del df[i] D、df.pop(i)
    (3)、根据结定班级,分析该班的等第数据并可视化,可视化结果如图d所示。请在程序划线处填入合适的代码。

    bj=input("请输入班级号(1~6):")+ "班"

    df1=df[df.班级==bj]

    print(df1)

    dd={"A":"A","B":"B","C":"C","D":"D","E":"E"}

    for i in dd:

    #统计各等第相应的人数

    dd[i]=list(df1.等第).count(i)

    dd=list(dd.values())

    #获取字典中各等级的值并转换为列表

    df2=pd.DataFrame(dd,columns=["人数"], )

    plt.title(f"高二{bj}学考等第分布情况图")

    plt.xlabel("等级")

    plt.ylabel("人数")

    plt.bar()

    plt.show( )

  • 13. 小明打算搭建一个教室温度报警控制系统,使用Microbit开发板自带的温度传感器获取的温度数据经IOT模块发送到服务器。系统结构如图所示。

    (1)、要搭建“教室温度报警控制系统”需要做一些前期准备,以下都是前期准备要完成的步骤:

    ①需求分析②详细设计③概要设计④开发模式选择⑤可行性分析

    其正确的顺序是(填序号)。

    (2)、根据信息系统的功能要求,图中①处的设备名称是(单选,填字母:A .交换机/B .温度传感器/C .智能终端)
    (3)、服务器端程序采用 Flask Web 框架编写, 网站的功能页面规划如下表所示:

    实现上述系统的服务器端程序部分代码如下:

    import sqlite3

    import datetime

    from flask import Flask,render_template, request

    DATABASE = 'data.db'

    app = Flask(__name__)

    @app.route("/")

    #视图函数代码略

    @app.route(" ⑴ ",methods=[' ⑵ '])     #提交数据功能页面的路由

    def input_data():

    value = float(request.args.get('temp'))

    nowtime = datetime.datetime.now()

    nowtime = nowtime.strftime('%Y-%m-%d %H:%M:%S')

    db = sqlite3.connect(DATABASE)

    cur = db.cursor()

    cur.execute("INSERT INTO tempdata(value,updatetime)

    VALUES(%f,'%s')" %(value,nowtime))

    db.commit()

    cur.close()

    db.close()

    if 16< value < 25:

    return "当前温度适宜"

    elif value <= 16:

    return '当前温度较低'

    elif value >= 25:

    return '当前温度较高'

    if __name__ == "__main__":

    app.run(host="60.91.134.21", port=8080,debug=True)

    ①由以上代码可知访问主页的地址是

    ②阅读代码可知提交的数据保存在文件中。

    ③要实现表中的功能,⑴处路由为 , ⑵处的请求方式为(填:GET 或 POST)

  • 14. 地图染色问题可以根据四色定理来解决。所谓四色定理,就是指可以用不多于四种的颜色对地图着色,使相邻的行政区域不重色,因此我们可以用四色定理的结论,用回溯算法对一幅给定的地图染色。

    算法的基本思想是:从第(1)号行政区域开始染色,每个区域逐次用颜色 1#、2#、3#、4#进行试探,若当前所取的颜色与周围已染色的行政区域不重色,则用栈记下该区域的颜色序号,否则依次用下一颜色进行试探;若出现用 1#到 4#颜色均与相邻区域的颜色重色,则需退栈回溯,修改当前栈顶的颜色序号,再进行试探。直到所有行政区域都已分配合适的颜色。某县行政地图如图所示:

    (1)、若邻接矩阵 adjamat=[[0,1,1,1,1],[1,0,1,1,0],[1,1,0,1,1],[1,1,1,0,1],[1,0,1,1,0]],则下列涂色方案中可行的是(   )(单选,填字母)
    A、1->1,2->2,3->3,4->4,5->2 B、1->1,2->2,3->3,4->1,5->2 C、1->1,2->2,3->3,4->2,5->4
    (2)、实现上述功能的Python程序如下,请在划线处填入合适的代码。

    def mapcolor(adjamat):     #自定义填色函数部分

        signcolor=[0]*N

        color = 1

        signcolor[0] = 1

        area = 1

        while area < N:

            while color <= 4:

                if area >= N:

                    break

                k = 0

                # 以下代码判断区域是否重色

                while (k < area) and (signcolor[k] * adjamat[area][k] != color):

                    k += 1

                if (k < area):

                    color += 1

                else:

                       #给该区域上色

                    area += 1

                    color = 1

        if color > 4:    # 没有找到合适的颜色,需要进行回溯

           

            color = signcolor[area] + 1

        return signcolor

    #主程序部分

    city = {1: '海游街道', 2: '海润街道', 3: '沙柳街道', 4: '亭旁镇', 5: '珠岙镇', 6: '横渡镇', 7: '蛇蟠乡', 8: '健跳镇', 9: '花桥镇', 10: '浦坝港镇'}

    N =

    colordict = {1: '红色', 2: '橙色', 3: '黄色', 4: '青色'}

    adjamat = [[0 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0]

              [1 , 0 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , 0]

               [1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0]

               [1 , 1 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 0]

               [1 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0]

               [0 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 1]

               [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0]

               [0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0]

               [0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1]

               [0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 0]]

    signcolor1 = mapcolor(adjamat)

    print(signcolor1)

    # zip 函数可以将多个序列,如列表、元组、字典、集合压缩成一个对象。

    for key1,key2 in zip(city,signcolor1):     #将相对应的区域与地图颜色输出

              print(city[key1] + ":" + colordict[key2])