浙江省杭州市2023届高三信息技术二模(4月)试卷

试卷更新日期:2023-05-25 类型:高考模拟

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

  • 1. 下列关于数据和信息的说法,正确的是(   )
    A、乘坐火车时不需要提供纸质火车票,说明信息可以不依赖于载体 B、考古发现可以让我们了解过去的文化,说明信息不会随着时间的推移而变化 C、结绳记事中通过“大事大结,小事小结”来记录不同的事件,其中绳结是信息 D、“一百个人心中有一百个哈姆雷特”,说明不同的人对同一信息会建构出不同知识
  • 2. 下列关于人工智能的说法,正确的是(   )
    A、电商平台人工客服和机器客服合作解答问题,属于跨领域人工智能应用 B、基于深度学习的人工智能,一般会构造包含若干层的神经网络 C、专家系统是基于数据驱动的人工智能方法 D、人工智能技术推动了人类社会进步,不可能威胁人类安全
  • 3. 下列关于数据处理与应用的说法,正确的是(   )
    A、大数据一般具有数据量大、处理速度慢、数据类型多、价值密度高的特征 B、所有的文本数据处理都依次经过数据分析、特征提取、分词和结果呈现四个步骤 C、数据可视化是将数据以图形图像等形式表示,直观呈现数据中所蕴含的信息 D、在数据处理过程中,数据的质量不会影响数据分析的结果
  • 4. 阅读下列材料,回答问题。

    某中学使用“智能门禁系统”,师生进出校园可使用人脸、校园卡或身份证进行识别。该系统使用 AI 摄像头识别人脸,RFID 技术获取校园卡、身份证等电子标签数据,并将采集到的数据存储到 Web 服务器的数据库,家长可使用手机客户端登录该系统,随时随地查看学生进出校园的情况。其中服务器的主要配置为:

    CPU

    内存

    硬盘

    操作系统

    八核 2.3GHz

    16GB

    4TB

    Windows

    (1)、下列关于该信息系统组成与功能描述,正确的是(   )
    A、使用该系统需要网络的支撑 B、该系统最大存储数据量为 16GB C、该“智能门禁系统”属于系统软件 D、Web 服务器中的数据库属于系统的硬件
    (2)、下列操作中会对系统造成安全隐患的是(   )
    A、捡到校园卡及时归还失主 B、为新用户设置同一登录密码 C、为服务器及时更新系统补丁 D、采集的数据经加密后存储到数据库中
    (3)、下列关于该信息系统中的数据说法,不正确的是(   )
    A、家长通过登录系统了解学生进出校园的情况属于系统数据的查询 B、通过 AI 摄像头采集人脸数据属于该系统的数据输入 C、数据只有存储到数据库中才能进行处理 D、该系统关闭后客户端将无法正常查看系统数据
  • 5. 某算法的部分流程图如图所示,执行这部分流程,若输入x的值依次为1,2,3,4,5,-1,则输出s的值是(   )

    A、3 B、7 C、13 D、15
  • 6. 已知一棵二叉树有13个节点,树中度为1的节点数为2,则该树度为2的节点数为(   )
    A、4 B、5 C、6 D、11
  • 7. 有1个栈,从栈顶到栈底依次为元素a、b、c,并且已知元素d已入栈并出栈,则这四个元素的入栈顺序可能为(   )
    A、a,b,c,d B、b,d,c,a C、c,d,b,a D、d,a,b,c
  • 8. 定义如下递归函数,计算正整数n的每位数字之和,例如n=123,函数返回值为6。

    def f(n):

        x =

        if x == 0:

            return n

        else:

            y =

            return

    上述程序段中方框处可选代码为:

    ①n % 10

    ②n // 10

    ③y + f(x)

    ④y + f(n - 1)

    则(1)(2)(3)处代码依次为(   )

    A、①②③ B、①②④ C、②①③ D、②①④
  • 9. 有如下Python程序段:

    import random

    a = [2,3,5,8,10,10,10,17,19,20]

    key = random.randint(1,30)

    # 随机生成[1,30]之间的整数

    i,j = 0,9

    while i <= j:

        m = (i + j) // 2

        if a[m] > key:

            j = m - 1

        else:

            i = m + 1

    print(j)

    执行该程序段,下列说法正确的是(   )

    A、若key的值为10,则输出的值为3 B、若输出的值为8,则key的值一定为19 C、对于任意key值,语句“m=(i+j)//2”最少执行1次 D、对于任意key值,语句“m=(i+j)//2”最多执行3次
  • 10. 有如下Python程序段:

    import random

    q = [0] * 5

    head = tail = 0

    for i in range(5):

        if random.randint(0,1)== 0:

            q[tail] = random.randint(1,9)

            tail += 1

        elif head != tail and q[tail - 1] < q[head]:

            q[tail] = q[head]

            head += 1

            tail += 1

    执行该程序段后,q的值不可能是(   )

    A、[0, 0, 0, 0, 0] B、[5, 4, 3, 2, 1] C、[5, 8, 3, 0, 0] D、[0, 5, 6, 0, 0]

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

  • 11. 小强搭建家庭灯光、温度监控系统,该系统使用传感器采集光线、温度等数据由智能终端经过IoT模块发送到Web服务器。服务器端程序采用FlaskWeb框架编写,实现监控灯光与空调等功能。系统结构示意图如图a所示。请回答下列问题:

    (1)、完善该系统结构图。若图a中ABC处的设备由以下三部分组成:①Web服务器;②智能终端;③IoT模块,则ABC处的设备依次为(填数字编号)。
    (2)、小强使用智能终端上传采集的温度数值(范围为[0,1023]之间的整数),服务器接收到上传温度数值t后,将其转换为摄氏度d(转换公式为:t÷1024×3000÷10.24,保留2位小数)保存到数据库中数据类型为实型的tem字段中。服务器端部分Python代码如下,请在划线处填入合适的代码。

    #导入各模块代码略

    @app.route("/s")

    def index( ):

        #数据库连接等代码略

        id=request.args.get("id")    #接收智能终端上传的传感器编号

        t=int(request.args.get("t"))    #接收智能终端上传的温度数值

        d=

        s="insert into da(id,tem)

        values ('"+id+"',"+str(d)+ ")"

        cur.execute(s)    #将数据保存到数据库中

        #数据库其它操作代码略

        return "ok"

    if __name__ == "__main__":

        app.run(host="192.168.0.1",port=8080)

    (3)、结合上述代码,若上传编号id为1,温度数值t为72时,则能正确提交数据到服务器的URL为       (单选,填字母)。
    A、http://192.168.0.1.8080/index?id=1&t=72 B、http://192.168.0.1/8080:s?id=1&t=72 C、http://192.168.0.1:8080/index?id=1&t=72 D、http://192.168.0.1:8080/s?id=1&t=72
    (4)、为提升该系统Web服务器的性能,从硬件角度着手,除了增加内存容量外,还可以在哪些方面加以改进,请简要说明改进方案
  • 12. 小天收集了浙江省某年各地市年龄段数据,保存在“T14.xlsx”文件中,如图a所示。为统计分析各地市不同年龄段人口占比,编写Python程序,输出结果如图b所示。

    请回答下列问题:

    (1)、为统计分析各地市不同年龄段人口占本地市人口比例,编写 Python 代码如下,划线处①应填入的代码为(单选,填字母),划线处②应填入的代码为

    A.df.groupby("地市",as_index=False).count()

    B.df.groupby("地市",as_index=False).sum()

    C.df.groupby("地市",as_index=True).mean()

    import pandas as pd

    import matplotlib.pyplot as plt

    df = pd.read_excel("T14.xlsx")

    df1 =   ①         # 计算各地市不同年龄段的人数

    print ("地 市17 岁以下    18-34 岁   35-59 岁   60 岁及以上")

    #“df1.values.tolist()”实现将 df1 转换为二维列表。列表中每个元素包含 5 个数

    #据项,分别对应地市名称和该地市 4 个年龄段人数总计,如['丽水市', 501421, ...]

    df2=df1.values.tolist()

    x,y = [],[]

    for area in df2:

        for c in range(len(area)):

            if c == 0:

                x.append(area[0])

                print(area[0], end=" ?")

            else:

                sm = sum(area[1:])     #sum 函数实现对序列求和

                t=   ②   

                print('%.2f' %(t), end="% ?")     #按设置格式输出

                if c == 4:

                    y.append(t)

    print()

    plt.title("浙江省各地市 60 岁以上人数占本地市总人口比例", fontsize=24)

    plt.bar(x, y)

    #绘制 60 岁及以上人数占本地市总人口比例柱形图

    #设置绘图参数,显示如图 c 所示,代码略。

    (2)、由图c可知,60岁及以上人数占本地市人口比例超过25%的地市有个。
    (3)、小天编写mygroupby函数模拟实现上述分类汇总功能,计算各地市不同年龄段的人数,结果以列表形式返回。函数代码如下,请在划线处填入合适的代码。

    #df1为二维列表,列表中每个元素包含6个数据项,内容如图a所示;函数返回值dfs格式同题(1)二维列表 df2

    def mygroupby(df1):

        dfs=[]     #创建一个空列表 dfs

        for row in df1:

            

            if n>0:

                for j in range(n):

                    if row[0]==dfs[j][0]:

                        break

            if n==0 or row[0] != dfs[j][0]:

                dfs.append([row[0],0,0,0,0])

                j=n

            for k in range(2,len(row)):

               

    return dfs

  • 13. 为分析数据中各元素的变化情况,进行如下定义:若在数组d中满足d[a]<...<d[i-1]<d[i]>d[i+1]>...>d[b],则从下标a到下标b区间的数据称为一个波峰,下标a到b的距离即为一个波峰的长度(长度≥3)。例如:数组d元素为“78,46,50,37,5,42,6,6,23”,存在2个波峰,分别是从d[1]到d[4]和d[4]到d[6],波峰长度分别为4和3。

    编写程序分析数据,找出所有波峰,按波峰长度降序排序(若波峰长度相同,则按开始下标升序),并输出波峰长度和开始到结束元素下标;若不存在,则输出“不存在波峰”,运行结果如图所示。

    请回答下列问题:

    (1)、根据题意,若数组d元素“23,14,35,31,13,20,3,40,10,10,9”,则最长的波峰长度为
    (2)、执行该程序,若数组d元素为“2,1,1,2”,则A处while语句中循环体的执行次数是
    (3)、实现上述功能的程序代码如下,请在划线处填入合适的代码。

    #读取待处理数据,保存在数组 d 中,并显示输出,代码略

    mt,i,n=[],1,len(d)

    while i<n:

        while i<n and d[i]<=d[i-1]:    #A

            i+=1

        st=i-1

        while i<n and d[i]>d[i-1]:

            i+=1

        if:

            continue    #跳出本轮循环,然后继续进行下一轮循环

        while i<n and d[i]<d[i-1]:

            i+=1

        ln=i-st

        if len(mt)==0:

            mt.append([ln,st,-1])    #为 mt 追加一个列表元素

            head=0;q=head

        else:

           

            while p!=-1 and :

                q=p

                p=mt[p][2]

            if p==head:

                mt.append([ln,st,head])

                head=len(mt)-1

            else:

                mt.append([ln,st,p])

               

    if len(mt)==0:

        print("不存在波峰")

    else:

        print("输出结果(长度:开始下标~结束下标):")

        p=head

        while p!=-1:

            print(mt[p][0],":",mt[p][1]," ~",mt[p][0]+mt[p][1]-1)

            p=mt[p][2]

    (4)、使用以下代码替换加框处代码,可以减少链表mt遍历次数的是       (单选,填字母)。
    A、if mt[q][0]>ln:

        p=mt[q][2]

    else:

        p=head

    B、if mt[q][0]<ln:

        p =mt[q][2]

    else:

        p=head