绝密★考试结束前
2023年 10月江浙高中(县中)发展共同体
高三 技术试题 (2023.10)
第一部分 信息技术(共 50分)
一、选择题(本大题共 12小题,每小题 2分,共 24分。每小题列出的四个选项中,只有一个符合题目的
要求,不选、多选、错选均不得分)
1.下列关于数据及数据管理的说法,正确的是
A.数据不可以通过图像的形式呈现
B.传统的数据库技术可以对大数据进行有效管理
C.提高数据本身安全是有效保证数据安全的手段之一
D.计算机中的数据可以通过十六进制形式存储以节省存储空间
【答案】C
【解析】
本题考查数据与数据管理的相关知识。
选项 A.数据可以通过图像的形式呈现,故选项 A是不正确的;选项 B.传统的数据库技术不可以对大数据
进行有效管理,故选项 B是不正确的;选项 C.提高数据本身安全是有效保证数据安全的手段之一,是正确
的;选项 D.计算机中的数据不可以通过十六进制形式存储以节省存储空间,只能以二进制的形式,故选项
D是不正确的。所以答案是 C。
阅读下列材料,回答第 2至 4题:
某校园智能门禁系统的部分功能是:有效管控校园人员出入,学生进出实时抓拍并发送给相应的家长,
支持刷卡、人脸、指纹、动态二维码等多种识别方式。在人员出入时自动进行测温。系统能实现各类考勤
统计,所有进出记录均可随时检索查询。可接入校门口 LED大屏,实时显示出入人员班级、年级、出入时
间等信息。
2.下列关于该系统功能和应用的说法,不.正.确.的是
A.该系统能够自动进行测温,需要硬件设备的支持
B.若网络出现故障,该系统各项功能仍然能够正常运行
C.LED大屏显示考勤信息,体现了系统的数据输出功能
D.通过数据库存储各类考勤数据,进而实现系统的各项数据统计
【答案】B
【解析】
本题考查信息系统的功能及其应用。
选项 ACD都是正确的;选项 B.若网络出现故障,该系统大部分功能都将失效,例如检索、考勤、多种识
别方式等,故选项 B是不正确的。所以答案是 B。
3.该系统的下列应用中,体现了人工智能技术的是
A.人员出入时自动进行测温 B.进出记录均可随时检索查询
C.通过刷卡打开智能门禁系统 D.学生进出实时抓拍并发送给对应的家长
高三技术 试题卷 第 1 页(共 12 页)
【答案】D
【解析】
本题考查人工智能的相关知识。
选项 A.人员出入时自动进行测温,使用了感应技术;选项 B.进出记录均可随时检索查询,使用了数据库检
索技术;选项 C.通过刷卡打开智能门禁系统,使用 RFID 技术;选项 D.学生进出实时抓拍并发送给对应的
家长,使用了人脸识别,故选项 D是正确的。所以答案是 D。
4.下列关于信息系统安全和信息社会责任的说法,正确的是
A.系统在校园内使用,不存在个人信息泄露风险
B.动态二维码的使用是为了进一步确保进出人员身份的真实性
C.通过数据加密的方式存储数据,系统数据将不可被窃取
D.学校购买了该智能系统后,可以拷贝给其他任何学校使用
【答案】B
【解析】
本题考查信息系统安全和信息社会责任的相关知识。
选项 A.系统在校园内使用,存在个人信息泄露风险,故选项 A是不正确的;选项 B.动态二维码的使用是
为了进一步确保进出人员身份的真实性,是正确的;选项 C.通过数据加密的方式存储数据,系统数据也有
可能被窃取,故选项 B是不正确的;选项 D.学校购买了该智能系统后,不可以拷贝给其他任何学校使用,
故选项 D是不正确的。所以答案是 B。
5.下列关于网络系统及技术的说法,正确的是
A.交换机可以将局域网的私有地址转换为公有地址
B.采用客户端/服务器模式架构的网络应用软件,其服务器的负荷相对较重
C.传输控制协议(TCP)负责将信息从一个地方传输到另外一个地方
D.树形网络结构中的终端设备出现故障时较容易进行隔离
【答案】D
【解析】
本题考查网络系统的相关知识。
选项 A.路由器可以将局域网的私有地址转换为公有地址,故选项 A是不正确的;选项 B.采用浏览器/服务
器模式架构的网络应用软件,其服务器的负荷相对较重,故选项 B是不正确的;选项 C.网际协议(IP)负
责将信息从一个地方传输到另外一个地方,故选项 C是不正确的;选项 D.树形网络结构中的终端设备出现
故障时较容易进行隔离,是正确的。所以答案是 D。
6.某智能手环有心率血氧睡眠检测、提供健康趋势分析、支持 NFC(近距离无线通信)和扫码支付等功能。
下列关于该智能手环说法,正确的是
A.传感器是整个设备的控制中心
B.健康趋势分析功能无需应用软件支持
C.通过 NFC方式无法实现移动支付
D.传感器的植入使得智能手环更加具有“智能性”
【答案】D
【解析】
高三技术 试题卷 第 2 页(共 12 页)
本题考查传感技术的相关知识。
选项 A.传感器不是整个设备的控制中心,处理器才是控制中心,故选项 A是不正确的;B.健康趋势分析功
能需要应用软件支持,故选项 B是不正确的;选项 C.通过 NFC 方式可以实现移动支付,故选项 C是不正
确的;选项 D.传感器的植入使得智能手环更加具有“智能性”,是正确的。所以答案是 D。
7.下列关于图像数字化的说法,正确的是
A.通过手机拍照并存储可以实现图像的数字化
B.图像的量化过程就是把图像分解成一个个像素
C.黑白两色图像的颜色位深度是2 位
D.把一幅24 位色的图像另存为256 色,文件容量将变大
【答案】A
【解析】
(本题考查信息数字化)
B选项,将图像分解成一个个像素是采样的过程,C选项,黑白图像的颜色深度是1位,D选项,24位图像另
存为256色文件容量会变小。
8.某二叉树的树形结构如第8 题图所示,其前序遍历结果为BADCFGE,
则字符“G”所在的位置为
A.① B.② C.③ D.④
【答案】C
【解析】
第 8题图
本题考查二叉树的遍历。
根据前序遍历BADCFGE与图,可知G在右子树,F以下。
9.某种特殊的队列Q,支持以下三个操作:
操作Q1:若队列非空,队首元素出队,并输出;
操作Q2:若队列非空,队首元素出队;
操作Q3:一个元素入队;
以上任意一种操作后,若队列非空,新的队首元素仍为队列中所有元素的最小值。
若队列Q 初始状态为空,依次进行Q3、Q2、Q1、Q2、Q3、Q1、Q3 七次操作后,下列说法正确的是
A.当前队列中的元素个数为2
B.输出的元素个数为2
C.第一个输出的元素肯定比当前队首元素大
D.队列初始状态是否为空对输出结果有影响
【答案】D
【解析一】
本题考查队列。
A选项,当前队列中的元素个数为1;B选项,输出的元素个数为1;C选项,无法判断第一个输出的元素比
当前队首元素大。
高三技术 试题卷 第 3 页(共 12 页)
10.定义如下函数:
def f(x,y):
if x<=2 or y>20:
return x+y;
return f(x-1,y+1)
执行语句k = f(5,1)后,k 的值为
A.6 B.7 C.8 D.9
【答案】A
【解析一】
本题考查递归。
归纳调用顺序:f(5,1) f(4,2) f(3,3) f(2,4),所以k值为2+4=6
【解析二】
本题考查自定义函数和递归算法。递归调用过程如下:f(5,1)→f(4,2)→f(3,3)→f(2,4),此时满足函数的终止
条件x<=2,因此函数返回值为2+4=6,故本题答案为A。
11.有如下程序段:
s=['']*len(a)
head=2;q=head;top=-1
while q!=-1:
top+=1;
s[top]=a[q][0]
q=a[q][1];
print(s[top-2])
若a=[['a',3],['b',0],['c',1],['d',-1]],则输出的结果为
A.a B.b C.c D.D
【答案】B
【解析一】
本题考查栈与链表。
已知链表a=c b a d -1,依次将链表元素入栈,因此最终s=['c','b','a','d'],所以s[top-2]值为b
【解析二】
本题考查栈以及链表知识。利用变量追踪法进行模拟,列表如下:
变量名 q top s[top]
初值 2 -1 ""
第 1次 1 0 "c"
第 2次 0 1 "b"
第 3次 3 2 "a"
第 4次 -1 3 "d"
综上所述,最后输出时,top=3,因此s[3-2]=s[1]="b",故选B。
12.以下两个程序段的功能相同,实现的功能是:删除列表a(元素个数为n)中的重复元素(只保留一个),
并将剩下的元素降序输出。
高三技术 试题卷 第 4 页(共 12 页)
#程序段① #程序段②
#对列表a 进行降序排序,代码略 max_num=max(a)#求出列表a 中的最大值max_num
i=1 b=[0]*(max_num+1)
while iif a[i]==a[i-1]: b[a[i]]+=1
for j in range(i+1,n): for i in range(max_num,0,-1):
a[j-1]=a[j] if b[i]>0:
i-=1;n-=1 print(i,end=" ")
i+=1
#输出列表元素a[0]到a[n-1],代码略
关于上述两个程序段及功能的描述,正确的是
A.同样的数据规模,两个程序段的时间效率一样
B.程序段①加框处语句是否执行不受列表a原数据的影响
C.程序段②加框处语句修改为“for i in range(1,max_num+1) ”,输出结果不变
D.在实现该功能的过程中,程序段②比程序段①需要更多的存储空间
【答案】D
【解析一】
本题考查数组、算法效率。
A选项,程序段 2效率更高;B选项,加框处语句的目的是解决出现多个连续相同的值;C选项,原程序是
降序输出,修改后是升序输出,结果不同;D选项,程序段 2增加了 b数组,需要更多存储空间。
【解析二】
本题考查算法效率以及循环语句、字符串去重等综合知识。选项 A错误,由程序代码可知,程序段①的时
间复杂度为 O(n2),而程序段②的时间复杂度为 O(n)。选项 B,当 i位置上有连续 3个以上的相同的数据时,
若没有 i-=1这条语句,将会遗漏一次比较,从而导致去重失败。据选项 C错误,程序段②加框处语句修改
为“for i in range(1,max_num+1) ”,输出结果将变为升序排列。选项 D正确,由于程序段②使用了桶排序的
算法思想,因此当最大值为很大,例如 100000以上时,将会占用较大的存储空间。
二、非选择题(本大题共 3 小题,第 13 小题 8分,第 14 小题 9分,第 15 小题 9分,共 26 分)
13.检查数学表达式中的括号是否配对是计算机进行数学计算的重要环节。括号序列“( ) ( )”中的“(”与“)”
是配对的,而序列“( ) ) (”中的括号则是不配对的。对于不配对的序列,可以将“(”括号修改为“)”,或者
将“)”修改为“(”来实现配对。如第 13题图所示是括号序列“( ) ) ( ( )”通过不同的修改方案所需要的修
改次数,最少修改次数为 1。
请回答下列问题:
(1)若括号序列为“( ) ) ) ) ( ) )”,最少需要修改 次才能使得括号序列中的括号配对。
(2)编写程序,计算修改括号序列使其配对的最少次数。部分 Python程序如下,请在划线处填入合适的代码。
s=input() #输入括号序列,序列中仅包含“(”、“)”两种字符,且长度为偶数
x=0
高三技术 试题卷 第 5 页(共 12 页)
ans=0
for i in range(len(s)):
if s[i]=='(':
①
elif s[i]==')' and x>=1:
x-=1
elif s[i]==')' and ② :
ans+=1;x+=1
ans+= ③
print(ans)
【答案】
(1)2 或“两”
(2) ①x+=1 或 x = x + 1 或其他等价答案
②x==0 或其他等价答案
③x//2 或其他等价答案
【解析】
本题考查简单python算法。
(1)将第三个“)”和第五个“)”修改为右括号即可实现配对,因此最少需要修改两次。
(2)对输入的字符串s进行遍历,①当遇到左括号时,x加1,②当遇到右括号时,如果x>0,则表示可以与
之前的一个左括号配对,x减1;否则该右括号无法配对,则将该右括号修改为左括号,③整个字符串遍历
结束后,若x不为0,则x的值表示未配对的左括号的个数,其中一半修改为右括号,即可实现配对。
14.小明要搭建汽车空气质量监控系统,该系统能监测汽车内气体污染物的浓度,当气体污染物超标(超出
阈值)时,发出警报并带动风机工作。用户通过手机上的浏览器能查看实时监测结果和历史数据。小明
已选择的硬件有:智能终端、气体传感器、执行器(如蜂鸣器、风机)、服务器等。系统的硬件搭建方
式是:服务器通过无线网络连接智能终端,智能终端连接传感器和执行器,请回答下列问题:
(1)关于该系统硬件设备间数据的传输,描述不.正.确.的 (单选,填字母)。
A.智能终端接收气体传感器传输过来的数据
B.当空气出现异常时,执行器向智能终端发送启动风机的指令
C.智能终端向服务器传输监测到的气体浓度数据
(2)小明基于 Flask Web 框架编写该网络应用,根据 Web 网络应用编写的流程,下列四个语句块正确
的步骤是 (按步骤填序号)。
#序号① #序号② #序号③ #序号④
app=Flask(__name__) from flask import Flask if__name__=='__main__': @app.route('/myapp') def
app.run() myapp(): #代码略
(3)系统定义 act(c,x,y)函数用于发送操作指令,其中参数 x 为检测到的气体污染物浓度值,系统将该
气体浓度与阈值 y 比较后发送指令。操作规则如下表所示。
当前气体情况 气体污染物浓度 x 操作指令
污染 不超过阈值 y 停止报警,关闭风机
未污染 超过阈值 y 启动报警,打开风机
下列 Python程序段中符合要求的是 (多选,填字母)。
高三技术 试题卷 第 6 页(共 12 页)
A. B.
if c=="污染" and x<=y: if c!="污染" or x>y:
# 发送指令 "停止报警","关闭风机",代码略 # 发送指令 "启动报警","打开风机",代码略
elif c=="未污染" and x>y: elif c!="污染" and x<=y:
# 发送指令 "启动报警","打开风机",代码略 # 发送指令 "停止报警","关闭风机",代码略
C. D.
if c=="污染": if c=="污染" and x<=y:
if x<=y: # 发送指令 "停止报警","关闭风机",代码略
# 发送指令 "停止报警","关闭风机",代码 else:
略 # 发送指令 "启动报警","打开风机",代码略
if c=="未污染":
if x>y:
# 发送指令 "启动报警","打开风机",代码
略
(4)小明根据上述功能设计并完成了该系统的开发,在调式阶段发现当汽车内的空气出现污染时,只有
报警声音,风机并没有转动,请从该系统硬件组成部分角度分析可能导致这种情况产生的原
因 。(注:回答 2 项,1 项正确得 1 分)
(5)系统每隔 1 分钟监测并向服务器发送一个气体污染物浓度数据(单位:mg/m3), 小明经过查询并
将其中的部分数据导出后如第 14 题图 a所示。分析 2023年 8月 1日到 8月 10日这 10天中每一
天气体污染浓度监测值超过阈值的次数,线形图如第 14题图 b所示,部分 Python程序如下:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('data.xlsx') #读取文件 data.xlsx 中的数据
df_del=df.drop('监测序号',axis=1) #删除"监测序号"列
df1 = df_del[df_del['浓度值'] > 2.5] #删除 df_del 对象中浓度值不超过 2.5 的数据
df2 = df1.groupby('日期', as_index = False). ① #分组求次数
print(df2)
plt.plot(df2['日期'],df2['浓度值'] )
# 设置绘图参数,显示如第 14 题图 b 所示的线形图,代码略
①请在程序中划线处填入合适的代码。
②为实现方框处代码等价的功能,下列代码段可替代方框处代码的有 (多选,填字母)。(注:
全部选对的得 2 分,选对但不全的得 1 分,不选或有选错的得 0 分)
A.df1 = df_del[df_del.浓度值 > 2.5]
高三技术 试题卷 第 7 页(共 12 页)
B.n=len(df_del[df_del['浓度值'] > 2.5])
df1=df_del.sort_values('浓度值',ascending=False) #按浓度值降序排序
df1=df1.head(n) #获取头部数据行
C.df1 = df_del ['浓度值'] > 2.5
D.for i in df_del.index:
if df_del.at[i,'浓度值']<=2.5:
df_del=df_del.drop(i) #删除行
【答案】
(1)B (1分)
(2)②①④③ (2分)
(3)AC (2分)
(4)风机出现故障、风机与智能终端连接出现故障 或其他等价答案,每个合理原因 1 分(2分)
(5) ①count() (1分)
②AB (2分)
【解析】
本题考查信息系统搭建、Flask 框架、IF语句、Pandas数据处理及数据可视化。
(1)当空气出现异常时,智能终端向执行器发送启动风机的指令
(2)利用 Flask 模块创建网络应用的基本流程为:导入框架模块→创建应用实例→编写路由与视图函数→
启动 web应用,对应的序号为②①④③。
(3)根据题意当满足 c==“污染”且 x <= y时 ,发送指令“停止报警,关闭风机”;或满足 c==“未污
染”且 x > y时,发送指令“启动报警,打开风机”。答案 B:if语句的条件表达式中逻辑运算符(or)错误;
答案 D:else相当于对前面 if语句的条件表达式的否定,not( c=="污染" and x<=y) 等同于 c==“为污染”or
x>y,同样是逻辑错误。
(4)根据题干描述“当汽车内的空气出现污染时,只有报警声音,风机并没有转动”,出现报警声说明传
感器本身正常、传感器和智能终端的连接正常,可能是执行器(风机)本身出现故障、或者是执行器(风
机)和智能终端的连接出现故障。
(5)①划线处代码主要实现将 df1对象中的数据根据“日期”分组并计数,所以答案为 count()。
②加框处的语句的功能是删除 df_del 对象中浓度值不超过 2.5 的数据(或者是筛选出 df_del 对象中
浓度值超过 2.5 的数据),并将筛选出的数据用 df1对象表示。选项 A:同加框处语句功能一样;选项 B:
先计算浓度值超过 2.5 的记录数量,然后将 df_del数据以“浓度值”为关键字降序排列,df1保存前面的 n
条记录,即为浓度值超过 2.5的所有记录;选项 C:只写了筛选条件,错误;选项 D:通过循环遍历 df_del
对象的行索引,并通过 if语句将 df_del对象中浓度值小于等于 2.5的所有记录删除,并将删除后想记录保
存在 df_del对象中,没有保存在 df1对象中,错误。
15.某业务服务大厅共有 m个服务窗口(编号为 0~m-1),服务大厅根据服务对象的优先等级(等级分为
1~10,数字越大优先级越高)从高到低依次分配窗口并提供服务。某个时间段内(该时间段起始时刻 各
窗口都空闲着),服务对象按服务优先等级从高到低排队后依次到空闲的窗口享受服务,服务优先 等
级相同时,先到达的先享受服务。由于办理的业务不同,每个服务对象的服务时长(单位:分钟)可能
是不相同的。按照上述服务规则,问所有服务对象完成业务办理需要多少时间。一个服务对象业务办理
结束,另一个服务对象马上到该窗口接受服务,中间浪费的时间忽略不计。如第 15题图 a所示,描述
了 5个服务对象的信息,按照服务规则确定的服务次序如第 15题图 b所示。
高三技术 试题卷 第 8 页(共 12 页)
若服务大厅提供 2个服务窗口(m=2),则所有服务对象完成业务办理需要 50分钟。具体方案可 以是:
0号窗口依次服务到达序号为 1、5、3 的对象,1 号窗口依次服务到达序号为 2、4的对象。
请回答下列问题:
(1)若有 6 个服务对象的信息如第 15题图 c所示,根据上述服务规则,在提供 3个服务窗口的情况下,
所有服务对象完成业务办理需要 分钟。
(2)定义如下 sort_lst(lst)函数,参数 lst 是所有服务对象信息构成的列表。函数的功能将列表 lst按照服
务对象的优先等级降序排列并构成链表,返回排序后的链表及其头指针。
def sort_lst(lst):
for i in range(len(lst)):
lst[i].append(-1)
head=0
for i in range(1,len(lst)):
p=head
while p!=-1:
if lst[p][1]>=lst[i][1]:
q=p
p=lst[p][3]
else:
break
if p==head:
lst[i][3]=head
head=i
else:
lst[q][3]=i
lst[i][3]=p
高三技术 试题卷 第 9 页(共 12 页)
return lst,hea
若 lst列表依次存储第 15题图 c所示的服务对象信息,如 lst[0]为[1,3,2],各数据项依次表示服务对
象的到达序号,服务优先等级及优先等级。调用 sort_lst (lst)时,程序中加框处的语句“q=p”总共执
行 次。
(3)计算时间段内服务对象完成业务办理所需时间的部分 Python程序如下,请在划线处填入合适的代码。
def proc(lst,p,n,m):
s=[0]*m
for i in range(m): #前 m个人直接开始服务,等待时间为 0
if p==-1:
break
s[i]=lst[p][2]
①
ans=0
while p!=-1:
k=s[0] #找出正在被服务的对象中最早结束的一个
for j in range(1,m):
if s[j]k=s[j]
ans+=k #总服务时间已经过去了 k分钟
for j in range(m): #更新每个窗口当前正在被服务的对象还需要的服务时间
s[j]-=k
if ② :
s[j]=lst[p][2]
p=lst[p][3]
k=s[0]
for i in range(m):
if s[i]>k:
k=s[i]
③
print("所有服务对象完成业务办理需要",str(ans),"分钟")
'''
读入服务对象总数 n和窗口数 m
按到达序号读入 n个服务对象的信息到列表 lst 中,如第 15题图 c为:
lst=[ [1 ,3 ,2],[2 ,5 ,7],[3 ,4 ,13],[4 ,1 ,5],[5 ,8 ,12],[6 ,4 ,11]]
代码略
'''
lst,head=sort_lst(lst) #对 lst按照服务对象优先等级降序排序
proc(lst,head,n,m)
本题考查链表的插入排序,遍历等
【答案】
(1)18 (1分)
(2)7 (2分)
(3) ①p=lst[p][3]或其他等价答案 (2分)
高三技术 试题卷 第 10 页(共 12 页)
②s[j]==0 and p!=-1或其他等价答案 (2分)
③ans=ans+k或其他等价答案 (2分)
【解析】
(1)因为按照优先等级排序,因此 0号窗口服务 5【12】1【12+2】,1号窗口服务 2【7】,6【7+11】,2
号窗口服务 3【13】,4【13+5】,因此共 18分钟
(2)
def sort_lst(lst): #插入排序
for i in range(len(lst)): #生存指针域
lst[i].append(-1)
head=0
for i in range(1,len(lst)): #遍历 lst
p=head
while p!=-1: #遍历链表,查找待插入位置
if lst[p][1]>=lst[i][1]: #优先级比链表最大值大
q=p
p=lst[p][3]
else:
break
if p==head: #是头指针
lst[i][3]=head
head=i
else: #非头指针,插入
lst[q][3]=i
lst[i][3]=p
return lst,hea
因此 3 ,53, 543【1次】,5431【3次】,85431,854431【3次】,共七次
(3)
s=[0]*m
for i in range(m): #前 m个人直接开始服务,等待时间为 0
if p==-1: #链表遍历完
break
s[i]=lst[p][2] #s[]记录当前业务完成时间
____①_________ #要服务下一个服务对象,
while p!=-1: #遍历链表
k=s[0] # 找出正在被服务的对象中最早结束的一个
for j in range(1,m):
if s[j]k=s[j]
ans+=k # 总服务时间已经过去了 k 分钟
for j in range(m): # 更新每个窗口当前正在被服务的对象还需要的服务时间
s[j]-=k
if ____② ________: 由下面两行代码可知要判断服务是否结束,同时还
高三技术 试题卷 第 11 页(共 12 页)
须考虑是否遍历完:
s[j]=lst[p][2] #进入下一个服务对象
p=lst[p][3]
k=s[0] #分析上段代码可知,已遍历完所有链表,但不知道是否还
有业务处于未完成状态
for i in range(m): #遍历所有窗口,查找未完成的业务
if s[i]>k:
k=s[i]
_____③ _______ #累计未完成业务中,所有最长时间,
高三技术 试题卷 第 12 页(共 12 页)