浙江省2023年10月高三信息技术强基联盟统测卷

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

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

  • 1. 下列有关数据与信息的说法正确的是(         )
    A、信息可用数字信号来表达,数字信号是以连续变化的物理量存在 B、数据只能用数字或文字来表示 C、同一信息对于不同的人群,其价值相同 D、信息必须经过数字化之后才能被计算机进行存储和处理
  • 2. 关于人工智能,下列说法不正确的是(         )
    A、人工智能的发展在就业、安全、伦理等方面可能会带来新的挑战 B、基于深度学习的人工智能,一般会构造包含若干层的神经网络 C、专家系统是基于数据驱动的人工智能方法实现的 D、图灵测试是测试机器是否具有智能的方法
  • 3. 阅读下列材料,回答小题

    某智慧食堂消费系统的部分功能:食堂内设有多台自助点餐终端,顾客下单后,系统自动计算订单金额,并提供相应的支付方式供顾客选择。顾客完成支付,系统会将订单信息发送至后厨。配餐完成后,系统会通知顾客前往取餐。系统还具备数据分析功能,通过对顾客的消费习惯、菜品销售情况等数据进行分析,帮助食堂管理者了解顾客需求,优化菜品搭配和供应链管理。

    (1)、下列关于信息系统的组成描述,说法正确的是(         )
    A、该信息系统中的用户仅指食堂就餐的顾客 B、使用该系统不需要网络的支持 C、触摸屏自助点餐终端属于该系统的硬件 D、顾客点餐的数据保存在自助点餐终端中
    (2)、下列关于该信息系统的安全与防护,说法不正确的是(         )
    A、定期备份服务器中数据可提升信息系统数据的安全 B、利用身份认证技术对该系统中不同的管理者设置不同的权限 C、及时更新系统,修复漏洞,提高系统安全性,降低病毒感染风险 D、设置防火墙,保护内部网络免受非法用户的入侵
    (3)、关于该系统的功能,以下说法不正确的是(         )
    A、顾客输入餐桌号、用餐人数、菜品等信息属于数据收集和输入功能 B、顾客可查询菜品、账单等信息属于数据查询功能 C、显示或打印点餐数据和总消费金额属于数据输出功能 D、根据顾客点餐数据,优化菜品搭配属于数据存储功能
  • 4. 下列关于网络系统的说法,不正确的是 (          )
    A、网络由计算机系统、数据通信系统以及网络软件和网络协议组成 B、计算机网络按网络的覆盖范围分为:局域网、城域网、广域网 C、HTTP 协议用于管理被传送内容的完整性 D、网络系统最基本的功能是数据通信
  • 5. 李华需要对处理好的照片进行编码,照片由类型+编号两部分构成。如果类型最多有10种,每种类型的照片不超过60张。在尽可能减少编码长度的情况下,使用该编码方案保存的照片,以下说法正确的是(         )
    A、用 4 位二进制数表示照片类型,6 位二进制数表示照片编号 B、用 4 位二进制数表示照片类型, 5 位二进制数表示照片编号 C、用 3 位二进制数表示照片类型, 6 位二进制数表示照片编号 D、用 3 位二进制数表示照片类型, 5 位二进制数表示照片编号
  • 6. 已知某二叉树的后序遍历为 GDBEHFCA,中序遍历为 DGBAECHF,下列说法正确的是(       )
    A、该二叉树中叶子节点有3个 B、该二叉树的前序遍历为ABDGCEHF C、该二叉树是一棵完全二叉树,树的高度为4 D、该二叉树中度为1的节点有2个
  • 7. 有如下程序段:

    a=[30,10,20,11,12,50]

    d=[0]*6 ; max=0 ; n=len(a)

    for i in range(1,n):

        for j in range(i):

            if a[j]<a[i]:

                d[i]+=1

        if d[i]>max:

            max=d[i]

    执行程序后,变量max的值是(         )

    A、2 B、3 C、4 D、5
  • 8. 有如下程序段:

    def fun(k):

        if k==1 :

            return "1"

        elifk%2==0:

            return fun(k- 1)+str(k%2)

        else:

            returnstr(k%2)+fun(k- 1)

    执行语句 s=fun(5) ,则 s 的值为(         )

    A、"00111" B、" 11010" C、" 11100" D、" 10110"
  • 9. 有如下 Python 程序段:

    s=input()

    stack=[0]* len(s);top=- 1;presign='+';num=0

    for i in range(len(s)):

        if'0'<=s[i]<='9':

            num=num*10+int(s[i])

        if i==len(s)- 1 or s[i] in'+-*/':

            if presign=='+':

                top+=1

                stack[top]=num

            elifpresign=='-':

                top+=1

                stack[top]=-num

            elifpresign=='*':

                top+=1

                stack[top]=stack[top- 1]*num

            else:

                top+=1

                stack[top]=stack[top- 1]//num

            presign=s[i]

            num=0

    print(sum(stack))     #sum 函数对 stack 中所有元素求和

    若输入'5*4-6+10/3' ,程序运行后, 输出结果是(         )

    A、32 B、24 C、17 D、8
  • 10. 有如下 Python 程序段:

    a=[i for i in range(1,7)]

    b=[0]*6

    head, tail=0,0

    for i in range(1,7):

        cnt=1

        while cnt<i:

            a[tail]=a[head]

            head=(head+1)%6

            tail=(tail+1)%6

            cnt+=1

        b[a[head]- 1]=i

        head=(head+1)%6

    执行该程序段后, b[5]的值为(         )

    A、2 B、3 C、4 D、5

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

  • 11. 小华开发了一个自动改卷系统,但是由于科目不同,没有固定的题号模板,于是小华又编写了python程序,能根据试卷答案自动输出题号。如图1为答案模板文件,小华在模板文件中录入答案后保存为"卷3.txt",如图2所示,每一行是一题或者一题中的一小题的答案,题号之间没有跳跃。例如:图2中【1】和【5】之间有4行,A、B、C、D为第1到4题的答案。程序运行结果如图3所示。

    图 1

    图 2

    图 3

    (1)、实现上述功能的 Python 程序如下,若删除图2最后一行(【7】所在的行),对程序运行结果  影响(填:有/没有)。
    (2)、请在划线处填入合适的代码。

    f=open("卷 3.txt",encoding="utf-8")

    line=f.readline().strip() c=0      #strip()用于删除字符串尾部的"\n"换行符

    preId=0

    QuestionInfo=[ ]

    while line:

        if line[0] == "【":

            curId =

            if curId - preId > 1:

                for i in range(preId, curId):

                    QuestionInfo.append(str(i))

            elif c>0:

                for i in range(1, c + 1):

                    QuestionInfo.append(str(preId) + "(" + str(i) + ")")

            c = 0

               

        else:

           

        line=f.readline().strip()         #strip()用于删除字符串尾部的"\n"换行符

    f.close()

    print("卷 3 题号划分为: ")

    for Id in QuestionInfo:

        print(Id)

  • 12. 小华在公司实验室搭建了一个农业大棚温湿度监测系统,温度上升到超过30℃或温度下降到低于10℃时,智能终端连接的蜂鸣器发出警报。系统的硬件搭建方式是:服务器通过实验室局域网的无线网络连接智能终端,智能终端连接传感器和执行器,传感器采集的数据由智能终端经IoT模块发送到Web服务器。请回答下列问题:
    (1)、若公司门口施工导致电信光纤被挖断,会导致  (单选,填字母:A .服务器接收不到智能终端发 出的数据/B .在实验室使用局域网无法访问 Web 服务器/C .在家中无法访问 Web服务器)
    (2)、小华基于 Flask Web 框架编写服务器端的程序,部分代码如下,视图函数 index()的返回值由  接收 (单选,填字母:A .浏览器 /B .智能终端 / C .智能终端和浏览器都可以)。
    (3)、要获取视图函数 index()返回的页面,应访问的URL是 http://

    #  导入 Falsk 框架模块及其他相关模块,创建 app 实例,代码略

    @app.route('/index')

    def index():

        #从数据库读取近 1 小时获取的传感器编号、温度和湿度组成的二维列表 data,代码略

        return render_template('idx.html',data=data)    #  服务器其他功能,代码略

    if__name__ == '__main__':

        app.run(port=8000)

    (4)、小华将该系统用于种植草莓,不同季节,不同农作物对环境的要求都有所差异。同一种农作物在不同的生长时期(苗期、现蕾期、盛花期、初果期、膨果期等)需要的生长环境也不同。请为小华提出合理建议,优化或增加系统功能:  。
    (5)、小华采用 excel表格记录了2个实验组种植草莓的实验数据,他希望绘制“淡雪现蕾期生长表现对比”柱形图,部分数据(前12行)如图1所示(时间格式为“年/月/日时:分”)

    df = pd.read_excel('strawberry.xlsx')

    name=input("请输入品种")

    period=input("请输入生长阶段")

    df=df[df["品种"]==name]

    df= df[df["生长阶段"]==period]

    df = df.groupby(" ", as_index = False).mean()    #  分组求平均值

    plt.title(name+period+"生长表现对比")

    plt.bar(df.实验组, df.生长表现) #  绘制柱形图

    ①请在程序中划线处填入合适的代码。

    ②小华要输出每个品种现蕾期生长阶段生长表现最好时的温度湿度,为此他需要修改程序代码,以下操作恰当的是  (多选,填字母)。

    A .筛选品种  B .筛选生长阶段  C .根据生长阶段分组,每组按生长表现降序排序,输出每组第一行 D .根据品种分组,每组按生长表现降序排序,输出每组第一行

  • 13. 某咖啡店,店里共有4种咖啡,类型编号为0到3,每次只能制作一种类型的咖啡,咖啡都是批量现做(制作过程中不能更改数量或类型)。店员需按照订单的先后顺序完成订单(即当前订单完成之前不能换订单),已经接到的订单中的同一类型咖啡可以一起制作(假设咖啡机能同时制作的数量上限足够高),且不需要额外增加时间(即只需制作一杯的时间)。如图1为每个订单的咖啡数量,初始“订单0”中[6, 0, 2, 4]表示0到3号咖啡的购买数量。此时店员先做数量最多的6份0号咖啡,1分钟后接到新订单[1, 18, 0, 2],之后每分钟都会接到1个新订单,这些订单都计入每种咖啡的待做数量。3分钟后这6份0号咖啡制作完成,程序会在“订单0”中选择还没制作的且待做数量最多的(数量相同时先后不作要求)咖啡作为下一次要制作的咖啡。编写python程序,每次制作完一种咖啡,输出接下来要制作的咖啡,运行界面如图2:

    图 1

    图  2

    (1)、由图1的订单信息,3 分钟后" 咖啡 0"制作完成,那么图2 中(1)处店员接下来要做的咖啡是咖啡
    (2)、根据待制作的咖啡数量,对链表初始化,生成降序链表 lnk,则代码运行后 y的值为

    def sort():

        for i in range(3):

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

                if waitlist[index[j]][1] > waitlist[index[j - 1]][1]:

                    index[j], index[j - 1] = index[j - 1], index[j]

            if waitlist[index[j]][1]==0:

                return j

        return 4

    waitlist=[[3,6],[4,0],[1,2],[2,4]]    # "咖啡 0" 的批量制作时间为 3 分钟,目前待做量为 6,以此类推

    q=[[6, 0, 2, 4], [1, 18, 0, 2], [2, 1, 2, 1], [0, 1, 0, 5],…… #如图 1,代码略

    #q 保存订单流,第一个订单[6,0,2,4]作为初始订单已计入 waitlist

    index=[0,1,2,3]

    y=sort()

    lnk=[- 1]*4

    for i in range(y- 1):                  #创建降序链表

        lnk[index[i]]=index[i+1]

    p=lnk_h=index[0]

    print("请制作咖啡"+str(p))

    waitlist[p][1]=0      #咖啡 p 进入制作,待做数量回 0

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

    defenqueue(order):      #order 是一个订单,例如[1,2,0,3]

        global lnk_h

        flag.append([0,0,0,0])      #新订单 4 种咖啡未完成

        for i in range(4): f = True

            if waitlist[i][1]==0: f=False

                if order[i]==0: continue

                    waitlist[i][1]+=order[i]    #将订单 order 中的咖啡 i 累加到待制作数量中

                    cur=lnk_h

                    while cur!=- 1 and waitlist[i][1]<waitlist[cur][1]:

                        pr,cur=cur,lnk[cur]

                    if cur!=i:

                        tmp = lnk[i]

                        lnk[i]=cur

                        if cur==lnk_h:

                            lnk_h=i

                        else:

                            lnk[pr]=i

                        if f:

                            while cur!=i:

                                pr,cur=cur, lnk[cur]

                               

    def nextfood(qhead,qtail):        #找到下一次要做的咖啡

        global lnk_h

        cur=lnk_h

        while  :

            pr,cur=cur,lnk[cur]

            if cur==lnk_h:

                lnk_h=lnk[lnk_h]

            elif cur==- 1:

                return – 1

            else:

                lnk[pr]=lnk[cur]

            waitlist[cur][1]=0

            for i in range(  ):

                if q[i][cur]!=0: flag[i][cur] = 1

                    return cur 

    qhead,qtail=0,1

    order=q[qhead]

    flag=[[1,0,0,0]]            #flag[i][j]=1 标记"订单 i" 中的"咖啡j" 已经在做或已经做完。 lnk_h, time =lnk[lnk_h],0

    while True:

        time=(time+1)%waitlist[p][0]

        if qtail<len(q):

            enqueue(q[qtail])   #接新订单

            qtail+=1

        if time==0:

            while qhead<qtail- 1 and sum(flag[qhead])+q[qhead].count(0)==4:        #订单完成时

                qhead+=1

                order=q[qhead]

            p=nextfood(qhead,qtail)

            if p == - 1 : break

            print("请制作咖啡"+str(p))