浙江省名校联盟(七彩阳光联盟)2022-2023学年高三下学期信息技术返校联考试卷

试卷更新日期:2023-03-22 类型:开学考试

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

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

    据Facebook财报表明,Facebook收入的97%来自广告,广告中89%来自智能广告推送。智能广告是以大数据为基础,利用人工智能技术实现广告智能化生产、传播、互动和反馈,精准匹配用户生活场景、个性化满足消费者生活信息需要的品牌传播活动。

    (1)、关于数据、信息和知识的说法,下列描述不正确的是(   )
    A、单纯的数据“97%”或“89%”没有意义,无法表达完整的含义 B、根据用户的生活信息进行推送广告,表明信息是可以加工处理的 C、知识与信息一样,都是可以共享和传递的 D、虚假广告中的数据无法由图形符号、数字、字母等表示
    (2)、关于材料中相关的大数据、人工智能的说法不正确的是(   )
    A、智能广告以大数据为基础,更倾向全体用户数据而不是抽样用户数据 B、智能广告在分析用户浏览数据中不再强调数据因果关系,而注重数据的相关性 C、智能广告在用户浏览“朋友圈”时实时推荐的广告是批处理计算的结果 D、智能广告推送在满足用户个性化需求的同时也存在个人隐私泄露的问题
  • 2. 下列关于信息编码的说法,正确的是(   )
    A、目前计算机中的数据都以二进制和十六进制进行编码 B、二进制数101001B和十六进制数29H对应的十进制数相等 C、已知字符“Q”的ASCII码十六进制值是51H,则字符“N”的ASCII码值是48H D、BMP、PNG、MPEG都属于图像文件的编码格式,但采用了不同的编码方法
  • 3. 下列技术手段最无益于保护数据安全或信息系统安全的是(   )
    A、数据可视化 B、异地容灾 C、安装防火墙 D、身份认证
  • 4. 阅读下列材料, 回答问题

    卡塔尔世界杯比赛用球Al Rihla 是历届世界杯中最智能的足球。它内置了惯性测量传感器和中央芯片,能以500次/秒的速度记录运动数据并通过UWB(超宽带无线通信技术)发送给“FIFA比赛判罚系统”,裁判可以通过终端查看各种运动数据,以此做出判罚。

    (1)、在“FIFA比赛判罚”信息系统中,以下不是其硬件组成的是(   )
    A、UWB 设备 B、惯性测量传感器 C、中央芯片 D、判罚数据
    (2)、关于“FIFA比赛判罚”信息系统中相关技术的说法正确的是(   )
    A、足球内的惯性测量单元传感器可能使用了NFC技术 B、“FIFA比赛判罚”就软件分类而言属于系统软件 C、传输数据的无线移动通信技术无需传输介质和网络互联设备支持 D、该信息系统对电力等外部环境有很强的依赖性
  • 5. 以下不符合信息社会对数字公民的要求的是(   )
    A、抵制未授权软件 B、任意传播购买的歌曲 C、尊重他人知识产权 D、保护个人隐私
  • 6. 对于下图所示的二叉树,下列说法正确的是(   )

    A、树的高度是4,是一棵完全二叉树 B、度为2的节点数比叶子节点数多1 C、若采用数组存储法,需要6个存储空间 D、该二叉树的后序遍历序列是fdebca
  • 7. 某小型列车站有一个单轨车厢调度轨道,最多可容纳3节车厢。初始时调度轨上停有2节车厢:最里面是1号车厢,出口处是2号车厢。之后有三节车厢进入调度轨的顺序是3,4,5,那么所有车厢出调度轨的顺序可能是(   )

    A、4,3,2,1,5 B、2,5,4,3,1 C、2,1,5,3,4 D、2,1,5,4,3
  • 8. 对于如下两个 Python 程序段,下列说法错误的是(   )

    程序a

    程序b

    a = 2

    res = 1

    n = int(input())

    for i in range(n):

        res = res * a

    print(res)

    def powr(a, n):

        if n == 1:

            return a

        elif n == 0:

            return 1

        else:

            tmp = powr(a, n // 2)

            return tmp * tmp

    a = 2

    n = int(input())

    print(powr(a, n))

    A、若输入n=8,程序a,b都将输出256 B、若输入n=10,程序a,b都将输出1024 C、程序a的算法时间复杂度是O(n) D、程序b的算法时间复杂度是O(log2n)
  • 9. 有如下Python程序段:

    import random

    n = 8

    a = [random.randint(0, 9)

    for i in range(n)]

        for t in range(2):

            i = t + 1

            while i < n-1:

                if t % 2 == 0:

                    if a[i-1] < a[i] and a[i] > a[i+1]:

                        i += 2

                    else:

                        a[i] += random.randint(0, 9)

                else:

                    if a[i-1] > a[i] and a[i] < a[i+1]:

                        i += 2

            else:

                a[i] = random.randint(0, 9)

    运行后,数组a中的值可能是(   )

    A、[8, 8, 3, 5, 4, 7, 3, 5] B、[5, 11, 10, 18, 8, 9, 0, 2] C、[1, 2, 1, 4, 0, 10, -1, 7] D、[7, 12, 5, 17, 9, 19, -10, 8]
  • 10. n  个整数保存在单向链表中,其中 head 指针不包含数据,它指向第一个节点的前面节点。以 下程序完成了链表的升序排序:

    n = 5; head = 0

    a = [[None, 1], [50, 2], [30, 3], [10, 4], [20, 5], [30, -1]]

    for i in range(n-1):

        r = head

        p = a[r][1]

        q = a[p][1]

        while q != -1:

            if a[p][0] > a[q][0]:

                a[r][1] = q

                    ①        

                a[q][1] = p

            r = a[r][1]

            p = a[r][1]

                ②       

    # 从head指针的下一个节点开始输出链表,结果为有序序列,代码略

    划线处应该填写的语句是(   )

    A、①a[p][1] = a[q][1]    ② q = a[p][1] B、①a[p][1] = a[q][1]    ② q = p C、①a[p][1] = q            ② q = p D、①a[p][1] = q            ② q = a[p][1]

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

  • 11. 小林在制定出游计划前收集了省内各个A级景点数据,部分数据如图a所示。为了对比各个地市“AAAA级”及以上景区的数量,编写Python程序如下。请回答下列问题:

    图 a

    (1)、从图a中“等级”一列数据看,该列数据存在的问题是(   )(单选,填字母)
    A、数据缺失 B、数据重复 C、逻辑错误 D、格式不一致
    (2)、小林先对数据进行整理,然后统计各个地市“AAAA级”及以上景区的数量并按数量降序排序,程序如下,请补充完整。

    import pandas as pd

    import matplotlib.pyplot as plt

    df = pd.read_excel("浙江 A 级景区.xlsx")

    df = df.drop(["电话", "景区编码"],  )  # 删除不必要的列

    for row in range(len(df)):  # 整理“等级”列数据

        grade = df.at[row, "等级"]

        if '1' <= grade[0] <= '9':

            df.at[row, "等级"] = "A" * int(grade[0])

    df2 = df[ >= "AAAA"]

    dfg = df2.groupby("地市").count()

    dfg = dfg.rename(columns={'等级': "数量"})   # 重命名列名称

    dfg. ("数量", ascending=False, inplace=True)

    (3)、小林将排序后的结果绘制成柱形图,结果如图b所示:

    图 b

    plt.figure(figsize=(8,4))

    plt.rcParams['font.sans-serif']=['SimHei','FangSong']

    plt.title("浙江 AAAA 级以上景区数量统计图")

    #加框处语句(需补充)

    for i in range(len(dfg)):

        plt.text(i, dfg["数量"][i]+1, dfg["数量"][i])

    plt.xlabel("地市名称")

    plt.ylabel("数量")

    plt.legend( )

    plt.show ( )

    为实现上述功能,则加框处的语句最合适的是(    )  (单选,填字母)

    A、plt.plot(dfg["地市"], dfg["数量"], color="orange", label="景区数量") B、plt.bar(dfg["地市"], dfg["数量"], color="orange") C、plt.plot(dfg.index, dfg["数量"], color="orange") D、plt.bar(dfg.index, dfg["数量"], color="orange", label="景区数量")
  • 12. 某智能门禁系统的一个子系统功能是完成身份认证功能。智能终端通过用户刷卡或者指纹获取用户ID数据,加密后发送到Web服务器,通过对比数据库中的用户信息完成身份认证并留下登录记录。该子系统部分功能实现如下,请回答相关问题。

    图a

    (1)、该子系统架构图如图 a 所示,那么图中①处最合适的选项是(单选,填字母:A .交换机 / B .防火墙 / C .服务器)
    (2)、智能终端读取到用户ID后将加密后的ID和加密后密钥一起发送到服务器,部分程序如下,若密文是“486896762”,加密后密钥是“71”,那么系统发送数据的URL是

    from microbit import *

    import random, Obloq

    IP = "192.168.113.5"; PORT = "80"

    SSID = "freeWiFi"; PASSWORD = "103103103"

    # 上述参数设置 uart 串口并用Obloq 模块建立网络连接, 代码略

    Obloq.httpConfig(IP, PORT)

    while True:

    key = random.randint(3, 9)   # 随机产生密钥

    enkey = ord("A") ^ key       # 加密后的密钥,如71,^表示异或运算

    # 读取身份证号信息并使用密钥 key进行加密

    # 加密后身份证保存在字符串 idnum 中,如 486896762,代码略

    err, res = Obloq.get("login?u=" + idnum +"&k=" + str(enkey))

    if err == 200:

    print("用户信息发送成功! ")

    sleep(5 * 1000)

    (3)、为了保证数据在网络传输过程中的安全,小林设计了如下简单加密算法,如图b所示:

    图b

    ①用户ID由数字字符组成,如“820230106”,采用替代加密,若密钥是6,则用户ID的加密结果是“486896762”;

    ②由于密钥6也要在网络中传输,因此密钥也要加密,小林采用字符“A”的ASCII码进行简单异或加密,加密结果是65⊕6=71;

    ③接收端先对加密的密钥进行解密:71⊕65=6,然后用该密钥解密密文,结果是用户ID的明文“820230106”。

    以下服务端程序实现了解密与用户身份验证过程,请将该算法补充完整。

    from flask import Flask, render_template, request

    app = Flask(__name__)

    @app.route("/")

    def index():

        return render_template("home.html")

    @app.route(" " , methods=["GET"])

    def decode():

        usr = request.args.get("u")         # 接收到的用户 ID 密文, 数字字符串格式

        enkey = int(request.args.get("k")) # 接收到的已加密的密钥, 整数格式

        key = enkey ^ ord("A")              # 对加密过的密钥进行解密

        res = ""

        for i in range(len(usr)):

            num = (+ 10) % 10

            res = res + str(num)

       

    if __name__ == "__main__":

        app.run (host="0.0.0.0",port="80",debug=True)

    (4)、若系统数据库为“sys.db”,存储已授权用户信息的数据表为“users”,用户信息字段名为“userid”,则上述加框处查询用户信息的SQL语句是(   )(单选,填字母)
    A、"SELECT * FROM users WHERE userid = %s" % res B、"SELECT * FROM sys WHERE usr = %s" % userid C、"SELECT * FROM sys WHERE userid = 'urs'" D、"SELECT * FROM users WHERE userid = 'res'"
  • 13. 小林发现他的鱼缸里的观赏鱼越来越少了。仔细观察才发现,即使按时喂鱼,一些大鱼也会争着吃小鱼——但是不会吃比它小太多的鱼。准确地讲,若一条大小是ai的鱼,当存在另外一条鱼aj个头严格比它小,但个头差不超过整数k时(即ai−aj≤k),ai会吃掉aj——吃掉后,ai不会变大,aj会消失。

    如:当鱼的大小是a=[101,53,42,102,101,55,54]且k=1时,一种可能的掠食过程是(下划线表示被吃):[101,53,42,102,101,55,54]→[101,53,42,102,55,54]→[101,42,102,55,54]→[42,102,55,54]→[42,102,55],最后只剩下3条鱼。小林想用Python程序模拟研究一下,对于给定的鱼大小和k的值,最坏情况下会剩几条鱼。

    (1)、若a=[20, 15, 10, 15, 31, 20, 25], k=5,则最坏情况下会剩条鱼。
    (2)、研究前,小林先对a中所有数据进行升序排序,请完成下面的程序。

    a = [101, 53, 42, 102, 101, 55, 54]

    k = int(input())   # k的含义如题所述

    last = len(a) - 1

    flag = True

    while last > 0 and flag:

        flag = False

        for j in range( ):

            if a[j] > a[j+1]:

                a[j], a[j+1] = a[j+1], a[j]

                last = j

                flag = True

    (3)、以下程序从最小的鱼儿开始模拟让较大的鱼吃较小的鱼,无法吃掉的鱼保存在st变量中,结束后输出st中剩余的元素个数就是最坏情况下所剩鱼的数量。请完善算法。

    n = len(a)

    st = [None] * n

    top = -1

    for i in range(n):

        while top >= 0 and st[top] < a[i] and a[i] - st[top] <= k:

            top -= 1

        top += 1

       

    print("最坏情况下会剩下%d 条鱼" % (top+1))

    (4)、对于剩下的鱼中,是否还存在某种大小的鱼儿。输入鱼的大小,查询该尺寸的鱼儿是否还存在。请完善以下算法。

    size = int(input())      #输入要查询的鱼的尺寸

    i = 0

    j = top

    while i <= j:

        m = (i+j) // 2

        if    # 若size值与第m号元素相等,则结束循环,此处关系表达式略

            break

        elif  :

            i = m + 1

        else:

            j = m - 1

    if  :

        print("大小为%d 的鱼还在!" % size)

    else:

        print("大小为%d 的鱼不存在,可能已经被吃了" % size)