浙江省衢州、丽水、湖州三地市2023年11月高三上学期信息技术教学质量检测试卷
共 13 题 ; 41人浏览 ; 高三上学期
2023-11-30
一、选择题 (共10题,共24分)
二、非选择题 (共3题,共25分)
12. 小明搭建花房环境监测系统。该系统能通过传感器获取花房的温度及湿度,出现异常时,通过执行器发出警报。用户通过浏览器可查看实时数据及历史数据,系统结构示意图如图a所示。请回答下列问题:

(1) 该系统结构示意图中,虚线框处应是      (单选,填字母)。 A. B. C.
(2) 下列设备中, 实现该系统数据输入和输出功能的是       (多选,填字母)。 A. 传感器 B. 执行器 C. IoT 模块 D. 无线路由器 E. Web 服务器
(3) 小明基于 Flask Web 框架编写服务器端的程序,部分代码如下。测试系统时,在浏览 器地址栏中输入“http://196.168.1.10 :5000/”显示首页数据,与该 URL 中路由关联的视图函数是

#导入 Flask 框架模块及其他相关模块,代码略

app=Flask(__name__)

@app.route("/")

def index():

#从数据库读取温度和湿度数据,并返回页面,代码略

@app.route("/search")

def search():

#根据日期查询相应数据,并返回页面,代码略

#服务器其他功能,代码略

(4) 运行该系统,在浏览器地址栏中输入 URL 访问系统,系统无法正确显示当前的温度等数据。简要说明系统可能造成上述问题的原因(本系统中,传感器等硬件设备及浏览器,不会造成上述问题)。(注:回答 2 项)
(5) 小明导出系统中某天24小时的温湿度数据,部分如图b所示。分析一天内每小时的平均温度,部分Python程序如下。

import pandas as pd

import matplotlib.pyplot as plt df=pd.read_csv("data.csv")       #读取文件 data.csv 中的数据

df.insert(0,"小时","")      #插入列

for i in df.index:       #通过行标签和列标签选取单个值

    t=df.at[i,"时间"]

    df.at[i,"小时"]=t[:2]

df=df.groupby("小时",as_index=False).    #以“小时”分组求均值

plt.bar(df.小时,df.温度)

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

①程序中划线处合适的代码是(单选, 填字母: A .sum()/B .mean()/C .count())。

②加框处的语句作用:实现获取当天平均温度高于30的所有时间段中温度最高的5个,该处代码由以下三部分组成:

A .df=df.sort_values("温度")     B .df=df.tail(5)     C .df=df[df.温度>30]

则加框处代码依次为 (填字母)。

综合题 困难
13. 某快递驿站有A、B两类货架,收到的包裹重量小于等于10存放于A货架,其余存放于B货架。编写程序模拟生成取件码和顾客的取件过程,取件码是根据当前已处理的包裹数量生成,如A-0001表示当天第一个处理的包裹存放在A货架,B-0003表示当天第三个处理的包裹存放在B货架。取件码与顾客手机号关联,程序根据输入的手机号显示其所有包裹的取件码,并允许顾客一次性提取或者部分提取。程序的部分运行界面如图a和图b所示。

(1) 当前已处理的包裹取件码是 A-0158,若下一个包裹重量是 12,其取件码为
(2) 定义函数save(pnum,code),参数pnum为手机号,code为取件码。函数功能是将一条包裹信息存储到列表goods和列表dic中。如图a的包裹数据,手机号“180****1215”在两个列表中的数据分别为goods[4]=["B-0005",-1]、goods[9]=["A-0010",4]和 dic[2]=["180****1215",9,2]。

①若调用该函数继续存储手机号“180****1215 ”的包裹, 其取件码是“B-0011 ”,则对应 dic[2]的值变为["180****1215",,]。

②函数 save 代码如下,程序中加框处代码有错,请改正。

def save(pnum,code):

    goods.append([code,-1])

    n=len(goods)-1

    print(n,"号包裹的手机号:",pnum,"取件码:",code)

    num=search(dic,pnum)    #函数返回手机号 pnum 在 dic 中的索引号,未找到返回-1

    if num==-1:

        dic.append([pnum,n,1])             #新增一个包裹信息

    else:

        goods[n][1]=dic[num][1]

        dic[num][1]=n

        

(3) 实现取件功能的部分 Python 程序如下,请在划线处填入合适的代码。

x=input("请输入您的手机号:")

num=search(dic,x)

if num!=-1:

    #输出手机号为 x 的当前所有包裹信息,代码略

    op=int(input("输入 0 取全部包裹,输入 1 取部分包裹:"))

    if op==0:

        print("您的包裹已经取完! ")

        del dic[num]  #删除 dic 中索引为 num 的元素

    else:

        order=input("请输入本次的取件码,只输入#表示结束取件:")

        while order!="#":

           

            p,q=head,head

            while goods[q][0]!=order:

            p=q

           

        if p==head:

            dic[num][1]=goods[q][1]

        else:

            goods[p][1]=goods[q][1]

        dic[num][2]-=1

        if dic[num][2]==0:

            print("您的包裹已经取完!")

            break

        #输出手机号为 x 的当前所有包裹信息,代码略

        order=input("请输入本次的取件码, 只输入#表示结束取件:")

else:

    print("查无此号,请检查后重新输入!")

综合题 困难