精品解析:浙江嘉兴市第一中学2026-2027学年高三上学期10月限时训练技术试卷-高中信息技术
|
2份
|
27页
|
6人阅读
|
0人下载
内容正文:
2027届高三(上)10月限时训练技术
第一部分 信息技术(50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分。)
阅读下列材料,完成下面小题:
某线上奶茶店的“智能点单与运营”系统:用户通过小程序点单时,系统自动采集订单信息,支付完成后,订单数据同步至后厨终端与配送调度平台;大数据平台基于近2个月的订单数据,分析不同时段的热销饮品类型,生成“备货建议表”;Al算法结合实时订单量与配送员位置,自动生成规划路线并按此路线行驶。
1. 关于该平台数据的说法,不正确的是( )
A. 用户通过小程序点单,体现了系统数据的输入功能
B. 门店的实时销量数据需要经过分析才能支持采购决策
C. 根据用户的口味偏好调整奶茶配料,体现了数据的价值
D. 所有用户的点单记录具有完全相同的分析价值
2. 关于该系统的数据采集与编码的说法,正确的是( )
A. 点单数据最终转化为二进制编码存储和处理
B. 奶茶甜度、用户习惯等属于主观印象,无法进行数字化处理
C. 若用4位二进制编码表示饮品类型,则最多可标示8种不同饮品
D. 支付金额采用十进制编码存储,便于后台直接统计结算
3. 下列做法不符合信息安全要求的是( )
A. 后台操作日志保留30天以上,逾期按流程归档留存
B. 用户的手机号、地址等信息加密后再存储和传输
C. 配送员可查看用户的全部信息以方便配送
D. 服务器定期进行漏洞扫描,及时修复安全隐患
4. 关于该系统中大数据与数据加工的说法,正确的是( )
A. 订单数据同步至后厨终端体现了数据的加工和处理
B. 生成“备货建议表”的过程本质上是数据计算
C. 数据加工无法挖掘数据间的关联关系
D. 大数据技术仅对现有数据分析,不会产生新的数据
5. 关于该系统中人工智能的应用,正确的是( )
A. AI规划配送路线时,需调用所有历史订单的配送数据进行运算
B. 该AI主要采用了强化学习算法,通过实时环境反馈动态调整配送路线
C. AI模型已完成历史数据的学习,规划路线时不再需要进行实时计算
D. 历史配送数据越丰富,AI规划路线的效率与精准度可能越高
6. 下列关于计算机软硬件的说法,不正确的是( )
A. 操作系统是计算机最重要的系统软件
B. 经过计算机处理后的信息一般存储在外存中
C. 未来计算机逐渐向巨型化、微型化、智能化和网络化等方向发展
D. 存储器的功能是存放数据,CPU的功能是存放计算机执行的指令与程序
7. 下列关于网络技术的说法,正确的是( )
A. 无线网络中的数据通信不需要传输介质
B. 计算机网络按覆盖范围分为:局域网LAN、城域网MAN和广域网WAN
C. 网络是由计算机系统、数据通信系统和网络协议三部分组成
D. 数据通信、资源共享、并行处理是网络的三个主要功能
8. 某深度为3的二叉树中序遍历结果为“ABCD”,则前序遍历结果不可能是( )
A. ABCD B. DBAC C. CBAD D. ACBD
9. 定义如下函数:
def jc(n):
if n==1:①
return n
return n*jc(n-1)②
执行语句x=jc(5),下列说法正确的是( )
A. 若实参a为正整数,则函数jc(a)的调用次数为a
B. 程序执行完毕,①处代码共执行1次
C. 程序执行完毕,②处代码共执行5次
D. 如果①处代码改成n<2,程序将无法正常执行
10. 有如下python程序段,已知s为非空字符串,
n = len(s)
m = c = 1
for i in range(n - 1):
if s[i] == s[i+1]:
c += 1
else:
if c > m:
m = c
c = 1
if c > m:
m = c
print(m)
该程序段的功能是( )
A. 输出字符串中最长连续相同字符子串的长度
B. 输出字符串中最长重复子串的长度
C. 输出字符串中最长连续子串的长度
D. 输出字符串中第一个连续相同字符的长度
11. 循环队列que的长度为5,que[0]至que[4]的值分别为“apple”、“bear”、“cat”、“dog”、“egg“,执行如下程序段后,输出的最后一行内容是( )
n=5; head=0; tail=4
que=["apple", "bear", "cat", "dog", "egg"]
while head != tail:
if head%4 == 0:
print(que[head])
else:
tail=(tail+1)%n
que[tail]= que[head]
head=(head+1)%n
print(que[head])
A. bear B. cat C. dog D. egg
12. 对于如图a所示的链表link,设计排序算法:以头指针head指向的元素为基准数,将小于基准的节点移动到它的左侧,且保持节点相对顺序不变;大于基准的节点保持不动。排序结果如图b所示。实现该功能的程序段如下,方框中应填入的正确代码是( )
pivot = link[head][0]
p,r=head,-1
while link[p][1] != -1:
q = link[p][1]
if link[q][0] < pivot:
link[p][1] = link[q][1]
r = q
else:
p = link[p][1]
A.
if r == -1:
link[q][1] = head
head = q
else:
link[q][1] = link[r][1]
link[r][1] = q
B.
if r == -1:
link[q][1] = head
else:
link[q][1] = link[r][1]
link[r][1] = q
C.
if r == -1:
link[q][1] = p
head = q
else:
link[r][1] = link[q][1]
link[q][1] = r
D.
if r == -1:
link[p][1] = q
head = q
else:
link[r][1] = link[p][1]
link[q][1] = r
A. A B. B C. C D. D
二、非选择题(本大题共3小题,其中第13小题10分,第14小题7分,第15小题9分,共26分)
13. 新学期到来,某高校信息技术中心为食堂设计了一套智慧餐饮管理系统,可以实现线上订餐、线下刷卡取餐、订单统计分析等功能。用户可以通过浏览器或手机App进行订餐、查询、充值等操作。在线上订餐后,学生只要用饭卡进行身份认证,即可取走对应餐盒,系统会自动从该学生的账户中扣除相应金额。系统结构示意图如图a所示。请回答下列问题:
(1)该系统的刷卡取餐功能应用了多种技术,下列说法正确的是 (单选,填字母)
A. RFID技术属于传感技术,和通信技术无关
B. 饭卡是一种有源电子标签
C. 刷卡机可以接收来自服务器的数据
D. 刷卡机能够直接访问数据库读取饭卡余额信息
(2)下列系统功能,在服务器端程序中实现的是 (多选,填字母)
A. 根据浏览器的访问请求返回数据 B. 在数据库中查询当日的订餐信息
C. 直接读取学生饭卡中的身份信息 D. 学生取餐后,修改该学生的卡内余额
(3)该系统服务器端程序采用Flask Web框架编写,部分代码如下。若某学生饭卡卡号为250601,选择的套餐编号为5,则提交订餐数据到Web服务器的URL为http://____。
from flask import Flask,request
#导入Flask框架模块及其他相关模块,代码略
app= Flask (_name_)
@ app.route("/")
def index():
#主页,代码略
@ app.route("/ toserv", methods=["GET", "POST"])
def tj():
cardNo= int(request. args. get(" id")) #获取饭卡卡号
info= int(request. args. get(" tc")) #获取套餐编号
#提交订餐数据,并存储到数据库,代码略
#服务器其他功能,代码略
if _name_=="_main_":
app. run(host="192.168.1.101", port=5000)
(4)为了保护该信息系统的安全,防止重要的数据丢失。请从软件角度写1条可以提升该系统安全性的有效措施。
(5)文件“data. xlsx”中存储了某一天的系统取餐数据,部分数据如图所示(取餐时间格式为“时:分”)。编写程序,根据输入的餐次名称,分析对应时间点的取餐人数变化情况。
import pandas as pd
import matplotlib. pyplot as plt
#设置图表显示中文字体,代码略
df= pd. read_ excel(" data. xlsx")
meal= input("请输入餐次:“)
df=(a)
g=(b)
g. rename (columns={"卡号" :"取餐人数"}, inplace= True)#更改列标题名称
plt. plot (g["取餐时间"], g["取餐人数“])
plt. title(meal+"各取餐时间的取餐人数“)
#设置绘图参数,输出折线图如图c所示,代码略
①在划线处(a)(b)代码为:____(多选,按顺序填字母)。
A.df["餐次"]== meal
B.df[df["餐次"]== meal]
C.df. groupby("餐次", as_ index= False).卡号. count()
D.df. groupby("取餐时间", as index= False).卡号. count()
②数据分析结果显示,折线图存在多处波峰。现需统计取餐人数排名前三的取餐时间点,并按照取餐人数由高到低输出,下列选项中能实现该功能的有____(多选,填字母)。
A. g=g. sort_ values("取餐人数"). tail(3)[::-1]
B. g=g. sort_ values("取餐人数", ascending= True)[-3:]
C. g=g. sort_ values("取餐人数", ascending= False)[:3]
D. g=g. sort_ values("取餐人数", ascending= False). head(3)
14. 图书馆智能座位管理系统持续记录学生每日的选座位置(包括:“窗边”、“走廊边”、“中间”)。系统分析学生连续n(n>2)天的选座偏好。当n 天内某位置出现次数不少于n-1次,且与当前偏好不同时,系统自动更新偏好为该位置;若没有位置满足次数条件,则保持原偏好。
(1)设n=4,某学生当前偏好为“中间”,接下来连续7天的选座记录为:“窗边、窗边、窗边、走廊边、窗边、中间、窗边”。系统从第1天开始,依次以每连续4天为单位进行分析,系统最终偏好将更新为____。
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
n=4; current="中间"
choices=["窗边","窗边","窗边","走廊边","窗边","中间","窗边"]
for start in range(len(choices) - n +1):
w= ①____
for loc in["窗边","走廊边","中间"]:
cnt =0
for i in range(n):
if w[i]== loc:
cnt +=1
if ②____:
if loc l= current:
③____
break
print ("最终偏好:", current)
15. 某景区有两种景交车:A型30座、B型60座。游客以旅游团形式到达,每团人数不超过30人,且团队不能拆分。预约信息已按到达时间升序排列,每个预约包含三个数据项:[编号,人数,到达时间]。编写程序模拟调度过程,并输出派送表。调度规则如下:
编号
人数
时间
0
20
8:00
1
15
8:00
2
30
8:05
3
20
8:05
4
5
8:08
5
13
8:08
6
25
8:08
7
18
8:12
8
8
8:12
■A型车,每隔10分钟发一班车(8:00-8:10一班,8:10-8:20一班以此类推)。游客按到达顺序依次尝试上车,若团队人数超过车辆剩余座位则跳过,继续考虑后续团队。
■B型车:若等待的游客总人数≥60人,立即派出B型车增援。
■每辆车的发车时间统一记录为该车最后上车团队的到达时间。
(1)根据图所示的预约信息,第一次派出B型车增援的发车时间为____。(格式为“小时:分钟”)
(2)在调度过程中,需要判断是否派出B型车并选择合适的团队。定义函数check(1st),1st存储等待团队信息,每个元素为[编号,人数,到达时间(分钟),指针]。函数在1st中查找是否存在连续团队的人数之和≥60,若存在,返回小于等于60最大值的连续团队编号列表和最后结束时间:若有多个差值相同,则返回起始下标最小的团队编号列表和最后结束时间。部分代码如下:
def check(lst):
head =0
s=0;
exists=False
ids = []
best = -1
best_ head = -1
best_ end = -1
for tail in range(len(lst)):
s += lst[tail][1]
while s > 60:
____
head +=1
if head <= tail:
if s > best or (s = best and head < best head):
best = s; best head = head; best end = tail
if not exists:
return [],0
for k in range(best head, best end +1):
ids. append(lst[k][0])
return ids, lst[best end][2]
调用该函数,请完成①和②两个小题。
①补全划线处代码。
②若1st的长度为100,团队最多人数为30人,则加框处语句最多执行____次(填数字)。
(3)模拟调度过程并输出派送表。派送表每个元素为[车型,发车时间(分钟),团队编号列表]。主函数simulate接收预约信息info,返回派送表res。请完成划线处代码。
def remove_ teams (vis, head, tail, ids):
#从等待链表中删除ids中的节点,返回新的(head, tail)代码略
def simulate(info):
vis = []; res = []
head = tail = -1
n = len(info); i =0
cur =0
while ①____:
while i < n and info[i][2] <= cur:
vis. append([info[i][0], info[i][l], info[i][2], -1])
if head == -1:
head = tail = len(vis) -1
else:
②____
tail = len(vis) -1
i+=1
if head == -1:
if i < n:
③____
continue
1st = []
p = head
while p != -1:
1st. append (vis[p])
p = vis[p][3]
ids, last time - check(1st)
if len(ids) != 0:
res. append(['B', last time, ids])
head, tail = remove_ teams(vis, head, tail, ids)
else:
#A型景交车发车处理,代码略
#更新cur至下一个时间点,代码略
return res
#将游客数据转换为[[0,20,480]……]并存入info中(其内元素为[编号,人数,分钟])
schedule = simulate(info)
#输出派送表代码略
第1页/共1页
学科网(北京)股份有限公司
$
2027届高三(上)10月限时训练技术
第一部分 信息技术(50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分。)
阅读下列材料,完成下面小题:
某线上奶茶店的“智能点单与运营”系统:用户通过小程序点单时,系统自动采集订单信息,支付完成后,订单数据同步至后厨终端与配送调度平台;大数据平台基于近2个月的订单数据,分析不同时段的热销饮品类型,生成“备货建议表”;Al算法结合实时订单量与配送员位置,自动生成规划路线并按此路线行驶。
1. 关于该平台数据的说法,不正确的是( )
A. 用户通过小程序点单,体现了系统数据的输入功能
B. 门店的实时销量数据需要经过分析才能支持采购决策
C. 根据用户的口味偏好调整奶茶配料,体现了数据的价值
D. 所有用户的点单记录具有完全相同的分析价值
2. 关于该系统的数据采集与编码的说法,正确的是( )
A. 点单数据最终转化为二进制编码存储和处理
B. 奶茶甜度、用户习惯等属于主观印象,无法进行数字化处理
C. 若用4位二进制编码表示饮品类型,则最多可标示8种不同饮品
D. 支付金额采用十进制编码存储,便于后台直接统计结算
3. 下列做法不符合信息安全要求的是( )
A. 后台操作日志保留30天以上,逾期按流程归档留存
B. 用户的手机号、地址等信息加密后再存储和传输
C. 配送员可查看用户的全部信息以方便配送
D. 服务器定期进行漏洞扫描,及时修复安全隐患
4. 关于该系统中大数据与数据加工的说法,正确的是( )
A. 订单数据同步至后厨终端体现了数据的加工和处理
B. 生成“备货建议表”的过程本质上是数据计算
C. 数据加工无法挖掘数据间的关联关系
D. 大数据技术仅对现有数据分析,不会产生新的数据
5. 关于该系统中人工智能的应用,正确的是( )
A. AI规划配送路线时,需调用所有历史订单的配送数据进行运算
B. 该AI主要采用了强化学习算法,通过实时环境反馈动态调整配送路线
C. AI模型已完成历史数据的学习,规划路线时不再需要进行实时计算
D. 历史配送数据越丰富,AI规划路线的效率与精准度可能越高
【答案】1. D 2. A 3. C 4. B 5. D
【解析】
【1题详解】
本题考查数据的基本概念与价值特性。用户通过小程序点单是将外部信息录入系统,属于数据输入功能;实时销量数据经过分析后能为采购备货提供参考,支撑决策;基于用户口味偏好调整配料,能够提升用户体验,体现了数据的实用价值;不同用户的点单记录对应的消费特征、参考维度存在差异,分析价值并不完全相同。故答案为:D。
【2题详解】
本题考查数据采集与编码的基础知识。计算机内部所有信息最终都以二进制编码的形式完成存储和处理;奶茶甜度、用户习惯这类信息可以通过分类标记、数值映射等方式完成数字化处理;4位二进制编码最多可以表示2的4次方即16种不同饮品,而非8种;计算机后台存储处理数据默认使用二进制,十进制为展示的形式。故答案为:A。
【3题详解】
本题考查信息安全的实践规范要求。后台操作日志按规定时长留存归档、用户敏感信息加密传输存储、服务器定期扫描修复漏洞都是符合信息安全要求的操作;配送员仅需获取配送必要的地址、联系电话等信息,查看用户全部信息会造成用户隐私泄露,不符合信息安全最小权限原则。故答案为:C。
【4题详解】
本题考查大数据与数据加工的核心概念。订单数据同步至后厨终端属于数据的传输分发,不属于数据加工处理;基于历史订单数据分析不同时段热销品类生成备货建议表,本质是对原始数据进行统计、计算得到有价值的结果;数据加工的核心作用之一就是挖掘不同数据之间的关联关系;大数据分析过程中会生成备货建议、分析报表等新的衍生数据。故答案为:B。
【5题详解】
本题考查人工智能在路径规划场景的应用特性。AI规划配送路线仅需参考相关的历史配送数据,不需要调用全部历史订单数据;该场景的路径规划算法并非典型的强化学习应用,主要基于实时路况、订单位置、配送员位置做路径求解;AI完成历史数据学习后,规划路线时依然需要结合实时订单、位置信息进行实时计算;用于训练和参考的历史配送数据越丰富,AI模型对场景的适配性越好,规划路线的效率和精准度就有可能越高。故答案为:D。
6. 下列关于计算机软硬件的说法,不正确的是( )
A. 操作系统是计算机最重要的系统软件
B. 经过计算机处理后的信息一般存储在外存中
C. 未来计算机逐渐向巨型化、微型化、智能化和网络化等方向发展
D. 存储器的功能是存放数据,CPU的功能是存放计算机执行的指令与程序
【答案】D
【解析】
【详解】本题考查计算机软硬件。A选项正确,操作系统属于最重要的系统软件。B选项正确,经过计算机处理后的信息一般存储在外存中。C选项正确,未来计算机发展方向包含巨型化、微型化、智能化和网络化。D选项错误,存储器用来存放数据和程序,CPU负责执行指令、完成运算与控制,并不存放指令与程序。因此,本题选择D选项。
7. 下列关于网络技术的说法,正确的是( )
A. 无线网络中的数据通信不需要传输介质
B. 计算机网络按覆盖范围分为:局域网LAN、城域网MAN和广域网WAN
C. 网络是由计算机系统、数据通信系统和网络协议三部分组成
D. 数据通信、资源共享、并行处理是网络的三个主要功能
【答案】B
【解析】
【详解】本题主要考查网络技术的描述。无线网络中的数据通信需要传输介质,如通过无线电磁波进行传输;计算机网络按覆盖范围分为:局域网LAN、城域网MAN和广域网WAN;网络由计算机系统、数据通信系统以及网络软件和网络协议三部分组成; 数据通信、资源共享、分布式处理是网络的三个主要功能,故本题选B选项。
8. 某深度为3的二叉树中序遍历结果为“ABCD”,则前序遍历结果不可能是( )
A. ABCD B. DBAC C. CBAD D. ACBD
【答案】A
【解析】
【详解】本题考查的是二叉树。若中序遍历结果为“ABCD”,前序遍历结果“ABCD”,其二叉树如下:
该树深度为4,不满足题干深度为3。故本题应选A。
9. 定义如下函数:
def jc(n):
if n==1:①
return n
return n*jc(n-1)②
执行语句x=jc(5),下列说法正确的是( )
A. 若实参a为正整数,则函数jc(a)的调用次数为a
B. 程序执行完毕,①处代码共执行1次
C. 程序执行完毕,②处代码共执行5次
D. 如果①处代码改成n<2,程序将无法正常执行
【答案】A
【解析】
【详解】本题考查的是递归函数。若实参a为正整数,则函数jc(a)的调用:jc (a)、jc (a-1)…jc (1),一共调用 a 次,选项A说法正确;5 次调用都执行了if n==1判断,①段代码执行 5 次,不是 1 次,选项B说法错误;②是递归 return 语句,只有 n=5,4,3,2 这 4 次执行,共 4 次,选项C说法错误;n<2 等价于 n==1(正整数),递归正常结束,选项D说法错误。故本题应选A。
10. 有如下python程序段,已知s为非空字符串,
n = len(s)
m = c = 1
for i in range(n - 1):
if s[i] == s[i+1]:
c += 1
else:
if c > m:
m = c
c = 1
if c > m:
m = c
print(m)
该程序段的功能是( )
A. 输出字符串中最长连续相同字符子串的长度
B. 输出字符串中最长重复子串的长度
C. 输出字符串中最长连续子串的长度
D. 输出字符串中第一个连续相同字符的长度
【答案】A
【解析】
【详解】本题考查Python字符串遍历与连续字符统计的程序功能分析。该程序首先初始化计数器c和记录最大值的变量m为1,随后遍历字符串的相邻字符,若相邻字符相等则将当前连续相同字符的计数c加1,若相邻字符不等则先将当前连续计数和历史最大值m比较,更新m为更大值后重置c为1,循环结束后还会额外处理字符串末尾的连续相同字符段,最终得到的m就是整个字符串里最长的连续相同字符组成的子串的长度。其余选项中,最长重复子串不要求字符完全相同且连续、最长连续子串未限定字符相同、第一个连续相同字符的长度不符合程序遍历全程统计最大值的逻辑,均错误。故答案为:A
11. 循环队列que的长度为5,que[0]至que[4]的值分别为“apple”、“bear”、“cat”、“dog”、“egg“,执行如下程序段后,输出的最后一行内容是( )
n=5; head=0; tail=4
que=["apple", "bear", "cat", "dog", "egg"]
while head != tail:
if head%4 == 0:
print(que[head])
else:
tail=(tail+1)%n
que[tail]= que[head]
head=(head+1)%n
print(que[head])
A. bear B. cat C. dog D. egg
【答案】B
【解析】
【详解】本题考查循环队列的遍历与元素操作逻辑。n=5,head=0,tail=4,que=["apple", "bear", "cat", "dog", "egg"]
第1轮循环(head=0):head%4=0,打印que[0]即apple;head更新为1,打印que[1]即bear。
第2轮循环(head=1):head%4=1≠0,执行tail=(4+1)%5=0,que[0]赋值为que[1]即bear;head更新为2,打印que[2]即cat。
第3轮循环(head=2):head%4=2≠0,执行tail=(0+1)%5=1,que[1]赋值为que[2]即cat;head更新为3,打印que[3]即dog。
第4轮循环(head=3):head%4=3≠0,执行tail=(1+1)%5=2,que[2]赋值为que[3]即dog;head更新为4,打印que[4]即egg。
此时head=4,tail=2,head≠tail,进入第5轮循环:head=4,head%4=0,打印que[4]即egg;head更新为(4+1)%5=0,打印que[0]即bear。
此时head=0,tail=2,head≠tail,进入第6轮循环:head=0,head%4=0,打印que[0]即bear;head更新为1,打印que[1]即cat。
此时head=1,tail=2,head≠tail,进入第7轮循环:head=1,head%4=1≠0,执行tail=(2+1)%5=3,que[3]赋值为que[1]即cat;head更新为2,打印que[2]即dog。
此时head=2,tail=3,head≠tail,进入第8轮循环:head=2,head%4=2≠0,执行tail=(3+1)%5=4,que[4]赋值为que[2]即dog;head更新为3,打印que[3]即cat。
此时head=3,tail=4,head≠tail,进入第9轮循环:head=3,head%4=3≠0,执行tail=(4+1)%5=0,que[0]赋值为que[3]即cat;head更新为4,打印que[4]即dog。
此时head=4,tail=0,head≠tail,进入第10轮循环:head=4,head%4=0,打印que[4]即dog;head更新为0,打印que[0]即cat。
此时head=0,tail=0,循环终止,最后一行输出内容为cat。故答案为:B
12. 对于如图a所示的链表link,设计排序算法:以头指针head指向的元素为基准数,将小于基准的节点移动到它的左侧,且保持节点相对顺序不变;大于基准的节点保持不动。排序结果如图b所示。实现该功能的程序段如下,方框中应填入的正确代码是( )
pivot = link[head][0]
p,r=head,-1
while link[p][1] != -1:
q = link[p][1]
if link[q][0] < pivot:
link[p][1] = link[q][1]
r = q
else:
p = link[p][1]
A.
if r == -1:
link[q][1] = head
head = q
else:
link[q][1] = link[r][1]
link[r][1] = q
B.
if r == -1:
link[q][1] = head
else:
link[q][1] = link[r][1]
link[r][1] = q
C.
if r == -1:
link[q][1] = p
head = q
else:
link[r][1] = link[q][1]
link[q][1] = r
D.
if r == -1:
link[p][1] = q
head = q
else:
link[r][1] = link[p][1]
link[q][1] = r
A. A B. B C. C D. D
【答案】A
【解析】
【详解】本题考查链表的节点移动与分区操作,具体为基于基准节点的链表重排算法实现。初始pivot是头节点的数值45,p初始指向头节点,r初始为-1,用来记录最后一个被移动到基准左侧的小值节点的位置。当发现q指向的节点数值小于基准时,先执行link[p][1] = link[q][1],把q节点从原位置摘除,接下来需要把q插入到基准节点的左侧。分两种情况处理插入逻辑: 当r == -1时:这是第一个找到的小值节点,此时要把q设为新的头节点,让q的后继指向原来的头节点head,也就是link[q][1] = head,再更新head = q。当r != -1时:说明之前已经有小值节点被移到基准左侧了,要保持小值节点的相对顺序,需要把q插入到r(上一个小值节点)的后面、原基准节点的前面:先让q的后继等于r的后继,再让r的后继指向q。故答案为:A
二、非选择题(本大题共3小题,其中第13小题10分,第14小题7分,第15小题9分,共26分)
13. 新学期到来,某高校信息技术中心为食堂设计了一套智慧餐饮管理系统,可以实现线上订餐、线下刷卡取餐、订单统计分析等功能。用户可以通过浏览器或手机App进行订餐、查询、充值等操作。在线上订餐后,学生只要用饭卡进行身份认证,即可取走对应餐盒,系统会自动从该学生的账户中扣除相应金额。系统结构示意图如图a所示。请回答下列问题:
(1)该系统的刷卡取餐功能应用了多种技术,下列说法正确的是 (单选,填字母)
A. RFID技术属于传感技术,和通信技术无关
B. 饭卡是一种有源电子标签
C. 刷卡机可以接收来自服务器的数据
D. 刷卡机能够直接访问数据库读取饭卡余额信息
(2)下列系统功能,在服务器端程序中实现的是 (多选,填字母)
A. 根据浏览器的访问请求返回数据 B. 在数据库中查询当日的订餐信息
C. 直接读取学生饭卡中的身份信息 D. 学生取餐后,修改该学生的卡内余额
(3)该系统服务器端程序采用Flask Web框架编写,部分代码如下。若某学生饭卡卡号为250601,选择的套餐编号为5,则提交订餐数据到Web服务器的URL为http://____。
from flask import Flask,request
#导入Flask框架模块及其他相关模块,代码略
app= Flask (_name_)
@ app.route("/")
def index():
#主页,代码略
@ app.route("/ toserv", methods=["GET", "POST"])
def tj():
cardNo= int(request. args. get(" id")) #获取饭卡卡号
info= int(request. args. get(" tc")) #获取套餐编号
#提交订餐数据,并存储到数据库,代码略
#服务器其他功能,代码略
if _name_=="_main_":
app. run(host="192.168.1.101", port=5000)
(4)为了保护该信息系统的安全,防止重要的数据丢失。请从软件角度写1条可以提升该系统安全性的有效措施。
(5)文件“data. xlsx”中存储了某一天的系统取餐数据,部分数据如图所示(取餐时间格式为“时:分”)。编写程序,根据输入的餐次名称,分析对应时间点的取餐人数变化情况。
import pandas as pd
import matplotlib. pyplot as plt
#设置图表显示中文字体,代码略
df= pd. read_ excel(" data. xlsx")
meal= input("请输入餐次:“)
df=(a)
g=(b)
g. rename (columns={"卡号" :"取餐人数"}, inplace= True)#更改列标题名称
plt. plot (g["取餐时间"], g["取餐人数“])
plt. title(meal+"各取餐时间的取餐人数“)
#设置绘图参数,输出折线图如图c所示,代码略
①在划线处(a)(b)代码为:____(多选,按顺序填字母)。
A.df["餐次"]== meal
B.df[df["餐次"]== meal]
C.df. groupby("餐次", as_ index= False).卡号. count()
D.df. groupby("取餐时间", as index= False).卡号. count()
②数据分析结果显示,折线图存在多处波峰。现需统计取餐人数排名前三的取餐时间点,并按照取餐人数由高到低输出,下列选项中能实现该功能的有____(多选,填字母)。
A. g=g. sort_ values("取餐人数"). tail(3)[::-1]
B. g=g. sort_ values("取餐人数", ascending= True)[-3:]
C. g=g. sort_ values("取餐人数", ascending= False)[:3]
D. g=g. sort_ values("取餐人数", ascending= False). head(3)
【答案】(1)C (2)ABD
(3)http://192.168.1.101:5000/toserv?id=250601&tc=5
(4)示例:软件——定期数据加密,备份数据、安装防火墙、及时更新补丁;硬件——磁盘阵列(RAID)、UPS不间断电源、多机热备(各写一条即可)
(5) ①. BD ②. ACD
【解析】
【小问1详解】
本题考查物联网应用、C/S架构系统的工作逻辑。A选项,RFID技术通过无线通信完成标签与读写器的数据交互,和通信技术密切相关;B选项,日常使用的饭卡无需内置电池供电,属于无源电子标签;C选项,刷卡机通过Wi-Fi和服务器通信,可以接收来自服务器的数据;D选项,刷卡机不能直接访问数据库,所有数据交互都需要经过服务器中转。故答案为:C
【小问2详解】
本题考查Web信息系统的服务器端功能逻辑。A选项,根据浏览器请求返回数据是Web服务器的基础功能,在服务器端实现;B选项,在数据库中查询订餐信息需要服务器程序发起数据库操作,在服务器端实现;C选项,直接读取饭卡身份信息是刷卡机的硬件功能,属于客户端侧操作,不在服务器端实现;D选项,取餐后修改用户余额属于数据库的写操作,由服务器端程序完成。故答案为:ABD
【小问3详解】
本题考查Flask框架的GET请求URL构造。根据代码,Flask服务的主机地址为192.168.1.101,端口为5000,路由路径为/toserv,GET请求的参数id对应饭卡卡号250601,参数tc对应套餐编号5,按照GET请求的URL格式拼接即可。故答案为:192.168.1.101:5000/toserv?id=250601&tc=5
【小问4详解】
本题考查信息系统安全防护的软件层面措施。题目要求从软件角度给出防止数据丢失、提升系统安全性的有效措施,可围绕数据备份、访问控制、安全防护类软件操作等方向作答,合理即可。故答案为:定期对系统核心业务数据进行异地加密备份,防止数据丢失;或部署防火墙、入侵检测系统,及时修复系统漏洞,限制非法访问等(合理即可)
【小问5详解】
本题考查pandas数据处理的分组统计、排序操作。① 空(a)的作用是筛选出用户输入的指定餐次的所有数据,对应代码为df[df["餐次"]== meal],即选项B;空(b)的作用是按照取餐时间分组,统计每个时间点的取餐人数(通过对卡号计数实现),对应代码为df.groupby("取餐时间", as_index=False).卡号.count(),即选项D,因此选BD。② A选项,默认sort_values升序排序后取末尾3个最大的值,再通过[::-1]反转顺序,可得到从高到低的前三数据;B选项,ascending=True升序排序后取最后3个,得到的是从小到大排列的3个最大值,不符合从高到低的要求;C选项,ascending=False直接降序排序,取前3个即可得到人数从高到低的前三数据;D选项,降序排序后head(3)直接取前3行,同样符合要求,因此选ACD。故答案为:①BD ②ACD
14. 图书馆智能座位管理系统持续记录学生每日的选座位置(包括:“窗边”、“走廊边”、“中间”)。系统分析学生连续n(n>2)天的选座偏好。当n 天内某位置出现次数不少于n-1次,且与当前偏好不同时,系统自动更新偏好为该位置;若没有位置满足次数条件,则保持原偏好。
(1)设n=4,某学生当前偏好为“中间”,接下来连续7天的选座记录为:“窗边、窗边、窗边、走廊边、窗边、中间、窗边”。系统从第1天开始,依次以每连续4天为单位进行分析,系统最终偏好将更新为____。
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
n=4; current="中间"
choices=["窗边","窗边","窗边","走廊边","窗边","中间","窗边"]
for start in range(len(choices) - n +1):
w= ①____
for loc in["窗边","走廊边","中间"]:
cnt =0
for i in range(n):
if w[i]== loc:
cnt +=1
if ②____:
if loc l= current:
③____
break
print ("最终偏好:", current)
【答案】(1)窗边 (2) ①. choices[start:start+n] ②. cnt>=n-1 ③. current=loc
【解析】
【详解】本题考查Python列表切片、循环计数与条件判断的综合应用,以及座位偏好更新规则的逻辑推导。
(1)n=4,初始偏好为“中间”,7天选座记录共可划分出4组连续4天的分析窗口:1. 第1-4天:选座为窗边、窗边、窗边、走廊边,窗边出现3次,满足≥4-1=3次,且和当前偏好“中间”不同,偏好更新为窗边;2. 第2-5天:选座为窗边、窗边、走廊边、窗边,窗边出现3次,虽满足次数条件,但和当前偏好“窗边”一致,不更新;3. 第3-6天:选座为窗边、走廊边、窗边、中间,窗边出现2次,无位置满足≥3次的条件,偏好保持窗边;4. 第4-7天:选座为走廊边、窗边、中间、窗边,窗边出现2次,无位置满足≥3次的条件,偏好保持窗边,最终偏好为窗边。
(2)① 处需要取出当前start位置开始的连续n天的选座子序列,使用列表切片choices[start:start+n]即可获取该窗口的选座数据;② 处对应规则中“某位置出现次数不少于n-1次”的判断条件,即cnt >= n-1;③ 处当满足次数条件且该位置和当前偏好不同时,需要将当前偏好更新为该位置,即执行current = loc。
15. 某景区有两种景交车:A型30座、B型60座。游客以旅游团形式到达,每团人数不超过30人,且团队不能拆分。预约信息已按到达时间升序排列,每个预约包含三个数据项:[编号,人数,到达时间]。编写程序模拟调度过程,并输出派送表。调度规则如下:
编号
人数
时间
0
20
8:00
1
15
8:00
2
30
8:05
3
20
8:05
4
5
8:08
5
13
8:08
6
25
8:08
7
18
8:12
8
8
8:12
■A型车,每隔10分钟发一班车(8:00-8:10一班,8:10-8:20一班以此类推)。游客按到达顺序依次尝试上车,若团队人数超过车辆剩余座位则跳过,继续考虑后续团队。
■B型车:若等待的游客总人数≥60人,立即派出B型车增援。
■每辆车的发车时间统一记录为该车最后上车团队的到达时间。
(1)根据图所示的预约信息,第一次派出B型车增援的发车时间为____。(格式为“小时:分钟”)
(2)在调度过程中,需要判断是否派出B型车并选择合适的团队。定义函数check(1st),1st存储等待团队信息,每个元素为[编号,人数,到达时间(分钟),指针]。函数在1st中查找是否存在连续团队的人数之和≥60,若存在,返回小于等于60最大值的连续团队编号列表和最后结束时间:若有多个差值相同,则返回起始下标最小的团队编号列表和最后结束时间。部分代码如下:
def check(lst):
head =0
s=0;
exists=False
ids = []
best = -1
best_ head = -1
best_ end = -1
for tail in range(len(lst)):
s += lst[tail][1]
while s > 60:
____
head +=1
if head <= tail:
if s > best or (s = best and head < best head):
best = s; best head = head; best end = tail
if not exists:
return [],0
for k in range(best head, best end +1):
ids. append(lst[k][0])
return ids, lst[best end][2]
调用该函数,请完成①和②两个小题。
①补全划线处代码。
②若1st的长度为100,团队最多人数为30人,则加框处语句最多执行____次(填数字)。
(3)模拟调度过程并输出派送表。派送表每个元素为[车型,发车时间(分钟),团队编号列表]。主函数simulate接收预约信息info,返回派送表res。请完成划线处代码。
def remove_ teams (vis, head, tail, ids):
#从等待链表中删除ids中的节点,返回新的(head, tail)代码略
def simulate(info):
vis = []; res = []
head = tail = -1
n = len(info); i =0
cur =0
while ①____:
while i < n and info[i][2] <= cur:
vis. append([info[i][0], info[i][l], info[i][2], -1])
if head == -1:
head = tail = len(vis) -1
else:
②____
tail = len(vis) -1
i+=1
if head == -1:
if i < n:
③____
continue
1st = []
p = head
while p != -1:
1st. append (vis[p])
p = vis[p][3]
ids, last time - check(1st)
if len(ids) != 0:
res. append(['B', last time, ids])
head, tail = remove_ teams(vis, head, tail, ids)
else:
#A型景交车发车处理,代码略
#更新cur至下一个时间点,代码略
return res
#将游客数据转换为[[0,20,480]……]并存入info中(其内元素为[编号,人数,分钟])
schedule = simulate(info)
#输出派送表代码略
【答案】(1)8:05
(2) ①. s -= lst[head][1] ②. 98
(3) ①. i<n or head!=-1 ②. vis[tail][3]=len(vis)-1 ③. cur=info[i][2]
【解析】
【详解】本题考查贪心算法、滑动窗口算法、链表操作与调度逻辑的综合应用。
(1)第一次B型车发车时间推导:8:00A型车发出后仅能载走0号20人团队,剩余等待人数为15(1号)未达60人阈值;8:05新增2个团队后等待总人数为15+30+20=65≥60,触发B型车增援,该车最后上车团队的到达时间为8:05。
(2)①滑动窗口的while循环中,s>60时需要先减去窗口左边界head对应的团队人数,再右移head,因此划线代码为s -= lst[head][1];②加框语句执行次数推导:lst长度为100,单团队最多30人,要让s>60的情况最多,每次窗口内仅能容纳2个团队(30+30>60),每2个团队对应1次s>60的情况,100个团队最多触发98次s>60的判断,因此加框语句最多执行98次。
(3)①循环需要覆盖所有预约处理完且所有等待团队都派送完成的场景,循环条件为i < n or head != -1;②链表尾部插入新节点时,需要将原尾节点的指针指向新节点下标,即vis[tail][3] = len(vis)-1;③当前无等待团队但还有未到达的预约时,直接将cur跳转到下一个预约的到达时间,即cur = info[i][2]。
第1页/共1页
学科网(北京)股份有限公司
$