内容正文:
钱清中学4月高二技术学科练习卷
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
阅读下列材料,完成下面小题:
某社区卫生中心构建了“智慧养老云系统”。系统利用传感器实时采集老人的心率、血压及所处环境的图像数据,并通过5G网络上传至服务器。一旦监测到异常情况,系统会自动报警。医生可通过电脑终端查看监测报告,家属们可通过手机APP实时查看老人的状况。
1. 下列对该系统中数据的说法,正确的是( )
A. 传感器采集的数据表现形式单一 B. 通过网络传输的数据不需要依附载体
C. 通过对数据的分析可预测潜在风险 D. 传感器采集的图像数据属于结构化数据
2. 系统运行过程中,应用到人工智能技术的是( )
A. 传感器实时采集心率、血压 B. 识别环境图像中的物体
C. 数据通过网络上传至服务器 D. 发现异常时系统自动报警
3. 下列关于该系统组成的描述,正确的是( )
A. 家属利用手机查看数据时须安装应用软件 B. 服务器的性能对系统运行无影响
C. 电脑终端必须通过网关才能访问服务器 D. 该系统的用户只有医生和家属
4. 该系统的应用优势不包括( )
A. 自动监测数据,提高工作效率 B. 科学分析数据,辅助精准决策
C. 实现远程监护,突破时空限制 D. 提供线上报告,消除数字鸿沟
5. 下列关于该系统网络技术的分析,正确的是( )
A. 利用APP查看状况是网络资源共享的体现
B. 异常情况下系统自动报警无需遵循网络协议
C. 系统中的数据传输均需采用移动通信技术
D. 服务器必须部署在社区卫生中心的局域网中
【答案】1. C 2. B 3. A 4. D 5. A
【解析】
【1题详解】
本题考查数据与数据特征相关知识。A选项错误,传感器采集心率、血压、图像等,表现形式多样;B选项错误,网络传输的数据必须依附网络、设备等载体;C选项正确,系统分析监测数据,可识别异常、预测潜在养老健康风险;D选项错误,图像数据属于非结构化数据,结构化数据多为表格、数值类规整数据。因此,本题选择C选项。
【2题详解】
本题考查人工智能应用相关知识。A选项错误,传感器采集生理数据只是数据采集,无智能分析;B选项正确,识别环境图像中的物体属于计算机视觉,是人工智能典型应用;C选项错误,网络上传数据只是通信传输,不涉及人工智能;D选项错误,自动报警仅为预设条件触发机制,无智能识别与推理。因此,本题选择B选项。
【3题详解】
本题考查信息系统组成相关知识。A选项正确,家属需安装手机APP应用软件才能查看老人状况;B选项错误,服务器承担数据存储、处理转发,性能直接影响系统运行速度和稳定性;C选项错误,电脑终端可直接通过互联网访问服务器,并非必须经过网关;D选项错误,系统用户包含老人、医生、家属、社区卫生中心管理人员等,不只有医生和家属。因此,本题选择A选项。
【4题详解】
本题考查智慧养老系统应用优势相关知识。A选项正确,系统自动监测替代人工值守,提升工作效率;B选项正确,数据分析可为医生诊断、养老服务提供精准决策支撑;C选项正确,手机、电脑远程查看,打破时间空间限制实现远程监护;D选项错误,线上报告需要智能设备和网络操作能力,无法消除数字鸿沟,反而对老年人数字素养有一定要求。因此,本题选择D选项。
【5题详解】
本题考查网络技术应用相关知识。A选项正确,家属通过APP共享服务器中的老人监测数据,属于网络资源共享;B选项错误,所有网络数据传输、报警通信都必须遵循网络协议;C选项错误,系统还有有线网络、局域网传输,并非均采用移动通信技术;D选项错误,服务器可部署在云端外网,不必局限于社区卫生中心局域网。因此,本题选择A选项。
6. 下列关于该系统安全与防护的做法,不合理的是( )
A. 对所有用户设置相同的数据访问控制权限
B. 对异常情况等重要数据定期备份
C. 对传感器和网络设备定期检查
D. 对系统漏洞及时修复
【答案】A
【解析】
【详解】本题考查信息系统安全与防护相关知识。A选项不合理,不同用户应根据职责分配不同的数据访问控制权限,设置相同权限会造成信息安全隐患;B选项合理,对异常情况等重要数据定期备份,可防止数据丢失损坏;C选项合理,对传感器和网络设备定期检查,能保障硬件和网络稳定运行、规避安全故障;D选项合理,及时修复系统漏洞可以防范黑客攻击和系统安全风险。因此,本题选择A选项。
7. 某算法的部分流程图如图所示,若数组元素a[0]至a[n-1]依次存放3,-5,1,2,-4,执行这部分流程后,输出的结果是( )
A. -3 B. 6 C. 7 D. 12
【答案】D
【解析】
【详解】本题考查的是流程图识读。初始i=0,t=0,s=1,a[0]至a[n-1]依次存放3,-5,1,2,-4。算法执行过程如下:
i=0,i<len(a)成立,3>0成立,执行t=a[0]=3,s=s+t=1+3=4,i=i+1=1;
i=1,i<len(a)成立,-5>0不成立,执行s=s+t=4+3=7,i=i+1=2;
i=2,i<len(a)成立,1>0成立,执行t=a[2]=1,s=s+t=7+1=8,i=i+1=3;
i=3,i<len(a)成立,2>0成立,执行t=a[3]=2,s=s+t=8+2=10,i=i+1=4;
i=4,i<len(a)成立,-4>0不成立,执行s=s+t=10+2=12,i=i+1=5;
i=5,i<len(a)不成立,输出s值为12,故选D。
8. 有如下 Python 程序段:
a=[5,3,8,9,7,3,11]
n=len(a)- 1
cnt=0
for i in range(1,n):
if a[i]==a[i+1]-a[i-1]:
cnt+=1
elif a[i]>a[i+1]-a[i-1]:
cnt+=2
else:
cnt+=3
print(cnt)
执行该程序段后,变量 cnt 的值为( )
A. 9 B. 10 C. 11 D. 12
【答案】B
【解析】
【详解】本题主要考查Python程序的执行。
当i=1时,a[i]=3,满足a[i]==a[i+1]-a[i-1],cnt=cnt+1=1;
当i=2时,a[i]=8,满足a[i]>a[i+1]-a[i-1],cnt=cnt+2=3;
当i=3时,a[i]=9,满足a[i]>a[i+1]-a[i-1],cnt=cnt+2=5;
当i=4时,a[i]=7,满足a[i]>a[i+1]-a[i-1],cnt=cnt+2=7;
当i=5时,a[i]=3,满足a[i]<a[i+1]-a[i-1],cnt=cnt+3=10,循环结束。因此执行该程序段后,变量 cnt 的值为10,故本题选B选项。
9. 某队列中,元素出队时队首到队尾的元素依次为B,D,C,E,A,若输出次序为A,B,C,D,E。元素出队后直接输出或重新入队,则重新入队的最少次数为( )
A. 3 B. 4 C. 5 D. 6
【答案】D
【解析】
【详解】本题考查队列的基本操作。原队列队首到队尾元素依次为B、D、C、E、A,目标输出顺序为A、B、C、D、E,元素出队后要么直接输出要么重新入队,推导过程如下:要第一个输出A,必须先将队首的B、D、C、E依次出队重新入队,此时重入次数为4;之后出队A直接输出,此时队列剩余元素顺序为B、D、C、E;接下来输出第二个元素B,出队B直接输出,剩余元素为D、C、E;第三个需要输出C,出队D不符合要求,重新入队,重入次数累计为5,剩余元素为C、E、D;出队C直接输出,剩余元素为E、D;第四个需要输出D,出队E不符合要求,重新入队,重入次数累计为6,剩余元素为D、E;最后依次出队D、E直接输出,即可得到要求的输出顺序,因此重新入队的最少次数是6,对应第四个选项。故答案为:D。
10. 有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
【答案】C
【解析】
【详解】本题考查栈相关内容。栈是一个先入后出的结构。因为d已经入栈并且出栈,因此其入栈的顺序对于我们是未知的,而a、b、c三个元素的相对顺序是确定的,所以他们之间的入栈顺序也是确定的,依次为c、b、a,而d可任意穿插在其中。故本题答案是C选项。
11. 某二叉树的树形结构如图所示,其后序遍历结果为DFEBCA,则中序遍历结果为( )
A. ABCDEF B. ABDEFC C. DBEFAC D. DBFEAC
【答案】C
【解析】
【详解】本题考查二叉树的遍历规则。首先根据后序遍历“左-右-根”的规则,结合题干给出的后序结果DFEBCA和二叉树结构,可以推导出各节点位置:根节点为A,A的左孩子为B、右孩子为C;B的左孩子为D,右孩子为E;E的右孩子为F,该结构的后序遍历结果符合题干要求。中序遍历遵循“左-根-右”的顺序,遍历过程为:先遍历B的左子树得到D,再访问B,再遍历B的右子树得到E、F,因此B子树的中序结果为DBEF;之后访问根节点A,最后访问A的右子树C,最终得到中序遍历结果为DBEFAC,对应第三个选项。故答案为:C。
12. 以下程序段的功能对数组a进行升序排序:
a=[3,10,8,5,7]
n=len(a)
for i in range(n-1):
for j in( ):
if a[j] > a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
则划线处代码为( )
A. range(0,n-i) B. range(n-1,i,-1) C. range(i,n-1) D. range(n-2,i-1,-1)
【答案】D
【解析】
【详解】本题考查的是冒泡排序。数组长度 n = len(a) = 5,数组索引为 0~4,j 的取值需要保证 j+1 不越界(即 j ≤ 3)。选项A,当 i=0 时,range(0,5) 生成 0,1,2,3,4,j=4 时 j+1=5 会越界;选项B,n-1=4,当 i=0 时,range(4,0,-1) 生成 4,3,2,1,j=4 时 j+1=5 会越界;选项C,从第二轮开始,会漏了前面索引的排序。故本题应选D。
二、非选择题(本大题共3小题,其中第13小题7分,第14小题10分,第15小题9分,共26分)
13. 某学校提供了n门不同的选修课程,编号依次为0~n-1,每门课程名额有限。按照要求每位学生须选择自己感兴趣的两门课程。编写Python程序实现功能:根据课程剩余名额以及学生选课数据,判断课程能否按需分配完成并输出结果。请回答下列问题:
(1)若n为4,分配前每门课程剩余名额如图a所示,学生选课数据如图b所示,则课程______(选填:能/不能)完成分配。
课程编号
剩余名额
同学编号
选课数据
0
2
1
1,2
1
3
2
0,1
2
1
3
1,3
3
2
4
0,2
图a
图b
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
num={0:2,1:3,2:1,3:2} #读取每门课程的剩余名额存入字典 num
tch=[[1,2],[0,1],[1,3],[0,2]] #读取每位学生的选课数据,存入列表 tch
①______
for course in ②______:
if num[course[0]] == 0 or num[course[1]]== 0:
flag = False
break #退出循环
else:
③______
num[course[1]] -=1
if flag:
print("课程能完成分配")
else:
print("课程不能完成分配")
【答案】 ①. 不能 ②. flag = True ③. tch ④. num[course[0]] -= 1
【解析】
【详解】本题考查Python综合应用。
(1)逐个检查每个学生的选课:学生1选择了课程1和2,课程1剩余名额减少1,课程2剩余名额减少1,剩余名额为0:2,1:2,2:0,3:2;学生2选择了课程0和1,课程0剩余名额减少1,课程1剩余名额减少1,剩余名额为0:1,1:1,2:0,3:2;学生3选择了课程1和3,课程1剩余名额减少1,课程3剩余名额减少1,剩余名额为0:1,1:0,2:0,3:1;学生4选择了课程0和2,但是课程2的剩余名额为0,无法分配。因此,课程不能完成分配。故答案为:不能。
(2)初始化标志变量flag为True,表示初始状态下假设课程能完成分配。故答案为:flag=True。这里需要检查每个学生的选课情况,确保他们选择的两门课程都有足够的名额。故答案为:tch。如果当前学生选择的两门课程都有剩余名额,则各自减少1个名额。故答案为:num[course[0]]-=1。
14. 某小组模拟搭建苗圃大棚环境监测系统,采用智能终端连接湿度传感器、光线传感器,每分钟采集一次湿度和光照数据,并通过Wi-Fi将数据传输至服务器,存储到数据库中。服务器处理数据后,通过智能终端控制加湿器等设备运行。用户可通过浏览器查询实时和历史数据。请回答下列问题:
(1)该系统中数据流向不合理的是 (单选)
A. 智能终端←执行器 B. 智能终↔端服务器 C. 服务器↔浏览器
(2)编写智能终端程序时,需要知道 (多选)
A. 与传感器连接的智能终端引脚 B. Wi-Fi的SSID及密码
C. 服务器的地址及端口 D. 数据库的文件名
(3)下列关于该系统的说法,正确的有 (多选)
A. 传感器和执行器不能连接至同一智能终端
B. 可以基于Flask Web框架编写服务器端程序
C. 服务器负责所有的数据存储,智能终端负责所有的数据处理
D. 通过浏览器查看系统历史数据需要访问数据库
(4)现需增加水温监测的功能,在智能终端接入温度传感器后,还需对软件部分作多处修改。请用文字描述其中1处修改建议。
(5)将当年3月份的湿度(单位:%RH)数据导出到文件data.xlsx中。部分数据如图a所示。统计3月15日每小时中湿度小于该日平均湿度的次数,选择次数最多的前5个小时的数据按时间(小时)升序排序,绘制如图b所示的柱形图。
月
日
小时
分钟
湿度
3
1
0
0
73
3
1
0
1
73
3
1
0
2
75
3
1
0
3
74
3
1
0
4
72
3
1
0
5
72
3
1
0
6
73
3
1
0
7
71
3
1
0
8
75
3
1
0
9
73
图a
图b
实现上述功能的部分Python程序如下,请选择合适的代码填入划线处(单选)。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("data.xlsx") #读取文件
df1=df[df["日"]==15] #筛选
①____
df1=df1[df1["湿度"]<ave]
②____
#重命名df2中"湿度"列名称为"次数",代码略
df2=df2.sort_values("次数",ascending=False) #降序排序
df3=df2.head(5) #获取前5条数据
③____
#设置绘图参数,选取df3中的数据创建图表,显示如图b所示的柱形图,代码略程序中①②③处可选的代码有:
A.ave=df["湿度"].mean() #求均值
B.ave=df1["湿度"].mean()
C.df2=dfl.groupby("小时",as_index=False).count() #分组计数
D.df2=df1.groupby("湿度",as_index=False).mean()
E.df3=df2.sort_values("小时",ascending=False)
F.df3=df3.sort_values("小时",ascending=True)
【答案】(1)A (2)ABC (3)BD
(4)修改智能终端程序,添加水温数据采集与上传的代码(或修改服务器数据库,新增水温数据存储字段;修改浏览器查询页面,增加水温数据展示模块等,合理即可)。
(5) ①. B ②. C ③. F
【解析】
【小问1详解】
本题考查物联网系统的数据流向分析。执行器需要接收智能终端的控制指令完成动作,正确数据流向为智能终端→执行器,题目中智能终端←执行器方向错误;智能终端向服务器上传采集数据,同时接收服务器下发的控制指令,因此智能终端与服务器双向数据流向合理;浏览器向服务器请求数据,服务器向浏览器返回查询结果,因此服务器与浏览器双向数据流向合理,因此数据流向不合理的是第一个选项。故答案为:A。
【小问2详解】
本题考查智能终端程序开发的基础知识。编写智能终端程序时,读取传感器数据需要知道传感器连接的智能终端引脚;智能终端需要通过Wi-Fi联网传输数据,因此需要知道Wi-Fi的SSID及密码;智能终端需要将数据发送给服务器,因此需要知道服务器的地址和端口;数据库部署在服务器端,智能终端不需要知道数据库的文件名,不需要掌握该信息。故答案为:ABC。
【小问3详解】
本题考查物联网系统的相关知识。传感器负责采集数据、执行器负责执行指令,二者可以连接至同一智能终端,说法错误;Flask Web是常用的后端Web开发框架,可以用来编写该系统的服务器端程序,说法正确;根据题干描述,服务器负责存储和处理所有数据,智能终端仅负责采集数据和执行控制,不是智能终端负责所有数据处理,说法错误;历史数据存储在服务器的数据库中,浏览器查看历史数据需要服务器访问数据库获取数据,因此需要访问数据库,说法正确。故答案为:BD。
【小问4详解】
本题考查物联网系统的功能扩展。新增水温监测功能,可在多个位置修改,任意写出一处合理修改即可。故答案为:修改智能终端程序,添加水温数据采集与上传的代码(或修改服务器数据库,新增水温数据存储字段;修改浏览器查询页面,增加水温数据展示模块等,合理即可)。
【小问5详解】
本题考查Python中pandas库的数据处理操作。①处已经筛选出3月15日的全部数据存入df1,需要计算该日的平均湿度,因此此处应为计算df1湿度列的平均值,选B;②处筛选出湿度小于平均值的数据后,需要按小时分组统计每个小时符合条件的次数,因此需要按小时分组计数,选C;③处已经得到次数最多的前5个小时的数据,题目要求按小时升序排序,因此对df3按小时升序排序,选F。故答案为:①B ②C ③F。
15. 某零件厂有三台不同型号的机器,可生产ABC三种不同型号的零件。厂家每天会收到很多网上订单,每个客户的订单信息包含订单号、型号、数量和状态,其中状态值为1表示确认订单,-1表示取消订单。工作人员首先挑选出确认的订单,然后对订单按零件型号进行分类统计,最后进行生产。订单信息存储在“orders.csv”文件中,文件数据格式如图a所示。
请回答下列问题。
(1)若某天的订单如图b所示,则当天应生产的B型号零件数量为____。
图a
订单号
型号
数量
状态
s001
A
1000
1
s002
B
2000
1
s003
B
1500
-1
s004
C
900
1
s005
B
800
1
s006
C
700
1
s007
A
500
-1
s008
B
600
1
图b
(2)定义如下readdata()函数,函数功能是从订单文件中挑选出确认的订单,并将订单的订单号、型号和数量存储在列表orders中,程序划线处应填入的语句为____。
def readdata():
import csv
f=open("orders.csv","r",encoding="utf-8")
f_csv=csv.reader(f)
title=next(f_csv) #读取标题行
for line in f_csv: #逐行读取数据
if line[3]=="1":
orders.append([line[0], , int(line[2])])
f.close()
return orders
(3)实现按零件型号分类统计零件数量的Python程序如下,程序运行结果如下图c所示。请在程序划线处填入合适的代码。
图c
orders=[] #存储订单信息
readdata()
print("当天订单信息为:
",orders)
n=len(orders);m=3
tlist=[] #以链表形式存储相同型号零件首尾订单的索引值
for i in range(n):
orders[i].append(-1) #orders[i]追加一个元素-1
for i in range(m):
tlist.append([-1,-1])#tlist追加一个元素[-1,-1]
i=0
while i < n:
k=ord(orders[i][1])-ord("A")
if tlist[k][0] == -1:
tlist[k][0]=i
else:
p=tlist[k][1]
①____
tlist[k][1]=i
i+=1
p=0
print("分类订单统计结果为:")
while p < m:
y=tlist[p][0]
total=0
whiley != -1:
print(orders[y][0:3],"->",end="")
②____
y=orders[y][3]
print("共计",total,"个")
③____
【答案】(1)3400 (2)line[1]
(3) ①. orders[p][3] = i ②. total += orders[y][2] ③. p += 1
【解析】
【详解】本题考查Python数据处理与链表算法的应用。
(1)计算当天应生产的B型号零件数量,仅统计状态为1的确认订单,图b中B型号确认订单的数量分别是2000、800、600,状态为-1的取消订单1500不纳入统计,求和得到2000+800+600=3400。
(2)readdata函数需要将确认订单的订单号、型号、数量存入列表orders,读取的每行数据line中,索引1位置存储的是型号数据,因此此处填写line[1]。
(3)①,该程序使用链表存储同型号订单,tlist存储同型号订单的首尾索引,当前新订单索引为i,原来同型号的尾索引是p,需要将原尾节点的下一个索引更新为当前i,因此此处填写orders[p][3] = i。②,遍历同型号链表统计总数量,需要把当前订单的数量累加到总数量total中,当前订单y的数量存储在orders[y][2],因此此处填写total += orders[y][2]。③,外层循环依次遍历A、B、C三个型号,每统计完一个型号,需要将p自增1处理下一个型号,因此此处填写p += 1。
第1页/共1页
学科网(北京)股份有限公司
$
钱清中学4月高二技术学科练习卷
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
阅读下列材料,完成下面小题:
某社区卫生中心构建了“智慧养老云系统”。系统利用传感器实时采集老人的心率、血压及所处环境的图像数据,并通过5G网络上传至服务器。一旦监测到异常情况,系统会自动报警。医生可通过电脑终端查看监测报告,家属们可通过手机APP实时查看老人的状况。
1. 下列对该系统中数据的说法,正确的是( )
A. 传感器采集的数据表现形式单一 B. 通过网络传输的数据不需要依附载体
C. 通过对数据的分析可预测潜在风险 D. 传感器采集的图像数据属于结构化数据
2. 系统运行过程中,应用到人工智能技术的是( )
A. 传感器实时采集心率、血压 B. 识别环境图像中的物体
C. 数据通过网络上传至服务器 D. 发现异常时系统自动报警
3. 下列关于该系统组成的描述,正确的是( )
A. 家属利用手机查看数据时须安装应用软件 B. 服务器的性能对系统运行无影响
C. 电脑终端必须通过网关才能访问服务器 D. 该系统的用户只有医生和家属
4. 该系统的应用优势不包括( )
A. 自动监测数据,提高工作效率 B. 科学分析数据,辅助精准决策
C. 实现远程监护,突破时空限制 D. 提供线上报告,消除数字鸿沟
5. 下列关于该系统网络技术的分析,正确的是( )
A. 利用APP查看状况是网络资源共享的体现
B. 异常情况下系统自动报警无需遵循网络协议
C. 系统中的数据传输均需采用移动通信技术
D. 服务器必须部署在社区卫生中心的局域网中
6. 下列关于该系统安全与防护的做法,不合理的是( )
A. 对所有用户设置相同的数据访问控制权限
B. 对异常情况等重要数据定期备份
C. 对传感器和网络设备定期检查
D. 对系统漏洞及时修复
7. 某算法的部分流程图如图所示,若数组元素a[0]至a[n-1]依次存放3,-5,1,2,-4,执行这部分流程后,输出的结果是( )
A. -3 B. 6 C. 7 D. 12
8. 有如下 Python 程序段:
a=[5,3,8,9,7,3,11]
n=len(a)- 1
cnt=0
for i in range(1,n):
if a[i]==a[i+1]-a[i-1]:
cnt+=1
elif a[i]>a[i+1]-a[i-1]:
cnt+=2
else:
cnt+=3
print(cnt)
执行该程序段后,变量 cnt 的值为( )
A. 9 B. 10 C. 11 D. 12
9. 某队列中,元素出队时队首到队尾的元素依次为B,D,C,E,A,若输出次序为A,B,C,D,E。元素出队后直接输出或重新入队,则重新入队的最少次数为( )
A. 3 B. 4 C. 5 D. 6
10. 有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
11. 某二叉树的树形结构如图所示,其后序遍历结果为DFEBCA,则中序遍历结果为( )
A. ABCDEF B. ABDEFC C. DBEFAC D. DBFEAC
12. 以下程序段的功能对数组a进行升序排序:
a=[3,10,8,5,7]
n=len(a)
for i in range(n-1):
for j in( ):
if a[j] > a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
则划线处代码为( )
A. range(0,n-i) B. range(n-1,i,-1) C. range(i,n-1) D. range(n-2,i-1,-1)
二、非选择题(本大题共3小题,其中第13小题7分,第14小题10分,第15小题9分,共26分)
13. 某学校提供了n门不同的选修课程,编号依次为0~n-1,每门课程名额有限。按照要求每位学生须选择自己感兴趣的两门课程。编写Python程序实现功能:根据课程剩余名额以及学生选课数据,判断课程能否按需分配完成并输出结果。请回答下列问题:
(1)若n为4,分配前每门课程剩余名额如图a所示,学生选课数据如图b所示,则课程______(选填:能/不能)完成分配。
课程编号
剩余名额
同学编号
选课数据
0
2
1
1,2
1
3
2
0,1
2
1
3
1,3
3
2
4
0,2
图a
图b
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
num={0:2,1:3,2:1,3:2} #读取每门课程的剩余名额存入字典 num
tch=[[1,2],[0,1],[1,3],[0,2]] #读取每位学生的选课数据,存入列表 tch
①______
for course in ②______:
if num[course[0]] == 0 or num[course[1]]== 0:
flag = False
break #退出循环
else:
③______
num[course[1]] -=1
if flag:
print("课程能完成分配")
else:
print("课程不能完成分配")
14. 某小组模拟搭建苗圃大棚环境监测系统,采用智能终端连接湿度传感器、光线传感器,每分钟采集一次湿度和光照数据,并通过Wi-Fi将数据传输至服务器,存储到数据库中。服务器处理数据后,通过智能终端控制加湿器等设备运行。用户可通过浏览器查询实时和历史数据。请回答下列问题:
(1)该系统中数据流向不合理的是 (单选)
A. 智能终端←执行器 B. 智能终↔端服务器 C. 服务器↔浏览器
(2)编写智能终端程序时,需要知道 (多选)
A. 与传感器连接的智能终端引脚 B. Wi-Fi的SSID及密码
C. 服务器的地址及端口 D. 数据库的文件名
(3)下列关于该系统的说法,正确的有 (多选)
A. 传感器和执行器不能连接至同一智能终端
B. 可以基于Flask Web框架编写服务器端程序
C. 服务器负责所有的数据存储,智能终端负责所有的数据处理
D. 通过浏览器查看系统历史数据需要访问数据库
(4)现需增加水温监测的功能,在智能终端接入温度传感器后,还需对软件部分作多处修改。请用文字描述其中1处修改建议。
(5)将当年3月份的湿度(单位:%RH)数据导出到文件data.xlsx中。部分数据如图a所示。统计3月15日每小时中湿度小于该日平均湿度的次数,选择次数最多的前5个小时的数据按时间(小时)升序排序,绘制如图b所示的柱形图。
月
日
小时
分钟
湿度
3
1
0
0
73
3
1
0
1
73
3
1
0
2
75
3
1
0
3
74
3
1
0
4
72
3
1
0
5
72
3
1
0
6
73
3
1
0
7
71
3
1
0
8
75
3
1
0
9
73
图a
图b
实现上述功能的部分Python程序如下,请选择合适的代码填入划线处(单选)。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("data.xlsx") #读取文件
df1=df[df["日"]==15] #筛选
①____
df1=df1[df1["湿度"]<ave]
②____
#重命名df2中"湿度"列名称为"次数",代码略
df2=df2.sort_values("次数",ascending=False) #降序排序
df3=df2.head(5) #获取前5条数据
③____
#设置绘图参数,选取df3中的数据创建图表,显示如图b所示的柱形图,代码略程序中①②③处可选的代码有:
A.ave=df["湿度"].mean() #求均值
B.ave=df1["湿度"].mean()
C.df2=dfl.groupby("小时",as_index=False).count() #分组计数
D.df2=df1.groupby("湿度",as_index=False).mean()
E.df3=df2.sort_values("小时",ascending=False)
F.df3=df3.sort_values("小时",ascending=True)
15. 某零件厂有三台不同型号的机器,可生产ABC三种不同型号的零件。厂家每天会收到很多网上订单,每个客户的订单信息包含订单号、型号、数量和状态,其中状态值为1表示确认订单,-1表示取消订单。工作人员首先挑选出确认的订单,然后对订单按零件型号进行分类统计,最后进行生产。订单信息存储在“orders.csv”文件中,文件数据格式如图a所示。
请回答下列问题。
(1)若某天的订单如图b所示,则当天应生产的B型号零件数量为____。
图a
订单号
型号
数量
状态
s001
A
1000
1
s002
B
2000
1
s003
B
1500
-1
s004
C
900
1
s005
B
800
1
s006
C
700
1
s007
A
500
-1
s008
B
600
1
图b
(2)定义如下readdata()函数,函数功能是从订单文件中挑选出确认的订单,并将订单的订单号、型号和数量存储在列表orders中,程序划线处应填入的语句为____。
def readdata():
import csv
f=open("orders.csv","r",encoding="utf-8")
f_csv=csv.reader(f)
title=next(f_csv) #读取标题行
for line in f_csv: #逐行读取数据
if line[3]=="1":
orders.append([line[0], , int(line[2])])
f.close()
return orders
(3)实现按零件型号分类统计零件数量的Python程序如下,程序运行结果如下图c所示。请在程序划线处填入合适的代码。
图c
orders=[] #存储订单信息
readdata()
print("当天订单信息为:
",orders)
n=len(orders);m=3
tlist=[] #以链表形式存储相同型号零件首尾订单的索引值
for i in range(n):
orders[i].append(-1) #orders[i]追加一个元素-1
for i in range(m):
tlist.append([-1,-1])#tlist追加一个元素[-1,-1]
i=0
while i < n:
k=ord(orders[i][1])-ord("A")
if tlist[k][0] == -1:
tlist[k][0]=i
else:
p=tlist[k][1]
①____
tlist[k][1]=i
i+=1
p=0
print("分类订单统计结果为:")
while p < m:
y=tlist[p][0]
total=0
whiley != -1:
print(orders[y][0:3],"->",end="")
②____
y=orders[y][3]
print("共计",total,"个")
③____
第1页/共1页
学科网(北京)股份有限公司
$