内容正文:
浙江省A9协作体暑假返校联考
高三技术试题卷
考生须知:
1.本试卷分两部分,第一部分信息技术,第二部分通用技术。满分100分,考试时间90分钟。
2.考生答题前,务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸上。
3.选择题的答案用2B铅笔将答题纸上对应题目的答案选项涂黑,如要改动,须将原填涂处用橡皮擦净。
4.非选择题的答案用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后用黑色字迹的签字笔或钢笔描黑,答案写在非答题纸上无效。
第一部分:信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 某校运动会采用智能管理系统。系统实时采集比赛数据(如短跑计时、跳远距离等),并自动生成排行榜。赛后,组委会将精选的比赛照片和视频上传至云平台,学生可通过学号登录系统查看个人成绩、下载照片。
关于该系统中数据的说法,正确的是( )
A. 短跑计时数据与照片的数字化过程完全相同
B. 比赛数据无需经过加工和处理,就能生成排行榜
C. 系统中的短跑计时、比赛照片和视频等数据均属于结构化数据
D. 为提高该系统数据的管理效率,一般可将不同类型数据分别存储与管理
【答案】D
【解析】
【详解】本题考查数据管理。短跑计时数据是数值型数据,照片是图像数据,它们的数字化过程不同,A选项错误;比赛数据需要经过加工和处理,如排序等操作,才能生成排行榜,B选项错误;比赛照片和视频属于非结构化数据,短跑计时属于结构化数据,C选项错误;为提高该系统数据的管理效率,一般可将不同类型数据分别存储与管理,D选项正确。故答案为:D。
2. 某校运动会采用智能管理系统。系统实时采集比赛数据(如短跑计时、跳远距离等),并自动生成排行榜。赛后,组委会将精选的比赛照片和视频上传至云平台,学生可通过学号登录系统查看个人成绩、下载照片。为保障系统安全并履行信息社会责任,下列做法合适的是( )
A. 系统以明文存储与传输用户信息
B. 组委会公开学生数据至社交媒体
C. 系统管理员将密码设为复杂密码,并定期更新
D. 学生将自己的账号借给他人,查询比赛成绩与照片
【答案】C
【解析】
【详解】本题考查信息安全与社会责任。系统以明文存储与传输用户信息会使信息容易泄露,存在安全风险;组委会公开学生数据至社交媒体侵犯了学生的隐私,不符合信息社会责任;学生将自己的账号借给他人,可能导致个人信息泄露,也不利于系统安全。而系统管理员将密码设为复杂密码并定期更新,能够有效保障系统安全,符合保障系统安全并履行信息社会责任的要求。故答案为:C。
3. 某医院的智慧健康监测系统为患者配备了智能手环,内置心率传感器、血氧传感器、北斗定位和蓝牙模块,实时采集用户生理数据,并将数据加密后通过5G网络同步至云端服务器分析与存储。服务器端程序采用深度学习算法自动分析数据并在发现异常体征时触发预警;患者可通过手机APP查看健康报告,医生通过NFC刷卡快速调取病历,并生成可视化诊疗建议。在手机APP实时显示用户心率变化曲线的过程中,没有用到的技术是( )
A. 人工智能 B. 移动通信 C. 数据可视化 D. 传感器数据采集
【答案】A
【解析】
【详解】本题考查信息系统。手机APP实时显示用户心率变化曲线,需要传感器采集用户的心率数据,运用了传感器数据采集技术;采集到的数据要通过移动通信技术(如题目中的5G网络)传输到手机APP;在手机APP上显示心率变化曲线,是将数据以可视化的方式呈现,运用了数据可视化技术。而人工智能主要体现在服务器端程序采用深度学习算法自动分析数据并在发现异常体征时触发预警,在手机APP实时显示用户心率变化曲线过程中未涉及人工智能技术。故答案为:A。
4. 某医院的智慧健康监测系统为患者配备了智能手环,内置心率传感器、血氧传感器、北斗定位和蓝牙模块,实时采集用户生理数据,并将数据加密后通过5G网络同步至云端服务器分析与存储。服务器端程序采用深度学习算法自动分析数据并在发现异常体征时触发预警;患者可通过手机APP查看健康报告,医生通过NFC刷卡快速调取病历,并生成可视化诊疗建议。关于该系统中手机APP的功能与设计,说法正确的是( )
A. APP升级仅需适配最新型号手环 B. APP直接处理原始生理信号数据
C. 在锁屏界面强制显示紧急异常预警通知 D. APP查看历史数据需从智能手环读取数据
【答案】C
【解析】
【详解】本题考查智慧健康监测系统手机APP功能与设计。APP升级需要适配多种型号手环,而不只是最新型号,A错误;APP主要是展示健康报告,原始生理信号数据是由云端服务器处理分析的,并非APP直接处理,B错误;在锁屏界面强制显示紧急异常预警通知,能够让患者及时知晓异常体征情况,符合系统对异常体征及时预警的设计目的,C正确;APP查看历史数据是从云端服务器读取数据,而不是从智能手环读取,D错误。故答案为:C。
5. 某医院的智慧健康监测系统为患者配备了智能手环,内置心率传感器、血氧传感器、北斗定位和蓝牙模块,实时采集用户生理数据,并将数据加密后通过5G网络同步至云端服务器分析与存储。服务器端程序采用深度学习算法自动分析数据并在发现异常体征时触发预警;患者可通过手机APP查看健康报告,医生通过NFC刷卡快速调取病历,并生成可视化诊疗建议。关于该系统的硬件与网络,说法正确的是( )
A. 北斗定位系统参与传输患者的生理数据
B. NFC在此场景中的主要作用是近场身份识别
C. 将患者数据加密传输,则无需网络协议的支持
D. 发送预警信息主要体现了网络的分布处理功能
【答案】B
【解析】
【详解】本题考查信息技术硬件与网络相关知识。北斗定位系统主要用于提供位置信息,并不参与传输患者的生理数据;将患者数据加密传输仍需要网络协议支持,网络协议负责数据传输的规则、格式等,加密与网络协议并不冲突;发送预警信息主要体现了网络的数据通信功能,而非分布处理功能;NFC具有短距离通信特点,在此场景中医生通过NFC刷卡快速调取病历,主要作用是近场身份识别。故答案为:B。
6. 某医院的智慧健康监测系统为患者配备了智能手环,内置心率传感器、血氧传感器、北斗定位和蓝牙模块,实时采集用户生理数据,并将数据加密后通过5G网络同步至云端服务器分析与存储。服务器端程序采用深度学习算法自动分析数据并在发现异常体征时触发预警;患者可通过手机APP查看健康报告,医生通过NFC刷卡快速调取病历,并生成可视化诊疗建议。系统需数字化患者皮肤照片用于AI分析。用扫描仪对4cm×3cm的皮肤区域采样,将其保存为分辨率为800*600像素,24位真彩色的BMP位图。下列说法正确的是( )
A. 该图像最多支持24种不同颜色
B. 数字化后图像总像素点为4×3=12个
C. 若皮肤深色斑点区域占比增大,文件存储容量会随之增加
D. 将色彩深度调整为256色灰度,文件存储容量会减小为原来的1/3
【答案】D
【解析】
【详解】本题考查图像存储容量相关知识。24位真彩色图像,每个像素用24位二进制数表示,可表示的颜色数为\(2^{24}\)种,并非24种,所以A选项错误;图像分辨率为800*600像素,即数字化后图像总像素点为800×600个,而不是4×3=12个,B选项错误;图像文件存储容量与像素、色彩深度有关,与皮肤深色斑点区域占比无关,C选项错误;24位真彩色图像色彩深度为24位,256色灰度图像色彩深度为8位,文件存储容量会减小为原来的8÷24 = 1/3,D选项正确。故答案为:D。
7. 某医院的智慧健康监测系统为患者配备了智能手环,内置心率传感器、血氧传感器、北斗定位和蓝牙模块,实时采集用户生理数据,并将数据加密后通过5G网络同步至云端服务器分析与存储。服务器端程序采用深度学习算法自动分析数据并在发现异常体征时触发预警;患者可通过手机APP查看健康报告,医生通过NFC刷卡快速调取病历,并生成可视化诊疗建议。若系统将健康数据误判为异常,最可能的原因是( )
A. 5G网络传输延迟 B. 手环蓝牙连接断开
C. 服务器硬件性能不足 D. 深度学习的训练样本数据不足
【答案】D
【解析】
【详解】本题考查深度学习算法应用。系统采用深度学习算法自动分析数据,若训练样本数据不足,算法的准确性和泛化能力会受到影响,容易出现误判情况。而5G网络传输延迟主要影响数据传输的及时性;手环蓝牙连接断开会导致数据无法正常传输到云端;服务器硬件性能不足可能会影响数据处理的速度,但这些都不是导致健康数据误判为异常的最可能原因。故答案为:D。
8. 某非完全二叉树包含7个节点,增加一个节点可将该二叉树变成完全二叉树,原二叉树的形态有多少种?( )
A. 1 B. 2 C. 3 D. 4
【答案】C
【解析】
【详解】本题考查二叉树。8个节点的完全二叉树如图所示。8 个节点的完全二叉树是唯一的。如果删去节点 8,剩下的 7 个节点还是完全二叉树,不符合题意。如果删去节点5、6 或 7,得到的都是非完全二叉树,加回去就能变成完全二叉树。 所以原二叉树的形态有 3 种。故答案为:C。
9. n个人排队买票,每人每次只能买一张票,并耗时10秒,买完后若还需买票,则重新到队尾排队(不计时间),无需买票则离开队伍。如:有3个人排队买票,每人买票数量依次为[4,1,2],则20秒后买票数据更新为[2,3]。现有4个人排队买票,每人买票数量依次为[4,2,1,2],则30秒后买票数据更新为( )
A. [2,3,1] B. [3,1,0,2] C. [3,1,2] D. [2,1,3]
【答案】A
【解析】
【详解】本题考查排队问题。要解决这个问题,需先明确核心规则:每人买 1 张票耗时 10 秒,30 秒共处理 3 次队首买票,队首买票后若剩余票数 > 0 则移至队尾,若剩余票数 = 0 则直接离开,最终“买票数据”为 30 秒时仍在队中人员按排队顺序的剩余票数,初始排队情况为 4 人 [A (4), B (2), C (1), D (2)];首先是第 1 次处理(0-10 秒),队首 A 买 1 张票后剩余 3 张(>0),移至队尾,此时队列变为 [B (2), C (1), D (2), A (3)];接着是第 2 次处理(10-20 秒),队首 B 买 1 张票后剩余 1 张(>0),移至队尾,此时队列变为 [C (1), D (2), A (3), B (1)];最后是第 3 次处理(20-30 秒),队首 C 买 1 张票后剩余 0 张(=0),直接离开,此时队列仅剩余 [D (2), A (3), B (1)],按顺序对应的剩余票数即为 [2, 3, 1]。故答案为:A。
10. 有如下Python程序:
n=len(s)
max=c=0
for i in range(n):
if"a"<=s[i]<="z" or "A"<=s[i]<="Z":
c+=1
else:
if c>max:
max=c
c=0
若s为"Python is a popular language",执行该程序段后,max的值为( )
A. 8 B. 7 C. 6 D. 5
【答案】B
【解析】
【详解】本题考查Python程序逻辑分析。这段程序在遍历字符串时,只有遇到非字母字符时才会把当前连续字母长度 c 更新到 max。由于字符串 "Python is a popular language" 最后一个单词 "language" 后没有空格或其他非字母字符,循环结束时 c 的值并没有被更新到 max。因此,程序实际记录的最长连续字母长度是前面单词 "popular" 的长度 7,所以最终输出 max = 7。故答案为:B。
11. 有如下Python程序:
from random import randint
a=[9,4,7,5,6,3,8,2]
n=len(a)
x=randint(1,3)*2+1
for i in range(n-1):
for j in range(x,i,-1):
if a[j]<a[j-1]:
a[j],a[j-1]=a[j-1],a[j]
执行该程序段后,数组a的值不可能为( )
A. [2,3,4,5,6,7,8,9] B. [3,4,5,6,7,9,8,2]
C. [4,5,7,9,6,3,8,2] D. [4,5,6,7,9,3,8,2]
【答案】D
【解析】
【详解】本题考查Python程序与冒泡排序。这段程序的作用是“部分冒泡排序”。因为 x 只能取 3、5、7 三个值,所以循环执行后,数组会出现三种情况:当 x=3 时,前 4 个元素排好序;当 x=5 时,前 6 个元素排好序;当 x=7 时,整个数组完全有序。题目给出的四个选项中,前三个正好对应这三种可能情况,唯独 [4,5,6,7,9,3,8,2] 与规则不符:若 x=5,则前 6 个元素应有序,但此处第 6 个数为 3 破坏了升序;若 x=3 或 x=7 也无法得到这种结果。因此该排列不可能出现,答案选 [4,5,6,7,9,3,8,2]。故答案为:D。
12. 定义如下函数,返回key在列表data中的下标,若key不存在,则返回-1。
def bsearch(datakey):
left,right=0,len(a)-1
while left<=right:
mid=(left+right)//2
if data[mid]==key:
return mid
if data[left]<data[mid]:
if data[left]<=key<data[mid]:
right=mid-1
else:
left=mid+1
else:
if data[mid]<key<=data[right]:
left=mid+1
else:
right=mid-1
return-1
如果调用函数返回结果不正确,则data可能是( )
A. [32,45,48,56,59,8,12] B. [8,59,56,48,45,32,12]
C. [59,8,12,32,45,48,56] D. [8,12,32,45,48,56,59]
【答案】B
【解析】
【详解】本题考查Python程序。这段函数实现的是在旋转过的升序数组中查找元素的二分查找。它的逻辑是:先判断数组中 mid 左半段是否有序,如果左半段有序且 key 在左半段范围内,就在左半段继续搜索,否则搜索右半段;反之如果右半段有序且 key 在右半段范围内,就在右半段搜索,否则搜索左半段。函数正确运行的前提是数组原本是升序排列、可能经过一次旋转。如果数组不符合这种结构,比如完全降序 [8,59,56,48,45,32,12],左右有序的判断就会失效,导致搜索方向错误,无法正确返回 key 的下标。因此,调用函数返回结果不正确的可能是 [8,59,56,48,45,32,12]。故答案为:B。
二、非选择题(共3小题,其中第13小题8分,第14小题9分,第15小题9分,共26分)
13. 某智慧农场监测大棚环境,智能终端通过传感器每小时采集4次土壤湿度数据,剔除最大值和最小值后取均值上传至服务器并存储到数据库中服务器发现异常时向管理员告警,并通过智能终端向灌溉设备发送控制指令。用户可通过手机App查看数据或远程控制灌溉设备。请回答下列问题:
(1)通过手机App向灌溉设备发送控制指令的正确流向顺序是______(单选)。
A.手机→服务器→智能终端→灌溉设备
B.手机→智能终端→服务器→灌溉设备
(2)处理湿度数据过程中,剔除极值并计算平均值的操作在______完成(单选)。
A.服务器 B.灌溉设备 C.智能终端
(3)若数据库故障,可能引发的问题有______(多选)。
A.服务器无法保存湿度数据 B.灌溉设备无法执行启动指令
C.智能终端无法采集传感器数据 D.手机App无法查看历史湿度数据
(4)将每小时获取的4个湿度数据分别存入a、b、c和d中,将剔除极值后的平均值存入ave的部分流程图如图所示。图中①处应填入______。
(5)服务器检测到异常时需通过Wi-Fi向智能终端发送灌溉指令,用户手机App的灌溉指令也依赖网络传输。若大棚网络中断,系统将无法响应紧急灌溉需求,导致作物受损。请针对该缺陷设计一个改进措施。______
【答案】 ①. A ②. C ③. AD ④. c>d?或c>d ⑤. 为系统配置网络冗余、将检测到异常并控制灌溉设备的程序直接烧录在智能终端中,或其他可行答案
【解析】
【详解】本题考查信息系统的应用。
(1)题干明确系统交互逻辑:手机 App 作为用户操作端,不直接与智能终端通信,需通过服务器中转;灌溉设备的控制指令需经“服务器→智能终端”再传递。因此手机 App 发送控制指令时,流向为“手机先将指令发送至服务器,服务器再转发给智能终端,最后由智能终端控制灌溉设备”,符合该逻辑的是选项 A。故答案为:A。
(2)题干直接说明数据处理流程:“智能终端通过传感器每小时采集 4 次土壤湿度数据,剔除最大值和最小值后取均值上传至服务器”。这表明“剔除极值并计算平均值” 的操作是在数据上传到服务器之前完成的,执行主体为智能终端,而非服务器(仅接收存储处理后的数据)或灌溉设备(仅执行控制指令)。故答案为:C。
(3)选项 A:服务器需将处理后的湿度数据存入数据库,数据库故障会导致服务器无法完成保存操作,正确;选项 B:灌溉设备的启动指令由服务器→智能终端传递,与数据库是否存储数据无关,故障不影响指令执行,错误;选项 C:智能终端采集传感器数据是本地操作,不依赖数据库,故障不影响采集,错误;选项 D:手机 App 查看的历史湿度数据存储在数据库中,数据库故障会导致历史数据无法读取,正确。 因此答案为 AD。
(4)在处理 4 个湿度数据(a、b、c、d)剔除极值求平均值的流程中,①处的核心作用是规范 c 和 d 的大小关系。此前流程已通过“a>b?”的判断调整 a、b,使 a≤b(确保 a 是两者中的较小值,b 是较大值);为后续统一筛选最大、最小值,需对 c、d 执行相同逻辑 —— 通过“c>d?”的判断,若成立则交换 c、d,使 c≤d。这样处理后,4 个数据中最大值必在 b 或 d 中,最小值必在 a 或 c 中,可准确剔除极值并计算剩余两者的平均值。因此,①处应填入“c>d?”。故答案为:c>d?或c>d。
(5)原系统缺陷核心是 “依赖单一网络传输且控制指令需经服务器中转”,网络中断会导致指令无法传递。改进措施需围绕“破除网络依赖”或“保障传输通道”设计:方案 1:配置网络冗余(如备用 4G/5G 模块),当 Wi-Fi 中断时自动切换备用网络,确保服务器与智能终端的指令传输;方案 2:在智能终端本地烧录“异常检测与灌溉控制程序”,当检测到湿度异常且网络中断时,无需等待服务器指令,智能终端直接控制灌溉设备启动,实现离线应急响应。两种方案均能解决网络中断导致的紧急灌溉需求问题。
14. 土质监测系统已采集了大棚一年的土壤湿度数据,该大棚土壤湿度的正常范围为60-80(单位:%)。现要对这些数据进行分析,请回答下列问题:
(1)将监测系统的数据导出,存于humdata.xlsx文件中,如图a所示。现要找出6月份土壤湿度超出正常范围次数最多的监测点,并统计该监测点6月份土壤湿度超出正常范围的日分布情况,绘制如图b所示的柱形图。实现上述功能的部分Python程序如下,请选择合适的代码填入划线处(单选)。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("humdata.xlsx")
df1=df[df.月==6]
df2=df1[(df1["湿度"]<60)|(df1["湿度"]>80)]#筛选df1中湿度值超出正常范围的数据
df_g=①___
df_sort=②___
#将df_sort首行监测点存入p,代码略
df3=③___
df3_g=df3.groupby("日",as_index=False).count()
plt.bar(df3_g["日"],df3_g["湿度"])
#设置绘图参数,显示如图b所示的柱形图,代码略
程序中①②③处可选的代码有:
A.df1[df1.监测点==p]
B.df2[df2.监测点==p]
C.df_g.sort_values("湿度",ascending=True)
D.df_g.sort_values("湿度",ascending=False)
E.df2.groupby("监测点",as_index=False).sum()
F.df2.groupby("监测点",as_index=False).count()
(2)将6月某监测点的土壤湿度数据存储于列表data中,要求找出其中长度为5的连续子序列,使得该子序列的所有湿度值均在正常范围内,且其平均湿度最大(若存在多个,则选择最早出现的子序列),并输出该子序列的平均湿度值及其起始下标(保证至少存在一个有效解)。实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
#读入土壤湿度数据,按采集的时间顺序存储于列表data中,代码略
max=-1
count=sum=0
for i in range(5):
sum+=①___
if not(60<=data[i]<=80):
count+=1
if count==0:
max=sum
start=0
i=1
while i<=len(data)-5:
sum-=data[i-1]
if not(60<=data[i-1]<=80):
count-=1
②___
if not(60<=data[i+4]<=80):
count+=1
if③___:
max=sum
start=i
i+=1
print("最高平均湿度值:"+str(max/5)+",起始下标:"+str(start))
【答案】 ① F ②. D ③. B ④. data[i] ⑤. sum+=data[i+4] ⑥. count==0 and sum>max
【解析】
【详解】本题考查Python程序。
(1)①处:需对 6 月湿度超出正常范围的数据(df2)按“监测点”分组,统计每个监测点的超出次数。df2.groupby("监测点", as_index=False).count()通过groupby分组并结合count统计次数,因此①选F。
②处:要找出“超出次数最多”的监测点,需对分组统计后的结果(df_g)按“湿度”列(存储次数)降序排序,使首行对应次数最多的监测点。df_g.sort_values("湿度", ascending=False)实现降序排序,因此②选D。
③处:已知超出次数最多的监测点为p,需筛选df2中“监测点 ==p”的数据,以获取该监测点 6 月超出范围的所有数据(用于后续按日统计)。df2[df2.监测点==p]实现此筛选,因此③选B。
(2)①处:初始化阶段,需累加前 5 个元素(data[0]到data[4])的值到sum中,循环变量为i,因此sum累加data[i],故①填data[i]。
②处:滑动窗口右移时,先减去窗口左侧的旧元素(data[i-1]),再需加上窗口右侧的新元素(data[i+4])以更新sum,保证窗口内是连续 5 个元素的和,故②填sum += data[i+4]。
③处:需同时满足两个条件才能更新 “平均湿度最大且所有值在正常范围” 的子序列:一是当前窗口无超出正常范围的数据(即count==0,count记录超出范围的数量);二是当前窗口的sum大于之前记录的最大值max。因此③填count==0 and sum>max。
15. 某校举行教职工4×100米混合接力跑比赛,比赛分为“A项”(青年组)和“B项”(中年组)两个项目分别进行。比赛时,两位男选手、两位女选手共四人组成一队完成一项比赛。报名时选手需选择参加项目和性别,系统根据报名情况进行组队。组队规则如下:选手按照报名顺序依次进入队伍,若队伍中该性别的选手已足够,则选手等待下一轮组队。编程模拟选手的组队过程并输出组队结果,请回答下列问题:
(1)若选手的报名数据已按照报名时间升序排列,如下图所示,结合题意,与编号为IDO4的选手组队的另一名女选手的编号是______。
选手编号
项目
性别
ID01
A
男
ID02
A
男
ID03
B
女
ID04
A
女
ID05
B
女
ID06
A
男
ID07
A
女
ID08
B
男
ID09
B
男
(2)定义如下classify()函数,参数d的每个元素由选手编号、项目、性别及指针域构成,参数head为头指针。函数功能是按照选手选择的项目将报名数据分成A、B两组,请在划线处填入合适的代码。
def classify(d,head):
p1=p2=-1
head1=head2=-1
p=head
while p!=-1:
if d[p][1]=="A":#处理队伍A
if head1==-1:
head1=p
else:
d[p1][3]=p
pl=p
else:
#同样方式处理队伍B,代码略
p=______
d[p1][3]=d[p2][3]=-1
return d,head1,head2
(3)实现分组功能的Python程序如下,请在划线处填入合适代码。
def group(d,head):
p=t=head
q=d[head][3]
num=[0,0]
count=0
dic={"男":0,"女":1}
i=dic[d[head][2]]
①___
while q!=-1:
i=dic[d[q][2]]
if num[i]<2:
num[i]+=1
if t!=p:
②___
d[q][3]=d[t][3]
d[t][3]=q
t=q
if num[0]+num[1]==4:
count+=1
num=[0,0]
p=q
q=d[q][3]
return d,count
#读取选手报名数据存入列表data中,选手的报名数据已经按照报名时间升序排序,代码略’’’data[i]包含三个元素,data[i][0]、data[i][1]、data[i][2]分别存储某个选手的编号、项目、性别,如[["ID01","A","男"],["ID02","A","男"],["ID03","B","女"],……]。’’’
for i in range(len(data)-1):
data[i].append(i+1)
data[-1].append(-1)
head=0
data,headA,headB=classify(data,head)
datacountA=group(data,headA)
p=headA
for i in③___:
print("青年组第"+str(i+1)+"组成员为:",end="")
for i in range(4):
print(data[p][0],end=" ")
p=data[p][3]
#对B组选手进行分组并输出分组结果,代码略
【答案】 ①. ID07或7或07 ②. d[p][3] ③. num[i]=1或num[i]+=1 ④. d[p][3]=d[q][3] ⑤. range(countA)或range(0,countA,1)
【解析】
【详解】本题考查Python综合应用。
(1)A 项选手按报名顺序为:ID01(男)、ID02(男)、ID04(女)、ID06(男)、ID07(女)。组队过程:ID01(男,计数 1)→ID02(男,计数 2,男满)→ID04(女,计数 1)→ID06(男,男已够,等待)→ID07(女,计数 2,女满)。此时 4 人(2 男 2 女)组成一队,成员为 ID01、ID02、ID04、ID07。 因此,与 ID04 同队的另一名女选手是 ID07。故答案为:ID07或7或07。
(2)classify () 函数的功能是按项目(A/B)拆分链表,通过指针遍历所有选手。循环中,p是当前处理的选手索引,处理完p后,需继续遍历下一个选手,而下一个选手的索引存储在当前选手的指针域中(即d[p][3])。因此,划线处需填入d[p][3]以实现链表的遍历。故答案为:d[p][3]。
(3)①处:初始处理头节点(head),需记录其性别数量。i是头节点性别的索引(男为 0,女为 1),因此需将对应性别的计数初始化为 1,即num[i] = 1。故答案为:num[i]=1或num[i]+=1。②处:当q(当前待处理选手)可加入队伍(性别计数未满),且队伍已有多个成员(t != p)时,需调整指针关系。q原是p的下一个,插入到t后,p的下一个应指向q原来的下一个(保持剩余选手的链接),即d[p][3] = d[q][3]。故答案为:d[p][3]=d[q][3]。③处:需输出所有青年组队伍,countA是 A 组的队伍总数,因此循环范围应为range(countA),以遍历每一队。故答案为:range(countA)或range(0,countA,1)。
第1页/共1页
学科网(北京)股份有限公司
$$
浙江省A9协作体暑假返校联考
高三技术试题卷
考生须知:
1.本试卷分两部分,第一部分信息技术,第二部分通用技术。满分100分,考试时间90分钟。
2.考生答题前,务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸上。
3.选择题的答案用2B铅笔将答题纸上对应题目的答案选项涂黑,如要改动,须将原填涂处用橡皮擦净。
4.非选择题的答案用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后用黑色字迹的签字笔或钢笔描黑,答案写在非答题纸上无效。
第一部分:信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 某校运动会采用智能管理系统。系统实时采集比赛数据(如短跑计时、跳远距离等),并自动生成排行榜。赛后,组委会将精选的比赛照片和视频上传至云平台,学生可通过学号登录系统查看个人成绩、下载照片。
关于该系统中数据的说法,正确的是( )
A. 短跑计时数据与照片的数字化过程完全相同
B. 比赛数据无需经过加工和处理,就能生成排行榜
C. 系统中的短跑计时、比赛照片和视频等数据均属于结构化数据
D. 为提高该系统数据的管理效率,一般可将不同类型数据分别存储与管理
2. 某校运动会采用智能管理系统。系统实时采集比赛数据(如短跑计时、跳远距离等),并自动生成排行榜。赛后,组委会将精选的比赛照片和视频上传至云平台,学生可通过学号登录系统查看个人成绩、下载照片。为保障系统安全并履行信息社会责任,下列做法合适的是( )
A. 系统以明文存储与传输用户信息
B. 组委会公开学生数据至社交媒体
C. 系统管理员将密码设为复杂密码,并定期更新
D. 学生将自己的账号借给他人,查询比赛成绩与照片
3. 某医院的智慧健康监测系统为患者配备了智能手环,内置心率传感器、血氧传感器、北斗定位和蓝牙模块,实时采集用户生理数据,并将数据加密后通过5G网络同步至云端服务器分析与存储。服务器端程序采用深度学习算法自动分析数据并在发现异常体征时触发预警;患者可通过手机APP查看健康报告,医生通过NFC刷卡快速调取病历,并生成可视化诊疗建议。在手机APP实时显示用户心率变化曲线的过程中,没有用到的技术是( )
A. 人工智能 B. 移动通信 C. 数据可视化 D. 传感器数据采集
4. 某医院的智慧健康监测系统为患者配备了智能手环,内置心率传感器、血氧传感器、北斗定位和蓝牙模块,实时采集用户生理数据,并将数据加密后通过5G网络同步至云端服务器分析与存储。服务器端程序采用深度学习算法自动分析数据并在发现异常体征时触发预警;患者可通过手机APP查看健康报告,医生通过NFC刷卡快速调取病历,并生成可视化诊疗建议。关于该系统中手机APP的功能与设计,说法正确的是( )
A. APP升级仅需适配最新型号手环 B. APP直接处理原始生理信号数据
C. 在锁屏界面强制显示紧急异常预警通知 D. APP查看历史数据需从智能手环读取数据
5. 某医院的智慧健康监测系统为患者配备了智能手环,内置心率传感器、血氧传感器、北斗定位和蓝牙模块,实时采集用户生理数据,并将数据加密后通过5G网络同步至云端服务器分析与存储。服务器端程序采用深度学习算法自动分析数据并在发现异常体征时触发预警;患者可通过手机APP查看健康报告,医生通过NFC刷卡快速调取病历,并生成可视化诊疗建议。关于该系统的硬件与网络,说法正确的是( )
A. 北斗定位系统参与传输患者的生理数据
B. NFC在此场景中的主要作用是近场身份识别
C. 将患者数据加密传输,则无需网络协议的支持
D. 发送预警信息主要体现了网络的分布处理功能
6. 某医院的智慧健康监测系统为患者配备了智能手环,内置心率传感器、血氧传感器、北斗定位和蓝牙模块,实时采集用户生理数据,并将数据加密后通过5G网络同步至云端服务器分析与存储。服务器端程序采用深度学习算法自动分析数据并在发现异常体征时触发预警;患者可通过手机APP查看健康报告,医生通过NFC刷卡快速调取病历,并生成可视化诊疗建议。系统需数字化患者皮肤照片用于AI分析。用扫描仪对4cm×3cm的皮肤区域采样,将其保存为分辨率为800*600像素,24位真彩色的BMP位图。下列说法正确的是( )
A. 该图像最多支持24种不同颜色
B. 数字化后图像总像素点为4×3=12个
C. 若皮肤深色斑点区域占比增大,文件存储容量会随之增加
D. 将色彩深度调整为256色灰度,文件存储容量会减小为原来的1/3
7. 某医院的智慧健康监测系统为患者配备了智能手环,内置心率传感器、血氧传感器、北斗定位和蓝牙模块,实时采集用户生理数据,并将数据加密后通过5G网络同步至云端服务器分析与存储。服务器端程序采用深度学习算法自动分析数据并在发现异常体征时触发预警;患者可通过手机APP查看健康报告,医生通过NFC刷卡快速调取病历,并生成可视化诊疗建议。若系统将健康数据误判为异常,最可能的原因是( )
A. 5G网络传输延迟 B. 手环蓝牙连接断开
C. 服务器硬件性能不足 D. 深度学习的训练样本数据不足
8. 某非完全二叉树包含7个节点,增加一个节点可将该二叉树变成完全二叉树,原二叉树的形态有多少种?( )
A. 1 B. 2 C. 3 D. 4
9. n个人排队买票,每人每次只能买一张票,并耗时10秒,买完后若还需买票,则重新到队尾排队(不计时间),无需买票则离开队伍。如:有3个人排队买票,每人买票数量依次为[4,1,2],则20秒后买票数据更新为[2,3]。现有4个人排队买票,每人买票数量依次为[4,2,1,2],则30秒后买票数据更新为( )
A. [2,3,1] B. [3,1,0,2] C. [3,1,2] D. [2,1,3]
10. 有如下Python程序:
n=len(s)
max=c=0
for i in range(n):
if"a"<=s[i]<="z" or "A"<=s[i]<="Z":
c+=1
else:
if c>max:
max=c
c=0
若s为"Python is a popular language",执行该程序段后,max的值为( )
A 8 B. 7 C. 6 D. 5
11. 有如下Python程序:
from random import randint
a=[9,4,7,5,6,3,8,2]
n=len(a)
x=randint(1,3)*2+1
for i in range(n-1):
for j in range(x,i,-1):
if a[j]<a[j-1]:
a[j],a[j-1]=a[j-1],a[j]
执行该程序段后,数组a的值不可能为( )
A. [2,3,4,5,6,7,8,9] B. [3,4,5,6,7,9,8,2]
C. [4,5,7,9,6,3,8,2] D. [4,5,6,7,9,3,8,2]
12. 定义如下函数,返回key在列表data中的下标,若key不存在,则返回-1。
def bsearch(data,key):
left,right=0,len(a)-1
while left<=right:
mid=(left+right)//2
if data[mid]==key:
return mid
if data[left]<data[mid]:
if data[left]<=key<data[mid]:
right=mid-1
else:
left=mid+1
else:
if data[mid]<key<=data[right]:
left=mid+1
else:
right=mid-1
return-1
如果调用函数返回结果不正确,则data可能是( )
A. [32,45,48,56,59,8,12] B. [8,59,56,48,45,32,12]
C. [59,8,12,32,45,48,56] D. [8,12,32,45,48,56,59]
二、非选择题(共3小题,其中第13小题8分,第14小题9分,第15小题9分,共26分)
13. 某智慧农场监测大棚环境,智能终端通过传感器每小时采集4次土壤湿度数据,剔除最大值和最小值后取均值上传至服务器并存储到数据库中。服务器发现异常时向管理员告警,并通过智能终端向灌溉设备发送控制指令。用户可通过手机App查看数据或远程控制灌溉设备。请回答下列问题:
(1)通过手机App向灌溉设备发送控制指令的正确流向顺序是______(单选)。
A.手机→服务器→智能终端→灌溉设备
B.手机→智能终端→服务器→灌溉设备
(2)处理湿度数据过程中,剔除极值并计算平均值的操作在______完成(单选)。
A.服务器 B.灌溉设备 C.智能终端
(3)若数据库故障,可能引发的问题有______(多选)。
A.服务器无法保存湿度数据 B.灌溉设备无法执行启动指令
C.智能终端无法采集传感器数据 D.手机App无法查看历史湿度数据
(4)将每小时获取的4个湿度数据分别存入a、b、c和d中,将剔除极值后的平均值存入ave的部分流程图如图所示。图中①处应填入______。
(5)服务器检测到异常时需通过Wi-Fi向智能终端发送灌溉指令,用户手机App的灌溉指令也依赖网络传输。若大棚网络中断,系统将无法响应紧急灌溉需求,导致作物受损。请针对该缺陷设计一个改进措施。______
14. 土质监测系统已采集了大棚一年的土壤湿度数据,该大棚土壤湿度的正常范围为60-80(单位:%)。现要对这些数据进行分析,请回答下列问题:
(1)将监测系统的数据导出,存于humdata.xlsx文件中,如图a所示。现要找出6月份土壤湿度超出正常范围次数最多的监测点,并统计该监测点6月份土壤湿度超出正常范围的日分布情况,绘制如图b所示的柱形图。实现上述功能的部分Python程序如下,请选择合适的代码填入划线处(单选)。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("humdata.xlsx")
df1=df[df.月==6]
df2=df1[(df1["湿度"]<60)|(df1["湿度"]>80)]#筛选df1中湿度值超出正常范围的数据
df_g=①___
df_sort=②___
#将df_sort首行的监测点存入p,代码略
df3=③___
df3_g=df3.groupby("日",as_index=False).count()
plt.bar(df3_g["日"],df3_g["湿度"])
#设置绘图参数,显示如图b所示柱形图,代码略
程序中①②③处可选的代码有:
A.df1[df1.监测点==p]
B.df2[df2.监测点==p]
C.df_g.sort_values("湿度",ascending=True)
D.df_g.sort_values("湿度",ascending=False)
E.df2.groupby("监测点",as_index=False).sum()
F.df2.groupby("监测点",as_index=False).count()
(2)将6月某监测点土壤湿度数据存储于列表data中,要求找出其中长度为5的连续子序列,使得该子序列的所有湿度值均在正常范围内,且其平均湿度最大(若存在多个,则选择最早出现的子序列),并输出该子序列的平均湿度值及其起始下标(保证至少存在一个有效解)。实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
#读入土壤湿度数据,按采集的时间顺序存储于列表data中,代码略
max=-1
count=sum=0
for i in range(5):
sum+=①___
if not(60<=data[i]<=80):
count+=1
if count==0:
max=sum
start=0
i=1
while i<=len(data)-5:
sum-=data[i-1]
if not(60<=data[i-1]<=80):
count-=1
②___
if not(60<=data[i+4]<=80):
count+=1
if③___:
max=sum
start=i
i+=1
print("最高平均湿度值:"+str(max/5)+",起始下标:"+str(start))
15. 某校举行教职工4×100米混合接力跑比赛,比赛分为“A项”(青年组)和“B项”(中年组)两个项目分别进行。比赛时,两位男选手、两位女选手共四人组成一队完成一项比赛。报名时选手需选择参加项目和性别,系统根据报名情况进行组队。组队规则如下:选手按照报名顺序依次进入队伍,若队伍中该性别的选手已足够,则选手等待下一轮组队。编程模拟选手的组队过程并输出组队结果,请回答下列问题:
(1)若选手的报名数据已按照报名时间升序排列,如下图所示,结合题意,与编号为IDO4的选手组队的另一名女选手的编号是______。
选手编号
项目
性别
ID01
A
男
ID02
A
男
ID03
B
女
ID04
A
女
ID05
B
女
ID06
A
男
ID07
A
女
ID08
B
男
ID09
B
男
(2)定义如下classify()函数,参数d的每个元素由选手编号、项目、性别及指针域构成,参数head为头指针。函数功能是按照选手选择的项目将报名数据分成A、B两组,请在划线处填入合适的代码。
def classify(d,head):
p1=p2=-1
head1=head2=-1
p=head
while p!=-1:
if d[p][1]=="A":#处理队伍A
if head1==-1:
head1=p
else:
d[p1][3]=p
pl=p
else:
#同样方式处理队伍B,代码略
p=______
d[p1][3]=d[p2][3]=-1
return dhead1,head2
(3)实现分组功能的Python程序如下,请在划线处填入合适代码。
def group(d,head):
p=t=head
q=d[head][3]
num=[0,0]
count=0
dic={"男":0,"女":1}
i=dic[d[head][2]]
①___
while q!=-1:
i=dic[d[q][2]]
if num[i]<2:
num[i]+=1
if t!=p:
②___
d[q][3]=d[t][3]
d[t][3]=q
t=q
if num[0]+num[1]==4:
count+=1
num=[0,0]
p=q
q=d[q][3]
return d,count
#读取选手报名数据存入列表data中,选手的报名数据已经按照报名时间升序排序,代码略’’’data[i]包含三个元素,data[i][0]、data[i][1]、data[i][2]分别存储某个选手的编号、项目、性别,如[["ID01","A","男"],["ID02","A","男"],["ID03","B","女"],……]。’’’
for i in range(len(data)-1):
data[i].append(i+1)
data[-1].append(-1)
head=0
data,headA,headB=classify(data,head)
data,countA=group(data,headA)
p=headA
for i in③___:
print("青年组第"+str(i+1)+"组成员:",end="")
for i in range(4):
print(data[p][0],end=" ")
p=data[p][3]
#对B组选手进行分组并输出分组结果,代码略
第1页/共1页
学科网(北京)股份有限公司
$$