内容正文:
绝密★考试结束前
高三信息试题
本试卷分两部分,第一部分信息技术,第二部分通用技术。满分100分,考试时间90分钟。
第一部分信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 大模型(Large Model)是指具有大规模参数和复杂计算结构的机器学习模型。例如OpenAI的GPT-4模型。大模型的应用有自然语言处理、计算机视觉、语音识别和推荐系统等。大模型通过训练海量文本、图像、音频等数据来学习复杂的模式和特征,具有强大的泛化能力,可以对未见过的数据做出准确预测。下列关于信息和数据的描述,正确的是( )
A. 脱离语境的数据,也包含了各种信息
B. 同一组数据对不同的大模型而言,所含价值和意义相同
C. 训练大模型的数据和大模型能处理的数据都是结构化数据
D. 数据所包含的信息能被大模型处理和学习,体现了信息的可加工处理性
2. 大模型(Large Model)是指具有大规模参数和复杂计算结构的机器学习模型。例如OpenAI的GPT-4模型。大模型的应用有自然语言处理、计算机视觉、语音识别和推荐系统等。大模型通过训练海量文本、图像、音频等数据来学习复杂的模式和特征,具有强大的泛化能力,可以对未见过的数据做出准确预测。对于大模型和其训练所用的大数据,下列说法正确的是( )
A. 大模型训练用的大数据都需要人工采集并输入给大模型
B. 用大模型生成网络趣图等应用时,也要遵守信息社会道德准则和法律法规
C. 用大模型做商品智能推荐时,无需分析用户浏览、购买等行为数据的关联性
D. 大模型中的数据不受信息泄露、操作失误、存储器损坏等安全因素影响
3. 大模型(Large Model)是指具有大规模参数和复杂计算结构的机器学习模型。例如OpenAI的GPT-4模型。大模型的应用有自然语言处理、计算机视觉、语音识别和推荐系统等。大模型通过训练海量文本、图像、音频等数据来学习复杂的模式和特征,具有强大的泛化能力,可以对未见过的数据做出准确预测。根据材料描述,下列选项中最有可能未使用大模型人工智能应用的是( )
A. 输入文章概括其中心思想 B. 输入人像照片确定人物年龄
C. 输入关键词显示相关商品 D. 输入歌曲音频确定其歌名
4. 大模型(Large Model)是指具有大规模参数和复杂计算结构的机器学习模型。例如OpenAI的GPT-4模型。大模型的应用有自然语言处理、计算机视觉、语音识别和推荐系统等。大模型通过训练海量文本、图像、音频等数据来学习复杂的模式和特征,具有强大的泛化能力,可以对未见过的数据做出准确预测。对于大模型中的数据编码,正确的是( )
A. 大模型中的数据以二进制或十六进制形式存储和处理的
B. 若其数据格式都是ASCII字符,则1MB数据有220个字符
C. 若用4个字节来表示一个整数,则最大整数可以是232
D. 若用44.1kHZ采样频率,16bit量化其音频数据,则1秒单声道音频约占0.67MB
5. 某智能儿童手表采用鸿蒙操作系统设计。在数量众多的APP的支持下,连入厂家服务端,手表具有定位、通话、社交互动、健康监测、学习和娱乐等丰富功能。尤其是其离线定位功能,在附近其他相关设备组成的“查找”网络功能支持下,可以在信号盲区实现位置查找,确保孩子能被定位。关于该儿童手表的软件和硬件,下列说法不正确的是( )
A. 鸿蒙操作系统属于系统软件 B. 健康检测等智能性需要传感器支持
C. 儿童手表可以视为信息系统的一种终端 D. 有了网络存储,可以去掉手表内的存储器
6. 某智能儿童手表采用鸿蒙操作系统设计。在数量众多的APP的支持下,连入厂家服务端,手表具有定位、通话、社交互动、健康监测、学习和娱乐等丰富功能。尤其是其离线定位功能,在附近其他相关设备组成的“查找”网络功能支持下,可以在信号盲区实现位置查找,确保孩子能被定位。关于该儿童手表相关的网络或网络设备,下列说法正确的是( )
A. 该儿童手表需要能连接移动通信网或者连接Wi-Fi等联网功能
B. 在离线定位功能支持下,该手表无需连接任何设备就能定位
C. 在与网络同伴手表之间社交互动时,数据传输必须支持HTTP网络协议
D. 在手表上开启APP连入服务端进行学习,该学习系统必然是基于B/S架构
7. 某算法部分流程图如图所示,若a、b所有元素初始值都是0,p的初始值也是0,依此输入580、570、565、564、564、520、520、520、0后,a[4]和b[4]的值分别为( )
A. 520 3 B. 564 2 C. 520 2 D. 0 1
8. 包含5个节点的二叉树,其根节点的左右子树高度相同,且中序遍历结果是“甲乙丙丁戊”,那么其前序遍历结果不可能是( )
A. 丙乙甲戊丁 B. 丙乙甲丁戊 C. 丙甲乙戊丁 D. 丙乙丁甲戊
9. 某浏览器的“后退”功能按钮用类似栈的数据结构实现(假设栈容量为3):每打开新网站就会将上次的浏览记录压入“栈”中;栈满时,再浏览记录,则从“栈”底删除较早的记录;点击“后退”按钮时则从“栈”顶中弹出最近浏览的记录。若用一位数字表示每次打开的网站,用大写字母“B”表示点击“后退”按钮,如“1、2、B、3”操作后“栈”顶的网页是“1”。那么经过“1、2、3、4、B、5、6、B、B、B”操作后,当前浏览的网页是( )
A. 2 B. 3 C. 5 D. 1
10. 有如下Python递归程序:
def f(left,right):
if left >= right:
return left
m=(left+right)//2
if key <= a[m]:
return f(left,m)
else:
return f(m+1,right)
若key=11,下列选项中数组a调用f(0,8)的结果与其他三项不同的是( )
A. a=[3,3,7,7,7,9,11,11] B. a=[3,3,9,9,9,9,16,17] C. a=[3,3,9,9,9,11,11,17] D. a=[3,4,6,8,8,8,11,13]
11. 有如下Python程序:
res='';k=1
for i in range(len(a)-2):
if ord(a[i])*k < ord(a[i+2])*k:
a[i],a[i+2]=a[i+2],a[i]
k=-k
for s in a:
res+=s
print(res)
已知数组a共8个元素,每个元素都为单个字符,运行该程序后输出结果可能是( )
A. computer B. repomcut C. nesesicc D. sciences
12. 已知链表a存放了学生ID和借阅图书书名,链表b存放了学生ID和姓名。两链表节点都按学生ID升序存放,如图(a)和(b)所示。链表a的头指针指向额外的空元素。现要将两链表中有共同学生ID的节点连接成一个新链表,如图(c)所示。
图a 图b
图c
ha=q=0
p=ha
while a[p][2] != -1:
tp=a[p][2]
if q == -1:
a[p][2]=-1
break
if a[tp][0] == b[q][0]:
a[tp].append(b[q][1])
①
elif a[tp][0] > b[q][0]:
q=b[q][2]
else:
②
#从ha下一个位置开始输出链表a,
#输出结果即为两表连接结果,代码略
则划线部分程序应填入的正确代码为( )
A. ①q=b[q][2] ②p=a[p][2] B. ①p=a[p][2] ②a[p][2]=a[tp][2]
C. ①tp=a[tp][2] ②p=a[tp][2] D. ①p=tp ②p=a[tp][2]
二、非选择题(本大共3小题,其中第13小题7分,第14小题10分,第15小题9分,共26分)
13. 某路口的交通信号灯控制系统每隔1秒采集路口车辆情况,若在1分钟以内(采集60次)检测到持续有车辆通过路口,且持续数量最大值超过30辆时视为大流量,需要设置绿灯持续50秒,黄灯持续5秒,红灯持续45秒。其他流量情况下设置绿灯持续30秒,黄灯持续5秒,红灯持续25秒。如[2,4,0,1,0,3]表示检测了6次,每次检测到的车辆数分别是2、4、0、1、0、3辆车,最大持续通过的车辆数是6辆。请回答下列问题。
(1)若十次检测的车辆数据是[3,0,2,4,0,3,1,1,0,7],则持续数量最大是____。
(2)实现上述功能的部分Python程序如下,请在划线处填入合适代码。
while True:
cur=0
maxn=0
for i in range(60):
#接受一次系统中监控设备检测到车辆数量,存入n,代码略
if n > 0:
cur+=n
if ①____:
maxn=cur
else:
②____
#延时到1秒,代码略
if ③____:
#发送“大流量”状态信息,设置下一轮的绿灯时间50秒,
#黄灯时间5秒,红灯时间45秒,代码略
else:
#发送“正常流量”状态信息,设置下一轮的绿灯时间30秒,
#黄灯时间5秒,红灯时间25秒,代码略
#等待当前一轮红绿灯结束,进行下一轮红绿灯设置,代码略
14. 为了提升图书馆、博物馆等场馆服务质量,部分公共场馆采用了智能预约与核验系统。用户通过网络平台或者小程序,使用个人身份信息进行提前或现场预约场馆。用户入闸核验时,智能终端识别用户身份证或者预约二维码,并通过无线通信方式将数据传输到Web服务器,服务器在数据库中查找用户身份信息后做出是否打开闸机放行的处理。请回答下列问题。
(1)相比较而言,以下身份认证方式中,用户通行效率较低的是____(单选,填字母:A.用户名+口令/B.身份证刷卡/C.预约二维码扫码)
(2)通过手机APP预约成功后,用户持身份证入闸核验时发现道闸并未打开放行,下面描述中,不可能引起该故障的是____(单选,填字母)
A.身份证识别传感器故障
B.道闸机械故障等原因,无法完成执行器的控制
C.用户手机等电子设备未接入场馆网络,造成无法访问
(3)下列关于该系统的设计与实现说法,正确的有____(多选,填字母)。
A.预约二维码的识别需要RFID识别技术的支持
B.用户在网上预约场馆成功后,身份信息要保存在服务器数据库中
C.可以使用Flask Web框架和SQLite 3编写服务器程序
D.系统完成后需要进行软硬件测试,而文档编写可以忽略
(4)为了增加信息系统安全性,请从保护系统数据不丢失或保护用户个人敏感信息不泄漏角度,请列举两种方法。____
(5)小林整理出了某些时间场馆访问人数等数据,如图a所示。现要统计“2024-08-03”单日访问人数最多的前50个场馆的所在地归属,并绘制如图b所示的柱形图。部分实现程序如下所示。
图a
图b
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("部分场馆访问记录.xlsx")
df1=df[df["时间"]=="2024-08-03"]
plt.bar(df1["所在地"],df1["人数"])
方框中应填入的语句依次为____(选3项,填数字序列)。
①df1=df1.head(50)
②df1=df.groupby("所在地",as_index=False).sum()
③df1=df1.groupby("所在地",as_index=False).sum()
④df1=df1.sort_values("人数",ascending=False)
(6)为了研究哪些场馆人流量较少,需要在图a所示的数据集合中筛选出单日人数小于100的数据以便进一步研究分析,可在第(5)小题的基础上再执行如下语句,请在划线处填入合适的代码。
df2=____
15. 某机场共有m个登机口,通过m个廊桥连接到飞机舱门,登机口编号和廊桥编号相同,范围都是0~m-1。现有n架航班要停靠机场接受登机,廊桥分配程序要为每架飞机分配一个合适的廊桥,并在对应的登机口显示当前停靠的航班信息。已知飞机的到达时刻与占用廊桥的时长(示例如图a所示)。飞机到达时刻是按时间先后顺序给出的,且同一时刻最多有一架飞机到达。前一班飞机离开廊桥与后一班接管廊桥之间的时间间隙忽略不计。对于一架到达的飞机,程序会优先分配目前未占用的廊桥;若所有廊桥都被占用,则优先分配等待时间最短的;若有多个可分配的廊桥(如:多个未被占用或等待时间相同),程序会任意分配一个廊桥。
飞机编号
到达时刻
占用时长
航班号
0
1
4
MF8556
1
2
9
KN5956
2
4
5
MU5186
3
5
3
HU7610
4
7
5
CA8685
图a
0号登机口:MF8556,HU7610,CA8685
1号登机口:KN5956
2号登机口:MU5186
当登机口数量m=3时,各廊桥可能的分配情况。注意其中已离开廊桥的航班信息未清除。
图b
请回答以下问题。
(1)如图a所示,若0号航班“MF8556”需要占用廊桥的时长是6,保持m=3和其他条件不变,且前三架飞机的分配方案也不变,那么4号航班“CA8685”的登机口是____号(选填数字:0/1/2)。
(2)已知航班占用廊桥的情况按航班占用廊桥的结束时间从小到大的顺序保存在了队列work中,每个元素包含两个数据区域:廊桥占用的结束时刻和廊桥编号。如图a所示,前三架飞机到达后work=[[5,0],[9,2],[11,1]]。push函数将新元素插入到队列的合适位置,请将划线处程序补充完整。
#endtime和gid是待插入元素的结束时刻与廊桥编号
#head指向队首元素、tail指向队尾的下一个位置
def push(endtime,gid,head,tail):
j=tail-1
work.append([])
tail+=1
while ____:
work[j+1]=work[j]
j-=1
work[j+1]=[endtime,gid]
return tail
(3)主程序。假设程序要为n架停靠机场的飞机分配廊桥(飞机编号为0~n-1),以下程序实现了廊桥分配功能,请将划线处程序补充完整。
gate=[]#gate[i]保存第i号登机口停靠过的航班信息
work=[]#保存被占用的廊桥信息
free=[]#保存空闲廊桥的编号
headw=tailw=0
headf=tailf=0
for i in range(m):
gate.append([])
free.append(i)
tailf+=1
for i in range(n):
#输入第i架飞机的到达时刻s,占用廊桥时长t,代码略
while ①____:
free.append(work[headw][1])
tailf+=1
headw+=1
if headf != tailf:
gid=free[headf]
②____
gate[gid].append(i)
tailw=push(s+t,gid,headw,tailw)
else:
cur=work[headw]
headw+=1
gate[cur[1]].append(i)
③____
#第i架飞机分配好廊桥后在对应停靠的登机口更新显示航班信息,代码略
第1页/共1页
学科网(北京)股份有限公司
$$
绝密★考试结束前
高三信息试题
本试卷分两部分,第一部分信息技术,第二部分通用技术。满分100分,考试时间90分钟。
第一部分信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 大模型(Large Model)是指具有大规模参数和复杂计算结构的机器学习模型。例如OpenAI的GPT-4模型。大模型的应用有自然语言处理、计算机视觉、语音识别和推荐系统等。大模型通过训练海量文本、图像、音频等数据来学习复杂的模式和特征,具有强大的泛化能力,可以对未见过的数据做出准确预测。下列关于信息和数据的描述,正确的是( )
A. 脱离语境的数据,也包含了各种信息
B. 同一组数据对不同的大模型而言,所含价值和意义相同
C. 训练大模型的数据和大模型能处理的数据都是结构化数据
D. 数据所包含的信息能被大模型处理和学习,体现了信息的可加工处理性
【答案】D
【解析】
【详解】本题考查数据和信息的认识和理解。单纯的数据是没有意义的,将数据放在某个真实场景中,数据就有了意义,这就是信息。选项A错误。信息的价值也是相对的,不同的人,不同的大模型,其价值可能不同。选项B错误。从材料看,大模型训练数据有图像、音频等;这些都是非结构化数据。选项C错误。信息具有可加工处理性,选项D正确。因此,本题选择D。
2. 大模型(Large Model)是指具有大规模参数和复杂计算结构的机器学习模型。例如OpenAI的GPT-4模型。大模型的应用有自然语言处理、计算机视觉、语音识别和推荐系统等。大模型通过训练海量文本、图像、音频等数据来学习复杂的模式和特征,具有强大的泛化能力,可以对未见过的数据做出准确预测。对于大模型和其训练所用的大数据,下列说法正确的是( )
A. 大模型训练用大数据都需要人工采集并输入给大模型
B. 用大模型生成网络趣图等应用时,也要遵守信息社会道德准则和法律法规
C. 用大模型做商品智能推荐时,无需分析用户浏览、购买等行为数据的关联性
D. 大模型中的数据不受信息泄露、操作失误、存储器损坏等安全因素影响
【答案】B
【解析】
【详解】本题考查大数据的特征、思维、安全与信息社会责任。选项A:大数据的生成不可能完全依靠人工,也需要机器参与,如网络爬虫等。选项B:大模型的应用虽然带来了很多便利和创新,但不能违反道德和法律规定,比如不能生成侵犯他人隐私、含有恶意信息、违反公序良俗等内容的趣图。选项C:大数据的个性化推荐应用,不必知道人们购买某些商品的原因,只要找到商品之间的关联性,就能为客户提供精确的推荐。选项D:信息系统中的数据安全都受各种因素威胁,如硬盘驱动器损坏、操作失误、黑客入侵、感染计算机病毒、遭受素自然灾害等。因此,本题选择B。
3. 大模型(Large Model)是指具有大规模参数和复杂计算结构的机器学习模型。例如OpenAI的GPT-4模型。大模型的应用有自然语言处理、计算机视觉、语音识别和推荐系统等。大模型通过训练海量文本、图像、音频等数据来学习复杂的模式和特征,具有强大的泛化能力,可以对未见过的数据做出准确预测。根据材料描述,下列选项中最有可能未使用大模型人工智能应用的是( )
A. 输入文章概括其中心思想 B. 输入人像照片确定人物年龄
C. 输入关键词显示相关商品 D. 输入歌曲音频确定其歌名
【答案】C
【解析】
【详解】本题考查人工智能应用。选项A属于自然语言处理;选项B属于计算机视觉、图像识别:选项D属于语音识别,由材料知他们都是大模型人工智能。选项C是搜索,不是大模型应用。因此,本题选择C。
4. 大模型(Large Model)是指具有大规模参数和复杂计算结构的机器学习模型。例如OpenAI的GPT-4模型。大模型的应用有自然语言处理、计算机视觉、语音识别和推荐系统等。大模型通过训练海量文本、图像、音频等数据来学习复杂的模式和特征,具有强大的泛化能力,可以对未见过的数据做出准确预测。对于大模型中的数据编码,正确的是( )
A. 大模型中的数据以二进制或十六进制形式存储和处理的
B. 若其数据格式都是ASCII字符,则1MB数据有220个字符
C. 若用4个字节来表示一个整数,则最大整数可以是232
D. 若用44.1kHZ采样频率,16bit量化其音频数据,则1秒单声道音频约占0.67MB
【答案】B
【解析】
【详解】本题考查进位制、数据编码等知识。选项A:数据都以二进制存储和处理。选项B:一个ASCII字符占一个字节,则1MB数据有220个字符。选项C:4个字节表示的最大整数是232-1。选项D:计算式是44.1×103×16×1×1/8/1024/1024≈0.084MB。因此,本题选择B。
5. 某智能儿童手表采用鸿蒙操作系统设计。在数量众多的APP的支持下,连入厂家服务端,手表具有定位、通话、社交互动、健康监测、学习和娱乐等丰富功能。尤其是其离线定位功能,在附近其他相关设备组成的“查找”网络功能支持下,可以在信号盲区实现位置查找,确保孩子能被定位。关于该儿童手表的软件和硬件,下列说法不正确的是( )
A. 鸿蒙操作系统属于系统软件 B. 健康检测等智能性需要传感器支持
C. 儿童手表可以视为信息系统的一种终端 D. 有了网络存储,可以去掉手表内的存储器
【答案】D
【解析】
【详解】本题考查信息系统软件、硬件相关知识。移动终端的硬件也有运算器、控制器、存储器、输入设备和输出设备五大部件,存储器也是必不可少的设备,即使有网络支持也不能去掉,如操作系统的数据必然会存储在内部存储器中。因此,本题选择D。
6. 某智能儿童手表采用鸿蒙操作系统设计。在数量众多的APP的支持下,连入厂家服务端,手表具有定位、通话、社交互动、健康监测、学习和娱乐等丰富功能。尤其是其离线定位功能,在附近其他相关设备组成的“查找”网络功能支持下,可以在信号盲区实现位置查找,确保孩子能被定位。关于该儿童手表相关的网络或网络设备,下列说法正确的是( )
A. 该儿童手表需要能连接移动通信网或者连接Wi-Fi等联网功能
B. 在离线定位功能支持下,该手表无需连接任何设备就能定位
C. 在与网络同伴手表之间社交互动时,数据传输必须支持HTTP网络协议
D. 在手表上开启APP连入服务端进行学习,该学习系统必然是基于B/S架构的
【答案】A
【解析】
【详解】本题考查网络相关知识。选项A:由于其他设备通过联网确定其定位信息,所以该儿童手表需要能连接移动通信网或者连接Wi-Fi等联网功能。选项B:有材料知其“离线”功能需要附件其他相关设备的支持。选项C:网络数据传输必须遵循相关协议,常见的是TCP/IP协议。HTTP协议是网页传输协议,浏览网页时需要此协议,该选项或情景中并未限定是网页数据。选项D:通过APP连入服务器端,属于C/S模式,不是B/S模式。因此,本题选择A。
7. 某算法部分流程图如图所示,若a、b所有元素初始值都是0,p的初始值也是0,依此输入580、570、565、564、564、520、520、520、0后,a[4]和b[4]的值分别为( )
A. 520 3 B. 564 2 C. 520 2 D. 0 1
【答案】B
【解析】
【详解】本题考查算法流程图的阅读与理解。此处p可以视为a数组中存放非0数据最后一个元素位置,当a[p]等于x时,b数组记录这个位置上的数有多少个。当a[p]不等于x时,把新元素放到a中p的下一个位置,元素值初始化为1。由此,对于输入数据580、570、565、564、564、520、520、520、0可得数组各个值:
0
1
2
3
4
5
a
0
580
570
565
564
520
b
0
1
1
1
2
3
因此答案选B。
8. 包含5个节点的二叉树,其根节点的左右子树高度相同,且中序遍历结果是“甲乙丙丁戊”,那么其前序遍历结果不可能是( )
A. 丙乙甲戊丁 B. 丙乙甲丁戊 C. 丙甲乙戊丁 D. 丙乙丁甲戊
【答案】D
【解析】
【详解】本题考查二叉树相关概念与遍历。在二叉树中,三个节点的树高度至少是2,因此在5个节点的二叉树中,左右子树高度相同,只能是左右子树节点个数相同。即使不知道此性质也有根据“左右子树高度相同”的特点绘制出如下二叉树。因此丙只能是根节点,左子树序列要么是“甲乙”或者“乙甲”,右子树序列也只能是“丁戊”或“戊丁”。答案选择D。
9. 某浏览器的“后退”功能按钮用类似栈的数据结构实现(假设栈容量为3):每打开新网站就会将上次的浏览记录压入“栈”中;栈满时,再浏览记录,则从“栈”底删除较早的记录;点击“后退”按钮时则从“栈”顶中弹出最近浏览的记录。若用一位数字表示每次打开的网站,用大写字母“B”表示点击“后退”按钮,如“1、2、B、3”操作后“栈”顶的网页是“1”。那么经过“1、2、3、4、B、5、6、B、B、B”操作后,当前浏览的网页是( )
A. 2 B. 3 C. 5 D. 1
【答案】A
【解析】
【详解】本题考查栈的特点与应用。按题意模拟:1、2、3、4操作后,当前浏览网页是4,栈顶元素是3,因此B操作会把网页3弹出并浏览。操作5、6过后,当前浏览网页是6,栈顶元素是5(此时栈底的1会删除,此题未考查)。后面的三次B操作依此弹出浏览的是5、3、2。因此,本题选择A。
10. 有如下Python递归程序:
def f(left,right):
if left >= right:
return left
m=(left+right)//2
if key <= a[m]:
return f(left,m)
else:
return f(m+1,right)
若key=11,下列选项中的数组a调用f(0,8)的结果与其他三项不同的是( )
A. a=[3,3,7,7,7,9,11,11] B. a=[3,3,9,9,9,9,16,17] C. a=[3,3,9,9,9,11,11,17] D. a=[3,4,6,8,8,8,11,13]
【答案】C
【解析】
【详解】本题考查递归函数的阅读,二分查找算法的理解。由选项知,所有数据都升序排序。程序知,若当前元素a[m]小于key时,在列表后半段查找;若当前元素a[m]大于或等于key时,在列表前半段查找。注意相等是亦往前半段查找,当列表数据有重复时会一直往前半段查找,找到第一个等于key的位置。也可以将各个选项代入程序阅读:选项A和选项D的结果是6,即11出现第一个位置;选项B找不到11,但能返回第一个大于11的位置,也是6;选项C,返回11出现的第一个位置,即5。因此答案选择C。
11. 有如下Python程序:
res='';k=1
for i in range(len(a)-2):
if ord(a[i])*k < ord(a[i+2])*k:
a[i],a[i+2]=a[i+2],a[i]
k=-k
for s in a:
res+=s
print(res)
已知数组a共8个元素,每个元素都为单个字符,运行该程序后输出结果可能是( )
A. computer B. repomcut C. nesesicc D. sciences
【答案】D
【解析】
【详解】本题考查字符串处理,排序思想原理。由比较表达式ord(a[i])*k<ord(a[i+2])*k知,当k=1时,较小的元素往后移;当k=-1时,较大的元素往后移。因此,经过循环处理后,偶数位(从0开始数)上最小的元素应该在偶数位最末尾位置;奇数位上最大的元素应该在奇数位最末尾位置。选项A中“computer”的奇数位“optr”的最末尾应该是“t”而不是“r”。选项B中“repomcut”的偶位数为“rpmu”的最末尾应该是“m”而不是“u”。选项C中“nesesicc”的奇数位“eeic”的最末尾应该是“i”而不是“c”。注意只是一趟比较与交换,各个位上的值不一定升序或者降序。因此,本题选择D。
12. 已知链表a存放了学生ID和借阅图书书名,链表b存放了学生ID和姓名。两链表节点都按学生ID升序存放,如图(a)和(b)所示。链表a的头指针指向额外的空元素。现要将两链表中有共同学生ID的节点连接成一个新链表,如图(c)所示。
图a 图b
图c
ha=q=0
p=ha
while a[p][2] != -1:
tp=a[p][2]
if q == -1:
a[p][2]=-1
break
if a[tp][0] == b[q][0]:
a[tp].append(b[q][1])
①
elif a[tp][0] > b[q][0]:
q=b[q][2]
else:
②
#从ha的下一个位置开始输出链表a,
#输出结果即为两表连接结果,代码略
则划线部分程序应填入的正确代码为( )
A. ①q=b[q][2] ②p=a[p][2] B. ①p=a[p][2] ②a[p][2]=a[tp][2]
C. ①tp=a[tp][2] ②p=a[tp][2] D. ①p=tp ②p=a[tp][2]
【答案】B
【解析】
【详解】本题链表数据组织方式的理解与链表的操作知识。链表a头指针指向空节点,省去了头节点可能被删除的复杂逻辑判断,简化了程序。由程序第4行tp=a[p][2]以及p的初始化可以断定,tp指向p指针的下一个节点。由条件a[tp][0]==b[q][0]成立时将b链表q指针指向的节点姓名区域添加到a链表tp指针指向的节点a[tp].append(b[q][1]),可以断定tp指向a链表当前节点,q指向b列表当前节点。于是当a链表中学生ID和学生姓名连接好,a链表当前节点应该移到下一节点继续处理。但若像选项C中给出的“tp=a[tp][2]”让tp指针移动,而p指针不动,那么下一次循环时又会执行“tp=a[p][2]”导致tp指针不变。因此这里适合让p指针移动,进入下一次循环时,tp随着p的移动而移动。因此,第①空选项B和D都正确。
对于第②空,此处是a链表的当前ID小于b链表的当前ID,此时a链表中tp指向的当前节点无需保存,需要删除处理。因此可以让p指针的下一个节点指向tp的下一个节点,答案是a[p][2]=a[tp][2]。选项D中,让p指向tp的下一个节点,下次循环时会跳过tp的下一个节点,因此选项D错误。
故本题答案是B选项。
二、非选择题(本大共3小题,其中第13小题7分,第14小题10分,第15小题9分,共26分)
13. 某路口的交通信号灯控制系统每隔1秒采集路口车辆情况,若在1分钟以内(采集60次)检测到持续有车辆通过路口,且持续数量最大值超过30辆时视为大流量,需要设置绿灯持续50秒,黄灯持续5秒,红灯持续45秒。其他流量情况下设置绿灯持续30秒,黄灯持续5秒,红灯持续25秒。如[2,4,0,1,0,3]表示检测了6次,每次检测到的车辆数分别是2、4、0、1、0、3辆车,最大持续通过的车辆数是6辆。请回答下列问题。
(1)若十次检测的车辆数据是[3,0,2,4,0,3,1,1,0,7],则持续数量最大是____。
(2)实现上述功能的部分Python程序如下,请在划线处填入合适代码。
while True:
cur=0
maxn=0
for i in range(60):
#接受一次系统中监控设备检测到的车辆数量,存入n,代码略
if n > 0:
cur+=n
if ①____:
maxn=cur
else:
②____
#延时到1秒,代码略
if ③____:
#发送“大流量”状态信息,设置下一轮的绿灯时间50秒,
#黄灯时间5秒,红灯时间45秒,代码略
else:
#发送“正常流量”状态信息,设置下一轮的绿灯时间30秒,
#黄灯时间5秒,红灯时间25秒,代码略
#等待当前一轮红绿灯结束,进行下一轮红绿灯设置,代码略
【答案】 ①. 7 ②. maxn < cur或maxn <= cur ③. cur=0或cur=n ④. maxn > 30
【解析】
【详解】本题考查Python基本程序设计与理解。
(1)持续有车辆的数据分别是3、6、5、7,最大持续数量是7。
(2)从第4行的循环可以看出这是一分钟之内的检测,n是当前检测到的车辆数,由此第7行cur的值是n的累加值。而第10行的条件就是n=0的情况,相当于此时未检测到车辆,因此可以认为车辆有中断,②那么第2空应该将累加值cur初始为0,以便让cur去统计下一个持续到达车辆总和,该空为cur=0或cur=n。因为每次更新cur的值后,需要找到最大持续数量,①所以第1空需要更新这个最大值,即cur>maxnr或maxn <= cur更新这个最大值。
③当一分钟检测结束后,需要判定当前流量情况,以便设置正确的红绿灯时间。从第14、15行的注释可以看到,第3空的功能代码是流量大于30的关系表达式。那么用cur>30还是maxn>30呢,这需要对这两个变量功能的认识。由前面分析也可知,cur的是当前流量,maxn是最大持续的车流量值,因此答案是maxn>30。
14. 为了提升图书馆、博物馆等场馆服务质量,部分公共场馆采用了智能预约与核验系统。用户通过网络平台或者小程序,使用个人身份信息进行提前或现场预约场馆。用户入闸核验时,智能终端识别用户身份证或者预约二维码,并通过无线通信方式将数据传输到Web服务器,服务器在数据库中查找用户身份信息后做出是否打开闸机放行的处理。请回答下列问题。
(1)相比较而言,以下身份认证方式中,用户通行效率较低的是____(单选,填字母:A.用户名+口令/B.身份证刷卡/C.预约二维码扫码)
(2)通过手机APP预约成功后,用户持身份证入闸核验时发现道闸并未打开放行,下面描述中,不可能引起该故障的是____(单选,填字母)
A.身份证识别传感器故障
B.道闸机械故障等原因,无法完成执行器的控制
C.用户手机等电子设备未接入场馆网络,造成无法访问
(3)下列关于该系统的设计与实现说法,正确的有____(多选,填字母)。
A.预约二维码的识别需要RFID识别技术的支持
B.用户在网上预约场馆成功后,身份信息要保存在服务器数据库中
C.可以使用Flask Web框架和SQLite 3编写服务器程序
D.系统完成后需要进行软硬件测试,而文档编写可以忽略
(4)为了增加信息系统安全性,请从保护系统数据不丢失或保护用户个人敏感信息不泄漏角度,请列举两种方法。____
(5)小林整理出了某些时间的场馆访问人数等数据,如图a所示。现要统计“2024-08-03”单日访问人数最多的前50个场馆的所在地归属,并绘制如图b所示的柱形图。部分实现程序如下所示。
图a
图b
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("部分场馆访问记录.xlsx")
df1=df[df["时间"]=="2024-08-03"]
plt.bar(df1["所在地"],df1["人数"])
方框中应填入的语句依次为____(选3项,填数字序列)。
①df1=df1.head(50)
②df1=df.groupby("所地",as_index=False).sum()
③df1=df1.groupby("所在地",as_index=False).sum()
④df1=df1.sort_values("人数",ascending=False)
(6)为了研究哪些场馆人流量较少,需要在图a所示的数据集合中筛选出单日人数小于100的数据以便进一步研究分析,可在第(5)小题的基础上再执行如下语句,请在划线处填入合适的代码。
df2=____
【答案】 ①. A ②. C ③. BC ④. 诸如:①对关键数据,如个人敏感数据加密存储与传输
②为服务器安装病毒防治软件,降低病毒感染风险
③安装并开启防火墙,防止黑客和病毒利用漏洞入侵系统
④对不同用户分配不同权限,利用访问控制技术限制数据资源
⑤建立磁盘阵列,及时做好数据备份 ⑤. ④①③ ⑥. df[df["人数"]<100]或df[df.人数<100]
【解析】
【详解】本题考查信息系统搭建相关内容。分析题目内容,推知:
(1)身份证和二维码识别都可以借助特殊输入设备较快捷输入,而用户名和口令一般需要借助键盘才能输入,故本题答案是:A。
(2)预约成功后,系统就有了用户预约记录。智能终端若能成功获取用户入闸时身份证,并且道闸或者执行器没有故障,一般就能顺利打开,选项A、B中的描述是有可能造成无法打开道闸的。而选项C描述的手机,在该场景下已不算是该信息系统的一部分,与故障无关。另外,即使是在“扫描手机上的预约二维码入闸”场景下,手机二维码也只是个数据输入源,与有没有连接场馆网络,甚至有没有联网都没有关系。故本题答案是:C。
(3)选项A,二维码只需通过特殊扫码设备输入并解码即可识别,不是电子标签,也不用RFID技术支持。选项D,信息系统的文档,是系统建设过程的原始资料,是系统出现故障后维护人员的指南。规范的文档是对信息系统的开发方式、质量的保障,不能忽略。选项B,信息系统一般需要数据库保存系统数据。选项C,Flask是一个轻量级的Web应用框架,SQLite 3是一种轻型的数据库,它们可以很好地配合编写服务器程序,用于处理用户预约和核验等业务逻辑。故本题答案是:BC。
(4)从数据丢失角度而言,主要做好数据备份;从数据保密性而言,主要做好加密处理。从系统漏洞而言,主要做好防火墙、杀毒软件、更新补丁等。从人为泄露方面,主要做好访问控制和系统操作权限分配和管理。因此,可以有如下信息安全技术:
①数据加密技术;②数据校验技术;③保护数据的存储介质:磁盘陈列、数据备份、异地容灾等技术;④其他如查杀病毒、安装防火墙等技术。
(5)单日访问人数最多的前50个场馆,可以通过排序完成,若降序排序则取前50名即可。从选项看,应该让④和①先执行。排好序后,前50名的场馆可能好几个场馆都属于同一个“所在地”的,因此需要分组统计。对于②、③选项而言,最后一步应选择③,因为它的操作对象是df1,即前面已处理好的数据对象。本题容易犯先分组后排序的错误,分组在先的主要错误是统计了每个地区的访问总数,而不是单个场馆的访问数量。故本题答案是:④①③。
(6)此处需要筛选出单日人数小于100数据,这些数据在“部分场馆访问记录.xlsx”内,上文已通过read_excel函数读取到df中,只需要在df中筛选出符合条件的数据即可,格故本题答案是:df[df["人数"]<100]或df[df.人数<100]。
15. 某机场共有m个登机口,通过m个廊桥连接到飞机舱门,登机口编号和廊桥编号相同,范围都是0~m-1。现有n架航班要停靠机场接受登机,廊桥分配程序要为每架飞机分配一个合适的廊桥,并在对应的登机口显示当前停靠的航班信息。已知飞机的到达时刻与占用廊桥的时长(示例如图a所示)。飞机到达时刻是按时间先后顺序给出的,且同一时刻最多有一架飞机到达。前一班飞机离开廊桥与后一班接管廊桥之间的时间间隙忽略不计。对于一架到达的飞机,程序会优先分配目前未占用的廊桥;若所有廊桥都被占用,则优先分配等待时间最短的;若有多个可分配的廊桥(如:多个未被占用或等待时间相同),程序会任意分配一个廊桥。
飞机编号
到达时刻
占用时长
航班号
0
1
4
MF8556
1
2
9
KN5956
2
4
5
MU5186
3
5
3
HU7610
4
7
5
CA8685
图a
0号登机口:MF8556,HU7610,CA8685
1号登机口:KN5956
2号登机口:MU5186
当登机口数量m=3时,各廊桥可能的分配情况。注意其中已离开廊桥的航班信息未清除。
图b
请回答以下问题。
(1)如图a所示,若0号航班“MF8556”需要占用廊桥的时长是6,保持m=3和其他条件不变,且前三架飞机的分配方案也不变,那么4号航班“CA8685”的登机口是____号(选填数字:0/1/2)。
(2)已知航班占用廊桥的情况按航班占用廊桥的结束时间从小到大的顺序保存在了队列work中,每个元素包含两个数据区域:廊桥占用的结束时刻和廊桥编号。如图a所示,前三架飞机到达后work=[[5,0],[9,2],[11,1]]。push函数将新元素插入到队列的合适位置,请将划线处程序补充完整。
#endtime和gid是待插入元素的结束时刻与廊桥编号
#head指向队首元素、tail指向队尾的下一个位置
def push(endtime,gid,head,tail):
j=tail-1
work.append([])
tail+=1
while ____:
work[j+1]=work[j]
j-=1
work[j+1]=[endtime,gid]
return tail
(3)主程序。假设程序要为n架停靠机场的飞机分配廊桥(飞机编号为0~n-1),以下程序实现了廊桥分配功能,请将划线处程序补充完整。
gate=[]#gate[i]保存第i号登机口停靠过的航班信息
work=[]#保存被占用的廊桥信息
free=[]#保存空闲廊桥的编号
headw=tailw=0
headf=tailf=0
for i in range(m):
gate.append([])
free.append(i)
tailf+=1
for i in range(n):
#输入第i架飞机的到达时刻s,占用廊桥时长t,代码略
while ①____:
free.append(work[headw][1])
tailf+=1
headw+=1
if headf != tailf:
gid=free[headf]
②____
gate[gid].append(i)
tailw=push(s+t,gid,headw,tailw)
else:
cur=work[headw]
headw+=1
gate[cur[1]].append(i)
③____
#第i架飞机分配好廊桥后在对应停靠登机口更新显示航班信息,代码略
【答案】 ①. 2 ②. j >= head and work[j][0] > endtime ③. headw != tailw and work[headw][0] <= s或headw < tailw and work[headw][0] <= s ④. headf+=1 ⑤. tailw=push(cur[0]+t,cur[1],headw,tailw)
【解析】
【详解】本题考查Python程序综合应用相关内容。本题涉及到数组、队列数据结构的应用、排序算法等知识。
(1)对于图a所示的5架飞机,停靠廊桥和时间占用情况如下图所示。第4号飞机“CA8685”虽然在第7时刻到达,但是最早腾空的是在第8时刻空出的0号廊桥,因此4号飞机从第8时刻开始占用该廊桥,并持续5个时长。
图1
如果0号飞机占用时间延长至6个时长,那么第3号飞机“HU7610”也有要顺延至第10时刻才能释放该廊桥,于是在第8时刻,4号飞机会分配到第2号廊桥,如下图所示。
图2
故本题答案是:2。
(2)由题意知,push函数的主要功能是将新元素插入到队列的合适位置,保证元素按廊桥占用时间升序存放。如何将新元素插入到队列合适位置呢?不难想到插入排序算法中元素的插入过程。由注释知,队列中第一个元素是head,最后一个元素是tail-1。插入的新元素应该由素tail-1位置开始向前查找第一个小于等于新元素的位置。从j的初值j=tail-1,以及队列中元素的移动过程work[j+1]=work[j]可以看出j就是指示位置的变量。因此第①空循环移动的条件是,当前j指向的元素结束时间比待插入元素结束时间要大,即work[j][0]>endtime。还有一个容易忽略的条件是插入到头部之前,即work[head][0]还要大于待插入元素,这时head往后移,新元素只需插入到原来head位置即可。故本题答案是:j>=head and work[j][0]>endtime。
(3)注释中,free和work两个数组(队列)的功能已经告诉我们,难点是它们数据存储方式的理解。work是一个队列,这在前一小题有提示。从程序的第8、9行看,free也像一个队列,并且其队尾指针是由taif指示的,可以预推测headf就是它的队首。
第16行程序告诉我们当free队列不为空,即有空闲廊桥时可以取free队列中的一个元素,为当前到达的飞机分配一个廊桥。这样可以断定gid是廊桥编号,也即登机口编号。第④处需要修改free队列的队首指针,将队首元素出队。故④处答案是headf+=1。
依此分析,第21行是处理空闲廊桥不存在的情况下为新到的飞机分配一个廊桥。依题意,需要找到一个等待时间最少的一个廊桥。而队列work中保存了按占用结束时间升序排序的各个廊桥的停靠情况,等待时间最短的元素应该在队首。因此程序第22行可视为取出队首元素work[heaw]存入cur变量后元素出队。根据前一小题work中数据保存格式:结束时间和廊桥编号,那么cur[1]是廊桥编号,cur[0]是该廊桥的占用结束时间。程序第24行,将第i号飞机分配至cur[1]号廊桥,第25行需要修改该廊桥信息,并放到队列的合适位置,格式上可以参考第20行程序。此处调用push函数,第一个参数是该廊桥结束时间,等于当前结束时间加上新的占用时间,即cur[0]+t;第二参数是廊桥编号,即cur[1]。故⑤处答案是:tailw=push(cur[0]+t,cur[1],headw,tailw)。
弄清楚了free和work两个数组(队列)的功能,并结合程序,可以看到程序分配廊桥的方法:先看free队列中有没有空闲廊桥,有则取free队列队首为当前航班分类队首元素对应的廊桥,并把该廊桥按结束时间顺序插入到work队列中,保证work队列队首元素是最早结束的廊桥。若free队列中没有空闲廊桥,说明所有廊桥都处于占用状态,因此需要在work中取最早结束的廊桥,将之分配给新来的航班,并且将该廊桥信息重新插入到work队列的合适位置。
考虑第13、14行程序是在free队列中插入新元素,第15行是改变work队首指针headw的位置,相当于出队,由此可以想到当work队列中廊桥结束时间不超过当前时间就可以视为廊桥已经空闲,应该从work中出队,并进入free队列,故③处答案是:headw!=tailw and work[headw][0]<=s
第1页/共1页
学科网(北京)股份有限公司
$$