浙江省衢州市2021-2022学年高二下学期信息技术期末考试试卷

试卷更新日期:2022-08-25 类型:期末考试

一、选择题(本大题有12小题,每小题2分,共24分。)

  • 1. 下列有关数据、信息、知识说法正确的是(    )
    A、信息在传递的过程中会产生损耗 B、信息是可以独立存在的,不一定依附载体 C、数据是对客观事物的符号表示,本身具有一定的意义 D、知识是人类在社会实践中所获得的认识和经验的总和
  • 2. 人机协同太空机器人所属的人工智能领域是(    )
    A、生物智能 B、领域人工智能 C、混合增强智能 D、跨领域人工智能
  • 3. 电子不停车收费系统(ETC)通过摄像机提取车辆牌照,利用车辆车载电子标签与收费站ETC车道上的微波天线之间进行的专用短程通讯,再用计算机联网技术与银行进行结算处理,从而达到车辆无需停车而能交费的目的。下列有关ETC系统说法不正确的是(    )
    A、采用了射频识别技术 B、车辆识别摄像机是输入设备 C、系统由硬件、软件、数据、通信网络和用户组成 D、利用计算机联网技术与银行进行结算处理属于数据输出功能
  • 4. 某算法的部分流程图如图所示,输入s=“103111”,执行该流程后,变量c的值是(    )

    A、4 B、3 C、2 D、1
  • 5. 按照网络覆盖范围分类,家庭网络属于(    )
    A、局域网 B、城域网 C、广域网 D、移动通信网
  • 6. 一张未经压缩的分辨率为1920*1080像素、24位真彩色的BMP图像,其存储容量约为(    )
    A、47MB B、5.9MB C、200KB D、36KB
  • 7. 某微课平台根据点击量给用户自动推荐微课。从平台中获取的部分点击量数据如图所示,为了筛选出点击量前5的微课,程序划线处应填入的代码为:(    )

    import pandas as pd

    df=pd. read_excel ('微课点击量.x1sx')

    df1=df. group by("科目", as_index=False). sum()

    df2=                

    A、df1.sort_index ("点击量"). head(5) B、df1.sort_index ("点击量", ascending=False). head(5) C、df1.sort_values ("点击量"). head(5) D、df1.sort_values ("点击量", ascending=False). head(5)
  • 8. 在Python中可以使用列表模拟单向链表,如链表中的节点p,a[p] [0]存储p节点的数据,a[p][1]存储p指向后继节点的指针。若要在p节点之后插入新的节点x(x作为p的新后继节点),需要执行的语句是(    )
    A、a[p][1]=x; a[x][1]=a[p][1] B、a[x][1]=a[p][1]; a[p][1]=x C、a[p][0]=x; a[x][0]=a[p][0] D、a[x][0]=a[p][0]; a[p][0]=x
  • 9. 小萌编写Python程序批量处理“从身份证号码中提取出生年月日”,将姓名和身份证号码存储在二维数组sfzh中,例如“周子夏”和“蔡佳杰”两人的信息存储格式为:[["周子夏","330881200405211234"],["蔡佳杰","330881200504032323"]]。程序代码如下:

    #将姓名和身份证号存储在二维数组sfzh的代码略

    for i in range(len(sf h)):

       s=               

       year=s[:4]; month=s[4:6]; day=s[6:]

       print ("%s同学的生日是:%s年-%s月-%s日"%(sfzh[i][0], year, month, day))

    程序划线处填入的代码为:(    )

    A、sfzh[i][1][6:13] B、sfzh[i][1][6:14] C、sfzh[i][1] D、sfzh[i][0]
  • 10. 有一棵二叉树如图所示,该二叉树的后序遍历结果正确的是(    )

    A、XBCDAYEF B、FEYADCBX C、DBEAFXCY D、DEFABYCX
  • 11. 某Python程序段如下:

    def doit(x):

       if x>=6:

          ans=1

       else:

          ans=3*doit(x+1)+2*doit(x+2)

       return ans

    print(doit(3))

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

    A、17 B、21 C、61 D、62
  • 12. 某二分查找算法的Python程序段如下:

    a=[14, 17, 18, 19, 19, 22, 22, 22, 28, 28]

    s=0

    key=int(input ("key:"))

    L, R=0, len(a)-1

    while L<=R:

        m=(L+R)//2

        s+=1

        if a[m]>key:

          R=m-l

        else:

          L=m+1

    当输入key的值为22,程序运行结束后,下列描述不正确的是(    )

    A、m的值是7 B、s的值是3 C、L的值是8 D、R的值是7

二、非选择题(本大题共4小题,7+6+6+7,共26分)

  • 13. 某城市正在举行“迎亚运邮票设计大赛”作品的微信投票活动,共有6件作品参与投票,现要选出得票最高的作品。每人每票最多可投3件作品(一张选票中投票超过3件作品则该选票无效)。本次投票共收到七万多条数据,小萌已将投票数据整理为csv文件,如图a所示,并将选票处理结果可视化,如图b所示。

    (1)、小萌先进行抽象建模与算法的设计,请补充完整划线处的内容。

    将csv文件中的数据存储到二维数组result[i][j],表示第i张选票第j件作品的票选数据,一维数组ps[i]表示作品i的最终得票数。依次处理所有选票数据,用sumx统计某张选票中“1”的个数,当可判断该选票有效,否则无效。若选票有效则对应的作品票数加1,最后将选票结果用图表呈现。

    (2)、为实现上述功能,请在划线①②处填入合适的代码。

    import numpy

    import matplotlib.pyplot as plt

    result=numpy. loadtxt ("toupiao.csv", encoding="utf-8", delimiter=",",s kiprows=1)

    #将csv文件转化为二维数组,skiprows=1表示忽略第一行数据

    n=len(result)  #获取result的行数(收到的投票数)

    zp=["作品1", "作品2", "作品3", "作品4", "作品5", "作品6"]

    ps=[0]*6

    for i in range(n):

     

       for j in range(6):

          sumx+=result[i][j]

       if  sumx<=3:

          for j in range(6):

            

    plt. rc("font", **{"family": "SimHei"})  #设置图表中的文字字体

    for x, y in zip(zp, ps):                #zip函数用于显示数字标签

       plt. text(x, y, "%d" %y, ha="center", va="bottom", fontsize=14)

    plt. title("迎亚运邮票设计大赛")

        #绘制垂直柱形图

    plt. show()

    (3)、方框处应选择的代码为(   )(单选,填字母)
    A、plt. bar(zp, ps) B、plt. plot(zp, ps)  C、plt. scatter(zp, ps)
  • 14. 小萌编写室内空气质量实时监测系统,实现以下功能:实时监测环境中的温度、二氧化碳CO2和有害气体TVOC的数据,若空气中CO2含量和TVOC的含量超过一定值(CO2含量超过8000或TVOC超过1000),系统则自动打开风扇,以达到通风换气的目的。部分程序段代码如下:

    ccs811 = CCS811()    #CCS811空气质量传感器,获取CO2 , TVOC数据

    IP="192.168.43.7"

    PORT="8018"

    #无线连接设置代码略

    uart. init(baudrate=9600, bits=8, parity=None, stop=1, tx=pin1, rx=pin2)

    #连接wifi代码略

    while True:  #采集数据代码

        if ccs811. check_data_ready():

          a=round((pin0. read_analog()/1024)*3000/10.24, 1)  #采集温度数据

          b=ccs811. CO2_PPM()     #采集CO2的数据

          c=ccs811. TVOC_PPB()    #采集TVOC的数据

           errno, resp=Obloq. get("input?&id=1&val0="+str(a)+"&vall="+   ①  

             +"&val2="+str(c),10000)

           if     ②     :

             pin12.write_digital(1)  #开风扇

           else:

             pin12.write_digital(0)  #关风扇

          sleep(5000)  #延时5秒

    请回答下列问题:

    (1)、综合上述代码,温度传感器连接的引脚为(   )(单选,选填字母)。
    A、pin0 B、pin1 C、pin2 D、pin12
    (2)、该系统服务器端路由采用(单选,选填字母:A .GET/B .POST)模式接收传感器数据。
    (3)、为实现上述功能,请在划线处填入合适的代码。

     ②

  • 15. 小萌通过“问卷星”收集到一些学生数据,如图a所示。在按关键字“用户名”进行排序的过程中,对数据进行整理,删除重复数据,处理结果如图b所示。

    (1)、在数据整理时,常见的数据问题有(   )(多选,选填字母)。
    A、数据缺失 B、数据重复 C、逻辑错误 D、格式不一致
    (2)、实现上述功能的Python程序如下,请在划线处填入合适的代码。

    a=[]

    csv_file=open("xuehao.csv", "r", encoding='utf-8')

    flines=csv_file. readlines()  #将文件中所有数据按行读入flines中

    csv_file. close()           #关闭文件

     # 将每个数据行中的各项信息以“,”作为分隔符切割成字符串存入列表a中

    for line in flines:

       tmp=list(line. strip("\n"). split(","))

       a. append(tmp)

    n=len(a)

    i=1; m=n-1    #变量m表示删除重复数据后的实际数据个数

    while i<n:

       for j in range(m, i, -1):

         if :

           tmp=a[j]; a[j]=a[j-1]; a[j-1]=tmp

         elif a[j][4]==a[j-1][4]:

           a[j]=a[m]

          

       i+=1

    for i in range (m+1):

       print (a[i])

  • 16. 小萌对文本数据进行加密处理,加密算法设计如下:

    第一步:换位加密。将明文字符串首尾相接围成一圈,从第一个字符开始计数,计数到m时相应的字符出圈,然后从下一个字符重新计数,直到最后圈中的字符全部出圈。出圈的序列就是该换位加密后的密文。例如明文“abY82?”,密钥m=4,按照上述规则得到的密文为“8baY?2”。

    第二步:替代加密。将第一步得到的密文中的大小写字母和数字进行加密,密文字符由正常顺序的字母表或数字表右移m个位置替换得到。例如当m=4时,替换情况如第16题图所示。当m=4时,“8baY?2”经过处理后的密文为“2feC?6”。

    (1)、明文字符串“5c-W”经过上述加密方法,密钥m=3处理后的密文字符串为
    (2)、小萌根据上述加密策略编写Python程序如下,请在划线处填上合适的代码。

    mingwen=input ("请输入明文:")

    m=int (input("请输入密钥:"))

    q=[’’]*1000

    miwen=""

    n=len (mingwen)

    for i in range(n):

       q[i]=mingwen[i]

    head, tail=0, n

    i, s=1, 0

    while i<=n:

        tmp=q[head]; head+=1

        s+=1

        if :

           miwen+=tmp

           i+=1

           s=0

        else:

         

          tail+=1

    ans=""

    for i in miwen:

       if i>="A" and i<="Z"

         x=chr((ord(i)-65+m)%26+65)    #大写字母A的ASCII码为65

         elif i>="a" and i<="z":

         x=chr((ord(i)-97+m)%26+97)    #小写字母a的ASCII码为97

         elif i>="0" and i<="9":

                           #数字字符0的ASCII码为48

         else:

            x=i

         ans+=x

    print (ans)