内容正文:
金华十校2025年4月高三模拟考试
技术试题卷
考生须知:
本试题卷分两部分,第一部分信息技术,第二部分通用技术。全卷共14页,第一部分1至7页,第二部分8至14页。满分100分,考试时间90分钟。
1.答题前,请务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸上。
2.答题时,请按照答题纸上“注意事项”的要求,在答题纸相应的位置上规范作答,在本试题卷上的作答一律无效。
3.非选择题的答案须用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后须用黑色字迹的签字笔或钢笔描黑,答案写在本试题卷上无效。
第一部分 信息技术(50分)
一、选择题(本大题共12小题,每小题2分,共24分。在每小题给出的四个选项中,只有一个符合题目要求)
1. 某健身房推出“智能健身”模式:馆内健身设备通过人脸识别用户,在运动中自动采集用户的身高、体重、体脂率等身体指标。健身设备会根据用户的身体状况、语音指令智能调节设备。以跑步机为例,系统实时采集用户的心率、卡路里消耗量、跑步姿势等数据,与用户语音互动交流,运动结束后系统自动在“健身房APP"给用户推送运动报告。
以下关于“智能健身”系统中数据与信息的叙述,不正确的是( )
A. 跑步机采集的运动图片、语音指令都属于结构化数据
B. 该系统推送的运动报告有助于个性化服务,体现了数据的价值性
C. 实时采集心率、卡路里消耗量以数值呈现,是数据的一种表现形式
D. 该系统在用户运动中自动采集各项身体指标,体现了数据的时效性
2. 某健身房推出“智能健身”模式:馆内健身设备通过人脸识别用户,在运动中自动采集用户的身高、体重、体脂率等身体指标。健身设备会根据用户的身体状况、语音指令智能调节设备。以跑步机为例,系统实时采集用户的心率、卡路里消耗量、跑步姿势等数据,与用户语音互动交流,运动结束后系统自动在“健身房APP”给用户推送运动报告。
该健身房拟新增以下功能,其中运用了人工智能技术的是( )
A. 会员等级自动升级 B. 系统语音实时纠正跑步姿势
C. 定期发送运动提醒短信 D. 运动数据同步至社交平台
3. 某健身房推出“智能健身”模式:馆内健身设备通过人脸识别用户,在运动中自动采集用户的身高、体重、体脂率等身体指标。健身设备会根据用户的身体状况、语音指令智能调节设备。以跑步机为例,系统实时采集用户的心率、卡路里消耗量、跑步姿势等数据,与用户语音互动交流,运动结束后系统自动在“健身房APP”给用户推送运动报告。
以下关于该系统中数据存储和处理的叙述,正确的是( )
A. 系统中的数据以十六进制方式编码后才能存储在计算机中
B. 将采集到的运动姿势图片存储为bmp格式更节省存储空间
C. 系统采集用户的跑步姿势的过程经历了数据的采样和量化
D. 健身设备发出声音与用户交流的过程是模数转换过程
4. 学校部署自助水果售卖系统:用户刷脸验证后打开水果柜,柜内摄像头自动识别所选水果,关门后电子秤按重量差计算价格并自动扣费,结算终端同步显示金额。消费记录实时上传服务器,用户可通过浏览器查询账单。管理员使用“售卖系统APP”监控库存及时补货。
下列关于该信息系统的描述,不合理的是( )
A. 消费记录同步至服务器,体现系统的数据存储与传输功能
B. 系统中数据的收集和输入都由电子秤、摄像头等设备实现,无需用户输入
C. 购买水果的学生、老师和系统管理员,都属于该系统中的用户
D. 该系统降低了人工成本,但网络故障会影响系统的正常使用
5. 学校部署自助水果售卖系统:用户刷脸验证后打开水果柜,柜内摄像头自动识别所选水果,关门后电子秤按重量差计算价格并自动扣费,结算终端同步显示金额。消费记录实时上传服务器,用户可通过浏览器查询账单。管理员使用“售卖系统APP”监控库存及时补货。
下列关于该信息系统中软硬件的说法,正确的是( )
A. 该系统的硬件包括结算终端、摄像头、数据库等
B. 服务器的存储容量不会影响系统性能
C. 该系统只采用了B/S架构
D. “售卖系统APP”是一款应用软件
6. 学校部署自助水果售卖系统:用户刷脸验证后打开水果柜,柜内摄像头自动识别所选水果,关门后电子秤按重量差计算价格并自动扣费,结算终端同步显示金额消费记录实时上传服务器,用户可通过浏览器查询账单。管理员使用“售卖系统APP”监控库存及时补货。
下列关于该系统网络技术与数据安全的说法,正确的是( )
A. 水果售卖机不需要遵循TCP/IP协议
B. 水果售卖机可借助RFID技术接入互联网
C. 该系统使用的人脸数据属于个人敏感信息
D. 学生和系统管理员可设置相同访问权限
7. 某算法部分流程图如图所示,执行该流程时,若依次输入2,-5,12,-4,11,-3,下列说法正确的是( )
A. 执行这部分流程后,输出的结果为16 B. s的最终值等于ans的最终值
C. “s=s+a”共执行了5次 D. 该算法流程实现了双循环结构
8. 某二叉树只含有度为2和度为0的节点,若该二叉树中含有5个叶子节点,则该二叉树上的边的总数为( )
A. 7 B. 8 C. 9 D. 10
9. 队列Q中的元素依次为1,2,3,4,栈S为空。约定:P操作是队首元素出队后入栈,B操作是队首元素出队后入队,T操作是指栈顶元素出栈后入队。执行操作PPBT后,队列Q中的元素依次为( )
A. 4,3,2 B. 4,2,3 C. 4,3,1 D. 4,2,1
10. 有如下Python函数:
k=1
ch=s[0]
for i in range(1,len(s)):
if ch==s[i]:
k+=1
else:
if k==0:
ch=s[i]
k=1
else:
k-=1
变量s分别取下列值并运行后,变量ch的值不为"a"的是( )
A. "aaasd" B. "asdsa" C. "asads" D. "ssdaa"
11. 有如下Python程序:
import random
i,j=0,len(a)-1
key=random.randint(1,47)
while i<=j:
mid=(i+j)//2 #语句①
if a[mid]<=key: #语句②
i=mid+1
else:
j=mid-1
print(j)
当a为[5,12,19,26,33,33,48,50],运行程序,下列说法正确的是( )
A. 语句①执行的次数可能为4
B. 语句①改为“mid=(i+j+1)//2”,程序结果不会改变
C. 语句②改为“a[mid]<key”,程序结果不会改变
D. 若生成的key是33,则输出结果是4
12 有如下Python程序段:
import random
k=random.randint(2,5)
i=s=cnt=0
m=-1
for j in range(len(a)):
s+=a[i]
if a[j] % 2==1:
cnt+=1
while(j-i+1)>k or cnt>1:
if a[i] % 2==1:
cnt-=1
s-=a[i]
i+=1
m=max(m,s)
若a为[3,10,6,1,8,2,5,4],运行程序后m的值不可能的是( )
A. 16 B. 19 C. 25 D. 28
二、非选择题(本大题共3小题,第13题7分,第14题10分,第15题9分,共26分。)
13. 某地举办排球淘汰赛,参赛队伍从1号开始编号。每轮比赛,参赛队伍按编号从小到大依次安排比赛(如下表所示)胜者晋级,若末尾队伍无对手,则该队伍直接晋级。通常情况下,能力值高的队伍会战胜能力值低的队伍;如果能力值相近,则双方均有机会获胜。
小明编写了一个Python程序,模拟比赛过程并预测冠亚军,若参赛队伍能力值相差不超过5,随机选择一个队伍获胜。
例如有4支队伍,能力值与淘汰赛程如下表所示:
第一轮
第二轮
最终结果
1号队伍:97
1号队伍:97
1号队伍(冠军)
2号队伍:86
3号队伍:65
4号队伍:73(亚军)
4号队伍:73
(1)在上述例子中增加2支队伍,5号队伍能力值为83,6号队伍能力值为76,则本次比赛的亚军为______________号队伍。
(2)实现上述功能的代码如下,请在划线处填入合适的代码。
import random
#队伍编号与对应能力值存储在列表s,s=[["1号队伍",97],["2号队伍",86],……]
while len(s)>1:
nxt=[] #建立一个空列表nxt
for i in range(_________):
if abs(s[i][1]-s[i+1][1])<=5:
win=random.choice([s[i],s[i+1])#随机选择一个获胜
elif_________________:
win=s[i]
else:
win=s[i+1]
nxt.append(win) #将win添加到列表nxt的末尾
if_________________:
nxt.append(s[-1]) #将列表s最末元素添加到nxt的末尾
s=nxt
print("冠军:",s[0][0])
14. 小张为学校搭建教室噪音监测系统。系统通过声音传感器采集教室中的声音数据,通过Wi-Fi将数据传输到Web服务器,若噪音过高,服务器通过智能终端控制教室音响发出提醒。教师可通过浏览器登录系统,查看各个教室各时段的相关数据。请回答下列问题:
(1)在搭建该系统时,下列硬件不经过其他硬件设备直接相连的是___________(单选,填字母:A.声音传感器与智能终端/B.智能终端与服务器/C.服务器与教室音响)
(2)小张用浏览器查看数据页面,页面动态显示最新的数据及其采集时间。系统正常工作一段时间后,发现该页面不再变化,刷新后仍不变,该现象可能是__________出现故障(单选,填字母:A.声音传感器/B.服务器/C.智能终端)。
(3)智能终端上的程序具有如下功能:每隔2分钟从传感器获取1次声音数据值,并将声音值传输到服务器端存储。部分程序如下:
while True:
#myid保存设备编号,temp保存声音数据
temp=pin0.read_analog( )
errnoresp=Obloq.get("input?id="+str(myid)+"&val="+str(temp),10000)
#其他代码略
通过观察智能终端上的程序,下列说法正确的是__________(多选,填字母)。
A.服务器端程序中存在路由"/input"
B.向服务器传输数据可以不知道服务器的地址和端口
C.每个终端设置不同的设备编号用于区分所在教室
D.执行器接在智能终端的pin0引脚上
(4)小张将系统中某天各教室的数据导出到文件data.xlsx中,部分数据如图a所示。现要统计发出提醒次数(噪音值>60)最少的5个班级,并绘制柱形图(如图b所示)。
实现上述功能部分Python程序如下,请选择合适的代码填入划线处(填字母)。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("data.xlsx")
df=df.drop("时间",axis=1) #删除“时间”列
df1=_________________
df1=_________________
df2=_________________
df2=_________________
plt.bar(df2.教室,df2.噪声值)
#设置绘图参数,并显示如图c所示的柱形图,代码略
①②③④处可选代码有:
A.df1.groupby("噪声值",as_index=False).count( ) #分组计数
B.df1.groupby("教室",as_index=False).count( )
C.df1[df1["噪声值"]>60] #筛选
D.df[df["噪声值"]>60]
E.df1.sort_values("噪声值",ascending=True) #升序排序
F.df1.sort_values("噪声值",ascending=False)
G.df2.head(5) #获取前5条数据
(5)实际使用过程中,教室噪音分贝较大时教室音响频繁提醒,请给出一种可行的解决方法。_________
15. 某市举行编程挑战赛,在限定的时间内,选手完成题目可以获得积分。比赛设有排行榜,显示前5名选手的信息,排名方式为:
①按照积分降序显示选手的编号和积分,若积分相同,则编号小的选手排在前面;
②每名选手完成新的题目后,会更新缓冲区buf中的相应信息;
③每过一段时间,系统会将buf中选手的积分数据合并到排行榜中,再删除排行榜中这些选手的重复数据,生成新的排行榜。
若当前的排行榜如图a所示,此时buf缓冲区如图b所示,将缓冲区的数据更新到排行榜后,排行榜如题图c所示。
请回答下列问题:
(1)下一时间段有编号为5的选手得分50分,则排行榜更新后选手5的排名为____________。
(2)sort(b)函数用于对缓存区b中的记录按1的要求降序排序,返回一个索引列表a。
#列表b存储缓冲区的数据,其中b[i][0]保存编号、b[i][1]保存积分
def sort(b):
n=len(b)
a=list(range(len(b)))#生成列表a=[0,1,…,n-1]
for i in range(n-1):
k=i
for j in range(i+1,n):
if b[a[k]][1] < b[a[j]][1]:
k=j
elif b[a[k]][1]==b[a[j]][1]and b[a[k]][0]> b[a[j][0]
k=j
a[i],a[k]=a[k],a[i]
return a
若列表b=[[6,80],[3,100],[7,20],[5,80]],①函数返回a的值为_________;②函数中2处“k=j”的执行次数共有____________次。
实现题目要求的部分程序如下,输出如图d所示,请在划线处填入合适的代码。
def insert(d,last):
global data,head #可在函数内修改全局变量data和head的值
pre=p=last
while p !=-1 and(data[p][1]>d[1]or__________)):
pre=p;p=data[p][2]
data.append(d)
idx=len(data)-1
if p==head:
data[idx][2]=p
head=idx
else:
_________________
data[pre][2]=idx
return idx
def update(data):
global head
#更新data列表,去掉重复元素,并返回修改后的data,代码略
return data
#排行榜由data和head构成,且data[i][0]保存选手编号,data[i][1]保存选手积分
#初始data=[],head=-1,读入buf后执行如下代码
last=head
a=sort(buf)
for i in a:
buf[i].append(-1)
_________________
data=update(data)
print("当前排行榜:")
c=0
p=head
while p !=-1 and c<5:
print(data[p][0],data[p][1])
p=data[p][2]
c+=1
第1页/共1页
学科网(北京)股份有限公司
$$
金华十校2025年4月高三模拟考试
技术试题卷
考生须知:
本试题卷分两部分,第一部分信息技术,第二部分通用技术。全卷共14页,第一部分1至7页,第二部分8至14页。满分100分,考试时间90分钟。
1.答题前,请务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸上。
2.答题时,请按照答题纸上“注意事项”的要求,在答题纸相应的位置上规范作答,在本试题卷上的作答一律无效。
3.非选择题的答案须用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后须用黑色字迹的签字笔或钢笔描黑,答案写在本试题卷上无效。
第一部分 信息技术(50分)
一、选择题(本大题共12小题,每小题2分,共24分。在每小题给出的四个选项中,只有一个符合题目要求)
1. 某健身房推出“智能健身”模式:馆内健身设备通过人脸识别用户,在运动中自动采集用户的身高、体重、体脂率等身体指标。健身设备会根据用户的身体状况、语音指令智能调节设备。以跑步机为例,系统实时采集用户的心率、卡路里消耗量、跑步姿势等数据,与用户语音互动交流,运动结束后系统自动在“健身房APP"给用户推送运动报告。
以下关于“智能健身”系统中数据与信息叙述,不正确的是( )
A. 跑步机采集的运动图片、语音指令都属于结构化数据
B. 该系统推送的运动报告有助于个性化服务,体现了数据的价值性
C. 实时采集心率、卡路里消耗量以数值呈现,是数据的一种表现形式
D. 该系统在用户运动中自动采集各项身体指标,体现了数据的时效性
【答案】A
【解析】
【详解】本题考查的是数据与信息。结构化数据指具有固定格式和明确字段的数据(如数据库表格)。运动图片(图像文件)和语音指令(音频文件)属于非结构化数据,没有固定格式。故选A。
2. 某健身房推出“智能健身”模式:馆内健身设备通过人脸识别用户,在运动中自动采集用户的身高、体重、体脂率等身体指标。健身设备会根据用户的身体状况、语音指令智能调节设备。以跑步机为例,系统实时采集用户的心率、卡路里消耗量、跑步姿势等数据,与用户语音互动交流,运动结束后系统自动在“健身房APP”给用户推送运动报告。
该健身房拟新增以下功能,其中运用了人工智能技术的是( )
A. 会员等级自动升级 B. 系统语音实时纠正跑步姿势
C. 定期发送运动提醒短信 D. 运动数据同步至社交平台
【答案】B
【解析】
【详解】本题考查的是人工智能。会员等级自动升级是基于规则的自动化系统;定期发送运动提醒短信是定时任务功能;运动数据同步至社交平台是数据接口传输功能。故本题应选B。
3. 某健身房推出“智能健身”模式:馆内健身设备通过人脸识别用户,在运动中自动采集用户的身高、体重、体脂率等身体指标。健身设备会根据用户的身体状况、语音指令智能调节设备。以跑步机为例,系统实时采集用户的心率、卡路里消耗量、跑步姿势等数据,与用户语音互动交流,运动结束后系统自动在“健身房APP”给用户推送运动报告。
以下关于该系统中数据存储和处理的叙述,正确的是( )
A. 系统中的数据以十六进制方式编码后才能存储在计算机中
B. 将采集到的运动姿势图片存储为bmp格式更节省存储空间
C. 系统采集用户的跑步姿势的过程经历了数据的采样和量化
D. 健身设备发出声音与用户交流的过程是模数转换过程
【答案】C
【解析】
【详解】本题考查数据存储和处理。 A 选项错误,系统中的数据是以二进制方式编码后存储在计算机中的,并非十六进制。 B 选项错误,bmp 格式是一种未压缩的图像格式,占用存储空间较大,相比之下,一些压缩格式(如 jpg 等)更节省存储空间。 C 选项正确,系统采集用户跑步姿势,先对姿势信息进行采样,再将采样得到的信息进行量化,转化为计算机能够处理的数据形式 。 D 选项错误,健身设备发出声音与用户交流是将数字信号转换为模拟信号(数模转换),而模数转换是将模拟信号转换为数字信号。 因此,本题选择 C 选项。
4. 学校部署自助水果售卖系统:用户刷脸验证后打开水果柜,柜内摄像头自动识别所选水果,关门后电子秤按重量差计算价格并自动扣费,结算终端同步显示金额。消费记录实时上传服务器,用户可通过浏览器查询账单。管理员使用“售卖系统APP”监控库存及时补货。
下列关于该信息系统的描述,不合理的是( )
A. 消费记录同步至服务器,体现系统的数据存储与传输功能
B. 系统中数据的收集和输入都由电子秤、摄像头等设备实现,无需用户输入
C. 购买水果的学生、老师和系统管理员,都属于该系统中的用户
D. 该系统降低了人工成本,但网络故障会影响系统的正常使用
【答案】B
【解析】
【详解】本题考查的是信息系统。虽然电子秤和摄像头可以自动收集数据,但用户仍需通过刷脸验证身份(属于用户输入),且管理员需要通过APP补货(也涉及人工输入)。故本题应选B。
5. 学校部署自助水果售卖系统:用户刷脸验证后打开水果柜,柜内摄像头自动识别所选水果,关门后电子秤按重量差计算价格并自动扣费,结算终端同步显示金额。消费记录实时上传服务器,用户可通过浏览器查询账单。管理员使用“售卖系统APP”监控库存及时补货。
下列关于该信息系统中软硬件说法,正确的是( )
A. 该系统的硬件包括结算终端、摄像头、数据库等
B. 服务器的存储容量不会影响系统性能
C. 该系统只采用了B/S架构
D. “售卖系统APP”是一款应用软件
【答案】D
【解析】
【详解】本题考查的是硬件。选项A说法错误,数据库属于软件系统(如MySQL、Oracle等),不属于硬件;选项B说法错误,服务器的存储容量直接影响数据存储和访问效率,存储不足会导致系统响应变慢或崩溃;选项C说法错误,系统包含两种架构:B/S架构(用户通过浏览器查询账单),C/S架构(管理员使用“售卖系统APP”监控库存);选项D说法正确,APP属于面向特定用途的应用软件。故选D。
6. 学校部署自助水果售卖系统:用户刷脸验证后打开水果柜,柜内摄像头自动识别所选水果,关门后电子秤按重量差计算价格并自动扣费,结算终端同步显示金额。消费记录实时上传服务器,用户可通过浏览器查询账单。管理员使用“售卖系统APP”监控库存及时补货。
下列关于该系统网络技术与数据安全的说法,正确的是( )
A. 水果售卖机不需要遵循TCP/IP协议
B. 水果售卖机可借助RFID技术接入互联网
C. 该系统使用的人脸数据属于个人敏感信息
D. 学生和系统管理员可设置相同访问权限
【答案】C
【解析】
【详解】本题考查的是数据安全。A选项错误,水果售卖机需要联网上传消费记录、接收补货指令等,必须遵循TCP/IP协议;B选项错误,RFID主要用于物品识别(如库存管理),不能用于设备联网,售卖机应通过Wi-Fi/有线网络接入;C选项正确,人脸数据属于生物特征信息,具有唯一性和不可更改性,被法律明确定义为敏感个人信息;D选项错误,权限设置应遵循最小权限原则,管理员需要更高权限进行补货等操作。故选C。
7. 某算法的部分流程图如图所示,执行该流程时,若依次输入2,-5,12,-4,11,-3,下列说法正确的是( )
A. 执行这部分流程后,输出的结果为16 B. s的最终值等于ans的最终值
C. “s=s+a”共执行了5次 D. 该算法流程实现了双循环结构
【答案】C
【解析】
【详解】本题考查流程图。 A选项错误,初始i=1,ans=s=0 。依次输入数据:输入2时,s+2=2>0,s=2,ans=2;输入−5时,s−5=−3<0,s=0;输入12时,s+12=12>0,s=12,ans=12;输入−4时,s−4=8>0,s=8;输入11时,s+11=19>0,s=19,ans=19;输入−3时,s−3=16>0,s=16,最终输出ans=19,不是16。B 选项错误,由上述计算可知,s最终值为16,ans最终值为19,二者不相等。C 选项正确,依次分析每次输入:输入2、12、−4、11、−3时,均满足s+a≥0,会执行 “s=s+a”,共执行了5次。D 选项错误,流程图中只有一个以i≤6为循环条件的循环结构,并非双循环结构。 因此,本题选择 C 选项。
8. 某二叉树只含有度为2和度为0的节点,若该二叉树中含有5个叶子节点,则该二叉树上的边的总数为( )
A. 7 B. 8 C. 9 D. 10
【答案】B
【解析】
【详解】本题考查的是二叉树。在二叉树中,若只存在度为2(有两个子节点)和度为0(叶子节点)的节点,有以下性质: 叶子节点数(度为0的节点) 𝑛0 = 𝑛2 + 1 ,其中 𝑛2 是度为2的节点数。 总节点数 𝑛 = 𝑛0 + 𝑛2 。 边数等于总节点数减1,即边数 = 𝑛 − 1 。题目给出叶子节点数 𝑛0 = 5 ,代入公式: 𝑛 2 = 𝑛0 − 1 = 5 − 1 = 4 。 总节点数 𝑛 = 𝑛0 + 𝑛2 = 5 + 4 = 9 。 边数 = 9 − 1 = 8。故选B。
9. 队列Q中的元素依次为1,2,3,4,栈S为空。约定:P操作是队首元素出队后入栈,B操作是队首元素出队后入队,T操作是指栈顶元素出栈后入队。执行操作PPBT后,队列Q中的元素依次为( )
A. 4,3,2 B. 4,2,3 C. 4,3,1 D. 4,2,1
【答案】A
【解析】
【详解】本题考查队列操作。 初始状态队列 Q: [1, 2, 3, 4] (队首在左,队尾在右),栈 S: [] (空栈)
操作步骤解析:
我们需要依次执行操作序列 PPBT,即:
1. 第一个 P 操作
2. 第二个 P 操作
3. B 操作
4. T 操作
操作 1: P 操作(队首元素出队后入栈)
队列 Q: 队首元素 1 出队 → Q: [2, 3, 4],栈 S: 1入栈 → S: [1]
操作 2: P 操作(队首元素出队后入栈)
队列 Q: 队首元素 2 出队 → Q: [3, 4],栈 S: 2入栈 → S: [2, 1] (栈顶是 2)
操作 3: B 操作(队首元素出队后入队)
队列 Q: 队首元素 3 出队 → Q: [4],队列 Q: 3 重新入队(到队尾) → Q: [4, 3],栈 S: 无变化 → S: [2, 1]
操作 4: T 操作(栈顶元素出栈后入队)
栈 S: 栈顶元素 2 出栈 → S: [1],队列 Q: 2 入队(到队尾) → Q: [4, 3, 2]
最终队列 Q 的状态,队列 Q: [4, 3, 2]
故选A。
10. 有如下Python函数:
k=1
ch=s[0]
for i in range(1,len(s)):
if ch==s[i]:
k+=1
else:
if k==0:
ch=s[i]
k=1
else:
k-=1
变量s分别取下列值并运行后,变量ch的值不为"a"的是( )
A. "aaasd" B. "asdsa" C. "asads" D. "ssdaa"
【答案】C
【解析】
【详解】本题考查字符串遍历与变量更新逻辑。分析程序,初始化k=1,ch取字符串的第一个字符s[0]。循环从第二个字符开始遍历整个字符串。如果当前字符和ch相同,k加1;否则,如果k等于0,就将ch更新为当前字符,并重置k为1;如果k不等于0,就减1。C选项,初始状态:ch='a'(s[0]),k=1。 i=1(字符's'): ch='a' ≠ 's' → 进入else分支;k=1 ≠ 0 → k-=1 → k=0,ch保持为'a'。 i=2(字符'a'): ch='a' == 'a' → k+=1 → k=1。i=3(字符'd'): ch='a' ≠ 'd' → 进入else分支;k=1 ≠ 0 → k-=1 → k=0,ch保持为'a'。 i=4(字符's'): ch='a' ≠ 's' → 进入else分支; k=0 → 更新ch='s',k=1。最终ch="s",不为"a"。其余选项ch值均为"a"。因此,本题选择C选项。
11. 有如下Python程序:
import random
i,j=0,len(a)-1
key=random.randint(1,47)
while i<=j:
mid=(i+j)//2 #语句①
if a[mid]<=key: #语句②
i=mid+1
else:
j=mid-1
print(j)
当a为[5,12,19,26,33,33,48,50],运行程序,下列说法正确的是( )
A. 语句①执行的次数可能为4
B. 语句①改为“mid=(i+j+1)//2”,程序结果不会改变
C. 语句②改为“a[mid]<key”,程序结果不会改变
D. 若生成的key是33,则输出结果是4
【答案】B
【解析】
【详解】本题考查二分查找相关知识点。 A 选项错误,a长度为8,二分查找最多需要3次循环,无论key为何值,语句①的执行次数最多为3次,不可能为4次。B选项正确, 原mid = (i + j) // 2(向下取整),若改为mid = (i + j + 1) // 2(向上取整),循环路径可能不同,但最终j的值仍为最后一个小于等于key的位置,程序结果不变。C选项错误,原条件为a[mid] <= key,若改为a[mid] < key,当a[mid] == key时,逻辑会进入else分支,导致j左移,最终输出位置前移。例如,key = 33时,修改后输出j = 3(原为j = 5)。D选项错误,当key=33时,程序输出j=5(对应数组中的第二个33)而非4。因此,本题选择B选项。
12. 有如下Python程序段:
import random
k=random.randint(2,5)
i=s=cnt=0
m=-1
for j in range(len(a)):
s+=a[i]
if a[j] % 2==1:
cnt+=1
while(j-i+1)>k or cnt>1:
if a[i] % 2==1:
cnt-=1
s-=a[i]
i+=1
m=max(m,s)
若a为[3,10,6,1,8,2,5,4],运行程序后m的值不可能的是( )
A. 16 B. 19 C. 25 D. 28
【答案】D
【解析】
【详解】本题考查滑动窗口。分析程序:借助random.randint(2, 5)生成一个在2到5之间的随机整数k。对列表a开展遍历,在遍历进程中,把元素累加到变量s里,并且统计奇数的数量cnt。当子数组的长度超过k或者奇数的数量多于1个时,从子数组的左侧移除元素,同时更新s和cnt;持续更新m为当前最大的子数组和。所以该程序实际上是在寻找一个子数组,使得该子数组的长度不超过k,并且其中奇数的数量不超过1。同时,这个子数组的和s要尽可能大,m记录的是这个过程中的最大s值。A 选项,当 k = 2 时,选取子数组 [10, 6],所以 m 的值有可能是 16。B 选项,当 k = 3 时,选取子数组 [3,10, 6],m 的值有可能是 19。C 选项,当 k = 4时,选取子数组 [10, 6, 1, 8], m 的值有可能是 25。D 选项,由于子数组中奇数最多只能有 1 个,且 k 的最大值为 5,在列表 [3, 10, 6, 1, 8, 2, 5, 4] 里,不管怎样选取长度不超过 5 且奇数最多 1 个的子数组,都无法得到和为 28 的结果,所以 m 的值不可能是 28。因此,本题选择 D 选项。
二、非选择题(本大题共3小题,第13题7分,第14题10分,第15题9分,共26分。)
13. 某地举办排球淘汰赛,参赛队伍从1号开始编号。每轮比赛,参赛队伍按编号从小到大依次安排比赛(如下表所示)胜者晋级,若末尾队伍无对手,则该队伍直接晋级。通常情况下,能力值高的队伍会战胜能力值低的队伍;如果能力值相近,则双方均有机会获胜。
小明编写了一个Python程序,模拟比赛过程并预测冠亚军,若参赛队伍能力值相差不超过5,随机选择一个队伍获胜。
例如有4支队伍,能力值与淘汰赛程如下表所示:
第一轮
第二轮
最终结果
1号队伍:97
1号队伍:97
1号队伍(冠军)
2号队伍:86
3号队伍:65
4号队伍:73(亚军)
4号队伍:73
(1)在上述例子中增加2支队伍,5号队伍能力值为83,6号队伍能力值为76,则本次比赛的亚军为______________号队伍。
(2)实现上述功能的代码如下,请在划线处填入合适的代码。
import random
#队伍编号与对应能力值存储在列表s,s=[["1号队伍",97],["2号队伍",86],……]
while len(s)>1:
nxt=[] #建立一个空列表nxt
for i in range(_________):
if abs(s[i][1]-s[i+1][1])<=5:
win=random.choice([s[i],s[i+1])#随机选择一个获胜
elif_________________:
win=s[i]
else:
win=s[i+1]
nxt.append(win) #将win添加到列表nxt的末尾
if_________________:
nxt.append(s[-1]) #将列表s最末元素添加到nxt的末尾
s=nxt
print("冠军:",s[0][0])
【答案】 ①. 5 ②. 0,len(s)-1,2 ③. s[i][1]>s[i+1][1] ④. len(s)%2==1或len(s)%2
【解析】
【详解】本题考查数组。
(1)第一轮比赛,1 号队伍(97)对 2 号队伍(86),1 号胜;3 号队伍(65)对 4 号队伍(73),4 号胜;5 号队伍(83)对 6 号队伍(76),5 号胜。第二轮比赛,1 号队伍(97)轮空直接晋级;4 号队伍(73)对 5 号队伍(83),5 号胜。最终决赛 1 号队伍(冠军)对 5 号队伍,所以亚军是 5 号队伍。
(2)①处:此处目的是对相邻队伍进行两两比较比赛。因为每次比较是相邻的两支队伍,所以循环要遍历到倒数第二支队伍即可(这样能保证两两比较),因此循环范围应是从 0 开始,到队伍数量减 1,步长为 2,即0, len(s) - 1, 2 。这样可以依次对相邻的两支队伍进行比赛判断,所以①处应填0, len(s) - 1, 2 。 ②处:已知当两队能力值相差不超过 5 时随机选获胜队伍,这里要判断能力值高的队伍获胜情况,即当 s[i][1] > s[i + 1][1] 时,s[i] 队伍能力值高,s[i] 获胜,所以②处应填 s[i][1] > s[i + 1][1]。 ③:这里是对末尾队伍直接晋级的判断,当队伍数量为奇数时,末尾队伍无对手直接晋级,即当 len(s) % 2 == 1 时满足条件,所以③处应填 len(s) % 2 == 1。
14. 小张为学校搭建教室噪音监测系统。系统通过声音传感器采集教室中的声音数据,通过Wi-Fi将数据传输到Web服务器,若噪音过高,服务器通过智能终端控制教室音响发出提醒。教师可通过浏览器登录系统,查看各个教室各时段的相关数据。请回答下列问题:
(1)在搭建该系统时,下列硬件不经过其他硬件设备直接相连的是___________(单选,填字母:A.声音传感器与智能终端/B.智能终端与服务器/C.服务器与教室音响)
(2)小张用浏览器查看数据页面,页面动态显示最新的数据及其采集时间。系统正常工作一段时间后,发现该页面不再变化,刷新后仍不变,该现象可能是__________出现故障(单选,填字母:A.声音传感器/B.服务器/C.智能终端)。
(3)智能终端上的程序具有如下功能:每隔2分钟从传感器获取1次声音数据值,并将声音值传输到服务器端存储。部分程序如下:
while True:
#myid保存设备编号,temp保存声音数据
temp=pin0.read_analog( )
errno,resp=Obloq.get("input?id="+str(myid)+"&val="+str(temp),10000)
#其他代码略
通过观察智能终端上程序,下列说法正确的是__________(多选,填字母)。
A.服务器端程序中存在路由"/input"
B.向服务器传输数据可以不知道服务器的地址和端口
C.每个终端设置不同的设备编号用于区分所在教室
D.执行器接在智能终端的pin0引脚上
(4)小张将系统中某天各教室的数据导出到文件data.xlsx中,部分数据如图a所示。现要统计发出提醒次数(噪音值>60)最少的5个班级,并绘制柱形图(如图b所示)。
实现上述功能的部分Python程序如下,请选择合适的代码填入划线处(填字母)。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("data.xlsx")
df=df.drop("时间",axis=1) #删除“时间”列
df1=_________________
df1=_________________
df2=_________________
df2=_________________
plt.bar(df2.教室,df2.噪声值)
#设置绘图参数,并显示如图c所示柱形图,代码略
①②③④处可选代码有:
A.df1.groupby("噪声值",as_index=False).count( ) #分组计数
B.df1.groupby("教室",as_index=False).count( )
C.df1[df1["噪声值"]>60] #筛选
D.df[df["噪声值"]>60]
E.df1.sort_values("噪声值",ascending=True) #升序排序
F.df1.sort_values("噪声值",ascending=False)
G.df2.head(5) #获取前5条数据
(5)实际使用过程中,教室噪音分贝较大时教室音响频繁提醒,请给出一种可行的解决方法。_________
【答案】 ①. A ②. C ③. AC ④. D ⑤. B ⑥. E ⑦. G ⑧. 服务器记录每个教室每次发出提醒的时间,控制两次提醒的时间间隔或降低智能终端采集和上传数据的频率或其他类似描述的答案
【解析】
【详解】本题考查搭建信息系统。
(1)声音传感器主要负责采集声音数据,通常需先将数据传输给智能终端进行初步处理或暂存,二者直接相连(A 符合);智能终端通过 Wi - Fi 等网络方式与服务器相连,传输采集到的数据(B不符合);服务器一般不直接与教室音响相连,而是通过智能终端来控制教室音响发出提醒(C 不符合),所以答案是 A。
(2)页面能显示,说明服务器正常;如果传感器故障,数据仍会上传,但数据不准确;目前无新数据,因此是智能终端故障,导致没有上传新数据。所以答案是 C。
(3)A 选项:从代码 Obloq.get("input?id=" + str(myid) + "&val=" + str(temp),10000) 可以看出,智能终端向服务器请求的路径是 /input,这意味着服务器端程序中必然存在对应的路由 /input 来接收和处理该请求,A 正确。 B 选项:向服务器传输数据时,必须要知道服务器的地址和端口,才能准确地将数据发送到对应的服务器上,B 错误。 C 选项:程序中使用 myid 保存设备编号,不同的教室可以设置不同的设备编号,这样便于服务器区分数据来自哪个教室,C 正确。 D 选项:从代码 temp = pin0.read_analog( ) 可知,pin0 引脚是用于读取声音传感器传来的模拟数据,而不是连接执行器,D 错误。因此本题答案为AC。
(4)①处:该处要从原始数据 df 中筛选出噪音值大于 60 的数据,df[df["噪声值"]>60] 能实现从 df 中筛选出满足 “噪声值> 60” 条件的行,所以该空答案为 D。 ②处:要统计每个教室发出提醒(噪音值 > 60)的次数,需按 “教室” 分组计数,df1.groupby("教室",as_index=False).count() 能实现按 “教室” 分组并统计数量,所以该空答案为 B。 ③处为获取提醒次数最少的 5 个班级,需对分组计数后的数据按 “噪声值”(实际是提醒次数)升序排序并取前五行数据,df1.sort_values("噪声值",ascending=True) 可实现升序排序,所以该空答案为 E。④处:df2.head(5) 实现获取前5条数据,所以该空答案是G。
(5)服务器记录每个教室每次发出提醒的时间,控制两次提醒的时间间隔或降低智能终端采集和上传数据的频率或其他类似描述的答案
15. 某市举行编程挑战赛,在限定的时间内,选手完成题目可以获得积分。比赛设有排行榜,显示前5名选手的信息,排名方式为:
①按照积分降序显示选手的编号和积分,若积分相同,则编号小的选手排在前面;
②每名选手完成新的题目后,会更新缓冲区buf中的相应信息;
③每过一段时间,系统会将buf中选手的积分数据合并到排行榜中,再删除排行榜中这些选手的重复数据,生成新的排行榜。
若当前的排行榜如图a所示,此时buf缓冲区如图b所示,将缓冲区的数据更新到排行榜后,排行榜如题图c所示。
请回答下列问题:
(1)下一时间段有编号为5的选手得分50分,则排行榜更新后选手5的排名为____________。
(2)sort(b)函数用于对缓存区b中的记录按1的要求降序排序,返回一个索引列表a。
#列表b存储缓冲区的数据,其中b[i][0]保存编号、b[i][1]保存积分
def sort(b):
n=len(b)
a=list(range(len(b)))#生成列表a=[0,1,…,n-1]
for i in range(n-1):
k=i
for j in range(i+1,n):
if b[a[k]][1] < b[a[j]][1]:
k=j
elif b[a[k]][1]==b[a[j]][1]and b[a[k]][0]> b[a[j][0]
k=j
a[i],a[k]=a[k],a[i]
return a
若列表b=[[6,80],[3,100],[7,20],[5,80]],①函数返回a的值为_________;②函数中2处“k=j”的执行次数共有____________次。
实现题目要求的部分程序如下,输出如图d所示,请在划线处填入合适的代码。
def insert(dlast):
global data,head #可在函数内修改全局变量data和head的值
pre=p=last
while p !=-1 and(data[p][1]>d[1]or__________)):
pre=p;p=data[p][2]
data.append(d)
idx=len(data)-1
if p==head:
data[idx][2]=p
head=idx
else:
_________________
data[pre][2]=idx
return idx
def update(data):
global head
#更新data列表,去掉重复元素,并返回修改后的data,代码略
return data
#排行榜由data和head构成,且data[i][0]保存选手编号,data[i][1]保存选手积分
#初始data=[],head=-1,读入buf后执行如下代码
last=head
a=sort(buf)
for i in a:
buf[i].append(-1)
_________________
data=update(data)
print("当前排行榜:")
c=0
p=head
while p !=-1 and c<5:
print(data[p][0],data[p][1])
p=data[p][2]
c+=1
【答案】 ①. 4 ②. [1,3,0,2]或1,3,0,2 ③. 3 ④. data[p][1]==d[1]and data[p][0]<d[0] ⑤. data[idx][2]=data[pre][2]或data[idx][2]=p ⑥. last=insert(buf[i],last)
【解析】
【详解】本题考查链表。
(1)根据题意,更新后的排行榜如下图:因此选手 5 的排名是 4。
(2)①在sort函数中,通过双重循环比较缓冲区b中记录的积分和编号,实现按积分降序、积分相同则编号小的在前的排序规则。对于列表b=[[6,80],[3,100],[7,20],[5,80]] ,首先比较积分,100 最大,所以编号 3 的元素应排在最前面;然后比较编号 6 和 5,因为 6 > 5,所以编号 5 的元素排在编号 6 的元素前面;最后是编号 7 的元素。所以函数返回的索引列表a为[1, 3, 0, 2] 。
②函数中的双重循环,外层i从0到n-2,内层j从i+1到n-1。每次内层循环中,如果当前元素b[a[k]]的积分小于b[a[j]]的积分,或者积分相同但编号更大时,k会被更新为j,并且执行“k=j”。 对于给定的列表b,具体执行过程:初始a=[0,1,2,3] i=0时,k=0,j从1到3:j=1: 比较索引0(积分80)和索引1(积分100),因为80<100,所以k=j=1,执行k=j一次。 j=2: 比较索引1(积分100)和索引2(积分20),不更新k。 j=3: 比较索引1(100)和索引3(80),不更新k。 此时交换a[0]和a[1],a变为[1,0,2,3] 。 i=1时,k=1,初始元素是a[1]=0(积分80),j从2到3: j=2: 比较索引0(积分80)和索引2(20),不更新k。 j=3: 比较索引0(80)和索引3(80),编号6 vs 5,因为6>5,所以k=j=3,执行k=j一次。交换a[1]和a[3],a变为[1,3,2,0]。 i=2时,k=2,元素是a[2]=2(积分20),j=3: j=3: 比较索引2(20)和索引0(80),20<80,所以k=j=3,执行k=j一次。交换a[2]和a[3],a变为[1,3,0,2] 。因此,总共执行了三次k=j:在i=0时一次,i=1时一次,i=2时一次,总次数是3次。
(3)①处,在insert函数中,循环条件是要找到合适的位置插入新的选手数据。这里要满足当前位置的积分大于新选手的积分,或者积分相同但当前位置选手编号小于新选手编号,所以应填入data[p][1]==d[1] and data[p][0]]<d[0]。
②处 ,在insert函数中,当找到插入位置且不是插入到头部时,需要将插入位置前一个元素的指针指向新插入元素的索引,同时新插入元素的指针指向原来插入位置的元素索引,所以应填入data[idx][2]=p 或data[idx][2]=data[pre][2]。
③处,在主程序中,循环遍历排序后的缓冲区索引列表a,将缓冲区中的选手数据插入到排行榜中,由于不论排行榜还是缓冲区(排序过),都是从大到小排列的,所以前面找过的位置不需要再去找一遍,因此每次迭代上一次找过的位置 last 是最优的。所以应填入last=insert(buf[i],last) 。
第1页/共1页
学科网(北京)股份有限公司
$$