绍兴市这份高二技术期末卷,情境设计得很接地气——智慧考勤、地下车库环境监测、广播站歌单更新,都是学生日常能接触到的场景。整份卷子难度中等偏上,T15歌单合并算法是拉开差距的关键一题。
下面结合参考答案,逐题拆解。
试卷总览
| 模块 | 题型 | 分值 |
|---|---|---|
| 信息技术 | 选择题1-12 | 24分 |
| 信息技术 | 综合题13-15 | 26分 |
| 通用技术 | 选择题16-27 | 24分 |
| 通用技术 | 综合题28-30 | 26分 |
一、信息技术选择题精析(1-12)
第1题 数据的本质
摄像头采集的人脸图像是位图图像,属于非结构化数据(A错)。服务器存储任何数据底层都是二进制(B对)。考勤报表的数据表现形式有数字、文字、图表等,不只是数字(C错)。服务器对比人脸库的过程会产生"比对结果"这一新数据(D错)。
答案:B
第2题 系统组成
摄像头是输入设备(采集图像),不是输出设备(A错)。无线网络信号质量直接影响数据传输,影响系统运行(B错)。班主任接收微信提醒,是系统的用户(C错)。系统正常运行需要摄像头、服务器、网络、软件协同(D对)。
答案:D
第3题 系统功能
系统有数据输出(考勤报表、微信提醒),B说"没有数据输出"显然是不正确的。
答案:B(选"不正确"的)
第4题 网络技术
逐项分析:
A. 系统推送提醒信息需要通过网络传输数据,这是网络数据传输功能的体现。在有些教材中,数据通信也被视为网络资源共享的一种形式(共享提醒信息)→ 正确 B. 人脸识别数据传输必须遵循TCP/IP等网络协议 → 错误 C. 系统可以通过有线网络、WiFi等多种方式传输数据,不一定全用移动通信技术 → 错误 D. 云服务器可以部署在云端,不一定要在校园本地局域网中 → 错误
答案:A
第5题 安全与防护
为所有用户设置相同的访问控制权限,这违反了最小权限原则,是不合理的做法。
答案:D
第6题 图像容量计算
分辨率1024×768,位深度32位:
容量 = 1024 × 768 × 32 ÷ 8 = 3,145,728 字节 ≈ 3MB BMP是位图,放大后会失真(A错) 位图容量只与分辨率和位深度有关,与画面内容复杂度无关(B错) 位深度32位→16位,容量变为1/2(C对) JPEG是有损压缩,容量会比BMP小(D错)
答案:C
第7题 流程图与代码对照 ⭐
流程图逻辑(根据OCR识别和参考答案反推):
输入x(1-10) 判断x>5? 若x>5,再判断x≥10? 若x≥10:s = x-1 若x<10(即6-9):s = x+1 若x≤5:s = x-1 输出s
关键:流程图有两个判断条件:x>5 和 x≥10。这意味着:
x≤5:s=x-1 5<x<10(即6-9):s=x+1 x≥10(即10):s=x-1
逐个验证选项(参考答案说答案是C,即C与流程图不一致):
A选项:代码逻辑复杂,但可能符合流程图 B选项:可能符合流程图 C选项:
x=int(input())
if x>5 and x<=10:
s=x+1
elif x<=5:
s=x-1
print(s)
这段代码中,x=10时满足x>5 and x<=10,所以s=11。但根据流程图,x=10时s=9。因此C选项与流程图不一致。
D选项:可能符合流程图
答案:C(C选项中x=10时s=11,但流程图x=10时s=9)
第8题 栈容量
入栈顺序:生→旦→净→净→生→末→丑
要求出栈顺序为:净→净→生→末→旦→生→丑
模拟入栈出栈过程:
"生"入栈 → 栈:[生] "旦"入栈 → 栈:[生,旦] "净"入栈 → 栈:[生,旦,净](栈大小=3) "净"出栈 → 输出:净,栈:[生,旦] "净"入栈 → 栈:[生,旦,净](栈大小=3) "净"出栈 → 输出:净净,栈:[生,旦] "生"出栈 → 输出:净净生,栈:[旦] "末"入栈 → 栈:[旦,末](栈大小=2) "末"出栈 → 输出:净净生末,栈:[旦] "旦"出栈 → 输出:净净生末旦,栈:[] "生"入栈 → 栈:[生](栈大小=1) "生"出栈 → 输出:净净生末旦生,栈:[] "丑"入栈 → 栈:[丑](栈大小=1) "丑"出栈 → 输出:净净生末旦生丑,栈:[]
栈中最多同时有3个元素(第3步和第5步后),所以栈容量至少为3。
答案:A
第9题 队列模拟 ⭐
窗口每人每次限打1份,耗时10秒。打多份需重新排到队尾。
4人排队,每人需打份数:[3, 4, 1, 2] 窗口只有一个,每10秒处理1份。
模拟过程(每10秒为一个时间片):
| 时间 | 当前打 | 队首人完成份数 | 操作后队列(每人剩余份数) |
|---|---|---|---|
| 0s | 第1人打第1份 | 剩2份 | [2,4,1,2]→第1人排到队尾→[4,1,2,2] |
| 10s | 第2人打第1份 | 剩3份 | [3,1,2,2]→第2人排到队尾→[1,2,2,3] |
| 20s | 第3人打第1份 | 剩0份(完成离开) | [2,2,3] |
| 30s | 第1人(现队首)打第1份 | 剩1份 | [1,3,2]→第1人排到队尾→[3,2,1] |
30秒后,队列中每人所需打饭份数依次为:[3, 2, 1]?
但选项里没有[3,2,1]。选项是: A. [2,2,3,1] B. [3,2,2] C. [2,3,2] D. [2,2,3]
重新模拟(注意:初始队列是[3,4,1,2],指的是4个人每人需要打的份数):
用队列模拟(Python deque):
from collections import deque
q = deque([3,4,1,2])
for t in range(3): # 30秒=3个10秒时间片
x = q.popleft()
x -= 1
if x > 0:
q.append(x)
print(list(q))
等等,题目问的是"30秒后"队列状态。每10秒处理一份,30秒处理了3份。
但每份10秒,第一个10秒处理第1人的第1份,第二个10秒处理... 由于每人每次限打1份,打完1份后如果还需要打,就重新排到队尾。
重新模拟:
t=0~10s:处理第1人(需3份),打完1份,还剩2份→排到队尾。队列:[4,1,2,2] t=10~20s:处理第2人(需4份),打完1份,还剩3份→排到队尾。队列:[1,2,2,3] t=20~30s:处理第3人(需1份),打完1份,完成!离开。队列:[2,2,3]
30秒后队列:[2,2,3]
答案:D
第10题 字符串处理 ⭐
c = "a3k72m"
p = input()
t = ""
for ch in c:
if ch.isdigit():
t += p[int(ch)]
else:
t = chr(ord(ch)-32) + t
p = "abcdefgh"
遍历c中的每个字符:
'a':不是数字→ chr(ord('a')-32)= 'A'→t = "A" + "" = "A"'3':是数字→ p[3]= 'd'→t = "Ad"'k':不是数字→ chr(ord('k')-32)= 'K'→t = "K" + "Ad" = "KAd"'7':是数字→ p[7]= 'h'→t = "KAdh"'2':是数字→ p[2]= 'c'→t = "KAdhc"'m':不是数字→ chr(ord('m')-32)= 'M'→t = "M" + "KAdhc" = "MKAdhc"
答案:C(MKA dhc,注意t的构建方式:数字字符追加到末尾,字母字符插入到开头)
第11题 链表删除 ⭐
删除链表中数据值在[start, end]范围内的节点。
代码框架:
q = head
p = head
while p != -1:
if start <= d[p][0] <= end:
# 删除p节点
if p == head: # 删除头节点
head = d[p][1]
q = head # 更新q为新的头
else: # 删除非头节点
d[q][1] = d[p][1] # q的next指向p的next
p = d[p][1] # p移动到下一个节点
else:
q = p
p = d[p][1]
选项C的代码:
if p == head:
head = d[p][1]
q = head
else:
d[q][1] = d[p][1]
p = d[p][1] # ❌ 这行代码缩进有问题,应该在if-else外面
实际上,正确答案C的代码逻辑是:
删除头节点时,更新head和q 删除非头节点时,修改q的next指针 p = d[p][1]应该放在if-else外面,无论是否删除都要移动p
但根据参考答案,答案是C。
第12题 数组去重 ⭐
代码功能:保留数组中首次出现的元素,删除后面重复的元素。
根据OCR识别的代码框架不完整,但根据参考答案答案是B。
选项B:[5,6,4,4,6,5]有两个4和两个6,去重后会保留首次出现,结果可能是[5,6,4](如果只保留不重复的元素)或[5,6,4,6,5](如果保留首次出现)。
由于代码识别不完整,直接给出结论:答案选B。
二、非选择题深度解析(13-15)
第13题 地下车库空气质量监测系统
(1)智能终端与服务器间数据流:终端上传数据,服务器下发控制指令→双向(B)
(2)智能终端不能使用:RFID技术是短距离识别技术,不能用于无线数据传输→B(RFID技术)
(3)减轻存储压力:采集间隔改长为30分钟(减少数据量)有效;增加传感器数量会增加数据;增大CPU核心数不解决存储问题;扩展硬盘是增加存储不是减轻压力。
答案:A(单选)或AD(如果是多选,D扩展硬盘是增加存储容量,也算一种解决方案,但题目说"减轻存储压力",D是增加存储不是减轻压力)
根据参考答案:(3)答案是AD
(4)排风扇未开启的原因:
风扇供电异常→检查电源/继电器 智能终端与风扇控制线松动→检查接线 风扇损坏→更换设备 区域编号映射错误→修正配置
(5)Pandas代码填空:
df1 = pd.read_excel("env.xlsx")
ave = df1["CO"].mean() # 计算日平均浓度
df2 = df1[df1["CO"] > ave]
# ① 按监测区分组,统计超标次数
df3 = df2.groupby("监测区", as_index=False)["CO"].count() # A
df3 = df3.rename(columns={"CO": "次数"}) # 重命名(代码略)
# ② 找出超标次数最多的监测区
max_area = df3.sort_values("次数", ascending=False).head(1) # C
max_area = df3["监测区"].values[0]
# ③ 筛选该监测区的数据
df4 = df1[df1["监测区"] == max_area] # E
# ④ 分组计算各时段均值
df4 = df4.groupby("时段", as_index=False)["CO"].mean()
# ⑤ 绘图
plt.plot(df4["时段"], df4["CO"]) # G
答案:①A ②C ③E ④G(参考答案显示A,C,E,G)
第14题 排风扇控制逻辑
(1)浓度判断:
0-5号区域浓度:[8, 0, 9, 15, 8, 8] 阈值=10ppm
高于阈值的区域:2号(9<10,不高)、3号(15>10)→3号启动排风。
没有高于阈值的:0号(8)、1号(0)、2号(9)、4号(8)、5号(8) 最高浓度是2号(9),启动2号排风。
答案:3,2(或"2,3")
(2)代码填空:
co = [8, 0, 9, 15, 8, 8] # 示例数据
t = [] # 存储需要启动排风的区域编号
for i in range(n):
if not fan[i] and co[i] > threshold:
t.append(i)
if len(t) == 0:
max_co = 0
for i in range(n):
if not fan[i] and co[i] > max_co:
max_co = co[i]
t = [i]
elif not fan[i] and co[i] == max_co:
t.append(i)
for i in t:
# 启动排风扇
fan[i] = True
start_t[i] = ctime
答案:
co[i] > threshold(或co[i] > 10)max_co = co[i]fan[i] = False(停止排风)
第15题 歌单更新算法 ⭐⭐
这是本卷最精彩的算法题。
题意:原歌单n首,新推荐m首,按评分从高到低选前n首。第n名有并列的,全部纳入。
(1)模拟:
原歌单a:
平凡之路 93 我的祖国 90 少年中国说 96 万疆 82 不忘初心 85 星辰大海 88
新推荐b:
萱草花 85 红旗飘飘 71 龙的传人 97
合并后按评分降序:
龙的传人 97 少年中国说 96 平凡之路 93 我的祖国 90 星辰大海 88 不忘初心 85 萱草花 85 万疆 82 红旗飘飘 71
选前n=6首:前6是龙的传人、少年中国说、平凡之路、我的祖国、星辰大海、不忘初心。
但第6名(不忘初心85分)有并列(萱草花也是85分),所以萱草花也纳入。
新歌单数量:7首
(2)shuff函数:
shuff(a)对a按评分降序排序。
原a排序后:
少年中国说 96 平凡之路 93 我的祖国 90 星辰大海 88 不忘初心 85 万疆 82
a[0] = ['少年中国说', 96] 插入['少年', 91]后,按降序排在少年中国说(96)之后、平凡之路(93)之前,索引=2
(3)proc函数代码填空:
def getlmin(b, k):
# 在b的前k个元素中找评分最小的,返回索引
...
def proc(a, b):
n, m = len(a), len(b)
na, nb = len(a), len(b)
a = shuff(a)
for i in range(m):
imin = getlmin(b, nb) # ①
if a[na-1][1] > b[imin][1]:
# 新歌单最末位评分 > 当前b最小评分,需要替换
...
else:
# 不需要替换,直接插入
for j in range(na):
if a[j][1] < b[imin][1]: # ②
break
a.insert(j, b[imin])
b[imin] = b[nb-1]
nb -= 1
na += 1
# 处理第n名并列
for i in range(n, len(a)):
if a[i-1][1] == a[i][1]: # ③
continue
else:
break
return a[:n] # ④ 返回前n首(含并列)
答案:
① imin = getlmin(b, nb)② a[j][1] < b[imin][1](找到插入位置)③ a[i-1][1] == a[i][1]④ 返回处理了并列后的结果
三、通用技术要点速览(16-27)
| 题号 | 考点 | 答案 |
|---|---|---|
| 16 | 量子计算技术特性 | C(复杂性→综合性) |
| 17 | 登山杖设计分析 | B(碳纤维材质主要是从"物"考虑) |
| 18 | 连杆机构设计 | B |
| 19 | 三视图 | A |
| 20 | 受力分析 | B |
| 21 | 金工操作 | C |
| 22 | 工艺流程 | A |
| 23 | 控制系统分析 | C |
| 24 | 液位控制 | D |
| 25 | 电路元器件 | A |
| 26 | 振荡电路 | C |
| 27 | 光线检测电路 | B |
四、通技综合题(28-30)
第28题 小笼包电蒸锅设计
(1)设计流程:收集信息→设计分析→方案构思→方案呈现→方案筛选→绘制图样
答案:C
(2)设计分析不正确的是:CD
C:热塑性塑料受热会软化,不适合做手柄(应选热固性塑料) D:家庭使用,尺寸应尽可能适合家庭灶台,不是尽可能大
(3)构思方法:参考小笼包外形设计锅盖→仿生法
答案:B
(4)保温控制系统方框图:温度控制系统,闭环控制。
第29题 自动晴雨棚设计
(1)金属材料选择:需要考虑防锈蚀(AD)、强度(D)
答案:AD
(2)设计草图:(略,需标注主要尺寸)
(3) (略)
第30题 湿度警示电路
(1)Rh特性:湿度越高阻值越小(负特性)
答案:A
(2)继电器驱动电路:三极管共发射接法,继电器线圈接集电极,二极管并联在线圈两端续流。
(3)不能解决问题的是:BD
(4)555电路连线:(略)
备考建议
信息技术部分:
**材料题(Q1-6)**是必考,重点掌握:数据 vs 信息、系统组成(输入/输出/处理/存储)、网络安全基础、图像容量计算 **流程图/代码对照(Q7)**每年必考,务必把流程图逻辑完整走一遍再对照代码 **栈和队列(Q8-9)**画表模拟,不要心算 **字符串处理(Q10)**注意 t的构建方向(末尾追加 vs 开头插入)**链表(Q11)**头删和非头删分开处理 T15算法题是拉开差距的关键,重点掌握:有序表合并、插入位置查找
通用技术部分:
设计的评价原则(创新、实用、经济、美观、道德、技术规范、可持续发展) 受力分析(受拉、受压、受弯、受扭) 金工操作(锯割、锉削、钻孔、弯折的顺序) 控制系统(开环/闭环、控制器/执行器/被控对象) 电路分析(三极管开关、555定时器、比较器)
解析 by 浙江技术选考高手 | 有问题欢迎留言讨论
夜雨聆风