内容正文:
温州市普通高中2024届高三第三次适应性考试
技术试题卷
2024.5
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)
1. 下列关于数据和信息的说法,正确的是( )
A. 信息只有数字化后才有价值 B. 计算机中的数据一般以文件形式存储
C. 同一时间的信息接收者仅为一个 D. 数据的获取方法逐渐以人工获取为主
2. 智慧跑道系统利用跑道两侧AI智能识别杆的内置传感器识别人脸、采集运动数据,传输、保存至服务器中,并进行相关数据分析。注册用户可通过AI识别互动大屏或移动终端等设备查看相关运动数据及个性化运动方案。下列关于该系统组成的说法,正确的是( )
A. 该系统用户仅为注册用户 B. 该系统的硬件不包含移动终端
C. AI识别互动大屏中的查询系统是应用软件 D. AI智能识别杆是输出设备
3. 智慧跑道系统利用跑道两侧AI智能识别杆的内置传感器识别人脸、采集运动数据,传输、保存至服务器中,并进行相关数据分析。注册用户可通过AI识别互动大屏或移动终端等设备查看相关运动数据及个性化运动方案。下列不属于防止信息系统数据泄露措施的是( )
A. 对数据进行加密 B. 为用户设定不同的访问权限
C. 定时对数据备份 D. 为该系统设置防火墙
4. 智慧跑道系统利用跑道两侧AI智能识别杆的内置传感器识别人脸、采集运动数据,传输、保存至服务器中,并进行相关数据分析。注册用户可通过AI识别互动大屏或移动终端等设备查看相关运动数据及个性化运动方案。下列关于该系统中数据的说法,正确的是( )
A. 该系统中的数据处理都在AI识别互动大屏实现
B. 该系统含有非结构化数据
C. 服务器中仅存储用户的运动数据
D. 该系统通过重力传感器采集用户的步频数据
5. 下列关于人工智能技术的说法,不正确的是( )
A. 人脸识别技术可通过联结主义人工智能实现
B. 人工智能是指以机器为载体,模仿、延伸和扩展人类智能
C. 基于规则学习的人工智能难以构建完备的知识库和推理方法
D. 根据结果反馈来调整的人工智能不需要数据训练
6. 下列关于网络系统的说法,正确的是( )
A. 网络由传输介质和网络互联设备组成 B. URL用来在客户端中定位一个文件
C. 路由器可以将局域网的公有地址转为私有地址 D. 局域网是覆盖范围最小的计算机网络
7. 一幅32×64像素,256种颜色的图像,它的颜色位深度最少是( )
A. 3 B. 8 C. 11 D. 256
8. 队列Q从队首到队尾的元素依次是1,2,3,栈S初始为空。约定:P操作是指Q中1个元素出队后入栈,J操作是指Q中1个元素出队后再入队。经过JPJPP系列操作后,栈S中栈顶到栈底的元素依次为( )
A 2,1,3 B. 1,3,2 C. 3,1,2 D. 2,3,1
9. 某二叉树的部分树形结构如图所示,其前序遍历结果为ABCDEF,下列说法正确的是( )
A. 该二叉树的深度一定是3 B. 节点C和节点D一定都是叶子节点
C. 节点F在该二叉树的左子树中 D. 该二叉树的后序遍历可能是CDBFEA
10. 定义如下函数:
def fnl (n, num1, num2):
if n==1:
return num1
return fn1 (n-1, num2, num1 +num2)
def fn2(n):
if n==1or n==2:
return 1
return fn2(n-1)+fn2(n-2)
下列说法正确的是( )
A. 两种算法的时间复杂度相同 B. fn1(n,1,1)与fn2(n)的功能相同
C. 执行语句fn2(8)时,fn2(5)被调用了2次 D. fn1函数的调用次数取决于num1和num2的值
11. 有如下Python程序段:
from random import randint
s, i, ans=1,0,0
k= randint (10,24) # randint(10,24)随机生成10到24(含10和24)之间的整数
for j in range (len (nums)):
s=s * nums [j]
while s >= k:
s=s / nums [i]
i+=1
ans +=j -i+1
若nums的值为[2,3,4,5],执行如下程序段后,变量ans的值不可能是( )
A. 4 B. 5 C. 6 D. 7
12. 使用列表a模拟链表结构(节点数大于2),每个节点包含数据区域和指针区域,h为头指针,如图a所示。现修改该链表各节点的链接关系,移除链表中值重复的节点,保留最开始出现的节点,结果如图b所示。实现该功能的程序段如下,方框中应填入的正确代码为
p=-1
q=head
vis=[]
while q !=-1:
图a 图b
A.
if a [q] [0] in vis:
a[p] [1]= a[q] [1]
else:
vis append (a[q][0])
p=q
q= a[q][1]
B.
if a [q] [0] in vis:
a[p] [1]=a[q] [1]
p=q
q=a[q] [1]
else:
vis. append(a[q][0])
C.
if a[q][0] in vis:
p=q
else:
a[p][1] = a[q][1]
vis.append(a[q][0])
q=a[q][1]
D.
if a[q][0] in vis:
a[p][1]=a[q][1]
else:
vis.append(a[q][0])
p=q
q=a[q][1]
A. A B. B C. C D. D
二、非选择题(本大题共3小题,其中第13小题7分,第14小题10分,第15小题9分,共26分)
13. 某仓库记录每天出入库情况,正数表示入库数量,负数表示出库数量。编写程序,查询出入库总量等于k的连续时间段。某星期出入库情况为“10,-10,5,6,7,8,-5”,k值为18的连续时间段有第1天~第5天,第3天~第5天。请回答下列问题:
(1)若将题干例子中的k值改为21,则有____个时间段满足要求。
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
#读取出入库情况,存入列表a中,读取k值。代码略。
pos={0:[-1]}; count=0
①____
for i in range (len(a)):
cur += a[i]
②____
if pre in pos:
for j in pos[pre]:
print("时间段:",j+2," ~",i+1])
③____
if cur in pos:
pos [cur]. append(i)
else:
pos[cur]=[i]
print("一共有",count,"个时间段")
14. 小王为学校植物实验室搭建了环境光线监测系统,光线传感器采集数据由智能终端经IoT模块发送到Web服务器。服务器统计当日白天(8点~16点)平均光照强度,如若当日光照强度不够,夜间向智能终端发送打开补光灯的命令。请回答以下问题:
(1)下列关于该系统平台架构优势的说法,正确的是____(单选,填字母:A.降低服务器负荷/B.方便系统升级和维护/C.降低系统通信开销和开发难度)
(2)下列关于该系统中服务器、智能终端、客户端的说法,正确的是____(多选,填字母)
A.浏览器获取环境监测系统数据来源于本地客户端
B.服务器可以处理浏览器的请求
C.智能终端可以通过IoT模块以无线方式连接服务器
D.服务器可以对执行器直接发送指令
(3)该系统的服务端程序基于Flask Web编写,部分程序如下:
@app.route ("/input")
def data():
senorlog = str(request. args. get(" id")) #传感器编号
light = str(request. args. get (" 1ig")) #光线数值
#连接数据库,并将对应的值存入相关数据表中,代码略
if _ name_ == " _main_":
app.run (host= " 192.18.108.173", port=8080)
若光线传感器编号为2,光线值为930,提交数据到Web服务器的URL是____(单选,填字母)
A.http://192.18.108.173:8080/data?id=2&lig=930
B.http://192.18.108.173:8080/input?senorlog=2&ight=930
C.http://192.18.108.173:8080/input?id=2&lig=930
D.http://192.18.108.173:8080/data?sensorlog=2&light=930
(4)系统正常运行一段时间后,发现IoT模块损坏,描述该系统可能出现的两种异常情况。____
(5)将该系统中2023年10月~2024年3月的补光灯每日工作时长(单位:分钟)数据导出,部分数据如图a所示,统计每个月的补光灯工作天数,绘制线形图如图b所示,部分Python程序如下:
图a 图b
import pandas as pd
import matplotlib. pyplot as plt
#为plt设置正常显示中文,代码略
df = pd. read_csv("data.csv")
df["月份"]= " "
for i in df. index:
df. at[i,"月份"]=df.at[i,"日期"][5:7]
dfg=df. groupby("月份",as_index=False).____
#设置绘图参数,绘制线形图,代码略
①请在划线处填入合适代码。
②为筛选出补光灯正常工作的数据,程序的方框中应填入的正确代码是____(多选,填字母)
A.df=df[df[“时长”]!=0]
B.df=df.时长>0
C.for i in df. index:
if df. at[i,"时长"]==0:
df=df. drop(i) #删除行
D.n = len(df[df.时长!=0])
df=df sort__values("时长")#升序排序
df. tail(n)
15. 将若干件货物装入n辆货车,每辆货车载重上限为m,每件货物的重量不超过m,所有货物总重量为n×m。装车过程中,货物不可拆分,每辆货车能满载。例如,将8件货物装入4辆货车,每辆货车的载重上限为6。每件货物编号及重量如图a所示,则货车装载的货物编号情况可能有多种,其中一种如图b所示,结果为[[1],[2,4],[5,6],[3,7,8]]。编写程序,实现求出各货车装载方案。
图a 图b
请回答下列问题:
(1)将图a所示的8件货物装入3辆货车,每辆货车载重上限为8,则货车装载的货物编号情况为[[1,4],____]。
(2)定义如下Bsort (1st)函数,参数1st的每个元素由货物编号和货物重量2个数据项组成。函数的功能是根据货物的重量,对1st进行降序排序。
def Bsort (1st):
n=len (1st); i=0
while i<n-1:
for j in range(n-1, i,-1):
1st[j-1],1st[j]=1st[j],1st[j-1]
p=j
i=p
return 1st
若1st为[[1,6],[2,4],[3,3],[4,2],[5,1],[6,5],[7,2],[8,1]],请回答下列问题。
①划线处应填写的正确代码是____(单选,填字母)。
A.p=0 B.p=n-1 C.i=0 D.i=n-1
②方框中语句的执行次数为____。
(3)实现货物装车功能的部分Python程序如下,程序中用到的列表函数与方法如下表所示,请在程序中划线处填入合适的代码。
函数与方法
功能
w. append(x)
在列表w末尾添加元素x
x=w. pop(0)
将列表w首位元素赋值给x,并将其从w中删除
def group (m, n):
global cnt #cnt声明为全局变量,在函数内外都可见和修改
d=[0]*(m+1)
pre=[-1]*(m+1)
for i in range (len (a)): #搜索出重量总和为m值的货物编号
if b[i]:
for j in range(m, a[i][1]-1,-1):
if d[j]<d[j-a[i][1]]+a[i][1]:
d[j]=d[j-a[i][1]]+a[i][1]
pre[j]=i
if d[m]==m:
p=m
while pre[p]!=-1:
j=pre[p]
p=p-a[j][1]
gnum[cnt % n].append(①____)
q.append([cn t% n,j])
b[j]=False
return True
return False
'''读取每辆货车的载重上限存入m,所需货车数存入n;读取所有货物数据,依次存入列表1st中。1st[i]包含2个数据项,1st[i][0],1st[i][1]分别存放货物编号及货物重量,代码略。'''
a=Bsort(1st)
b=[True] *1en(a)
cnt=0
gnum, q=[],[]
for i in range(n):
gnum. append([]) # gnum[i]存放编号为i+1的货车所分配到的货物编号
while len(q)!= len(a):
②____
if flag:
cnt+=1
else:
tmp=q.pop(0)
gnum[tmp[0]]=[]
③____
#输出每辆货车承载货物的情况,代码略。
第1页/共1页
学科网(北京)股份有限公司
$$
温州市普通高中2024届高三第三次适应性考试
技术试题卷
2024.5
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)
1. 下列关于数据和信息的说法,正确的是( )
A. 信息只有数字化后才有价值 B. 计算机中的数据一般以文件形式存储
C. 同一时间的信息接收者仅为一个 D. 数据的获取方法逐渐以人工获取为主
【答案】B
【解析】
【详解】本题考查数据与信息。信息本身就有价值,并非只有数字化后才有价值,A项错误;计算机中的数据通常是以文件形式进行存储的,B项正确;同一时间的信息接收者可以有多个,C项错误;随着技术发展,数据的获取方法越来越依靠各种技术手段,而非逐渐以人工获取为主,D项错误。故答案为:B。
2. 智慧跑道系统利用跑道两侧AI智能识别杆的内置传感器识别人脸、采集运动数据,传输、保存至服务器中,并进行相关数据分析。注册用户可通过AI识别互动大屏或移动终端等设备查看相关运动数据及个性化运动方案。下列关于该系统组成的说法,正确的是( )
A. 该系统的用户仅为注册用户 B. 该系统的硬件不包含移动终端
C. AI识别互动大屏中的查询系统是应用软件 D. AI智能识别杆是输出设备
【答案】C
【解析】
【详解】本题考查信息系统的组成。信息系统的用户包含系统的开发人员、维护人员、数据录入人员以及所有使用该系统的人;该系统的硬件包含移动终端;AI识别互动大屏中的查询系统是应用软件;AI智能识别杆是输入设备。故选C。
3. 智慧跑道系统利用跑道两侧AI智能识别杆的内置传感器识别人脸、采集运动数据,传输、保存至服务器中,并进行相关数据分析。注册用户可通过AI识别互动大屏或移动终端等设备查看相关运动数据及个性化运动方案。下列不属于防止信息系统数据泄露措施的是( )
A. 对数据进行加密 B. 为用户设定不同的访问权限
C. 定时对数据备份 D. 为该系统设置防火墙
【答案】C
【解析】
【详解】本题考查信息系统安全。对数据进行加密可以防止数据被非法窃取后直接解读;为用户设定不同的访问权限能限制用户对数据的操作范围,减少数据泄露风险;为系统设置防火墙可以阻挡外部非法访问和攻击,保护数据安全。而定时对数据备份主要是为了防止数据丢失以便进行恢复,并不是防止数据泄露的直接措施。所以C选项不属于防止信息系统数据泄露措施。故答案为:C。
4. 智慧跑道系统利用跑道两侧AI智能识别杆的内置传感器识别人脸、采集运动数据,传输、保存至服务器中,并进行相关数据分析。注册用户可通过AI识别互动大屏或移动终端等设备查看相关运动数据及个性化运动方案。下列关于该系统中数据的说法,正确的是( )
A. 该系统中的数据处理都在AI识别互动大屏实现
B. 该系统含有非结构化数据
C. 服务器中仅存储用户的运动数据
D. 该系统通过重力传感器采集用户的步频数据
【答案】B
【解析】
【详解】本题考查信息系统。数据处理不仅仅在AI识别互动大屏实现,还有服务器等,A错误;运动数据、用户信息等可能包含多种类型数据,其中可能有非结构化数据,B正确;服务器中还会存储用户信息等其他数据,C错误;题干中提到利用跑道两侧AI智能识别杆内置传感器识别人脸、采集运动数据,并未明确是重力传感器采集步频数据,D错误。故答案为:B。
5. 下列关于人工智能技术的说法,不正确的是( )
A. 人脸识别技术可通过联结主义人工智能实现
B. 人工智能是指以机器为载体,模仿、延伸和扩展人类智能
C. 基于规则学习的人工智能难以构建完备的知识库和推理方法
D. 根据结果反馈来调整人工智能不需要数据训练
【答案】D
【解析】
【详解】本题考查人工智能技术。人脸识别技术可以利用联结主义人工智能中的神经网络等技术来实现,A正确;人工智能就是让机器模拟人类智能,B正确;基于规则学习的人工智能确实存在难以构建完备知识库和推理方法的局限性,C正确;人工智能都需要数据训练,无论是根据结果反馈调整还是其他方式,D错误。故答案为:D。
6. 下列关于网络系统的说法,正确的是( )
A. 网络由传输介质和网络互联设备组成 B. URL用来在客户端中定位一个文件
C. 路由器可以将局域网的公有地址转为私有地址 D. 局域网是覆盖范围最小的计算机网络
【答案】D
【解析】
【详解】本题考查网络系统。A项,网络由计算机、传输介质、网络互联设备和网络软件等组成,该项说法不全面,错误;B项,URL是用来在网络上定位一个资源的,而不是在客户端中定位一个文件,错误;C项,路由器主要用于不同网络之间的连接和路由选择,不能将局域网的公有地址转为私有地址,错误;D项,局域网通常是在一个局部的地理范围内(如一个学校、工厂等),是覆盖范围最小的计算机网络,正确。故答案为:D。
7. 一幅32×64像素,256种颜色的图像,它的颜色位深度最少是( )
A. 3 B. 8 C. 11 D. 256
【答案】B
【解析】
【详解】本题考查图像数字化。颜色数=2^颜色位深度,已知有256种颜色,256=2^8,所以它颜色位深度最少是8。故答案为:B。
8. 队列Q从队首到队尾的元素依次是1,2,3,栈S初始为空。约定:P操作是指Q中1个元素出队后入栈,J操作是指Q中1个元素出队后再入队。经过JPJPP系列操作后,栈S中栈顶到栈底的元素依次为( )
A. 2,1,3 B. 1,3,2 C. 3,1,2 D. 2,3,1
【答案】C
【解析】
【详解】本题考查队列与栈。初始队列Q为1,2,3,栈S为空。进行J操作,1出队后又入队,队列变为2,3,1;进行P操作,2出队后入栈,此时栈S中有元素2,队列变为3,1;再进行J操作,3出队后又入队,队列变为1,3;再进行P操作,1出队后入栈,此时栈中有元素1,2,队列变为3;最后进行P操作,3出队后入栈,栈S中栈顶到栈底元素依次为3,1,2。所以答案选C。
9. 某二叉树的部分树形结构如图所示,其前序遍历结果为ABCDEF,下列说法正确的是( )
A. 该二叉树的深度一定是3 B. 节点C和节点D一定都是叶子节点
C. 节点F在该二叉树的左子树中 D. 该二叉树的后序遍历可能是CDBFEA
【答案】D
【解析】
【详解】本题考查二叉树。仅根据部分树形结构无法确定唯一的二叉树,二叉树的深度不一定是3,也有可能为4,A错误;节点C和D有可能有子节点,不一定都是叶子节点,B错误;在前序遍历中,F在E后遍历,因此节点F在二叉树的右子树中,C错误;后序遍历是先左子树,再右子树,最后根节点,所以该二叉树的后序遍历可能是CDBFEA,D正确。故答案为:D。
10. 定义如下函数:
def fnl (n, num1, num2):
if n==1:
return num1
return fn1 (n-1, num2, num1 +num2)
def fn2(n):
if n==1or n==2:
return 1
return fn2(n-1)+fn2(n-2)
下列说法正确的是( )
A. 两种算法的时间复杂度相同 B. fn1(n,1,1)与fn2(n)的功能相同
C. 执行语句fn2(8)时,fn2(5)被调用了2次 D. fn1函数的调用次数取决于num1和num2的值
【答案】B
【解析】
【详解】本题考查函数。A选项错误,fn1是线性时间复杂度,fn2是指数时间复杂度。B选项正确,两者都计算斐波那契数列的第n项。C选项错误,fn2(5)会被调用多于2次。D选项错误,fn1函数的调用次数只取决于参数n的值,与num1和num2无关。故答案为:B。
11. 有如下Python程序段:
from random import randint
s, i, ans=1,0,0
k= randint (10,24) # randint(10,24)随机生成10到24(含10和24)之间的整数
for j in range (len (nums)):
s=s * nums [j]
while s >= k:
s=s / nums [i]
i+=1
ans +=j -i+1
若nums的值为[2,3,4,5],执行如下程序段后,变量ans的值不可能是( )
A. 4 B. 5 C. 6 D. 7
【答案】A
【解析】
【详解】本题考查Python程序。初始化变量s=1,i=0,ans=0。生成随机数k,范围在10到24之间。遍历nums列表,对于每一个元素执行以下操作:更新s的值为s*nums[j]。通过while循环,如果s>=k,则将s除以nums[i]并增加i的值。计算ans的值为ans+(j-i+1)。具体步骤:j=0,ans+=0-0+1=1;j=1,ans+=1-0+1=2;j=2,如果k=10,那么s>=10,s=24/2=12,i=1;s=12/3=4,i=2,跳出循环;如果k=24,那么s=24,s>=24,s=24/2=12,i=1,跳出循环;ans+=2-i+1,根据不同的k值,i的值不同,如果k=10,那么i=2,ans+=2-2+1=1;如果k=24,那么i=1,ans+=2-1+1=2;此时ans的值最少增加1。j=3,如果k=10,s=4*5=20,s>=10,s=20/4=5,i=3,跳出循环;如果k=24,s=12*5=60,s>=24,s=60/3=20,i=2,跳出循环;ans+=3-i+1,根据不同的k值,i的值不同,如果k=10,那么i=3,ans+=3-3+1=1;如果k=24,那么i=2,ans+=3-2+1=2;此时ans的值最少增加1。从上面的分析可以看出:当j=0和j=1时,ans的值已经为3。当j=2和j=3时,ans至少增加1。所以,ans的值最小是5(3+1+1),即不可能是4。
12. 使用列表a模拟链表结构(节点数大于2),每个节点包含数据区域和指针区域,h为头指针,如图a所示。现修改该链表各节点的链接关系,移除链表中值重复的节点,保留最开始出现的节点,结果如图b所示。实现该功能的程序段如下,方框中应填入的正确代码为
p=-1
q=head
vis=[]
while q !=-1:
图a 图b
A.
if a [q] [0] in vis:
a[p] [1]= a[q] [1]
else:
vis. append (a[q][0])
p=q
q= a[q][1]
B.
if a [q] [0] in vis:
a[p] [1]=a[q] [1]
p=q
q=a[q] [1]
else:
vis. append(a[q][0])
C.
if a[q][0] in vis:
p=q
else:
a[p][1] = a[q][1]
vis.append(a[q][0])
q=a[q][1]
D.
if a[q][0] in vis:
a[p][1]=a[q][1]
else:
vis.append(a[q][0])
p=q
q=a[q][1]
A. A B. B C. C D. D
【答案】A
【解析】
【详解】本题考查Python程序。在这段程序中,我们需要遍历链表,并利用列表vis记录已经出现过的节点的值。如果当前节点的值已经在vis列表中出现过,则说明这个节点是重复的,应该将其移除。如果当前节点的值没有出现过,则将其加入vis列表中,并更新链表的链接关系。选项A中的代码逻辑是正确的,首先判断当前节点的值是否在vis列表中出现过,如果是,则说明这个节点是重复的,应该将其移除;如果不是,则将其加入vis列表中,并更新链表的链接关系。故答案为:A。
二、非选择题(本大题共3小题,其中第13小题7分,第14小题10分,第15小题9分,共26分)
13. 某仓库记录每天出入库情况,正数表示入库数量,负数表示出库数量。编写程序,查询出入库总量等于k的连续时间段。某星期出入库情况为“10,-10,5,6,7,8,-5”,k值为18的连续时间段有第1天~第5天,第3天~第5天。请回答下列问题:
(1)若将题干例子中的k值改为21,则有____个时间段满足要求。
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
#读取出入库情况,存入列表a中,读取k值。代码略。
pos={0:[-1]}; count=0
①____
for i in range (len(a)):
cur += a[i]
②____
if pre in pos:
for j in pos[pre]:
print("时间段:",j+2," ~",i+1])
③____
if cur in pos:
pos [cur]. append(i)
else:
pos[cur]=[i]
print("一共有",count,"个时间段")
【答案】 ①. 3 ②. cur=0 ③. pre=cur-k ④. count+=1或count=count+1
【解析】
【详解】本题考查Python综合应用。
(1)当k=21时:从第3天到第7天,和为5+6+7+8-5=21;从第1天到第7天,和为10-10+5+6+7+8-5=21;从第4天到第6天,和为6+7+8=21,有3个时间段满足要求。故答案为:3。
(2)因为要开始计算新的连续时间段的和,将当前和初始化为0。故答案为:cur=0。这是为了找到前一个和与目标值k的差值,通过这个差值来判断是否有满足条件的连续时间段。故答案为:pre=cur-k。当找到一个满足要求的时间段时,对总数量进行加1操作,以统计满足条件的时间段的个数。故答案为:count+=1或count=count+1。
14. 小王为学校植物实验室搭建了环境光线监测系统,光线传感器采集数据由智能终端经IoT模块发送到Web服务器。服务器统计当日白天(8点~16点)平均光照强度,如若当日光照强度不够,夜间向智能终端发送打开补光灯的命令。请回答以下问题:
(1)下列关于该系统平台架构优势的说法,正确的是____(单选,填字母:A.降低服务器负荷/B.方便系统升级和维护/C.降低系统通信开销和开发难度)
(2)下列关于该系统中服务器、智能终端、客户端的说法,正确的是____(多选,填字母)
A.浏览器获取环境监测系统的数据来源于本地客户端
B.服务器可以处理浏览器的请求
C.智能终端可以通过IoT模块以无线方式连接服务器
D.服务器可以对执行器直接发送指令
(3)该系统的服务端程序基于Flask Web编写,部分程序如下:
@app.route ("/input")
def data():
senorlog = str(request. args. get(" id")) #传感器编号
light = str(request. args. get (" 1ig")) #光线数值
#连接数据库,并将对应的值存入相关数据表中,代码略
if _ name_ == " _main_":
app.run (host= " 192.18.108.173", port=8080)
若光线传感器编号为2,光线值为930,提交数据到Web服务器的URL是____(单选,填字母)
A.http://192.18.108.173:8080/data?id=2&lig=930
B.http://192.18.108.173:8080/input?senorlog=2&ight=930
C.http://19218.108.173:8080/input?id=2&lig=930
D.http://192.18.108.173:8080/data?sensorlog=2&light=930
(4)系统正常运行一段时间后,发现IoT模块损坏,描述该系统可能出现的两种异常情况。____
(5)将该系统中2023年10月~2024年3月的补光灯每日工作时长(单位:分钟)数据导出,部分数据如图a所示,统计每个月的补光灯工作天数,绘制线形图如图b所示,部分Python程序如下:
图a 图b
import pandas as pd
import matplotlib. pyplot as plt
#为plt设置正常显示中文,代码略
df = pd. read_csv("data.csv")
df["月份"]= " "
for i in df. index:
df. at[i,"月份"]=df.at[i,"日期"][5:7]
dfg=df. groupby("月份",as_index=False).____
#设置绘图参数,绘制线形图,代码略
①请在划线处填入合适代码。
②为筛选出补光灯正常工作的数据,程序的方框中应填入的正确代码是____(多选,填字母)
A.df=df[df[“时长”]!=0]
B.df=df.时长>0
C.for i in df. index:
if df. at[i,"时长"]==0:
df=df. drop(i) #删除行
D.n = len(df[df.时长!=0])
df=df. sort__values("时长")#升序排序
df. tail(n)
【答案】 ①. B ②. BC ③. C ④. 浏览器数据不再变化(更新);执行器状态不更新;数据库中数据不更新;智能终端与服务器之间无法进行数据传输或其他合理答案 ⑤. count() ⑥. AC
【解析】
【详解】本题考查信息系统的应用。
(1)采用这种架构方便系统升级和维护,因为各部分相对独立,升级时影响较小。A项服务器负荷不一定降低,C项通信开销和开发难度不一定降低。故答案为:B。
(2)B项服务器可以处理浏览器的请求以提供数据;C项智能终端通过IoT模块无线连接服务器是常见方式;D项服务器通常不直接对执行器发送指令,而是通过智能终端等中介。A项浏览器数据来源于服务器而非本地客户端。故答案为:BC。
(3)若光线传感器编号为2,光线值为930,提交数据到Web服务器的URL是http://192.18.108.173:8080/input?id=2&lig=930。故答案为:C。
(4)IoT 模块损坏会导致智能终端与服务器之间无法正常通信,可能出现浏览器数据不再更新,因为传感器数据无法传至服务器;执行器状态不更新,因为服务器指令无法下达;数据库中数据不更新,因为新数据无法传输;智能终端与服务器之间无法进行数据传输等异常情况。
(5)要统计每个月的工作天数,使用groupby后用count()方法来计数。故答案为:count()。为筛选出补光灯正常工作的数据,程序的方框中应填入的正确代码是AC。A选项是正确的,因为我们需要筛选出时长不为0的数据;C选项是正确的,因为它删除了时长为0的行,从而得到了补光灯正常工作的数据。故答案为:AC。
15. 将若干件货物装入n辆货车,每辆货车载重上限为m,每件货物的重量不超过m,所有货物总重量为n×m。装车过程中,货物不可拆分,每辆货车能满载。例如,将8件货物装入4辆货车,每辆货车的载重上限为6。每件货物编号及重量如图a所示,则货车装载的货物编号情况可能有多种,其中一种如图b所示,结果为[[1],[2,4],[5,6],[3,7,8]]。编写程序,实现求出各货车装载方案。
图a 图b
请回答下列问题:
(1)将图a所示的8件货物装入3辆货车,每辆货车载重上限为8,则货车装载的货物编号情况为[[1,4],____]。
(2)定义如下Bsort (1st)函数,参数1st的每个元素由货物编号和货物重量2个数据项组成。函数的功能是根据货物的重量,对1st进行降序排序。
def Bsort (1st):
n=len (1st); i=0
while i<n-1:
for j in range(n-1, i,-1):
1st[j-1],1st[j]=1st[j],1st[j-1]
p=j
i=p
return 1st
若1st为[[1,6],[2,4],[3,3],[4,2],[5,1],[6,5],[7,2],[8,1]],请回答下列问题。
①划线处应填写的正确代码是____(单选,填字母)。
A.p=0 B.p=n-1 C.i=0 D.i=n-1
②方框中语句的执行次数为____。
(3)实现货物装车功能的部分Python程序如下,程序中用到的列表函数与方法如下表所示,请在程序中划线处填入合适的代码。
函数与方法
功能
w. append(x)
列表w末尾添加元素x
x=w. pop(0)
将列表w首位元素赋值给x,并将其从w中删除
def group (m, n):
global cnt #cnt声明为全局变量,在函数内外都可见和修改
d=[0]*(m+1)
pre=[-1]*(m+1)
for i in range (len (a)): #搜索出重量总和为m值的货物编号
if b[i]:
for j in range(m, a[i][1]-1,-1):
if d[j]<d[j-a[i][1]]+a[i][1]:
d[j]=d[j-a[i][1]]+a[i][1]
pre[j]=i
if d[m]==m:
p=m
while pre[p]!=-1:
j=pre[p]
p=p-a[j][1]
gnum[cnt % n].append(①____)
q.append([cn t% n,j])
b[j]=False
return True
return False
'''读取每辆货车的载重上限存入m,所需货车数存入n;读取所有货物数据,依次存入列表1st中。1st[i]包含2个数据项,1st[i][0],1st[i][1]分别存放货物编号及货物重量,代码略。'''
a=Bsort(1st)
b=[True] *1en(a)
cnt=0
gnum, q=[],[]
for i in range(n):
gnum. append([]) # gnum[i]存放编号为i+1的货车所分配到的货物编号
while len(q)!= len(a):
②____
if flag:
cnt+=1
else:
tmp=q.pop(0)
gnum[tmp[0]]=[]
③____
#输出每辆货车承载货物的情况,代码略。
【答案】 ①. [3,6],[2,5,7,8]或[2,3,5],[6,7,8]或[2,3,8],[5,6,7] ②. B ③. 13 ④. a[j][0] ⑤. flag=group(m,n) ⑥. b[tmp[1]]=True
【解析】
【详解】本题考查Python综合应用。
(1)根据题意,将8件货物装入3辆货车,每辆货车载重上限为8,则货车装载的货物编号情况为[[1,4],[3,6],[2,5,7,8]]、[[1,4],[2,3,5],[6,7,8]]、[[1,4],[2,3,8],[5,6,7]]。这些是一些可能的装载方案。故答案为:[3,6],[2,5,7,8]或[2,3,5],[6,7,8]或[2,3,8],[5,6,7]。
(2)变量p用于记录最后一次交换的位置,确保下次外循环从该位置开始,避免不必要的比较和交换。因此划线处应填写的正确代码是p=n-1。故答案为:B。题目中的冒泡排序算法的目的是对货物按照重量降序排序。我们需要计算执行方框中语句的次数,手动执行一次可以得到其执行次数为13。故答案为:13。
(3)我们需要将当前货物的编号添加到相应的货车列表中。a是一个包含货物信息的列表,每个元素是一个二元组,包含货物编号和货物重量。a[j]表示编号为j的货物,a[j][0]表示该货物的编号。因此,需要将货物编号a[j][0]添加到gnum[cnt%n],使得该货车记录下它所装载的货物编号,故答案为:a[j][0]。在这段代码中,需要调用group(m,n)函数尝试给货车分配货物,并根据结果设置flag。如果成功分配了货物,flag应为True,否则为False。因此,需要将函数调用的结果赋值给flag,这样可以判断是否成功分配货物,故答案为:flag=group(m,n)。在货物分配失败的情况下,需要将之前尝试分配给当前货车的货物重新标记为未分配状态。tmp[1]表示之前分配的货物编号,b是一个布尔列表,用来记录每个货物是否已经被分配。通过设置b[tmp[1]]=True,将对应的货物标记为未分配,使其可以在后续的分配过程中被重新考虑,故答案为:b[tmp[1]]=True。
第1页/共1页
学科网(北京)股份有限公司
$$