内容正文:
金丽衢十二校2025学年高三第一次联考
技术试题
考生须知:
1.本卷满分100分,考试时间90分钟;
2.答题前,在答题卷指定区域填写学校、班级、姓名、试场号、座位号及准考证号。
3.所有答案必须写在答题卷上,写在试卷上无效;考试结束后,只需上交答题卷。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 自动驾驶技术会通过传感器(如摄像头、激光雷达等)收集大量有关环境、路况及车辆状态等的数据,再由基于深度学习和规则引擎的人工智能算法做出驾驶决策,实时处理复杂场景(如红灯识别、紧急避障)。下列关于数据和信息的描述,不正确的是( )
A. 计算机中的数据为数字信号
B. 自动驾驶实时采集环境数据,需进行流计算
C. 信息具有时效性,过期的信息没有价值
D. 信息存储需要载体,但可以脱离所反映对象
2. 自动驾驶技术会通过传感器(如摄像头、激光雷达等)收集大量有关环境、路况及车辆状态等的数据,再由基于深度学习和规则引擎的人工智能算法做出驾驶决策,实时处理复杂场景(如红灯识别、紧急避障)。根据材料,下列措施不能提升自动驾驶技术安全性的是( )
A. 增加摄像头或激光雷达数量 B. 扩大训练数据样本量
C. 扩展规则引擎知识库的知识储备 D. 增加系统从环境中反馈学习机会
3. 某智能家居系统是通过网络技术整合通信设备、家用电器及安防装置的综合管理系统。通过手机app来远程遥控家居各智能系统,例如在回家的路上提前打开家中的空调和热水器;采用人脸识别开门,并自动开启家中的照明灯具和窗帘;智能摄像头实时监控屋内情况。下列关于摄像头传感器说法正确的是( )
A. 视频采集实现了数模转换
B. 视频数据属于结构化数据
C. 为了节省存储空间,可将视频存成AVI格式
D. 视频的颜色种类越多,则量化位数越大
4. 某智能家居系统是通过网络技术整合通信设备、家用电器及安防装置的综合管理系统。通过手机app来远程遥控家居各智能系统,例如在回家的路上提前打开家中的空调和热水器;采用人脸识别开门,并自动开启家中的照明灯具和窗帘;智能摄像头实时监控屋内情况。下列关于系统中的网络技术说法正确的是( )
A. 手机必须连接移动通信网络才能实现远程控制
B. 家用电器可以用RFID技术直接连接家庭网络
C. 手机app远程控制家居系统需要网络协议的支持
D. 各设备通过无线网络连接,所以信息传输时无须传输介质
5. 某智能家居系统是通过网络技术整合通信设备、家用电器及安防装置的综合管理系统。通过手机app来远程遥控家居各智能系统,例如在回家的路上提前打开家中的空调和热水器;采用人脸识别开门,并自动开启家中的照明灯具和窗帘;智能摄像头实时监控屋内情况。关于关于系统安全和数据保护说法合理的是( )
A. 可安装防火墙来确保系统不被黑客入侵
B. 监控数据需进行数据加密以提高数据的安全性
C. 为系统增加不间断电源可消除系统的外部环境的依赖性
D. 家庭成员共享一个账户,可以更加方便快捷
6. 某智能家居系统是通过网络技术整合通信设备、家用电器及安防装置的综合管理系统。通过手机app来远程遥控家居各智能系统,例如在回家的路上提前打开家中的空调和热水器;采用人脸识别开门,并自动开启家中的照明灯具和窗帘;智能摄像头实时监控屋内情况。下列关于该系统的功能和设计说法正确的是( )
A. 自动开启照明系统的功能属于人工智能的技术应用
B. 该系统的用户是指所有的家庭成员
C. 系统采用C/S架构,优势是可以减少系统的通信开销
D. 该智能家居控制系统是系统软件
7. 某算法的流程图如图所示,当输入的a值为113,则输出s的值为( )
A. 423 B. 324 C. 234 D. 432
8. 某非完全二叉树包含5个节点,前序遍历为ABCDE,其中C是叶子节点。删除一个节点后刚好变成完全二叉树,以下对于该非完全二叉树说法不正确的是( )
A. 根节点为A B. 该二叉树的形态有2种
C. 节点E一定是节点D孩子节点 D. 深度为3,节点E在第二层
9. 某队列中,队首到队尾元素依次为A,B,C,D,E。元素出队后直接输出或入栈,出栈的元素直接输出或者再次入队,若输出次序为C,A,B,D,E,则至少有多少个元素入过栈( )
A. 1 B. 2 C. 3 D. 4
10. 定义如下递归函数
def f(n,c):
if n <= c:
return 1
else:
return f(n//c,c)+2*c
print(f(15,2))
程序运行结束后,输出结果为( )
A. 10 B. 13 C. 12 D. 11
11. 有如下python程序:
s=input('请输入字符串')
f=1; num=0; snum=0; maxm=0
for i in range(len(s)):
if '0' <= s[i] <= '9':
num=num*10+int(s[i])
else:
if maxm < num:
maxm=num
snum+=f*maxm
f=-f; num=0
print(snum)
输入的字符串为3a2ab5abc6,输出的结果是( )
A. -2 B. 6 C. 0 D. 5
12. 有如下python程序:
a=[1,3,3,3,4,5]
i=0; j=len(a)-1; c=0; n=len(a); flag=False
key=random.random(0,4)
while i <= j and not flag:
m=(i+j)//2
c+=1
if a[m] == key:
flag=True
if a[m] > key:
j=m-1
else:
i=m+1
print(n-i)
下列说法不正确的是( )
A. 若c的值为3,则key的值只能为2
B. 若key的值为3,退出时i的值为3
C. 输出n-i代表大于key的数据个数
D. 若key在列表a中不存在,则必有i=j+1
二、非选择题(本大题共3小题,其中第13小题7分,第14小题10分,第15小题9分,共26分)
13. 有一品牌店,会员每次消费完后都可以获得相应的积分,积分存在列表a中,并按消费时间升序排序,现要求出该会员恰好连续消费获得积分和为key的数据索引区间。请回答下列问题:
(1)若a=[2,3,6,2,6,2,3,9,7,4],若输入的key值为11,则符合要求的区间有____个
(2)实现上述功能的python代码如下,请在划线处填入合适的代码。
a=[2,3,6,2,6,2,3,9,7,4]
①____
s=[0]*n;s[0]=a[0]
key=int(input('请输入积分和key'))
for i in range(1,n):
②____
for i in range(n):
if s[i] == key:
print('和为key的索引为',0,'-',i)
for j in range (③____):
if s[i]-s[j] == key:
print('和为key的索引为',j+1,'-',i)
14. 为了检测学生在教室自习的专注度,小张在高三年级各个班级内安装了噪音检测系统。该系统通过声音传感器采集教室内的声音,声音数据通过智能终端传输至服务器,服务器将数据写入数据库,若教室内的噪音超过阈值,服务器下达指令驱动对应教室的LED报警灯亮起。小张可以通过浏览器查看班级噪音的历史数据。请回答下列各题。
(1)为完成系统的搭建,需要编写的程序为____
A.服务器程序 B.客户端和服务器程序
(2)下列关于系统说法正确的是____(多选)
A.智能终端判定噪音量超过阈值时驱动执行器LED报警亮起
B.小张访问历史数据时需访问数据库
C.当室内噪音音量较大时,音频存储容量会变大
D.智能终端有数据处理能力
(3)高三年级共有10个班,音量检测设备从17点到20点每小时采集一次,voice.xlsx存储了10月13日至10月17日的五天数据,部分数据如图所示。为了评选出专注度最高的班级,需要找出5天时间内班级平均分贝最低的班级。实现上述功能的python代码如下,请选择合适的代码填入划线处。
日期
时
班级
分贝
1013
17
1
71
1013
17
2
50
1013
17
3
45
1013
17
4
46
1013
17
5
64
1013
17
6
69
1013
17
7
66
1013
17
8
78
1013
17
9
67
1013
17
10
65
1013
18
1
70
1013
18
2
77
1013
18
3
69
1013
18
4
56
1013
18
5
75
1013
18
6
69
1013
18
7
72
1013
18
8
56
1013
18
9
70
1013
18
10
64
1013
19
1
58
import pandas as pd
import matplotlib.pyplot as plt
df= pd.read_excel('voice.xlsx')
df1=①____
df2=②____
bj=③____
A.df.groupby('班级',as_index= False).分贝.mean()
B.df1.sort_values('分贝'ignore_index= True)
C.df.groupby('日期',as_index= False).分贝.mean()
D.df1.sort_values('班级',ignore_index= True)
E.df2.at[0,'班级']
F.df2.at[len(df)-1'班级']
(4)进一步分析平均分贝最低班级日均分贝值,并作柱形图。
df3=____
df4=df3.groupby('日期').mean()
plt.title(str(bj)+'班级日分贝平均值')
plt.bar(df4.日期,df4.分贝)
plt.show()
(5)请通过增加传感器和执行器对该系统功能进行扩展,写出增加的传感器和执行器。____
15. 货物堆叠问题。现有n件货物,各货物的重量存储在a列表中,现需要把货物堆放在各个货柜中,货柜编号从1开始,货柜数量充足。
堆放规则如下:(1)新货物需堆放在比它重的货物之上;(2)若多个货柜符合要求,则选择与货柜顶部货物重量差值最小的货柜存储;若差值相同则选择货柜号小的;(3)若所有货柜的顶部货物都比新货物轻,则新开一个货柜存放;
(1)若货物重量分别为15,12,17,12,15,10,9,则第1个货柜存放了多少件货物?____
(2)阅读下面代码,完成填空。
"'现有n件货物,各货物的重量存储在a列表中,a[i]中有2个数据项,a[i][0],a[i][1]分别表示货物编号及货物重量'"
n=len(a)
for i in range(n):
a[i].append(-1)
h=[0]; t=[0] #第1个货物直接放入第1个货柜
def sort_dis(op,x):
for i in range(1,len(op)):
for j in range(i,0,-1):
if abs(a[t[op[j]]][1]-a[x][1]) < abs(a[t[j-1]]])[1]-a[x][1]):
①____
return op
for i in range(1,n):
m=len(t); k=0; option=[]
while ②____:
if a[t][k][1] > a[i][1]:
option.append(k)
k+=1
if ③____:
h.append(i); t.append(i)
else:
option= sort_dis(option,i)
k=option[0]
④____
t[k]=i
print('堆放所有货物所需货柜数为:',len(h))
for i in range(len(h)):
p=h[i]
print(i+1,'号货柜堆放情况为:',end=")
while p != -1:
if a[p][2] != -1:
print(a[p][0],'->',end=")
else:
print(a[p][0])
p=a[p][2]
第1页/共1页
学科网(北京)股份有限公司
$
金丽衢十二校2025学年高三第一次联考
技术试题
考生须知:
1.本卷满分100分,考试时间90分钟;
2.答题前,在答题卷指定区域填写学校、班级、姓名、试场号、座位号及准考证号。
3.所有答案必须写在答题卷上,写在试卷上无效;考试结束后,只需上交答题卷。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 自动驾驶技术会通过传感器(如摄像头、激光雷达等)收集大量有关环境、路况及车辆状态等的数据,再由基于深度学习和规则引擎的人工智能算法做出驾驶决策,实时处理复杂场景(如红灯识别、紧急避障)。下列关于数据和信息的描述,不正确的是( )
A. 计算机中的数据为数字信号
B. 自动驾驶实时采集环境数据,需进行流计算
C. 信息具有时效性,过期信息没有价值
D 信息存储需要载体,但可以脱离所反映对象
【答案】C
【解析】
【详解】本题考查信息与数据的基本特性。选项A正确,计算机中的数据确实是以数字信号形式存在的。选项B正确,自动驾驶技术需要实时处理大量数据,流计算是其实现方式之一。选项C错误,信息确实具有时效性,即其价值可能随时间变化,但“过期的信息没有价值”的说法过于绝对。选项D正确,信息必须依赖物理载体(如硬盘、纸张)存储和传递,但一旦被记录,就可以独立于所反映对象存在。故答案为:C。
2. 自动驾驶技术会通过传感器(如摄像头、激光雷达等)收集大量有关环境、路况及车辆状态等的数据,再由基于深度学习和规则引擎的人工智能算法做出驾驶决策,实时处理复杂场景(如红灯识别、紧急避障)。根据材料,下列措施不能提升自动驾驶技术安全性的是( )
A. 增加摄像头或激光雷达数量 B. 扩大训练数据样本量
C. 扩展规则引擎知识库的知识储备 D. 增加系统从环境中反馈学习机会
【答案】D
【解析】
【详解】本题考查自动驾驶技术安全性提升的措施。增加系统从环境中反馈学习机会可能会导致系统在未经过充分验证的情况下做出错误决策,从而降低安全性。因此,增加系统从环境中反馈学习机会不能提升自动驾驶技术的安全性。故答案为:D。
3. 某智能家居系统是通过网络技术整合通信设备、家用电器及安防装置的综合管理系统。通过手机app来远程遥控家居各智能系统,例如在回家的路上提前打开家中的空调和热水器;采用人脸识别开门,并自动开启家中的照明灯具和窗帘;智能摄像头实时监控屋内情况。下列关于摄像头传感器说法正确的是( )
A 视频采集实现了数模转换
B. 视频数据属于结构化数据
C. 为了节省存储空间,可将视频存成AVI格式
D. 视频的颜色种类越多,则量化位数越大
【答案】D
【解析】
【详解】本题考查摄像头传感器相关的知识点。A. 视频采集实现了数模转换:视频采集过程是将现实世界中的模拟光信号(连续信号)转换为数字信号(离散信号),这属于模数转换(ADC),因此该说法错误。B. 视频数据属于结构化数据:视频数据通常是非结构化数据,因为它不具有固定的格式或结构。C. 为了节省存储空间,可将视频存成AVI格式:AVI格式是一种视频文件格式,但并不一定是最节省空间的格式,通常压缩格式如MP4更节省空间。D. 视频的颜色种类越多,则量化位数越大:视频的颜色种类越多,确实需要更多的位数来表示颜色信息,因此该说法正确。故答案为:D。
4. 某智能家居系统是通过网络技术整合通信设备、家用电器及安防装置的综合管理系统。通过手机app来远程遥控家居各智能系统,例如在回家的路上提前打开家中的空调和热水器;采用人脸识别开门,并自动开启家中的照明灯具和窗帘;智能摄像头实时监控屋内情况。下列关于系统中的网络技术说法正确的是( )
A. 手机必须连接移动通信网络才能实现远程控制
B. 家用电器可以用RFID技术直接连接家庭网络
C. 手机app远程控制家居系统需要网络协议的支持
D. 各设备通过无线网络连接,所以信息传输时无须传输介质
【答案】C
【解析】
【详解】本题考查网络技术在智能家居系统中的应用。智能家居系统通过网络技术整合通信设备、家用电器及安防装置,实现远程控制和管理。选项A错误,因为手机可以通过Wi-Fi或其他互联网连接实现远程控制,不仅限于移动通信网络。选项B错误,RFID技术主要用于识别和追踪,而不是直接连接网络。选项C正确,手机app远程控制家居系统需要网络协议的支持,如TCP/IP协议,以确保数据的正确传输和设备的有效控制。选项D错误,无线网络仍需要传输介质,如电磁波。故答案为:C。
5. 某智能家居系统是通过网络技术整合通信设备、家用电器及安防装置的综合管理系统。通过手机app来远程遥控家居各智能系统,例如在回家的路上提前打开家中的空调和热水器;采用人脸识别开门,并自动开启家中的照明灯具和窗帘;智能摄像头实时监控屋内情况。关于关于系统安全和数据保护说法合理的是( )
A. 可安装防火墙来确保系统不被黑客入侵
B. 监控数据需进行数据加密以提高数据的安全性
C. 为系统增加不间断电源可消除系统的外部环境的依赖性
D. 家庭成员共享一个账户,可以更加方便快捷
【答案】B
【解析】
【详解】本题考查系统安全和数据保护的知识点。智能家居系统通过网络技术整合通信设备、家用电器及安防装置,确保系统安全和数据保护是其重要组成部分。选项A防火墙是一种网络安全设备,用于监控和控制网络流量,防止未经授权的访问,有助于提升系统安全,但防火墙不能“确保”系统绝对不被黑客入侵。选项B提到监控数据需进行数据加密以提高数据的安全性,这是保护数据隐私的重要手段。选项C系统对外部环境的依赖性无法消除。选项D提到家庭成员共享一个账户,这可能导致安全隐患,因为账户共享可能导致未经授权的访问。故答案为:B。
6. 某智能家居系统是通过网络技术整合通信设备、家用电器及安防装置的综合管理系统。通过手机app来远程遥控家居各智能系统,例如在回家的路上提前打开家中的空调和热水器;采用人脸识别开门,并自动开启家中的照明灯具和窗帘;智能摄像头实时监控屋内情况。下列关于该系统的功能和设计说法正确的是( )
A. 自动开启照明系统的功能属于人工智能的技术应用
B. 该系统的用户是指所有的家庭成员
C. 系统采用C/S架构,优势是可以减少系统的通信开销
D. 该智能家居控制系统是系统软件
【答案】C
【解析】
【详解】本题考查智能家居系统的功能和设计的理解能力。自动开启照明系统是基于预设规则(如人脸识别开门后触发)的自动化操作,而非人工智能(AI)技术,选项A说法错误;系统的用户不仅限于家庭成员,还包括持有手机app的授权用户(如房主、访客或管理员),选项B说法错误;C/S(Client/Server)架构指客户端/服务器架构,题干中手机app作为客户端,家居系统作为服务器端,通过网络交互(如远程控制空调、监控摄像头),选项C说法正确;系统软件是管理计算机硬件和基本操作的核心软件(如操作系统、驱动程序),智能家居系统属于应用软件,专为特定任务(家居控制)设计,并非系统软件,选项D说法错误。故本题应选C。
7. 某算法的流程图如图所示,当输入的a值为113,则输出s的值为( )
A. 423 B. 324 C. 234 D. 432
【答案】A
【解析】
【详解】本题考查算法流程图的理解与执行过程。观察该流程图可知它实际上是在将输入的整数 a 转换为它的五进制表示。将 113 转成五进制的过程如下:求最大不超过 113 的 5 的幂,依次得到 5³ =125(大于 113)、5²=25(小于等于 113),因此先从 5³ 开始做除法会得到首位 0;然后继续用更小的幂(25、5、1)依次求商和余数。 113 ÷ 125 = 0 (余 113),113 ÷ 25 = 4 (余 13),13 ÷ 5 = 2 (余 3),3 ÷ 1 = 3 (余 0),最终拼出的五进制为 0423;去掉前导 0 即得 423。故答案为:A。
8. 某非完全二叉树包含5个节点,前序遍历为ABCDE,其中C是叶子节点。删除一个节点后刚好变成完全二叉树,以下对于该非完全二叉树的说法不正确的是( )
A. 根节点为A B. 该二叉树的形态有2种
C. 节点E一定是节点D孩子节点 D. 深度为3,节点E在第二层
【答案】D
【解析】
【详解】本题考查二叉树的性质及其结构变化。前序遍历为ABCDE,A是第一个节点,因此A是根节点(选项A正确)。 B是A的后继节点,因此B是A的左孩子。 C是B的后继节点,且C是叶子节点(无子节点)。在序列中,C之后是D,这意味着D不能是C的子节点(因为C无子),因此D是B的右孩子。 序列连续为A→B→C→D→E,结合C是叶子节点,推断结构可能为: A有左孩子B和右孩子D。 B有右孩子C(叶子节点,无左孩子)。 D有孩子E(E在层3,是D的左孩子或右孩子)。故本题应选D。
9. 某队列中,队首到队尾的元素依次为A,B,C,D,E。元素出队后直接输出或入栈,出栈的元素直接输出或者再次入队,若输出次序为C,A,B,D,E,则至少有多少个元素入过栈( )
A. 1 B. 2 C. 3 D. 4
【答案】D
【解析】
【详解】本题考查队列和栈的混合操作能力。模拟操作过程如下:
出队 A:不能输出(因为输出序列以 C 开头),只能入栈 → 栈:[A](A 入栈),队列:B, C, D, E。
出队 B:不能输出(C 需先输出),只能入栈 → 栈:[B, A](B 入栈,栈顶 B),队列:C, D, E。
出队 C:可以输出(输出序列以 C 开头) → 输出 C,栈:[B, A],队列:D, E。
出栈 B:不能输出(输出序列下一个是 A),只能入队 → 队列:D, E, B(B 入队),栈:[A]。
出栈 A:可以输出(输出序列下一个是 A) → 输出 A,栈:空,队列:D, E, B。
出队 D:不能输出(输出序列下一个是 B),只能入栈 → 栈:[D](D 入栈),队列:E, B。
出队 E:不能输出(B 需先输出),只能入栈 → 栈:[E, D](E 入栈,栈顶 E),队列:B。
出队 B:可以输出(输出序列下一个是 B) → 输出 B,栈:[E, D],队列:空。
出栈 E:不能输出(输出序列下一个是 D),只能入队 → 队列:E,栈:[D]。
出栈 D:可以输出(输出序列下一个是 D) → 输出 D,栈:空,队列:E。
出队 E:可以输出 → 输出 E。共有4个元素入栈。故本题应选D。
10. 定义如下递归函数
def f(n,c):
if n <= c:
return 1
else:
return f(n//c,c)+2*c
print(f(15,2))
程序运行结束后,输出结果为( )
A. 10 B. 13 C. 12 D. 11
【答案】B
【解析】
【详解】本题考查递归函数的调用与计算过程。递归函数f(n,c)的定义中,当n≤c时,返回1;否则,返回f(n//c,c)+2*c。我们需要计算f(15,2)的值。详细的解析过程如下:1. 初始调用f(15,2),因为15>2,进入else分支,计算f(15//2,2)+2*2。2. 计算15//2,结果为7,继续调用f(7,2)。3. 在f(7,2)中,7>2,进入else分支,计算f(7//2,2)+2*2。4. 计算7//2,结果为3,继续调用f(3,2)。5. 在f(3,2)中,3>2,进入else分支,计算f(3//2,2)+2*2。6. 计算3//2,结果为1,继续调用f(1,2)。7. 在f(1,2)中,1≤2,返回1。8. 回溯到f(3,2),结果为1+4=5。9. 回溯到f(7,2),结果为5+4=9。10. 回溯到f(15,2),结果为9+4=13。故答案为:B。
11. 有如下python程序:
s=input('请输入字符串')
f=1; num=0; snum=0; maxm=0
for i in range(len(s)):
if '0' <= s[i] <= '9':
num=num*10+int(s[i])
else:
if maxm < num:
maxm=num
snum+=f*maxm
f=-f; num=0
print(snum)
输入的字符串为3a2ab5abc6,输出的结果是( )
A. -2 B. 6 C. 0 D. 5
【答案】A
【解析】
【详解】本题考查字符串处理和循环控制能力。初始化:f=1,num=0,snum=0,maxm=0。
i=0:s[0]='3'(数字),num = 0*10 + 3 = 3;
i=1:s[1]='a'(非数字) maxm < num → 0 < 3 真,maxm = 3,snum += f * maxm → 0 + 1*3 = 3,f = -f → f = -1(符号翻转),num = 0;
i=2:s[2]='2'(数字),num = 0*10 + 2 = 2;
i=3:s[3]='a'(非数字) maxm < num → 3 < 2 假,maxm 不变(仍为 3),snum += f * maxm → 3 + (-1)*3 = 0,f = -f → f = 1,num = 0;
i=4:s[4]='b'(非数字) num=0,maxm < num 假(不更新),snum += f * maxm → 0 + 1*3 = 3,f = -f → f = -1,num = 0;
i=5:s[5]='5'(数字),num = 0*10 + 5 = 5;
i=6:s[6]='a'(非数字) maxm < num → 3 < 5 真,maxm = 5,snum += f * maxm → 3 + (-1)*5 = -2,f = -f → f = 1,num = 0;
i=7:s[7]='b'(非数字) num=0,maxm < num 假(不更新),snum += f * maxm → -2 + 1*5 = 3,f = -f → f = -1,num = 0;
i=8:s[8]='c'(非数字) num=0,maxm < num 假(不更新),snum += f * maxm → 3 + (-1)*5 = -2,f = -f → f = 1,num = 0;
i=9:s[9]='6'(数字),num = 0*10 + 6 = 6(循环结束,未处理),输出:print(snum) → -2。故本题应选A。
12. 有如下python程序:
a=[1,3,3,3,4,5]
i=0; j=len(a)-1; c=0; n=len(a); flag=False
key=random.random(0,4)
while i <= j and not flag:
m=(i+j)//2
c+=1
if a[m] == key:
flag=True
if a[m] > key:
j=m-1
else:
i=m+1
print(n-i)
下列说法不正确的是( )
A. 若c的值为3,则key的值只能为2
B. 若key的值为3,退出时i的值为3
C. 输出n-i代表大于key的数据个数
D. 若key在列表a中不存在,则必有i=j+1
【答案】C
【解析】
【详解】本题考查二分查找算法的理解及其在Python程序中的应用。由key=random.random(0,4),可知key值是0~4的整数。key=0:c=2(循环2次);key=1:c=2;key=2:c=3(循环3次:m=2→m=0→m=1,均未匹配);key=3:c=1(首次匹配);key=4:c=2。仅 key=2 时 c=3,因此 A 正确。当 key=3 时,第一次循环:m=2,a[2]=3 匹配,设置 flag=True,然后执行 i=m+1=3。由于 flag=True,循环退出,i 值为 3,因此选项B正确。当 key 存在时,程序调整 i 的方式导致 n-i 可能包含等于 key 的元素,而非严格大于,因此选项C错误。当 key 不存在时,循环因 i > j 退出,且由于 i 和 j 是整数,必有 i = j + 1(例如 key=2 时,i=1, j=0;key=6 时,i=6, j=5)。因此选项D正确。故本题应选C。
二、非选择题(本大题共3小题,其中第13小题7分,第14小题10分,第15小题9分,共26分)
13. 有一品牌店,会员每次消费完后都可以获得相应的积分,积分存在列表a中,并按消费时间升序排序,现要求出该会员恰好连续消费获得积分和为key的数据索引区间。请回答下列问题:
(1)若a=[2,3,6,2,6,2,3,9,7,4],若输入的key值为11,则符合要求的区间有____个
(2)实现上述功能的python代码如下,请在划线处填入合适的代码。
a=[2,3,6,2,6,2,3,9,7,4]
①____
s=[0]*n;s[0]=a[0]
key=int(input('请输入积分和key'))
for i in range(1,n):
②____
for i in range(n):
if s[i] == key:
print('和为key的索引为',0,'-',i)
for j in range (③____):
if s[i]-s[j] == key:
print('和为key的索引为',j+1,'-',i)
【答案】 ①. 4 ②. n=len(a) ③. s[i]=s[i-1]+a[i] ④. i或0,i
【解析】
【详解】本题考查连续子数组和的计算与索引区间的确定能力。
(1)对于列表a=[2,3,6,2,6,2,3,9,7,4],我们需要找出连续子数组的和为key=11的区间。通过计算可以发现,符合条件的区间有以下几个:从索引0到索引2的子数组[2,3,6]和为11。从索引1到索引3的子数组[3,6,2]和为11。从索引4到索引6的子数组[2,6,3]和为11。从索引8到索引9的子数组[7,4]和为11。故答案为:4。
(2)① n = len(a):定义变量 n 存储列表 a 长度,用于初始化前缀和数组 s。② s[i] = s[i-1] + a[i]:在循环中计算前缀和,s[i] 等于前一个前缀和 s[i-1] 加上当前元素 a[i]。③ i:内层循环 j 的范围是 range(i),表示 j 从 0 到 i-1。这样 s[i] - s[j] 计算的是从索引 j+1 到 i 的子数组和(因为 s[j] 是 0 到 j 的和,差值为 j+1 到 i 的和)。
14. 为了检测学生在教室自习的专注度,小张在高三年级各个班级内安装了噪音检测系统。该系统通过声音传感器采集教室内的声音,声音数据通过智能终端传输至服务器,服务器将数据写入数据库,若教室内的噪音超过阈值,服务器下达指令驱动对应教室的LED报警灯亮起。小张可以通过浏览器查看班级噪音的历史数据。请回答下列各题。
(1)为完成系统的搭建,需要编写的程序为____
A.服务器程序 B.客户端和服务器程序
(2)下列关于系统说法正确的是____(多选)
A.智能终端判定噪音量超过阈值时驱动执行器LED报警亮起
B.小张访问历史数据时需访问数据库
C.当室内噪音音量较大时,音频存储容量会变大
D.智能终端有数据处理能力
(3)高三年级共有10个班,音量检测设备从17点到20点每小时采集一次,voice.xlsx存储了10月13日至10月17日的五天数据,部分数据如图所示。为了评选出专注度最高的班级,需要找出5天时间内班级平均分贝最低的班级。实现上述功能的python代码如下,请选择合适的代码填入划线处。
日期
时
班级
分贝
1013
17
1
71
1013
17
2
50
1013
17
3
45
1013
17
4
46
1013
17
5
64
1013
17
6
69
1013
17
7
66
1013
17
8
78
1013
17
9
67
1013
17
10
65
1013
18
1
70
1013
18
2
77
1013
18
3
69
1013
18
4
56
1013
18
5
75
1013
18
6
69
1013
18
7
72
1013
18
8
56
1013
18
9
70
1013
18
10
64
1013
19
1
58
import pandas as pd
import matplotlib.pyplot as plt
df= pd.read_excel('voice.xlsx')
df1=①____
df2=②____
bj=③____
A.df.groupby('班级',as_index= False).分贝.mean()
B.df1.sort_values('分贝',ignore_index= True)
C.df.groupby('日期',as_index= False).分贝.mean()
D.df1.sort_values('班级',ignore_index= True)
E.df2.at[0,'班级']
F.df2.at[len(df)-1,'班级']
(4)进一步分析平均分贝最低班级日均分贝值,并作柱形图。
df3=____
df4=df3.groupby('日期').mean()
plt.title(str(bj)+'班级日分贝平均值')
plt.bar(df4.日期,df4.分贝)
plt.show()
(5)请通过增加传感器和执行器对该系统功能进行扩展,写出增加的传感器和执行器。____
【答案】 ①. B ②. BD ③. A ④. B ⑤. E ⑥. df[df.班级==bj]或df[df['班级']==bj] ⑦. 传感器:温度传感器 执行器:风扇开关 或其他合理答案
【解析】
【详解】本题考查系统设计与编程能力。
(1)为了完成系统的搭建,需要编写的程序包括客户端和服务器程序。客户端负责采集数据并传输至服务器,服务器负责处理数据并控制报警灯。故答案为:B。
(2)A选项错误,因为是服务器而非智能终端判定噪音量超过阈值时驱动LED报警灯亮起。B选项正确,小张访问历史数据时需访问数据库。C选项错误,音频存储容量与噪音音量无直接关系。D选项正确,智能终端具备一定的数据处理能力。故答案为:BD。
(3)为了找出5天时间内班级平均分贝最低的班级,首先需要按班级分组计算平均分贝,然后排序并获取分贝最低的班级。①应为按班级分组计算平均分贝,故选择A;②应为对分贝排序,故选择B;③应为获取分贝最低的班级,故选择E。故答案为:ABE。
(4)为了进一步分析平均分贝最低班级的日均分贝值,并作柱形图,需要从原数据中筛选出该班级的数据。df3应为筛选出平均分贝最低的班级的数据,故应为df[df.班级==bj]或df[df['班级']==bj]。
(5)可以通过增加温度传感器来监测教室温度,并通过风扇开关来调节温度,以提高学生的舒适度和专注度。
15. 货物堆叠问题。现有n件货物,各货物的重量存储在a列表中,现需要把货物堆放在各个货柜中,货柜编号从1开始,货柜数量充足。
堆放规则如下:(1)新货物需堆放在比它重的货物之上;(2)若多个货柜符合要求,则选择与货柜顶部货物重量差值最小的货柜存储;若差值相同则选择货柜号小的;(3)若所有货柜的顶部货物都比新货物轻,则新开一个货柜存放;
(1)若货物重量分别为15,12,17,12,15,10,9,则第1个货柜存放了多少件货物?____
(2)阅读下面代码,完成填空。
"'现有n件货物,各货物重量存储在a列表中,a[i]中有2个数据项,a[i][0],a[i][1]分别表示货物编号及货物重量'"
n=len(a)
for i in range(n):
a[i].append(-1)
h=[0]; t=[0] #第1个货物直接放入第1个货柜
def sort_dis(op,x):
for i in range(1,len(op)):
for j in range(i,0,-1):
if abs(a[t[op[j]]][1]-a[x][1]) < abs(a[t[j-1]]])[1]-a[x][1]):
①____
return op
for i in range(1,n):
m=len(t); k=0; option=[]
while ②____:
if a[t][k][1] > a[i][1]:
option.append(k)
k+=1
if ③____:
h.append(i); t.append(i)
else:
option= sort_dis(option,i)
k=option[0]
④____
t[k]=i
print('堆放所有货物所需的货柜数为:',len(h))
for i in range(len(h)):
p=h[i]
print(i+1,'号货柜堆放情况为:',end=")
while p != -1:
if a[p][2] != -1:
print(a[p][0],'->',end=")
else:
print(a[p][0])
p=a[p][2]
【答案】 ①. 4 ②. op[j-1],op[j]=op[j],op[j-1] ③. k<m ④. len(option)==0或option==[] ⑤. a[t[k]][2]=i
【解析】
【详解】本题考查的是链表综合应用。
(1)货物 1(重量 15):无货柜,开新货柜 1 存放。货柜 1 状态:[15],顶部重量 15。 货物 2(重量 12):需放在比它重(>12)的货物上。货柜 1 顶部 15 > 12,符合,放入货柜 1。货柜 1 状态:[15, 12],顶部重量 12。 货物 3(重量 17):需放在比它重(>17)的货物上。货柜 1 顶部 12 < 17,不符合。开新货柜 2 存放。货柜 2 状态:[17],顶部重量 17。 货物 4(重量 12):需放在比它重(>12)的货物上。货柜 1 顶部 12(等于,不满足严格大于),不符合;货柜 2 顶部 17 > 12,符合,放入货柜 2。货柜 2 状态:[17, 12],顶部重量 12。 货物 5(重量 15):需放在比它重(>15)的货物上。货柜 1 顶部 12 < 15,不符合;货柜 2 顶部 12 < 15,不符合。开新货柜 3 存放。货柜 3 状态:[15],顶部重量 15。 货物 6(重量 10):需放在比它重(>10)的货物上。货柜 1 顶部 12 > 10,符合;货柜 2 顶部 12 > 10,符合;货柜 3 顶部 15 > 10,符合。多个货柜符合,计算差值: 货柜 1:|12 - 10| = 2 货柜 2:|12 - 10| = 2 货柜 3:|15 - 10| = 5 最小差值为 2,货柜 1 和 2 差值相同,选货柜号小的货柜 1。放入货柜 1。货柜 1 状态:[15, 12, 10],顶部重量 10。 货物 7(重量 9):需放在比它重(>9)的货物上。货柜 1 顶部 10 > 9,符合;货柜 2 顶部 12 > 9,符合;货柜 3 顶部 15 > 9,符合。计算差值: 货柜 1:|10 - 9| = 1 货柜 2:|12 - 9| = 3 货柜 3:|15 - 9| = 6 最小差值为 1,选货柜 1。放入货柜 1。货柜 1 状态:[15, 12, 10, 9],顶部重量 9。 最终,第 1 个货柜存放货物:货物 1(15)、货物 2(12)、货物 6(10)、货物 7(9),共 4 件。
(2)①:在 sort_dis 函数中,对可选货柜列表 op 按与当前货物重量的差值升序排序(冒泡排序)。当差值更小时,需交换 op[j] 和 op[j-1],故此处应为:op[j-1],op[j]=op[j],op[j-1];②:主循环中,while 用于遍历所有货柜(索引 k 从 0 到 m-1),检查货柜顶部重量是否大于当前货物重量,故此处应为:k<m;③:if 判断是否没有符合条件的货柜(即 option 为空),需开新货柜,故此处应为:len(option)==0或option==[];当货物放入已有货柜时,需更新链表:将原顶部货物的 next 指向当前货物,使新货物成为堆叠顶部,故此处应为:a[t[k]][2]=i。
第1页/共1页
学科网(北京)股份有限公司
$