浙江省北斗星盟2022年12月高三信息技术联考试卷

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

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

  • 1. 阅读下列材料,请回答第1~2题:

    某大型超市使用自助收银系统,方便顾客自助结账,特别是遇到营业高峰期大大缩短了顾客排队结账的等候时间。顾客使用自助收银系统时,先逐个将商品条形码对准扫码口扫描,商品的名称、单价和数量在屏幕上显示,然后再选择扫码或人脸识别完成支付,随即,移动支付APP会发来扣款消息。

    (1)、关于该自助收银系统,以下说法不正确的是(   )
    A、除了顾客以外,超市收银员、系统分析员等也是自助收银系统的用户 B、商品的名称、单价和数量属于自助收银系统的数据 C、只要不断电, 自助收银系统就可以正常使用 D、自助收银系统的使用体现了“规范工作流程,提高工作效率”的优势
    (2)、关于该自助收银系统的工作过程和支付方式,以下说法不正确的是(   )
    A、扫描商品条形码属于信息的采集 B、扫码识别的支付方式采用了 RFID 技术 C、人脸识别的认证方式具有防伪性能好、随时随地可用等优点 D、系统可以通过刷脸支付,说明人脸也是信息的载体
  • 2. 下列有关信息和信息编码的说法, 正确的是(   )
    A、计算机中的汉字是使用二进制进行编码的 B、根据不同的编码方式,数字图像可分为多种格式,如BMP、JPG、WAV等 C、16色未压缩的位图图像位深度为16位 D、声音数字化过程中,量化位数越大,量化精度越低
  • 3. 某智能设备部分参数如下表所示:

    屏幕尺寸

    1.5 英寸

    WiFi、蓝牙

    都支持

    操作系统

    Ticwear OS

    传感器

    光学心率传感器、加速度传感器、陀螺仪、电子罗盘

    匹配系统

    Android 4.3 及以上,iOS 8.0 及以上

    控制类型

    触控:多点电容式触摸屏

    屏幕分辨率

    320*320

    运行内存

    512MB

    处理器

    联发科 MT2601,

    1.2GHz 双核

    机身存储

    4GB

    下列有关该智能设备的说法中, 不正确的是(   )

    A、该设备可以监测心率和记录运动数据 B、该设备使用的是四核处理器 C、该设备支持触屏控制 D、该设备可以通过蓝牙传输数据
  • 4. 以下有关数据和大数据的说法,不正确的是(   )
    A、大数据中价值密度的高低与数据总量的大小成正比 B、基于用户购买行为的大数据, 网站对其进行深度挖掘实现个性化推荐 C、大数据给生活带来便利的同时也会带来信息泄露、数据安全等社会问题 D、数据可视化可以使用户通过直观的方式浏览和观察数据
  • 5. 为了保障个人信息安全,下列做法不可取的是(   )
    A、不同的社交账号尽量设置不同的密码 B、重要的数据经常备份或加密后存放在云盘上 C、个人计算机安装并开启防火墙 D、公共场所的免费 Wi-Fi 用起来很方便, 可以随意连接
  • 6. 下列Python表达式中,与表达式 abs(int(-4.62))的值不相等的是(   )
    A、len([True,4, ”score”,[3,2.7]]) B、int(”324”[1])*2 C、round(24/7,0) D、[”red”,True,4][-1]
  • 7. 某算法的部分流程图如图所示:

    执行该部分流程,若依次输入的数据为2、-3、5、-1、2、1、-3、0,则输出m的值为(   )

    A、7 B、6 C、5 D、4
  • 8. 有二叉树用数组表示如下表所示:

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    D

    A

    H

    F

    G

    C

    M

    则关于该二叉树的说法正确的是(   )

    A、该二叉树是完全二叉树 B、该二叉树的叶子节点有3个,分别是 C、H、M

    C.该二叉树的后序遍历序列为C-F-A-M-G-H-D

    D、该二叉树的层数为3,节点F在第3层
  • 9. 有如下Python程序段:

    def sp(a,i):

        if "a"<=a[i]<= "z" :

            a=a[:i]+a[i+1:]

        elif "0"<=a[i]<= "9":

            a=a[:i]+str((int(a[i])+3)%10)+a[i+1:]

    return a

    s="cfi3H8qwz4";i=0

    while i<len(s):

        s=sp(s,i)

        i+=1

    执行上述程序段后,s的值为(   )

    A、”f3H1w4” B、”3H84” C、”6H17” D、”f6H1w7”
  • 10. 生成一个元素个数为6、元素的值在1~9之间且不重复的数组a,Python代码如下:

    import random

    n=9

    b=[[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,-1]]

    head=0

    a=[]

    for i in range(6):

        k=random.randint(0,n-i-1)

        if k==0:

            a.append(b[head][0])

              ① 

        else:

            p=head

            for j in range(k):

                pre=p

                p=b[p][1]

                a.append(b[p][0])

                   ②   

    划线处应填入的代码为(   )

    A、①head=b[head][1]       ②b[pre][1]=p B、①head=b[0][1]          ②b[pre][1]=p C、①head=b[0][1]          ②b[pre][1]=b[p][1] D、①head=b[head][1]       ②b[pre][1]=b[p][1]
  • 11. 有如下Python程序段:

    #随机产生 n 个两位正整数存入数组a 中

    q=[-1]*n;top=-1

    for i in range(n):

        if a[i]%3==0 :

            top+=1

            q[top]=a[i]

        elif a[i]>q[top] and a[i]%2==0:

            top+=1

            q[top]=a[i]

            while top>-1:

                print(q[top],end=',')

                top-=1

    执行上述程序段后, 输出结果不可能是(   )
    A、48,57, B、74,80,76, C、74,68,62,33,44, D、98,45,78,88,

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

  • 12. 小明为学校搭建一个信息技术知识竞赛的信息系统,服务器网站基于Python的FlaskWeb框架编写,考生信息存储在数据库文件“data.db”的“user”数据表中,如图a所示;考生通过浏览器访问网站,登录页面如图b所示;登录成功后网站自动跳转到答题页面,如图c所示。

    请回答下列问题。

    (1)、考生登录系统采用的身份认证技术是 (填字母:A .用户名+口令  B .依靠生物 特征识别  C .USB-Key),该信息系统采用的架构为 (填字母:A .B/S 模式  B .C/S 模式)
    (2)、服务器端的部分程序如下, 请在划线处填入合适的代码。 import sqlite3

    from flask import Flask,render_template,request,redirect

    ip="192.168.1.100"

    port="8080"

    app=Flask(__name__)

    @app.route("/")

    def index():

    return render_template("index.html")

    @app.route("/",methods=['POST'])

    def login():

    sid=request.form.get("sid")

    psw=request.form.get("psw")

    conn=sqlite3.connect("data/data.db")

    cur=conn.cursor()

    cur.execute("SELECT * FROM  where sid='%s' and psw='%s'"%(sid,psw)) res=cur.fetchall()

    cur.close()

    conn.close()

    if len(res)==1:

    return redirect("/test?sid="+sid+"&name="+ )

    #redirect 表示跳转指定的 URL

    else:

    return "用户名或密码错误,请检查后重新登录!"

    @app.route(" ")

    def test():

    #显示答题页面,代码略。

    if __name__=="__main__":

    app.run ( )

    (3)、图b所示的登录页面渲染的网页模板文件为 ,考生填写了考号和密码后,点击“登录”按钮,浏览器将考号和密码提交给服务器,服务器端执行的视图函数名为; 登录成功后,网站跳转到答题页面。
  • 13. 知识竞赛结束后,小明从信息系统中导出参赛学生的成绩,存储在“知识竞赛.xlsx”文件中,如图a所示,并编写Python程序,按总分降序排序,分别输入一二三等奖的获奖比例,计算获奖人数和分数线,程序运行结果如图b所示。由于同分人数较多,计算奖次时按最接近规定比例的人数划定分数线,若按两个相邻分数线划定的人数与规定比例的人数同样接近,则取较低的分数线。例如:总人数100人,应有10人获一等奖,若98分及以上有9人,97分及以上有15人,则一等奖分数线为98分;若98分及以上有9人,97分及以上有11人,则一等奖分数线为97分。Python程序如下,请回答下列问题。

    图 a

    图 b

    def find(now,step):

        i=now

        while score[i][2]==score[now][2]:

              ① 

            return i

    import pandas as pd

    df=pd.read_excel ("知识竞赛.xlsx")

    df= ②  

    score=df.values    #二维数组 score 存储所有参赛学生的考号、班级和总分,按总分降序排列

    n=len(score)

    prize=["一等奖","二等奖","三等奖"]

    print("总人数:"+str(n))

    s=input("请分别输入一二三等奖的比例: ")

    percent=list(map(float,s.split(",")))  #一二三等奖比例转换成实数存储在列表 percent 中 nums=[0,0,0]

    nums[0]=round(   ③   )

    for i in range(1,3):

        nums[i]=nums[i-1]+round(n*percent[i])

    pre=0;res=[""]*n     #res 存储学生的奖次

    for i in range(3):

        now=nums[i]-1

        k1=find(now,-1)

        k2=find(now,1)

        if k2-now<=now-k1:

        now=k2-1

        line=score[k2-1][2]

    else:

        now=k1

        line=score[k1][2]

    print(prize[i],"人数:",now-pre+1,"分数线:",line)

    for j in range(pre,now+1):

        res[j]=prize[i]

      ④ 

    (1)、请在划线处填入合适的代码。

    (2)、加框处代码有误, 请改正。
  • 14. 小明所在的班级共有 20 名男生,要参加学校举办的拔河比赛,赛前根据体重分成 AB 两组进行训练,要求每组 10 人, 且每组男生的体重之和尽量接近。小明设计了如下算法:

    ①初步分组:将所有男生按体重从高到低排序,并以 ABAB…进行初步分组;

    ②计算体重差: 计算每组对应两个男生的体重差;

    ③交换学生:按体重差从高到低判断是否交换学生。

    例如 20 名男生的体重(单位: kg)从高到低为:

    95, 93, 93, 90, 90, 90, 84, 83, 83, 78, 77, 75, 74, 69, 64, 61, 61, 60, 56, 55。

    步骤

    体重

    体重和

    初步分组

    A 组

    95

    93

    90

    84

    83

    77

    74

    64

    61

    56

    777

    B 组

    93

    90

    90

    83

    78

    75

    69

    61

    60

    55

    754

    体重差

    2

    3

    0

    1

    5

    2

    5

    3

    1

    1

    23

    交换学生

     

    最终分组

    A 组

    95

    93

    90

    83

    78

    77

    69

    64

    61

    56

    766

    B 组

    93

    90

    90

    84

    83

    75

    74

    61

    60

    55

    765

    小明按照以上算法编写Python程序如下,请在划线处填入合适的代码。

    def group(student):    #初步分组

        a=[];b=[]

        i=0

        while i<len(student):

            a.append(student[i])

            b.append(student[i+1])

           

        return a,b

    def cal_diff(a,b):     #计算体重差并降序排序

        d=[]

        for i in range(len(a)):

            d.append([i,a[i]-b[i]])

            for i in range(len(d)-1):

                for j in range(0,len(d)-i-1):

                    if  :

                        d[j],d[j+1]=d[j+1],d[j]

            return d

    def change(d,a,b):     #标记是否交换

        k=(sum(a)-sum(b))//2

        f=[0]*len(d)

        ssum=0

        for i in range(len(d)):

            ssum+=d[i][1]

            if ssum>k:

                ssum-=d[i][1]

            else:

               

                if ssum==k:

                    break

        return f

    student=[95, 93, 93, 90, 90, 90, 84, 83, 83, 78, 77, 75, 74, 69, 64, 61, 61, 60, 56, 55]

    qA,qB=group(student)

    print("初步分组后 A 组体重: ",qA,"和为:",sum(qA))

    print("初步分组后 B 组体重: ",qB,"和为:",sum(qB))

    diff=cal_diff(qA,qB)

    flag=

    for i in range(len(flag)):    #交换

        if flag[i]==1:

            qA[i],qB[i]=qB[i],qA[i]

    print("交换后 A 组体重:",qA,"和为:",sum(qA))

    print("交换后 B 组体重:",qB,"和为: ",sum(qB))