内容正文:
高三题库
技术学科
本试卷分两部分,第一部分信息技术,第二部分通用技术。满分100分,考试时间90分钟。
第一部分 信息技术(共50分)
一、选择题(本大题有12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 某银行客户在柜台或ATM机上存、取款后,可通过手机银行APP实时查询余额变化、交易明细等数据。下列关于数据的说法,正确的是( )
A. 存、取款数额相同时余额未发生变化,不会产生新的数据
B. 若干年前的交易明细没有价值
C. 通过手机银行APP查询的数据都是非结构化数据
D. 国家监管部门分析客户的操作有助于防范电诈的发生
【答案】D
【解析】
【详解】本题考查数据及加工处理等相关知识。利用数据的同时,自身的行为也在产生新的数据,故A错;数据在不同的环境中都是有价值的,不同的是价值大小,故B错;查询的余额变化、交易明细等存储在数据库中,是结构化数据,故C错。因此,本题选择D。
2. 某银行客户在柜台或ATM机上存、取款后,可通过手机银行APP实时查询余额变化、交易明细等数据。下列操作中,不能有效提升系统数据加密措施或防入侵能力的是( )
A. 对客户的信息进行加密存储
B. 当账户变动时发送短信通知客户
C. 仅通过官方渠道下载APP
D. 定期修改管理员密码
【答案】B
【解析】
【详解】本题考查信息系统安全相关知识。向客户发送短信提醒属于服务功能,主要用于提升客户的体验感,并不直接增强系统本身的数据安全防护能力,故B错误。其余选项均正确。因此,本题选择B。
3. 某城市智慧交通系统实现红绿灯动态配时,车道旁的摄像头实时分析采集到的图像中行人和车辆的数量,并上传至服务器,服务器根据数量调整绿灯时间;路口设备使用RFD技术实时获取网联公交车、救护车的编号等数据,实现优先通行;该城市智慧交通系统还可以根据历史车流数据预测交通情况,实现红绿灯配时提前优化。下列应用中体现人工智能技术的是( )
A. 摄像头实时分析图像获取人流量
B. 将行人和车辆的数量上传给服务器
C. 服务器发送指令改变绿灯时长
D. 路口设备使用RFID技术获取救护车编号
【答案】A
【解析】
【详解】本题考查人工智能。A选项正确,摄像头实时分析图像获取人流量属于图像识别与智能分析,是人工智能技术的应用。B选项错误,将数量上传服务器属于数据传输,不涉及人工智能。C选项错误,服务器发送指令改变绿灯时长属于自动控制,不涉及人工智能。D选项错误,使用RFID技术获取编号属于自动识别技术,并非人工智能。因此,本题选择A选项。
4. 某城市智慧交通系统实现红绿灯动态配时,车道旁的摄像头实时分析采集到的图像中行人和车辆的数量,并上传至服务器,服务器根据数量调整绿灯时间;路口设备使用RFD技术实时获取网联公交车、救护车的编号等数据,实现优先通行;该城市智慧交通系统还可以根据历史车流数据预测交通情况,实现红绿灯配时提前优化。下列关于该信息系统组成与功能的说法,不正确的是( )
A. 信号灯颜色改变,说明系统对数据进行了加工与处理
B. 红绿灯动态配时可以提高出行效率,节能减排
C. 机动车车牌号属于该系统中的软件
D. 行人属于该信息系统的用户
【答案】C
【解析】
【详解】本题考查系统的功能与组成相关知识。信息系统由五个关键要素组成,分别是硬件、软件、数据、通信网络和用户,摄像头采集行人和车辆的图像,并识别数量,控制绿灯时长,所以车辆和行人构成该系统中的数据,故C错。其余选项均正确。因此,本题选择C。
5. 某城市智慧交通系统实现红绿灯动态配时,车道旁的摄像头实时分析采集到的图像中行人和车辆的数量,并上传至服务器,服务器根据数量调整绿灯时间;路口设备使用RFD技术实时获取网联公交车、救护车的编号等数据,实现优先通行;该城市智慧交通系统还可以根据历史车流数据预测交通情况,实现红绿灯配时提前优化。下列关于该系统中网络的说法,正确的是( )
A. 服务器必须部署局域网中才能正常工作
B. 网络摄像头工作时无需获取IP地址
C. 公交车只能通过5G联网
D. 仅上传采集到的数据可有效节省带宽
【答案】D
【解析】
【详解】本题考查计算机网络基础知识相关知识。A选项错误,服务器可以部署在广域网中,并非必须在局域网。B选项错误,网络摄像头需要IP地址才能在网络中通信。C选项错误,公交车联网方式有多种,并非只能通过5G。D选项正确,仅上传采集处理后的有效数据可以减少传输量,有效节省带宽。因此,本题选择D选项。
6. 某城市智慧交通系统实现红绿灯动态配时,车道旁的摄像头实时分析采集到的图像中行人和车辆的数量,并上传至服务器,服务器根据数量调整绿灯时间;路口设备使用RFD技术实时获取网联公交车、救护车的编号等数据,实现优先通行;该城市智慧交通系统还可以根据历史车流数据预测交通情况,实现红绿灯配时提前优化。若将摄像头采集的图像存储为未经压缩的BMP格式文件,下列说法不正确的是( )
A. 图像采集模块的位深度会影响画质
B. 采集到数字图像是矢量图形
C. 图像中行人和车辆的数量与文件存储容量无关
D. 为节省存储空间,可将BMP格式转换为JPEG格式
【答案】B
【解析】
【详解】本题考查图像编码与存储相关知识。A选项正确,图像的位深度会直接影响图像的色彩丰富程度和画质。B选项错误,摄像头采集的图像属于位图,不是矢量图形。C选项正确,文件存储容量由分辨率、位深度等决定,与画面内容无关。D选项正确,JPEG是压缩格式,转换后可以节省存储空间。因此,本题选择B选项。
7. 某算法的部分流程图如图所示,数组a的值为[4,1,3,5,6,2],执行这部分流程后,输出a的值为( )
A. [1,2,3,4,5,6] B. [4,1,3,5,6,2] C. [4,2,1,3,5,6] D. [4,1,2,3,5,6]
【答案】D
【解析】
【详解】本题考查流程图知识。该流程图体现插入排序算法的第一轮的整个过程,流程图描述的是通过比较将列表中元素逐个后移的办法,从后往前把列表a的最后一个元素插入到第一个不大于它的元素后面。所以正确答案是D。
8. 循环队列Q从队首到队尾的元素依次为"p","y","t","h","o","n"。约定:U操作是指元素出队,H操作是指元素出队后再入队。经过UHHUHHUH系列操作后,队列Q中队首到队尾的元素依次为( )
A. ont B. hon C. tno D. noh
【答案】A
【解析】
【详解】本题考查循环队列的操作。
操作
循环队列Q
U
ython
H
thony
H
honyt
U
onyt
H
nyto
H
yton
U
ton
H
ont
因此,本题选择A。
9. 已知一棵完全二叉树有5个叶子节点,下列关于该二叉树的说法正确的是( )
A. 度为1的节点一定有有0个 B. 最多有9个节点
C. 第4层可能有3个节点 D. 深度为5
【答案】C
【解析】
【详解】本题考查二叉树及相关知识。完全二叉树度为1的节点只能为0或1个,n0=n2+1,其中“n0”是指叶子节点(度为0的节点)的数量,而“n1”是指度为1的节点数量,“n2”是指度为2的节点数量。同时,完全二叉树度为1的节点数量最多只有一个,因此n1只能为0或1。已知n0=5,则n2为4,n1为1或0,则二叉树中总的节点数n=n0+n1+n2=9或10,如图所示,故B错;深度最大为4,故D错,度为1的节点可以为0或1,故A错。因此,本题选择C。
10. 对于数组a=["6","8","1","2","1"],分别执行以下两个程序段,说法正确的是( )
def quick(a):
if len(a) <= 1:
return a
L="";M="";R="';
for x in a:
if x<p:
L+=x
elif x==p:
M+=x
else:
R+=x
return quick(L)+M+quick(R)
n=len(a);flag=True;i=0
while i<n-1 and flag:
flag=False
for j in range:
if a[j]<a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
flag=True
i+=1
甲程序段
乙程序段
A. 两个程序段都采用了递归算法
B. 两个程序段都将数组a降序排序
C. 甲程序段中加框处代码可以修改为p=a[-1]
D. 乙程序段中加框处代码可以修改为(n-i,i,-1)
【答案】C
【解析】
【详解】本题考查递归算法及排序相关知识。甲程序段为递归实现快速排序,实现升序排序,基准可以采用a[0]、a[-1]或a[len(a)//2],乙程序段为优化后的冒泡排序,实现降序排序,D选项中的排序范围错误。因此,本题选择C。
11 有如下Python程序段:
import random
a=[random.randint(1,100) for i in range(10)] #随机生成10个1~100之间的整数
st=[0]*len(a); top=f=-1
for i in range(len(a)):
while top>=0 and f*a[i]<f*st[top]:
top-=1
top+=1;st[top]=a[i]
f=-f
print(st[0:top+1])
执行该程序段后,输出结果不可能是( )
A. [65,78,13,92,75,85] B. [27,27,88]
C. [41] D. [6,6,7,7,88,67,90,5]
【答案】D
【解析】
【详解】本题考查栈、随机数相关知识。
当栈为空是,a数组中元素入栈,每执行一次外循环f的值都变换,索引为偶数时f为正1,索引为奇数时,f为负1,由输出结果的最后一位向前推,数据为大小大小的关系。输出结果列表长度不足10,说明中间的数据执行while循环时出栈。D选项错在从输出最后一位向前推,为小大小大的关系。
A
……
78
13
92
75
85
大
小
大
小
大
D
……
7
88
67
90
5
小
大
小
大
小
因此,本题选择D。
12. 列表d存储了升序链表的节点(节点数大于0),每个节点包含数据区域和指针区域,head为头指针。现要仅保留链表中数据值在[start, end]范围内的节点。实现该功能的Python部分程序段如下,方框内应填入的正确代码为( )
q=p=head
while p != -1:
if d[p][0] >= start and d[p][0] <= end:
q=p
p=d[p][1]
else:
A. if head!=p:
head=d[p][1]
else:
d[q][1]=-1
p=d[p][1]
B. if d[p][0]>end:
head=d[p][1]
else:
d[p][1]=-1
p=d[p][1]
C. if d[p][0]<start:
head=d[p][1]
else:
d[q][1]=-1
p=d[p][1]
D. if d[p][0]<start:
head=d[p][1]
else:
d[p][1]=-1
p=d[p][1]
A. A B. B C. C D. D
【答案】C
【解析】
【详解】本题考查链表节点的删除操作。根据题意要求,删除的节点为数据值在[start,end]之外的节点。分析代码,p为当前节点,q为p的前驱节点。整体逻辑如下:用if语句判断数据值,若数值在[start,end]之间的节点p,则指向下一个节点,q也随之变化,依次往后进行;否则,要将当前节点删除,即执行方框内的语句。删除节点p时要考虑两种情况:若当前节点的数值小于start,需要更新head的值为节点p的下一个节点,代码为head=d[p][1];否则就剩下当前节点的值已大于end,此时需将节点p的前驱节点作为尾节点,代码为d[q][1]=-1。因此,本题选择C。
二、非选择题(本大题共3小题,其中第13小题8分,第14小题9分,第15小题9分,共26分)
13. 小明模拟搭建智慧图书馆座位预定系统。智能终端连接安装于每个座位上的红外传感器和座位指示灯,红外传感器探测人体是否就座,探测结果控制指示灯的颜色(座位空闲显示绿色,否则显示橙色),并通过无线通信方式向服务器发送座位的状态信息,服务器统计当前座位状态,用户可以通过浏览器查询座位使用情况并预定座位。请回答下列问题:
(1)在搭建该监测系统时,每个智能终端连接的传感器和执行器数量合理的是__________(A.只能连接1个传感器和1个执行器/B.可以连接多个传感器和多个执行器)。
(2)智能终端通过URL向服务器传输数据时,需要知道__________。
A.智能终端的IP地址 B.智能终端的CPU型号
C服务器中对应路由名称 D.服务器中数据库名称
(3)现需增加图书馆内空气温湿度监测功能,在智能终端接入温湿度传感器后,必须要对软件部分做的修改有__________。
A.增加智能终端程序中向服务器上传温湿度传感器数据的代码
B.修改服务器端程序,增加接收温湿度传感器数据并写入数据库的代码
C.增加接收温湿度传感器数据的新的路由与视图函数的代码
D.修改智能终端程序中服务器地址及端口号
(4)若用户未能在规定时间内到达,则系统会扣除信用分t(每位用户原始信用分为600),每超时一次扣100,实现该功能的代码为t=max(0,t-100),下列程序段中与其作用相同的是__________。
A. t-=100
if t<0:
t=0
B. if t<0:
t=0
else:
t-=100
C. if t>100:
t-=100
if t<0:
t=0
D. if t>100:
t-=100
else:
t=0
(5)系统运行后,发现某座位没有人坐但是指示灯长期保持橙色。若指示灯本身无故障,且其与智能终端的连接也无故障,请用文字描述可能的原因__________。
【答案】 ①. B ②. C ③. AB ④. AD ⑤. 传感器故障、软件逻辑错误或其他合理原因
【解析】
【详解】本题考查信息系统硬件搭建综合知识。
(1)每个智能终端可以连接多个传感器和多个执行器,故选B。
(2)本题考查数据的传输,需要知道服务器地址及端口,对应的路由。
(3)本题考查软件的修改,当增加了温湿度传感器后,增加智能终端程序中向服务器上传温湿度传感器数据的代码,如设置采集频率;修改服务器端程序,增加接收温湿度传感器数据并写入数据库的代码,如数据库中增加温度、湿度两个字段。
(4)本小题主要考查分支结构,当计算得到的信用分大于等于0时,将实际的计算结果赋给t,若信用分小于0,则将0赋给t。B选项未考虑到信用分为0的情况,当t=0,则执行else,t=-100,与题干代码不符,故B错;C选项未考虑到信用分为100的情况,故C错。
(5)本题是开放题,答案多样,可能是传感器故障,阈值设置错误等软件原因。
14. 智慧图书馆座位预定系统已采集了一年的数据,座位空闲率高于0.6的为低效区域。现要对这些数据进行分析,请回答下列问题:
(1)小明将某一周内图书馆各区域每小时的座位空闲率导出,存入output.xlsx文件中,如图a所示,现要找出座位空闲率最高的区域,并统计该区域每日空闲率高于0.6的小时数量,绘制如图b所示的线形图,实现上述功能的部分Python程序如下,请选择合适的代码填入划线处①②③
df=pd.read_excel("output.xlsx")
df["日期"]=df["时间"].astype(str).str[:10] #获取时间列中的年月日
df1=df.groupby("区域",as_index=False)["座位空闲率"].mean()
df2=①___
oid=df2.at[0,"区域"]
df_qy=②___
df3=df_qy[df_qy.座位空闲率>0.6]
df4=③___
plt.plot(df4["日期"],df4["座位空闲率"])
#设置绘图参数,显示如图b所示的线形图,代码略
程序中①②③处可选代码有:
A. df1.sort_values("座位空闲率",ascending=False,ignore_index=True)
B. df1.sort_values("座位空闲率",ascending=True,ignore_index=True)
C. df3.groupby("日期"as_index=False).座位空闲率.count()
D. df1.groupby("时间").座位空闲率.mean()
E. df[df.区域==oid]
F. df2[df2.区域==oid]
(2)通过提升硬件和服务,更多用户预约座位空闲率最高的区域。将该区域最新一周的座位空闲率存储于data列表中,要求改小某个高于0.6的值,求最长连续序列,其中每个值都小于0.6(若有多个长度相同的子序列,选择最早出现的)。示例执行结果如下图所示。实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
length=0;start=0;pos=-1
for i in range(①___):
if data[i] > 0.6:
mdata=data[:] #复制列表data数据
mdata[i]=0.5 #修改为小于0.6的值
curlen =0;max = 0;start_pos= 0;temp = 0
for j in range(len(mdata)):
if mdata[j] < 0.6:
if curlen == 0:
②___
curlen += 1
if curlen > max:
max = curlen
start_pos = temp
else:
curlen = 0
if③___
length=max
start=start_pos
pos=i
#输出最佳修改位置pos、最长子序列长度length和子序列起始位置start,代码略
【答案】 ①. A ②. E ③. C ④. len(data) ⑤. temp=j ⑥. max > length
【解析】
【详解】本题考查pandas数据处理知识,最长连续序列算法。
(1)①找出座位空闲率最高的区域;选A。②筛选出座位空闲率最高的区域的所有数据;选E。③统计每天该区域座位空闲率超过0.6的小时个数;选C。
(2)①需要给出循环序列,题目要求在data列表中遍历,所以循环序列是data长度,故填len(data)。
②由if条件可知,当前长度为0时,将j作为子序列起始位置,故填temp=j。
③判断最新的子序列长度是否为最长,若是,则为最佳修改位置、最长子序列长度和子序列起始位置赋值,故填max > length。
15. 某医院有n个手术室,除紧急手术外,使用手术室都需要前若干天预约。每天零点前系统对每个手术室当天的预约按开始时间进行升序排序,并将当天零点之后新增的预约手术插入到已排序好的数组中(时间已转换为分钟),如图a所示。为提高预约成功率,系统升级,用户输入预估手术时长,系统自动统计当天各手术室空闲时间,显示存在指定预约时长的手术室的开始和结束时间,程序执行后如图b所示。编写Python程序模拟该系统功能。
输入当日使用手术室的新预约:宫腔镜手术,0R1,15:00,16:40
预约成功!
{'OR1':[[ '膝关节置换术'、'OR1'、480、540、['痔疮手术','OR1',600,720],['宫腔镜手术','OR1',900,1000]],'OR2':[['冠状动脉搭桥术', 'OR2',570,810]], 'OR4':[[ '肺移植手术', 'OR4',610,1000]]、'OR3'[['肠道肿瘤切除', 'OR3',900,1050]]}
图a
输入预估手术时间(分钟):30
手术室OR1的空闲时间:[['09:00','10:00'],['12:00','15:00'], ['16:40','17:30']
手术室OR2的空闲时间:[['08:00','09:30'],['13:30','17:30']]
手术室OR3的空闲时间:['08:00','15:00']
手术室OR4的空闲时间:[['08:00','10:10'],['16:40','17:30']]
图b
(1)定义bsearch(new, array)函数,参数new与参数array的每个元素均由手术名称、手术室编号、手术开始时间、手术结束时间4项构成,函数功能是查找新增预约插入数组的合适位置,定义conflict函数,函数功能是判断新增预约是否与数组内元素存在冲突,若新预约的时间和当前预约的时间重叠,则判断为存在冲突。请在划线处填入正确的答案。
①若图a中,将新预约修改为:“宫腔镜手术,OR1,9:30,12:30”,则________(填写:有/没有)存在冲突。
def conflict(new,array,mid): #冲突检查函数,若存在冲突返回True,否则返回False
#代码略
def bsearch(new,array): #二分插入函数,查找新增预约插入数组的合适位置
left,right=0,len(array)
while left<=right:
mid=(left+right)//2
if conflict(new,array,mid):
return "fail" #插入失败
elif new[2]>array[mid][2]:
left=mid+1
else:
right=mid-1
return②___
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
""当天的手术室预约存入res数组,数组中的每个元素包含手术名称、手术室编号、手术开始时间、手术结束时间4个数据项(时间已转换为分钟,如“08:00”转换为480),例如[["膝关节置换术","OR1",480,540]……];key为新增的预约在当天的信息,例如["痔疮手术","OR1",600,720]""
sort(res) #将预约按手术开始时间升序排序
pos={}
for j in range(len(res)): #将已排序的预约按预约手术室分类
if res[j][1] in pos:
pos[res[j][1]] += [res[j]]
else:
①___
#输入当日使用手术室的新预约key,代码略
ins=bsearch(key,pos[key[1]])
if ins=="fail"
print("预约冲突!")
else:
print("预约成功!")
pos[key[1]] = pos[key[1]][:ins] + [key] + pos[key[1]][ins:]
(3)系统升级后的部分Python程序如下,请在划线处填入合适的代码。
""
输入手术室早、晚开放时间,分别存储在变量open、close中,如open=480,代表早上8:00开放,代码略
""
def cf(n): #将时间683转换成“11:23”的形式
#代码略
OR=["OR1","OR2","OR3","OR4"]
min=int(input("请输入预估手术时间(分钟):"))
for i in OR:
②___
b=[]
for j in range(len(a)):
if j==0 and a[j][2]-open>min:
b.append([cf(open),cf(a[j][2])])
if j==len(a)-1:
if close-a[j][3]>min:
b.append([cf(a[j][3]),cf(close)])
elif③___:
b.append([cf(a[j][3]),cf(a[j+1][2])])
if b:
print("手术室"+i+"的空闲时间:",b)
【答案】 ①. 有 ②. left 或right+1 ③. pos[res[j][1]]=[res[j]] ④. a=pos[i] ⑤. a[j+1][2]-a[j][3]>min
【解析】
【详解】本题模拟真实情境,考查字典、数组和二分查找算法知识。
(1)考查二分查找,新预约可以插入数组的条件是:新预约的结束时间早于当前结点的开始时间,说明新预约的手术在当前手术前进行;新预约的开始时间晚于当前结点的结束时间,说明新预约的手术在当前手术之后进行,表明存在冲突情况。①处是新预约的手术在当前手术之后的这种情况。②查找适合的插入位置,使用了二分查找插入算法,准确的位置应该是left。
(2)①是字典中已有键的值的添加,故填pos[res[j][1]]=[res[j]]。
(3)②处为a赋初始值,从字典中将某个手术室的列表取出,故填a=pos[i]。
③是当前结点的结束时间与后一结点的开始时间的差值比预估的手术时间min小,故填a[j+1][2]-a[j][3]>min。
第1页/共1页
学科网(北京)股份有限公司
$
高三题库
技术学科
本试卷分两部分,第一部分信息技术,第二部分通用技术。满分100分,考试时间90分钟。
第一部分 信息技术(共50分)
一、选择题(本大题有12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 某银行客户在柜台或ATM机上存、取款后,可通过手机银行APP实时查询余额变化、交易明细等数据。下列关于数据的说法,正确的是( )
A. 存、取款数额相同时余额未发生变化,不会产生新的数据
B. 若干年前交易明细没有价值
C. 通过手机银行APP查询的数据都是非结构化数据
D. 国家监管部门分析客户的操作有助于防范电诈的发生
2. 某银行客户在柜台或ATM机上存、取款后,可通过手机银行APP实时查询余额变化、交易明细等数据。下列操作中,不能有效提升系统数据加密措施或防入侵能力是( )
A. 对客户的信息进行加密存储
B. 当账户变动时发送短信通知客户
C. 仅通过官方渠道下载APP
D. 定期修改管理员密码
3. 某城市智慧交通系统实现红绿灯动态配时,车道旁摄像头实时分析采集到的图像中行人和车辆的数量,并上传至服务器,服务器根据数量调整绿灯时间;路口设备使用RFD技术实时获取网联公交车、救护车的编号等数据,实现优先通行;该城市智慧交通系统还可以根据历史车流数据预测交通情况,实现红绿灯配时提前优化。下列应用中体现人工智能技术的是( )
A. 摄像头实时分析图像获取人流量
B. 将行人和车辆的数量上传给服务器
C. 服务器发送指令改变绿灯时长
D. 路口设备使用RFID技术获取救护车编号
4. 某城市智慧交通系统实现红绿灯动态配时,车道旁的摄像头实时分析采集到的图像中行人和车辆的数量,并上传至服务器,服务器根据数量调整绿灯时间;路口设备使用RFD技术实时获取网联公交车、救护车的编号等数据,实现优先通行;该城市智慧交通系统还可以根据历史车流数据预测交通情况,实现红绿灯配时提前优化。下列关于该信息系统组成与功能的说法,不正确的是( )
A. 信号灯颜色改变,说明系统对数据进行了加工与处理
B. 红绿灯动态配时可以提高出行效率,节能减排
C. 机动车车牌号属于该系统中的软件
D. 行人属于该信息系统的用户
5. 某城市智慧交通系统实现红绿灯动态配时,车道旁的摄像头实时分析采集到的图像中行人和车辆的数量,并上传至服务器,服务器根据数量调整绿灯时间;路口设备使用RFD技术实时获取网联公交车、救护车的编号等数据,实现优先通行;该城市智慧交通系统还可以根据历史车流数据预测交通情况,实现红绿灯配时提前优化。下列关于该系统中网络的说法,正确的是( )
A. 服务器必须部署在局域网中才能正常工作
B. 网络摄像头工作时无需获取IP地址
C. 公交车只能通过5G联网
D. 仅上传采集到的数据可有效节省带宽
6. 某城市智慧交通系统实现红绿灯动态配时,车道旁的摄像头实时分析采集到的图像中行人和车辆的数量,并上传至服务器,服务器根据数量调整绿灯时间;路口设备使用RFD技术实时获取网联公交车、救护车的编号等数据,实现优先通行;该城市智慧交通系统还可以根据历史车流数据预测交通情况,实现红绿灯配时提前优化。若将摄像头采集的图像存储为未经压缩的BMP格式文件,下列说法不正确的是( )
A. 图像采集模块的位深度会影响画质
B. 采集到的数字图像是矢量图形
C. 图像中行人和车辆的数量与文件存储容量无关
D. 为节省存储空间,可将BMP格式转换为JPEG格式
7. 某算法的部分流程图如图所示,数组a的值为[4,1,3,5,6,2],执行这部分流程后,输出a的值为( )
A. [1,2,3,4,5,6] B. [4,1,3,5,6,2] C. [4,2,1,3,5,6] D. [4,1,2,3,5,6]
8. 循环队列Q从队首到队尾的元素依次为"p","y","t","h","o","n"。约定:U操作是指元素出队,H操作是指元素出队后再入队。经过UHHUHHUH系列操作后,队列Q中队首到队尾的元素依次为( )
A. ont B. hon C. tno D. noh
9. 已知一棵完全二叉树有5个叶子节点,下列关于该二叉树的说法正确的是( )
A. 度为1的节点一定有有0个 B. 最多有9个节点
C. 第4层可能有3个节点 D. 深度为5
10. 对于数组a=["6","8","1","2","1"],分别执行以下两个程序段,说法正确的是( )
def quick(a):
if len(a) <= 1:
return a
L="";M="";R="';
for x in a:
if x<p:
L+=x
elif x==p:
M+=x
else:
R+=x
return quick(L)+M+quick(R)
n=len(a);flag=True;i=0
while i<n-1 and flag:
flag=False
for j in range:
if a[j]<a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
flag=True
i+=1
甲程序段
乙程序段
A. 两个程序段都采用了递归算法
B. 两个程序段都将数组a降序排序
C. 甲程序段中加框处代码可以修改为p=a[-1]
D. 乙程序段中加框处代码可以修改为(n-i,i,-1)
11. 有如下Python程序段:
import random
a=[random.randint(1,100) for i in range(10)] #随机生成10个1~100之间的整数
st=[0]*len(a); top=f=-1
for i in range(len(a)):
while top>=0 and f*a[i]<f*st[top]:
top-=1
top+=1;st[top]=a[i]
f=-f
print(st[0:top+1])
执行该程序段后,输出结果不可能是( )
A. [65,78,13,92,75,85] B. [27,27,88]
C. [41] D. [6,6,7,7,88,67,90,5]
12. 列表d存储了升序链表的节点(节点数大于0),每个节点包含数据区域和指针区域,head为头指针。现要仅保留链表中数据值在[start, end]范围内的节点。实现该功能的Python部分程序段如下,方框内应填入的正确代码为( )
q=p=head
while p != -1:
if d[p][0] >= start and d[p][0] <= end:
q=p
p=d[p][1]
else:
A. if head!=p:
head=d[p][1]
else:
d[q][1]=-1
p=d[p][1]
B. if d[p][0]>end:
head=d[p][1]
else:
d[p][1]=-1
p=d[p][1]
C. if d[p][0]<start:
head=d[p][1]
else:
d[q][1]=-1
p=d[p][1]
D. if d[p][0]<start:
head=d[p][1]
else:
d[p][1]=-1
p=d[p][1]
A. A B. B C. C D. D
二、非选择题(本大题共3小题,其中第13小题8分,第14小题9分,第15小题9分,共26分)
13. 小明模拟搭建智慧图书馆座位预定系统。智能终端连接安装于每个座位上的红外传感器和座位指示灯,红外传感器探测人体是否就座,探测结果控制指示灯的颜色(座位空闲显示绿色,否则显示橙色),并通过无线通信方式向服务器发送座位的状态信息,服务器统计当前座位状态,用户可以通过浏览器查询座位使用情况并预定座位。请回答下列问题:
(1)在搭建该监测系统时,每个智能终端连接的传感器和执行器数量合理的是__________(A.只能连接1个传感器和1个执行器/B.可以连接多个传感器和多个执行器)。
(2)智能终端通过URL向服务器传输数据时,需要知道__________。
A.智能终端的IP地址 B.智能终端的CPU型号
C.服务器中对应路由名称 D.服务器中数据库名称
(3)现需增加图书馆内空气温湿度监测功能,在智能终端接入温湿度传感器后,必须要对软件部分做修改有__________。
A.增加智能终端程序中向服务器上传温湿度传感器数据的代码
B.修改服务器端程序,增加接收温湿度传感器数据并写入数据库的代码
C.增加接收温湿度传感器数据的新的路由与视图函数的代码
D.修改智能终端程序中服务器地址及端口号
(4)若用户未能在规定时间内到达,则系统会扣除信用分t(每位用户原始信用分为600),每超时一次扣100,实现该功能的代码为t=max(0,t-100),下列程序段中与其作用相同的是__________。
A. t-=100
if t<0:
t=0
B. if t<0:
t=0
else:
t-=100
C. if t>100:
t-=100
if t<0:
t=0
D. if t>100:
t-=100
else:
t=0
(5)系统运行后,发现某座位没有人坐但是指示灯长期保持橙色。若指示灯本身无故障,且其与智能终端的连接也无故障,请用文字描述可能的原因__________。
14. 智慧图书馆座位预定系统已采集了一年的数据,座位空闲率高于0.6的为低效区域。现要对这些数据进行分析,请回答下列问题:
(1)小明将某一周内图书馆各区域每小时的座位空闲率导出,存入output.xlsx文件中,如图a所示,现要找出座位空闲率最高的区域,并统计该区域每日空闲率高于0.6的小时数量,绘制如图b所示的线形图,实现上述功能的部分Python程序如下,请选择合适的代码填入划线处①②③
df=pd.read_excel("output.xlsx")
df["日期"]=df["时间"].astype(str).str[:10] #获取时间列中的年月日
df1=df.groupby("区域",as_index=False)["座位空闲率"].mean()
df2=①___
oid=df2.at[0,"区域"]
df_qy=②___
df3=df_qy[df_qy.座位空闲率>0.6]
df4=③___
plt.plot(df4["日期"],df4["座位空闲率"])
#设置绘图参数,显示如图b所示的线形图,代码略
程序中①②③处可选代码有:
A. df1.sort_values("座位空闲率",ascending=False,ignore_index=True)
B. df1.sort_values("座位空闲率",ascending=True,ignore_index=True)
C. df3.groupby("日期"as_index=False).座位空闲率.count()
D. df1.groupby("时间").座位空闲率.mean()
E. df[df.区域==oid]
F. df2[df2.区域==oid]
(2)通过提升硬件和服务,更多用户预约座位空闲率最高的区域。将该区域最新一周的座位空闲率存储于data列表中,要求改小某个高于0.6的值,求最长连续序列,其中每个值都小于0.6(若有多个长度相同的子序列,选择最早出现的)。示例执行结果如下图所示。实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
length=0;start=0;pos=-1
for i in range(①___):
if data[i] > 0.6:
mdata=data[:] #复制列表data数据
mdata[i]=0.5 #修改为小于0.6的值
curlen =0;max = 0;start_pos= 0;temp = 0
for j in range(len(mdata)):
if mdata[j] < 0.6:
if curlen == 0:
②___
curlen += 1
if curlen > max:
max = curlen
start_pos = temp
else:
curlen = 0
if③___
length=max
start=start_pos
pos=i
#输出最佳修改位置pos、最长子序列长度length和子序列起始位置start,代码略
15. 某医院有n个手术室,除紧急手术外,使用手术室都需要前若干天预约。每天零点前系统对每个手术室当天的预约按开始时间进行升序排序,并将当天零点之后新增的预约手术插入到已排序好的数组中(时间已转换为分钟),如图a所示。为提高预约成功率,系统升级,用户输入预估手术时长,系统自动统计当天各手术室空闲时间,显示存在指定预约时长的手术室的开始和结束时间,程序执行后如图b所示。编写Python程序模拟该系统功能。
输入当日使用手术室的新预约:宫腔镜手术,0R1,15:00,16:40
预约成功!
{'OR1':[[ '膝关节置换术'、'OR1'、480、540、['痔疮手术','OR1',600,720],['宫腔镜手术','OR1',900,1000]],'OR2':[['冠状动脉搭桥术', 'OR2',570,810]], 'OR4':[[ '肺移植手术', 'OR4',610,1000]]、'OR3'[['肠道肿瘤切除', 'OR3',900,1050]]}
图a
输入预估手术时间(分钟):30
手术室OR1的空闲时间:[['09:00','10:00'],['12:00','15:00'], ['16:40','17:30']
手术室OR2的空闲时间:[['08:00','09:30'],['13:30','17:30']]
手术室OR3的空闲时间:['08:00','15:00']
手术室OR4的空闲时间:[['08:00','10:10'],['16:40','17:30']]
图b
(1)定义bsearch(new, array)函数,参数new与参数array的每个元素均由手术名称、手术室编号、手术开始时间、手术结束时间4项构成,函数功能是查找新增预约插入数组的合适位置,定义conflict函数,函数功能是判断新增预约是否与数组内元素存在冲突,若新预约的时间和当前预约的时间重叠,则判断为存在冲突。请在划线处填入正确的答案。
①若图a中,将新预约修改为:“宫腔镜手术,OR1,9:30,12:30”,则________(填写:有/没有)存在冲突。
def conflict(new,array,mid): #冲突检查函数,若存在冲突返回True,否则返回False
#代码略
def bsearch(new,array): #二分插入函数,查找新增预约插入数组的合适位置
left,right=0,len(array)
while left<=right:
mid=(left+right)//2
if conflict(new,array,mid):
return "fail" #插入失败
elif new[2]>array[mid][2]:
left=mid+1
else:
right=mid-1
return②___
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
""当天的手术室预约存入res数组,数组中的每个元素包含手术名称、手术室编号、手术开始时间、手术结束时间4个数据项(时间已转换为分钟,如“08:00”转换为480),例如[["膝关节置换术","OR1",480,540]……];key为新增的预约在当天的信息,例如["痔疮手术","OR1",600,720]""
sort(res) #将预约按手术开始时间升序排序
pos={}
for j in range(len(res)): #将已排序的预约按预约手术室分类
if res[j][1] in pos:
pos[res[j][1]] += [res[j]]
else:
①___
#输入当日使用手术室的新预约key,代码略
ins=bsearch(key,pos[key[1]])
if ins=="fail"
print("预约冲突!")
else:
print("预约成功!")
pos[key[1]] = pos[key[1]][:ins] + [key] + pos[key[1]][ins:]
(3)系统升级后的部分Python程序如下,请在划线处填入合适的代码。
""
输入手术室早、晚开放时间,分别存储在变量open、close中,如open=480,代表早上8:00开放,代码略
""
def cf(n): #将时间683转换成“11:23”的形式
#代码略
OR=["OR1","OR2","OR3","OR4"]
min=int(input("请输入预估手术时间(分钟):"))
for i in OR:
②___
b=[]
for j in range(len(a)):
if j==0 and a[j][2]-open>min:
b.append([cf(open),cf(a[j][2])])
if j==len(a)-1:
if close-a[j][3]>min:
b.append([cf(a[j][3]),cf(close)])
elif③___:
b.append([cf(a[j][3]),cf(a[j+1][2])])
if b:
print("手术室"+i+"的空闲时间:",b)
第1页/共1页
学科网(北京)股份有限公司
$