内容正文:
义乌市普通高中2025届适应性考试
技术试卷
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 某科技馆每周举办“探乐科学馆”主题活动,涵盖“地球科学”“航空航天”等主题,活动需通过小程序提前预约,部分活动(如航模秀)可现场直接参与。现场照片将推送至官方公众号进行宣传,便于活动推广与回顾。下列关于活动中数据与信息的说法,正确的是( )
A. “航模秀”可现场参与说明信息传播不需要载体
B. 活动参加人数不断变化说明信息具有真伪性
C. 用户预约信息的价值可能随时间推移发生改变
D. 用户预约记录、现场照片以结构化数据进行存储
2. 下列关于信息安全与社会责任的做法,不合理的是( )
A. 对用户敏感信息进行加密存储
B. 主办方在活动结束后进行匿名满意度调查
C. 鼓励用户转发官方公众号推文
D. 将用户预约记录有偿共享给第三方广告公司
3. 科技馆推出智慧服务系统,提供场馆预约、智能导览与智能停车。参观者可分时段预约,通过电子门票二维码或人脸识别快速入馆;智能导览功能可以实现参观者靠近展项时自动进行语音讲解,同时可与场馆数字人进行语音实时问答;智能停车模块整合车位查询、预约及在线支付功能,为提前规划行程提供支持。关于该信息系统组成与功能的说法,正确的是( )
A. 手机与服务器处于同一局域网下才能进行数据双向传输
B. 使用人脸识别进入场馆属于系统的数据输入与处理功能
C. 该系统硬件仅由用户手机、系统服务器、传感器组成
D. 系统中所有数据都存储在服务器的数据库中
4. 科技馆推出智慧服务系统,提供场馆预约、智能导览与智能停车。参观者可分时段预约,通过电子门票二维码或人脸识别快速入馆;智能导览功能可以实现参观者靠近展项时自动进行语音讲解,同时可与场馆数字人进行语音实时问答;智能停车模块整合车位查询、预约及在线支付功能,为提前规划行程提供支持。下列关于该系统提供的服务中,涉及人工智能的是( )
A. 分时段预约参观场馆 B. 自动计算停车场费用
C. 与数字人进行实时问答 D. 靠近展项时自动进行语音讲解
5. 科技馆推出智慧服务系统,提供场馆预约、智能导览与智能停车。参观者可分时段预约,通过电子门票二维码或人脸识别快速入馆;智能导览功能可以实现参观者靠近展项时自动进行语音讲解,同时可与场馆数字人进行语音实时问答;智能停车模块整合车位查询、预约及在线支付功能,为提前规划行程提供支持。关于该信息系统中软硬件的说法,不正确的是( )
A. 可利用距离传感器实现参观者靠近展项时自动讲解
B. 系统服务器的硬件配置对系统性能没有影响
C. 场馆数字人需要在软件的支持下工作
D. 智慧停车模块的车位数据可以通过传感器实时采集
6. 科技馆推出智慧服务系统,提供场馆预约、智能导览与智能停车。参观者可分时段预约,通过电子门票二维码或人脸识别快速入馆;智能导览功能可以实现参观者靠近展项时自动进行语音讲解,同时可与场馆数字人进行语音实时问答;智能停车模块整合车位查询、预约及在线支付功能,为提前规划行程提供支持。关于该信息系统数据采集与编码说法,正确的是( )
A. 系统中的所有数据都以十六进制形式存储和传输
B. 电子门票二维码的生成过程属于数据编码
C. 用户与数字人交谈仅涉及数据的模数转换
D. 为节省存储空间,语音包应存储为WAV格式
7. 某算法的部分流程图如图所示,若n值为5,数组a为:[7,2,6,5,3],数组b为:[0,1,2,3,4],执行这部分流程图后,输出的结果为( )
A. [1,0,4,2,3] B. [0,2,3,4,1] C. [0,2,1,3,4] D. [1,2,3,4,0]
8. 将字符串“level”中的字符依次入栈,出栈顺序仍然是“level”的方案数为( )
A. 1 B. 2 C. 3 D. 4
9. 列表a中存储有链表,a=[[3,2],[7,4],[9,6],[2,7],[8,-1],[4,1],[1,-1],[6,0]],a[i][0]表示数据,a[i][1]表示指针,链表节点数之和与a长度相等。下列说法正确的是( )
A. 列表a中存储有2个链表,头节点索引分别是5、7
B. 列表a中存储的链表中节点数较少的有2个节点
C. 执行代码“a[i-1][1]=a[i][1]”可以删除索引为“i”的节点
D. 执行代码“a.append([5,5])”可以为其中一个链表增加一个节点
10. 定义如下函数:
def f(x):
if x <= 3:
print(x)
return
for i in range(1,5):
f(x - i)
f(6)
程序执行结束后,输出3个数是( )
A. 4 B. 5 C. 6 D. 7
11. 阅读以下程序:
a = [2,3,1,2,4,4,3,2,5,4]
m = 0; tmp =0;
for i in range(len(a)):
if i % 4 != 0:
tmp += a[i]
elif m < tmp:
m = tmp; tmp =0
print(m)
程序运行结束后,输出的结果是( )
A. 7 B. 8 C. 9 D. 10
12. 有如下Python程序段
a = "ABC"; n = len(a)
que = [["", "", a]]
while len(que) >0:
d = que. pop(0) #pop(0)功能是返回索引0位置的数据,并删除
if len(d[0]) = = n:
print(d[0])
else:
if d[1] != "":
que. append([d[0] + d[1][-1], d[1][:-1], d[2]])
if d[2] != "":
que. append([d[0], d[1] + d[2][ 0], d[2][1:]])
程序运行结束后输出内容中的第3个字符串为( )
A. BAC B. ACB C. ABC D. BCA
二、非选择题(本大题共3小题,其中第13小题8分,第14小题9分,第15小题9分,共26分)
13. 小丽要搭建家庭宠物房环境监控系统,实时监测温度、湿度和光照强度,异常时通过小喇叭报警。小丽可通过浏览器查看实时数据和历史记录,设定温湿度和光照强度的阈值。硬件包括智能终端、温湿度、光照传感器、执行器(小喇叭)各一个。智能终端直接连接传感器和执行器,并通过IOT模块连接服务器(本地)。请回答下列问题:
(1)系统运行一段时间后,发现小喇叭连接的p1端口接触不稳定,小丽更换到p2端口,为了保证系统正常运行,小丽需要修改__________(单选,填字母:A.不需要修改任何程序B.服务器端程序C.智能终端程序)
(2)小丽在家通过手机浏览器查看实时数据,若WIFI状态下正常,使用移动通信网络无法访问,可能的原因是__________(单选,填字母)
A.IOT模块故障 B.服务器与互联网连接故障 C.智能终端与传感器连接故障
(3)下列关于该系统的数据及支撑技术的说法,正确的是__________(多选,填字母)。
A.服务器是硬件设备,服务器端运行的程序属于应用软件
B.服务器内存大小,决定了该系统可以存储多长时间的历史数据
C.该系统数据输入来源只有温度、湿度、光照强度传感器
D.温度、湿度、光照强度等数据采集时间间隔可以相同,也可以不同
(4)该系统关于宠物房温度数据连续5次温度值的平均值超过某阈值时,通过小喇叭播放声音报警。以下是实现该功能的部分程序段,哪个代码段有误__________(单选,填字母)#从数据库获取最近5次温度数据的列表lst
n = len(lst)
s =0
for i in range(n):
s += lst[i]
avg = s / n
n = len(lst)
s =0
for i in 1st:
s += i
avg = s / n
n = len(lst)
i =0
while i < len(lst):
s = s + lst[i]
avg = s / n
A
B
C
#判断avg的值是否在范围内,并返回相应控制信号值,代码略
(5)根据系统现有传感器设备,为系统设计一个基于传感器数据的自动控制功能__________。
14. 某市模拟考试成绩部分数据如图a所示。本次考试特殊分数线:579,给定有效分(语文:106,数学:98,外语:114,选考:258)数据,现需要统计全市各学校各学科达标人数(总分在特殊线及以上并且单科在有效分及以上)。请回答下列问题:
图a
(1)首先,通过以下代码段提取该市所有学校名称,并且依次保存到列表xuexiao中
import pandas as pd
import matplotlib. pyplot as plt
#读取数据
df = pd. read_ excel(' data. xlsx', sheet_ name = '数据')
df1 = df. groupby(' ', as_ index = True)
xuexiao = []
for item in df1:
xuexiao. append(item[0]) # append(x): 添加x到列表最后
划线处应该填写的是( )(单选,填字母)
A.学校 B.班级 C.总分 D.名次
(2)其次,通过以下代码段统计各学校各学科有效分以上的人数,并保存到列表ans中。然后绘制柱状图,请在划线①②③处填写合适的代码。
#计算各校各科目达标人数
teshu = 579 # 特殊线分数
kemu = ["语文", "数学", "外语", "选考"]
fenshu = [106,98,114,258]
n = ①___
m = len(kemu)
ans = [[xuexiao[i] , 0, 0, 0, 0] for i in range(n)]
df2 = df [②____]
for i in range(m):
for j in range(n):
df3 = df2[df2['学校'] == xuexiao[j]]
df4 = df3[df3[kemu[i]] >= fenshu[i]]
temp = len(df4) # len()用于获取DataFrame的行数(记录数)
③___
#绘图
df_ p = pd. DataFrame(ans, columns=["学校", "语文", "数学", "英语", "选考"])
#其他绘图代码略
(3)基于以上处理过程,绘制如图b的图表。由图可知,哪个学校数学学科是最弱势学科_________(填学校名称)
图b
15. 有一批n个零件需要加工,编号为0到n-1,编号为i的零件的加工难度为a[i]。工厂有m台机器,将所有零件分成m个编号连续的区间,每台机器依次加工一个区间内的零件。为了提高加工效率,按以下规则划分区间:
①从左到右划分这m个区间,每个区间的零件数量至少1个,不多于k个。
②一个区间内的零件加工难度的最大值与最小值的差距为该区间的“极差”。
③这m个区间的“极差”的最大值称为DIF值,划分时应使DIF值尽量最小。
现在要求计算加工这批零件的最小DIF值,并输出一种可行的区间划分方案。
例如,有8个零件,加工难度a=[5,4,2,6,2,8,7,3],有2台机器,每台机器加工零件的数量不多于5个。一种划分方案为:第1组的难度为[5,4,2,6,2],极差为4,第2组的难度为[8,7,3],极差为5,则该分组方案的DIF值为5。在这个例子中,5是最小的DIF值。请回答下列问题:
(1)若在题目例子中增加1台机器,其他参数不变,则最小的DIF值是_____________。
(2)定义bigsma(a)函数,预处理出任意一个连续区间内,加工难度的最大值和最小值。
def bigsma(a):
#遍历所有可能的区间,求每个区间最大值
for i in range(n):
for j in range(i, n):
if i= =j:
max_ vals[i][j] = a[i]
else:
for k in range(i, j+1):
max_ vals[i][j]=max(max_ vals[i][j],a[k])
#遍历所有可能的区间,求每个区间最小值
for i in range(n):
for j in range(i, n):
if i= =j:
min_ vals[i][j] = a[i]
else:
min_ vals[i][j]=min(min_ vals[i][j-1],a[j])
return max_ vals, min_ vals
该函数中求区间最①______值(填:大或小)的算法效果更高,其时间复杂度为0(②______)。
(3)定义judege(x)函数,用于判断Diff值为x时,是否可以找到一种可行的区间划分方案并记录方案。实现该功能的Python代码如下,请在程序中划线处填入合适的代码。
def judge(x):
cnt = start = 0
ans = []
while start <= n - 1:
end = start
for j in range(start, start + k):
if j > n - 1 or j > n - (m - cnt): break
cur_ max = max_ vals[start][j]
cur_ min = min_ vals[start][j]
if ①_______:
break
else:
end = j
ans. append([start, end])
cnt += 1
②_______
if cnt == m:
return True, ans
return False, []
(4)算法思想:由于DIF越小,分组成功的可能性越小,反之越大,答案具有单调性。故使用二分算法查找答案并判定,求出最小的DIF的值。
#读取零件数量存入n,机器数量存入m,每个区间最多零件数存入k,保证k>n//m#每个零件的加工难度存入列表a,代码略。
输入:
825
[5,4,2,6,2,8,7,3]
输出:
D1F值为:5
一种可行的分组方案:
[5,4,2,6,2]
[8,7,3]
max_ vals=[[0]*n for i in range(n)]#初始化存储每个区间最大值的二维数组
min_ vals=[[0]*n for i in range(n)]#初始化存储每个区间最小值二维数组
max_ vals, min_ vals=bigsma(a)
left=0;right=max(a)-min(a)
final_ ans=[]
while left<=right:
mid=(left+right)//2
ok, ans=judge(mid)
if ok:
answer=mid
____________
right=mid-1
else:
left=mid+1
print("DIF值为:", answer)
print("一种可行的分组方案:")
for x in final_ ans:
print(a[x[0]:x[1]+1])
第1页/共1页
学科网(北京)股份有限公司
$$
义乌市普通高中2025届适应性考试
技术试卷
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 某科技馆每周举办“探乐科学馆”主题活动,涵盖“地球科学”“航空航天”等主题,活动需通过小程序提前预约,部分活动(如航模秀)可现场直接参与。现场照片将推送至官方公众号进行宣传,便于活动推广与回顾。下列关于活动中数据与信息的说法,正确的是( )
A. “航模秀”可现场参与说明信息传播不需要载体
B. 活动参加人数不断变化说明信息具有真伪性
C. 用户预约信息的价值可能随时间推移发生改变
D. 用户预约记录、现场照片以结构化数据进行存储
【答案】C
【解析】
【详解】本题考查的是数据与信息。选项A错误:信息传播必须依赖载体(如现场的光、声等),不能脱离载体存在。选项B错误:人数变化体现信息的动态性或时效性,而非真伪性。真伪性指信息可能有真假之分。选项C正确:预约信息在活动前有实用价值,活动后可能失去价值,体现信息的时效性。选项D错误:预约记录可能是结构化数据(如表格),但照片属于非结构化数据(图像文件),无法直接用固定格式存储。故选C。
2. 下列关于信息安全与社会责任的做法,不合理的是( )
A. 对用户敏感信息进行加密存储
B. 主办方在活动结束后进行匿名满意度调查
C. 鼓励用户转发官方公众号推文
D 将用户预约记录有偿共享给第三方广告公司
【答案】D
【解析】
【详解】本题考查的是信息安全。选项A:对敏感信息加密存储是基本安全措施,防止数据泄露后被非法利用,合理。选项B:匿名调查可保护参与者隐私,避免个人信息关联到具体个人,合理。选项C:鼓励自愿转发合法内容属于正常宣传行为,不涉及信息安全问题,合理。选项D:未经用户同意有偿共享用户信息属于非法泄露隐私行为,违反信息安全原则与社会责任,不合理。故选D。
3. 科技馆推出智慧服务系统,提供场馆预约、智能导览与智能停车。参观者可分时段预约,通过电子门票二维码或人脸识别快速入馆;智能导览功能可以实现参观者靠近展项时自动进行语音讲解,同时可与场馆数字人进行语音实时问答;智能停车模块整合车位查询、预约及在线支付功能,为提前规划行程提供支持。关于该信息系统组成与功能的说法,正确的是( )
A. 手机与服务器处于同一局域网下才能进行数据双向传输
B. 使用人脸识别进入场馆属于系统的数据输入与处理功能
C. 该系统硬件仅由用户手机、系统服务器、传感器组成
D. 系统中的所有数据都存储在服务器的数据库中
【答案】B
【解析】
【详解】本题考查的是信息系统的组成与功能。选项A错误:手机与服务器数据传输不依赖同一局域网。通过移动网络(如4G/5G)或公共Wi-Fi,手机可直接与远程服务器通信。选项B正确:人脸识别需通过摄像头采集数据(输入),系统比对处理数据以验证身份,属于数据输入与处理功能。选项C错误:硬件不仅包括手机、服务器和传感器,还需网络设备(如路由器)、存储设备、摄像头等。选项D错误:部分数据可能缓存在用户手机或边缘设备(如本地数据库),并非全部存储在服务器。故选B。
4. 科技馆推出智慧服务系统,提供场馆预约、智能导览与智能停车。参观者可分时段预约,通过电子门票二维码或人脸识别快速入馆;智能导览功能可以实现参观者靠近展项时自动进行语音讲解,同时可与场馆数字人进行语音实时问答;智能停车模块整合车位查询、预约及在线支付功能,为提前规划行程提供支持。下列关于该系统提供的服务中,涉及人工智能的是( )
A. 分时段预约参观场馆 B. 自动计算停车场费用
C. 与数字人进行实时问答 D. 靠近展项时自动进行语音讲解
【答案】C
【解析】
【详解】本题考查的是人工智能。分时段预约属于规则化流程管理,无需AI。费用计算为程序化运算,无需AI。与数字人实时语音问答需要自然语言处理(NLP)、语音识别及生成技术,属于典型的人工智能应用。靠近展项自动语音讲解可能依赖传感器(如红外、蓝牙)触发预存音频,无需AI。故选C。
5. 科技馆推出智慧服务系统,提供场馆预约、智能导览与智能停车。参观者可分时段预约,通过电子门票二维码或人脸识别快速入馆;智能导览功能可以实现参观者靠近展项时自动进行语音讲解,同时可与场馆数字人进行语音实时问答;智能停车模块整合车位查询、预约及在线支付功能,为提前规划行程提供支持。关于该信息系统中软硬件的说法,不正确的是( )
A. 可利用距离传感器实现参观者靠近展项时自动讲解
B. 系统服务器的硬件配置对系统性能没有影响
C. 场馆数字人需要在软件的支持下工作
D. 智慧停车模块的车位数据可以通过传感器实时采集
【答案】B
【解析】
【详解】本题考查的是信息系统硬件。服务器硬件配置(如CPU、内存、存储)直接影响系统处理速度、并发能力等。故选B。
6. 科技馆推出智慧服务系统,提供场馆预约、智能导览与智能停车。参观者可分时段预约,通过电子门票二维码或人脸识别快速入馆;智能导览功能可以实现参观者靠近展项时自动进行语音讲解,同时可与场馆数字人进行语音实时问答;智能停车模块整合车位查询、预约及在线支付功能,为提前规划行程提供支持。关于该信息系统数据采集与编码的说法,正确的是( )
A. 系统中的所有数据都以十六进制形式存储和传输
B. 电子门票二维码的生成过程属于数据编码
C. 用户与数字人交谈仅涉及数据的模数转换
D. 节省存储空间,语音包应存储为WAV格式
【答案】B
【解析】
【详解】本题考查的是编码。选项A错误:计算机系统中的数据以二进制形式存储和传输,十六进制仅用于简化二进制数据的表示,并非实际存储方式。选项B正确:二维码生成是将信息(如文字、数字)通过特定规则转换为图形符号的过程,属于数据编码。选项C错误:用户与数字人交谈时,语音输入需模数转换(模拟声音→数字信号),而数字人回应需数模转换(数字信号→模拟声音),因此涉及双向转换。选项D错误:WAV是无损音频格式,占用空间较大;节省存储空间应选择MP3、AAC等有损压缩格式。故选B。
7. 某算法的部分流程图如图所示,若n值为5,数组a为:[7,2,6,5,3],数组b为:[0,1,2,3,4],执行这部分流程图后,输出的结果为( )
A. [1,0,4,2,3] B. [0,2,3,4,1] C. [0,2,1,3,4] D. [1,2,3,4,0]
【答案】A
【解析】
【详解】本题考查的是流程图识读。已知n = 5,a = [7, 2, 6, 5, 3],b = [0, 1, 2, 3, 4]。
第一轮循环(j = 4) 比较a[b[4]]和a[b[3]],即a[4] = 3和a[3] = 5,因为3 < 5 ,交换b[4]和b[3]的值,此时b = [0, 1, 2, 4, 3] ,j变为3。
第二轮循环(j = 3) 比较a[b[3]]和a[b[2]],即a[4] = 3和a[2] = 6,因为3 < 6 ,交换b[3]和b[2]的值,此时b = [0, 1, 4, 2, 3] ,j变为2。
第三轮循环(j = 2) 比较a[b[2]]和a[b[1]],即a[4] = 3和a[1] = 2,因为3 > 2 ,不交换,j变为1。
第四轮循环(j = 1) 比较a[b[1]]和a[b[0]],即a[1] = 2和a[0] = 7,因为2 < 7 ,交换b[1]和b[0]的值,此时b = [1, 0, 4, 2, 3] ,j变为0,循环结束。
故选A。
8. 将字符串“level”中的字符依次入栈,出栈顺序仍然是“level”的方案数为( )
A 1 B. 2 C. 3 D. 4
【答案】C
【解析】
【详解】本题考查是栈的操作。由于“level”是回文数,故有三种方案,第一种严格的“push-pop”交替。 第二种延迟第一个"l" 到最后一个出栈。 第三种延迟第一个 "e"到第四个出栈。故选C。
9. 列表a中存储有链表,a=[[3,2],[7,4],[9,6],[2,7],[8,-1],[4,1],[1,-1],[6,0]],a[i][0]表示数据,a[i][1]表示指针,链表节点数之和与a长度相等。下列说法正确的是( )
A. 列表a中存储有2个链表,头节点索引分别是5、7
B. 列表a中存储的链表中节点数较少的有2个节点
C. 执行代码“a[i-1][1]=a[i][1]”可以删除索引为“i”的节点
D. 执行代码“a.append([5,5])”可以为其中一个链表增加一个节点
【答案】D
【解析】
【详解】本题考查的是链表。未被任何指针指向的索引是3和5,因此头节点为索引3和5,选项A错误;头节点5的链表:5 → 1 → 4(共3个节点),头节点3的链表:3 → 7 → 0 → 2 → 6(共5个节点),较少的链表有3个节点,选项B错误;删除节点需修改其前驱节点的指针,而前驱节点不一定为索引i-1,选项C错误;执行代码“a.append([5,5])”可以为头节点5的链表增加一个节点,变为:8→ 5 → 1 → 4。故选D。
10. 定义如下函数:
def f(x):
if x <= 3:
print(x)
return
for i in range(1,5):
f(x - i)
f(6)
程序执行结束后,输出3的个数是( )
A. 4 B. 5 C. 6 D. 7
【答案】A
【解析】
【详解】本题考查的是递归。调用f(6)时,递归展开如下:
第一层调用 f(6):
i=1 → f(5)
i=2 → f(4)
i=3 → f(3)(打印3,次数+1)
i=4 → f(2)
处理f(5):
i=1 → f(4)
i=2 → f(3)(打印3,次数+1)
i=3 → f(2)
i=4 → f(1)
处理f(5)中的f(4):
i=1 → f(3)(打印3,次数+1)
i=2 → f(2)
i=3 → f(1)
i=4 → f(0)
处理f(6)中的f(4):
i=1 → f(3)(打印3,次数+1)
i=2 → f(2)
i=3 → f(1)
i=4 → f(0)
故输出3的个数是4,选A。
11. 阅读以下程序:
a = [2,3,1,2,4,4,3,2,5,4]
m = 0; tmp =0;
for i in range(len(a)):
if i % 4 != 0:
tmp += a[i]
elif m < tmp:
m = tmp; tmp =0
print(m)
程序运行结束后,输出的结果是( )
A. 7 B. 8 C. 9 D. 10
【答案】C
【解析】
【详解】本题考查的是Python循环语句。列表 a = [2,3,1,2,4,4,3,2,5,4],长度为10。变量 m 和 tmp 初始为0。
i=0:i%4=0,但 tmp=0,不更新 m。
i=1,2,3:累加 a[1]+a[2]+a[3] = 3+1+2=6,此时 tmp=6。
i=4:i%4=0,m 更新为6,tmp 重置为0。
i=5,6,7:累加 a[5]+a[6]+a[7] =4+3+2=9,此时 tmp=9。
i=8:i%4=0,m 更新为9,tmp 重置为0。
i=9:累加 a[9]=4,但循环结束未触发 i%4=0,tmp=4 未被处理。
故选C。
12. 有如下Python程序段
a = "ABC"; n = len(a)
que = [["", "", a]]
while len(que) >0:
d = que. pop(0) #pop(0)功能是返回索引0位置的数据,并删除
if len(d[0]) = = n:
print(d[0])
else:
if d[1] != "":
que. append([d[0] + d[1][-1], d[1][:-1], d[2]])
if d[2] != "":
que. append([d[0], d[1] + d[2][ 0], d[2][1:]])
程序运行结束后输出内容中的第3个字符串为( )
A. BAC B. ACB C. ABC D. BCA
【答案】A
【解析】
【详解】本题考查的是队列。该程序利用队列实现广度优先搜索,生成字符串"ABC"的所有排列组合。初始队列元素为["", "", "ABC"],每次处理队列头部元素时,根据当前状态扩展可能的分支,直到生成长度为3的字符串时输出。模拟执行过程如下:
第一次循环:弹出初始元素["", "", "ABC"],处理后添加["", "A", "BC"]到队列。
第二次循环:处理["", "A", "BC"],生成["A", "", "BC"]和["", "AB", "C"]。
后续循环:依次处理队列中的元素,逐步生成更长的字符串。当队列中的元素["AB", "C", ""]被处理时,d[0]变为"ABC"(第一个输出)。
第三个输出:当处理到元素["BA", "C", ""]时,d[0] + d[1][-1]生成"BAC",成为第三个输出的字符串。故选A。
二、非选择题(本大题共3小题,其中第13小题8分,第14小题9分,第15小题9分,共26分)
13. 小丽要搭建家庭宠物房环境监控系统,实时监测温度、湿度和光照强度,异常时通过小喇叭报警。小丽可通过浏览器查看实时数据和历史记录,设定温湿度和光照强度的阈值。硬件包括智能终端、温湿度、光照传感器、执行器(小喇叭)各一个。智能终端直接连接传感器和执行器,并通过IOT模块连接服务器(本地)。请回答下列问题:
(1)系统运行一段时间后,发现小喇叭连接的p1端口接触不稳定,小丽更换到p2端口,为了保证系统正常运行,小丽需要修改__________(单选,填字母:A.不需要修改任何程序B.服务器端程序C.智能终端程序)
(2)小丽在家通过手机浏览器查看实时数据,若WIFI状态下正常,使用移动通信网络无法访问,可能的原因是__________(单选,填字母)
A.IOT模块故障 B.服务器与互联网连接故障 C.智能终端与传感器连接故障
(3)下列关于该系统的数据及支撑技术的说法,正确的是__________(多选,填字母)。
A.服务器是硬件设备,服务器端运行的程序属于应用软件
B.服务器内存大小,决定了该系统可以存储多长时间的历史数据
C.该系统数据输入来源只有温度、湿度、光照强度传感器
D.温度、湿度、光照强度等数据采集时间间隔可以相同,也可以不同
(4)该系统关于宠物房温度数据连续5次温度值的平均值超过某阈值时,通过小喇叭播放声音报警。以下是实现该功能的部分程序段,哪个代码段有误__________(单选,填字母)#从数据库获取最近5次温度数据的列表lst
n = len(lst)
s =0
for i in range(n):
s += lst[i]
avg = s / n
n = len(lst)
s =0
for i in 1st:
s += i
avg = s / n
n = len(lst)
i =0
while i < len(lst):
s = s + lst[i]
avg = s / n
A
B
C
#判断avg的值是否在范围内,并返回相应控制信号值,代码略
(5)根据系统现有传感器设备,为系统设计一个基于传感器数据的自动控制功能__________。
【答案】 ①. C ②. B ③. AD ④. C ⑤. 温度过高,启动风扇降温,使温度维持在合理的区间或温度过低,启动加热器,使温度维持在合理的区间或其他可行的答案
【解析】
【详解】本题考查的是信息系统搭建。
(1)小喇叭端口从p1更换到p2,需要修改智能终端程序中控制小喇叭的端口配置。故选C。
(2)WIFI正常而移动网络无法访问,说明服务器未配置公网访问或防火墙限制,属于服务器与互联网连接问题。故选B。
(3)A正确:服务器是硬件设备,服务器端运行的程序属于应用软件。D正确:传感器采集间隔可独立设置。B错误:历史数据存储时长由硬盘容量决定,非内存。C错误:输入源还包括用户设定的阈值(如通过浏览器配置)。故选AD。
(4)C中,s未初始化(未赋初值0),直接累加会导致报错;循环中未更新i的值,会导致无限循环。故选C。
(5)根据现有传感器(温度、湿度、光照)和执行器(小喇叭),可设计以下功能:若温度超过阈值,启动风扇(需增加风扇执行器)或发送报警信号。 若温度低于阈值,启动加热器(需增加加热器执行器)。
14. 某市模拟考试成绩部分数据如图a所示。本次考试特殊分数线:579,给定有效分(语文:106,数学:98,外语:114,选考:258)数据,现需要统计全市各学校各学科达标人数(总分在特殊线及以上并且单科在有效分及以上)。请回答下列问题:
图a
(1)首先,通过以下代码段提取该市所有学校名称,并且依次保存到列表xuexiao中。
import pandas as pd
import matplotlib. pyplot as plt
#读取数据
df = pd. read_ excel(' data. xlsx', sheet_ name = '数据')
df1 = df. groupby(' ', as_ index = True)
xuexiao = []
for item in df1:
xuexiao. append(item[0]) # append(x): 添加x到列表最后
划线处应该填写的是( )(单选,填字母)
A.学校 B.班级 C.总分 D.名次
(2)其次,通过以下代码段统计各学校各学科有效分以上的人数,并保存到列表ans中。然后绘制柱状图,请在划线①②③处填写合适的代码。
#计算各校各科目达标人数
teshu = 579 # 特殊线分数
kemu = ["语文", "数学", "外语", "选考"]
fenshu = [106,98,114,258]
n = ①___
m = len(kemu)
ans = [[xuexiao[i] , 0, 0, 0, 0] for i in range(n)]
df2 = df [②____]
for i in range(m):
for j in range(n):
df3 = df2[df2['学校'] == xuexiao[j]]
df4 = df3[df3[kemu[i]] >= fenshu[i]]
temp = len(df4) # len()用于获取DataFrame的行数(记录数)
③___
#绘图
df_ p = pd. DataFrame(ans, columns=["学校", "语文", "数学", "英语", "选考"])
#其他绘图代码略
(3)基于以上处理过程,绘制如图b的图表。由图可知,哪个学校数学学科是最弱势学科_________(填学校名称)
图b
【答案】 ①. A ②. len(xuexiao) ③. df[“总分”]>=teshu ④. ans[j][i+1]=temp ⑤. 学校2
【解析】
【详解】本题考查是数据分析。
(1)提取该市所有学校名称,并且依次保存到列表 xuexiao 中,故此处应为:学校,选A。
(2)①:n 表示学校的数量,因此应该填写 len(xuexiao)。②:df2 是筛选出总分在特殊线及以上的学生数据,因此应该填写 df["总分"] >= teshu。③:ans[j][i+1] 用于存储每个学校各学科达标人数,因此应该填写 ans[j][i+1] = temp。
(3)根据图 b 的图表,可以看出学校2的数学学科达标人数是各科中最少的,故答案为:学校2。
15. 有一批n个零件需要加工,编号为0到n-1,编号为i的零件的加工难度为a[i]。工厂有m台机器,将所有零件分成m个编号连续的区间,每台机器依次加工一个区间内的零件。为了提高加工效率,按以下规则划分区间:
①从左到右划分这m个区间,每个区间的零件数量至少1个,不多于k个。
②一个区间内的零件加工难度的最大值与最小值的差距为该区间的“极差”。
③这m个区间的“极差”的最大值称为DIF值,划分时应使DIF值尽量最小。
现在要求计算加工这批零件的最小DIF值,并输出一种可行的区间划分方案。
例如,有8个零件,加工难度a=[5,4,2,6,2,8,7,3],有2台机器,每台机器加工零件的数量不多于5个。一种划分方案为:第1组的难度为[5,4,2,6,2],极差为4,第2组的难度为[8,7,3],极差为5,则该分组方案的DIF值为5。在这个例子中,5是最小的DIF值。请回答下列问题:
(1)若在题目例子中增加1台机器,其他参数不变,则最小的DIF值是_____________。
(2)定义bigsma(a)函数,预处理出任意一个连续区间内,加工难度的最大值和最小值。
def bigsma(a):
#遍历所有可能的区间,求每个区间最大值
for i in range(n):
for j in range(i, n):
if i= =j:
max_ vals[i][j] = a[i]
else:
for k in range(i, j+1):
max_ vals[i][j]=max(max_ vals[i][j],a[k])
#遍历所有可能的区间,求每个区间最小值
for i in range(n):
for j in range(i, n):
if i= =j:
min_ vals[i][j] = a[i]
else:
min_ vals[i][j]=min(min_ vals[i][j-1],a[j])
return max_ vals, min_ vals
该函数中求区间最①______值(填:大或小)的算法效果更高,其时间复杂度为0(②______)。
(3)定义judege(x)函数,用于判断Diff值为x时,是否可以找到一种可行的区间划分方案并记录方案。实现该功能的Python代码如下,请在程序中划线处填入合适的代码。
def judge(x):
cnt = start = 0
ans = []
while start <= n - 1:
end = start
for j in range(start, start + k):
if j > n - 1 or j > n - (m - cnt): break
cur_ max = max_ vals[start][j]
cur_ min = min_ vals[start][j]
if ①_______:
break
else:
end = j
ans. append([start, end])
cnt += 1
②_______
if cnt == m:
return True, ans
return False, []
(4)算法思想:由于DIF越小,分组成功的可能性越小,反之越大,答案具有单调性。故使用二分算法查找答案并判定,求出最小的DIF的值。
#读取零件数量存入n,机器数量存入m,每个区间最多零件数存入k,保证k>n//m#每个零件的加工难度存入列表a,代码略。
输入:
825
[5,4,2,6,2,8,7,3]
输出:
D1F值为:5
一种可行的分组方案:
[5,4,2,6,2]
[8,7,3]
max_ vals=[[0]*n for i in range(n)]#初始化存储每个区间最大值的二维数组
min_ vals=[[0]*n for i in range(n)]#初始化存储每个区间最小值的二维数组
max_ vals, min_ vals=bigsma(a)
left=0;right=max(a)-min(a)
final_ ans=[]
while left<=right:
mid=(left+right)//2
ok, ans=judge(mid)
if ok:
answer=mid
____________
right=mid-1
else:
left=mid+1
print("DIF值为:", answer)
print("一种可行的分组方案:")
for x in final_ ans:
print(a[x[0]:x[1]+1])
【答案】 ①. 4 ②. 小 ③. n2 ④. cur_max-cur_min>x ⑤. start=end+1 ⑥. final_ans=ans
【解析】
【详解】本题考查的是数组的综合应用。
(1)最小可能DIF:0(所有区间极差为0,即所有零件难度相同,或机器数与零件数相同,显然不可能), 最大可能DIF:max(a) - min(a) = 8 - 2 = 6 ,所以最小的DIF值在(0, 6],从小到大依次验证所有可能。可发现有一种方案划分:[5,4,2,6,2], [8,7], [3] ,极差:6-2=4, 8-7=1, 3-3=0 → DIF=4。
(2)求最大值的方法:对于每个区间[i,j],遍历所有元素找最大值,时间复杂度为O(n3)。求最小值的方法:利用递推min_vals[i][j] = min(min_vals[i][j-1], a[j]),时间复杂度为O(n2)。因此求最小值的算法效率更高,其时间复杂度为O(n2)。
(3)第一个空:判断当前区间[start,j]的极差是否超过x。如果是,则不能再扩展区间,需要break,故此处应为:cur_max - cur_min > x;第二个空:更新start的位置,开始下一个区间的划分,故此处应为:start = end + 1。
(4)当judge(mid)返回True时,说明当前mid是一个可行的DIF值,需要尝试更小的值(左移right),并记录当前的划分方案ans到final_ans,故此处应为:final_ans = ans。
第1页/共1页
学科网(北京)股份有限公司
$$