文档内容
2024年6月浙江省普通高校招生选考高考信息技术
一、选择题
1.某校基于线下校史馆创建在线数字校史馆,将学校发展历史及校友的代表性成果、活动影像等资料,以文本、
图像、视频等格式存储。校友可以用手机、电脑等终端登录数字校史馆查阅资料,也可以向在线问答机器人咨询
学校相关信息。关于该数字校史馆中数据的叙述,正确的是( )
A.数字校史馆中的数据有助于学校传承与发展,体现了数据的价值性
B.不同格式的数据必须保存在不同的存储设备中
C.学校的发展历史只能以同一种数据表现形式呈现
D.文本、图像、视频都是结构化数据
【答案】A
【详解】数据是对客观事物的符号表示,数据可以是文字、数字、符号、表格、图像、语音、视频等,它直接来源
于事实的记录,可以通过原始的观察或者度量获得。
A数据是有价值的,通过加工数据可以挖掘出数据中隐含的价值,A正确。
B同一存储器(如:硬盘、U盘)可以存储不同格式的数据,B错误。
C数据的表现形式是多样的,可以是文字、图形、图像、音频、视频等,C错误。
D结构化数据是一种以特定格式组织和存储的数据,这种格式可以很容易地被计算机程序理解和处理,并且可以
使用表格、电子表格或数据库来表示;非结构化数据是一种不具有特定格式或结构的数据,它的特点通常是缺乏
组织,可以包括文本、图像、音频和视频文件、社交媒体帖子、电子邮件和其他数据源;文本、图像、视频属于
非结构化数据,D错误。
故选A。
2.某校基于线下校史馆创建在线数字校史馆,将学校发展历史及校友的代表性成果、活动影像等资料,以文本、
图像、视频等格式存储。校友可以用手机、电脑等终端登录数字校史馆查阅资料,也可以向在线问答机器人咨询
学校相关信息。下列有关信息安全与保护的做法,合理的是( )
A.定期备份数字校史馆数据 B.未经校友同意发布其资料
C.随意剪辑校友的活动影像 D.以明文方式保存校友的注册信息
【答案】A
【详解】未经校友同意发布其资料、随意剪辑校友的活动影像侵犯了校友的隐私权;以明文方式保存校友的注册
信息,容易造成信息泄露。
故选A。
3.某校基于线下校史馆创建在线数字校史馆,将学校发展历史及校友的代表性成果、活动影像等资料,以文本、
图像、视频等格式存储。校友可以用手机、电脑等终端登录数字校史馆查阅资料,也可以向在线问答机器人咨询
学校相关信息。为使问答机器人更准确地回答校史相关问题,下列方法可行的是( )
A.增加校友的最新作品 B.提高咨询所用终端的性能
C.完善语料库中的校史资料 D.提升数字校史馆的访问速度
【答案】C
【详解】人工智能语料库知识,语料库指的是用于训练人工智能的文本库或数据集合,这个语料库是人工智能审
查的材料,以使其在设计时变得智能。
A校友最新作品内容广泛,和校史关系不紧密,不能有效提高机器人回答问题的准确性,A错误。
B提高终端性能主要影响用户与机器人的交互体验,如响应速度等,但并不影响机器人回答问题的准确性,B错误。
C问答机器人的回答准确性高度依赖于其所依赖的数据或语料库,完善语料库中的校史资料有助于建立更加完善
的数据模型,提高问答准确性,C正确。
D提升访问速度有助于提升用户体验感,但并不影响问答机器人回答问题的准确性,D错误。
故选C。
4.某校基于线下校史馆创建在线数字校史馆,将学校发展历史及校友的代表性成果、活动影像等资料,以文本、
图像、视频等格式存储。校友可以用手机、电脑等终端登录数字校史馆查阅资料,也可以向在线问答机器人咨询
学校相关信息。下列对校史馆资料的处理方式,不合理的是( )A.为了方便预览,为高清图像生成缩略图
B.为了节省存储空间,将JPEG格式的图像转换成BMP格式
C.为了方便传输,对高清视频进行压缩
D.为了便于检索,将纸质文稿扫描成图像后识别出文字一并保存
【答案】B
【详解】A.缩略图用于在 Web 浏览器中更加迅速地装入图形或图片较多的网页,因其小巧,加载速度非常快,故
用于快速浏览,A正确;
B.图像格式BMP是未压缩格式,JPEG是有损压缩后的格式,将BMP转换为JPEG,可以使文件变小,节省存储
空间,B错误;
C.高清视频文件通常很大,通过压缩可以显著减小文件大小,方便传输,C正确;
D.通过扫描将纸质文稿转为图像文件,再通过字符识别从图像中识别出文字,通过文字能更方便实现检索,D正
确。
故选B。
5.某小区智能回收箱可通过刷卡、扫码等方式开启箱门,箱内的传感器能识别可回收物的种类,当容量达到上限
时,系统通知清运人员及时处理。居民可通过手机APP查看本人投递记录。关于该系统功能与软件设计的描述,
正确的是( )
A.系统数据处理都可由传感器完成 B.在设计系统时需考虑数字鸿沟问题
C.系统中的软件不包括手机APP D.系统的软件升级是指增加新功能
【答案】B
【详解】A传感器属于信息输入设备,负责信息系统从外部世界采集信息,而系统数据处理要通过智能终端或服
务器来完成,A错误。
B“数字鸿沟”是指不同人群、行业、区域等在信息基础设施的接入、数字技术的开发与应用、数字资源的获取使
用等方面的不平等现象,信息技术的发展会加剧数字鸿沟,在设计系统时,需要尽可能考虑数字鸿沟问题,以满
足更多群体的使用,B正确。
C手机APP是安装在智能手机上的软件,旨在完善原始系统的不足与个性化,为用户提供更丰富的使用体验,手
机APP属于信息系统的软件,C错误。
D软件升级是指对软件进行较大规模的改进和更新,可能涉及重要的功能改动、界面优化或架构升级等,不一定
增加新功能,D错误。
故选B。
6.某小区智能回收箱可通过刷卡、扫码等方式开启箱门,箱内的传感器能识别可回收物的种类,当容量达到上限
时,系统通知清运人员及时处理。居民可通过手机APP查看本人投递记录。下列技术中,不能用于智能回收箱接
入互联网的是( )
A.5G B.Wi-Fi C.光纤通信 D.RFID
【答案】D
【详解】A.5G是新一代移动通信技术,可以将智能回收箱接入互联网。
B.Wi-Fi是一种无线网络技术,它是一种短距离、高速的无线网络技术,它的作用是使用无线电波的方式来提供网
络连接,以及在不同的设备之间进行数据传输,Wi-Fi可以将将智能回收箱连接到互联网。
C.光纤通信是一种利用光纤作为传输媒介的高速数据传输技术,具有高带宽、长距离传输和抗干扰能力强等优点,
为计算机网络、移动通信网络和广播电视网络提供了非常大的带宽和高质量的传输通道,可以将智能回收箱接入
互联网;
D.RFID技术作为一种非接触识别的技术,无需与被识别物体直接接触,即可完成物体信息的输入和处理,能快速、
实时、准确地采集和处理物体的信息,RFID技术无互联网连接功能,不能将智能回收箱接入互联网。
故选D。
7.某同学根据下图所示流程图编写的Python程序段如下:n = int(input())
if n <= 20:
z = 0
if n <= 50:
z = 1
else:
z = 2
用下列输入数据测试程序段与流程图,两者得到的z值不同的是( )
A.60 B.50 C.30 D.10
【答案】D
【详解】分析流程图及程序段,推知:程序段:程序段中有两个if语句:第一个if语句是判断n是否小于等于
20,若成立z = 0;第二个if语句是判断n是否小于等于50,若成立,执行z=1,否则执行z=2;(2)流程图:流
程图表示的是if语句的嵌套,当n大于20时,去判断嵌套if语句的情况。两者描述的算法不相同。
ABC,输入的n的值均大于20,第一个if语句均不会执行,执行第二个if语句,A项:n=60,z=2;B项:n=50,
z=1;C项:n=30,z=1;这三个选项程序段与流程图得到的z值相同。D选项,程序段:先执行n <= 20成立,
z=0,再执行n <= 50成立,z = 1,z最终值为1,而在流程图中得到的z值为0。
故选D。
8.某完全二叉树包含5个节点,其根节点在后序遍历序列、中序遍历序列中的位置序号分别记为x,y,则x-y的
值为( )
A.0 B.1 C.2 D.3
【答案】B
【详解】分析题目内容,推知:该二叉树为完全二叉树且包含5个节点,其结构如图所示: ,由后
序遍历规则知,其访问过程为:3-4-1-2-0,则其根节点的位置x处于第5个,即x=5;由中序遍历的规则知,其访
问过程为:3-1-4-0-2,则其根节点的位置y处于第4个,即y=4;由此得出:x-y=1。
故选B。
9.栈初始为空,经过一系列入栈、出栈操作后,栈又为空。若元素入栈的顺序为“生”“旦”“净”“末”
“丑”,则所有可能的出栈序列中,以“旦”结尾的序列个数为( )
A.3 B.4 C.5 D.6
【答案】C
【详解】栈的特点是先进后出。入栈的顺序为“生”“旦”“净”“末”“丑”,且要求以“旦”结尾。分析题
目内容,推知:要以“旦”结尾,“生”一定是第一个出栈,剩余3个元素的排列有6种方案:净、末、丑;末、
丑、净;丑、末、净;末、净、丑;净、丑、末;丑、净、末。但丑、净、末不可能是出栈序列(丑出栈,说明
净和末都在栈内,且末在净上面,出栈时,末先于净出栈),则所有可能的出栈序列为:(1)生、净、末、丑、
旦;(2)生、末、丑、净、旦;(3)生、丑、末、净、旦;(4)生、末、净、丑、旦;(5)生、净、丑、末、
旦。即以“旦”结尾的序列个数为5。
故选C。
10.某二分查找算法的Python程序段如下:i,j = 0,len(d)-1
while i <= j:
m = (i+j)//2 # 语句①
if key == d[m]:
break
elif key < d[m]:
j = m-1
else:
i = m+1
当d为[6,12,15,18,22,25,28,35,46]时,运行该程序段查找key,语句①的执行次数小于等于2;若将d修改为
[6,12,15,18,22,25,28,35,46,58],重新运行该程序段,查找同一key值,则语句①的执行次数不可能为( )
A.1 B.2 C.3 D.4
【答案】C
【详解】分析程序段,推知:数组d为[6,12,15,18,22,25,28,35,46]时,i=0,j=8,m=4,执行程序段,查找过程用二
叉树表示如下:
语句①的执行次数小于等于2,该次数与key值在二叉树中的深度值一致,因此查找的数key可能是:22(1次查
找)、12(2次查找)和28(2次查找)。若将d修改为[6,12,15,18,22,25,28,35,46,58],此时,i=0,j=9,m=4,查
找过程用二叉树表示如下:
第一次查找的仍然是22,若往左查找,第二次是12。但若第二次往右查找,则找到的是35,而不是原先的28,然
后继续第三次查找,找到25,接着进行第四次查找,找到28,此时查找过程结束。所以查找同一key值,则语句
①的执行次数不可能为3,
故选C。
11.有如下Python程序段:
for i in range(0,len(a)-1,2):
if i > 0 and a[i] < a[i-1]:
a[i],a[i-1] = a[i-1],a[i]
if a[i] < a[i+1]:
a[i],a[i+1] = a[i+1],a[i]
列表a有6个元素,运行该程序段后,a可能的值是( )
A.[2,9,8,6,9,3] B.[9,9,8,6,3,2] C.[9,3,6,2,8,9] D.[6,3,9,2,9,8]
【答案】D
【详解】分析程序段,推知:列表a有6个元素,由“for i in range(0,len(a)-1,2)”知,列表a的索引i为0、2、4,
且当i的值为2、4时,若a[i] < a[i-1],则交换两个元素,若a[i] < a[i+1],则交换两个元素,即:a[2]的值不能小
于前面的a[1]和后面的a[3];a[4]的值不能小于前面的a[3]和后面的a[5]。AB错误,8比前面相邻的9小,选项结
果不可能。C项,8比后面相邻的9小,选项结果不可能。D正确,
故选D。
12.使用列表d模拟链表结构(节点数n>0),如图a所示,每个节点包含数据区域和指针区域,h为头指针。现
要按链表顺序将这n个节点中的数据依次存放到d[0][0]、d[1][0]…d[n-1][0]中,最终保持节点链接关系不变,结果
如图b所示。实现上述功能的Python程序段如下,方框中应填入的正确代码为( )图a 图b
p,i = h,0
while p! =-1:
tp = d[p][1]
if p == i:
i+= 1
elif p>i:
d[i][0],d[p][0] = d[p][0],d[i][0]
i+= 1
p = tp
# 调整头指针h及指针区域,保持节点链接关系不变,代码略
d[i][1] = d[p][1] d[p][1] = d[i][1] d[i][1] = p d[p][1] = i
d[p][1] = i d[i][1] = p d[p][1] = d[i][1] d[i][1] = d[p][1]
A. B. C. D.
A.A B.B C.C D.D
【答案】B
【详解】分析程序段,推知:当前节点为p节点,p从头结点开始进行遍历。而变量i是从0开始递增的,当p和i
相等时,表明链表是按链表顺序依次存放到d[0][0]、d[1][0]…d[n-1][0]的,符合题意,此时只需依次进行简单的迭
代即可。若p和i不相等时,即数据的存放不符合题意,由于i是从0开始的,因此若p和i不等,则肯定是p>i,
此时由代码可知将节点i和节点p的数据域进行交换,由于在链表中p的位置比节点i更加靠前,即p→i。而数据
交换后两者的关系刚好逆转了,即i→p,因此可以先删除节点i,然后将节点i插入到p节点的前面,这样即可实
现题意,故先执行代码 d[p][1]=d[i][1],删除节点i,然后再将节点i指向节点p,故代码为d[i][1]=p。……,以此
类推直到循环结束。至此链表已实现按照顺序将这n个节点中的数据依次存放到d[0][0]、d[1][0]…d[n-1][0]中的目
的,但循环结束后,还需要修改头指针h的值,以及重新调整每个节点的指针域数据(即代码略部分)。
故选B。
二、操作题
13.某监控设备可定时采集红绿信号灯状态数据,数据格式记为[a,b],其中a、b分别为红灯和绿灯的状态值,0
表示灯灭,1表示灯亮,如[0,1]表示红灯灭、绿灯亮。
现要编写程序,每隔1秒采集并检测信号灯是否存在如下异常状态:第一类,红绿灯同亮或同灭;第二类,红灯
或绿灯超时,即保持同一状态时长大于上限值(如300秒)。检测到异常状态就发送相应信息。请回答下列问题:
(1)若检测到“红绿灯同亮”异常,则采集到的数据是 (单选,填字母)。
A.[0,0] B.[0,1] C.[1,0] D.[1,1]
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
tlimit = 300 # 设置信号灯保持同一状态时长上限值
pre = [-1,-1]
t = [0,0] # t[0]、t[1]分别记录红灯、绿灯保持同一状态的时长
while True:# 接收一次采集到的状态数据,存入d,代码略
if① :
if d[0] == 1:
# 发送“红绿灯同亮”信息,代码略
else:
# 发送“红绿灯同灭”信息,代码略
for i in② :
if d[i] == pre[i]:
t[i]+= 1
if③ :
if i == 0:
# 发送“红灯超时”信息,代码略
else:
# 发送“绿灯超时”信息,代码略
else:
t[i] = 1
pre = d
# 延时1秒,代码略
【答案】 D d[0] == d[1] range(2) 或range(len(pre)) 或range(len(d)) t[i]>tlimit
【详解】(1)根据题干数据说明可知,1表示灯亮,若检测到“红绿灯同亮”异常,则采集到的数据是:
[1,1]。
故选D。
(2)①处,由嵌套的分支可知,该分支处理的是:红绿灯同亮或同灭(即红绿灯状态相同),答案为:d[0] ==
d[1] ;②处,从for循环中语句的调用来看,i是数组d和pre的下标索引,i取0到1,答案为:range(2)或
range(len(d))或range(len(pre));③处,若d[i]==pre[i],表示i所对应的红绿灯相邻两个时刻的状态相同,则相应的
红绿灯时长t[i]计数;若时长超过上限值,则表示异常状态;若此时i==0表示红灯异常;否则表示绿灯异常,
答案为:t[i]>tlimit。
14.某研究小组拟采集某水域水位及周边土壤含水量等数据,进行地质灾害监测。该小组在实验室搭建了一个模
拟系统,该系统的智能终端获取传感器数据,并通过无线通信方式将数据传输到Web服务器,服务器根据数据判
断出异常情况后,通过智能终端控制执行器发出预警信号。请回答下列问题。
(1)该模拟系统中的传感器和执行器 (单选,填字母:A.必须连接在不同智能终端 / B.可以连接在同一
智能终端)。
(2)水位传感器和土壤水分传感器连接在同一智能终端,服务器能正常获取土壤含水量数据,但不能正常获取水
位数据,以下故障与该现象无关的是 (单选,填字母)。
A.水位传感器故障 B.水位传感器与智能终端连接故障 C.智能终端无法与服务器通信
(3)下列关于该系统设计的说法,正确的有 (多选,填字母)。
A.水位、土壤含水量等数据的采集时间间隔不能相同
B.水位、土壤含水量等数据可用数据库存储
C.可以基于Flask Web 框架编写服务器程序
D.系统获取数据的程序可以只部署在服务器端
(4)现场实地测试时需要设置多个监测点,每个监测点配备一个智能终端。为使服务器能区分出数据的监测点来
源,从智能终端的角度写出一种可行的解决方法。
(5)研究小组整理出近几年的水位(日平均)数据,部分数据如图a所示(图中水位单位为“米”)。现要统计
2023年水位最高的前100天在各月的分布情况,并绘制如图b所示的柱形图。图a 图b
实现上述功能的部分Python程序如下:
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("data.xlsx")
df=df[df["年"] == 2023] # 筛选出2023年的数据
plt.bar(df1["月"],df1["水位"]) # 绘制柱形图
#设置绘图参数,显示如图图b所示的柱形图,代码略
方框中应填入的语句依次为 (选3项,填数字序列)。
①df1 = df1.groupby("月",as_index = False).count() # 分组计数
②df1 = df.sort_values("水位",ascending = False) # 降序排序
③df1 = df1.sort_values("水位",ascending = False) # 降序排序
④df1 = df1.head(100) # 获取前100条数据
(6)观察图b可知,2023年水位最高的前100天分布在7月的天数最多。现要筛选出2023年7月的水位数据以便
进一步分析,可在第(5)小题处理结果的基础上,再运行如下语句,请在划线处填入合适的代码。
df2 = df[ ]
【答案】 B C BC 对每个智能终端进行信息编码,在上传数据过程中,将该编码作为参数传送
到服务器(或其它正确答案) ②④① df["月"]==7
【详解】(1)传感器是能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形
式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求的检测装置。执行器是指一种能够将
电子信号或控制命令转化为机械运动或物理效应的设备。智能终端通过传感器获取水域水位及周边土壤含水量等
数据,然后将这些数据传输到服务器;服务器下达指令给智能终端,去控制执行器发出预警信号;一个智能终端
可以通过不同的引脚连接不同的传感器和执行器。
故选B。
(3)服务器能正常获取土壤含水量数据,说明从智能终端到服务器的传输没有问题,但服务器不能正常获取水位
数据,说明水位传感器出现了故障或者是水位传感器和智能终端之间的连接出现了故障。
故选C。
(4)A.获取数据的时间间隔可以通过代码分别设定,可以相同,也可以不相同,A错误。
B.信息系统中的数据存放在数据库中,B正确。
C.Flask是一个轻量级的Python Web框架,它可以让你快速地构建Web应用程序,C正确。
D.系统获取数据的程序一般部署在客户端或者智能终端,数据采集完成后,由智能终端将数据传输至服务器端,D
错误。
故选BC。
(4)为使服务器能区分出数据的监测点来源,可以给每个智能终端进行信息编码。赋予不同的标识,并将该编码
通过路由传送到服务器,以区分数据来源。故本题答案是:对每个智能终端进行信息编码,在上传数据过程中,
将该编码作为参数传送到服务器。
(5)若要统计2023年水位最高的前100天在各月的分布情况,其操作步骤为:对2023年的水位数据按照水位值
进行降序排序-->选取前100条记录-->对前100条记录根据月份分组统计计数-->分析水位最高的前100天在各月的分布情况。
答案为:②④①。
(5)结合题干描述,上文“df=df[df["年"] == 2023]”已筛选出2023年的相关记录,此处需要在此基础上筛选出7
月份的数据,
答案为:df["月"]==7。
15.某数据序列data中的元素均为小于127的正整数。现在要对data进行加密,处理过程分“变换”和“重排”
两步。“变换”处理方法是用指定的n组序列 、 … 依次对data进行变换。利用Ri对data进行变换的过
程是:在data中查找所有与Ri相同的子序列,将找到的每个子序列中的元素值加上Ri的长度值Li,并在各子序列
前插入一个标记元素(值为127+Li),这些子序列及标记元素不再参与后续的变换。
如data为[3,5,1,6,3,8,7,5,1,8,7],指定的两组序列为[5,1]、[3,8,7],“变换”处理后的data为
[3,129,7,3,6,130,6,11,10,129,7,3,8,7]。对data“重排”处理通过给定的shuff函数实现。
请回答下列问题:
(1)若data为[3,5,1,6,3,8,7,5,1,8,7],指定的两组序列为[5,1]、[8,7],经过“变换”处理后,data中插入的标记元
素个数为 。
(2)“重排”处理的shuff函数如下:
def shuff(data, c): # 根据列表c对列表data进行重排
# 若列表data的长度不是列表c长度的整数倍,则用0补足,代码略
m = len(c)
s = [0] * m
k = 0
while k < len(data):
for i in range(m):
s[i] = data[k + i]
for i in range(m):
data[k + i] = s[c[i]]
k += m
若data为[3,129,7,3,130,6,11,10],c为[1,3,0,2],调用shuff(data, c)后,data的最后一个元素值为 。
(3)实现加密功能的部分Python程序如下,请在划线处填入合适的代码。
def compare(data, i, r):
# 函数功能:返回data从索引i位置、r从索引0位置开始的连续相等元素的个数
# 例如r为[7, 3, 6],data从索引i位置开始的元素依次为7, 6, 7, 3, …,函数返回1
j = 0
while j < len(r) and i + j < len(data):
if① :
break
else:
j += 1
return j
def trans(data, r, segs):
newsegs = []
for s in segs:
if s[0] == 0:
h = i = s[1]
m = len(r)
while i + m <= s[2] + 1:
if compare(data, i, r) == m:
if i > h:
newsegs.append([0, h, i-l]) # 为newsegs追加一个元素newsegs.append([m, i, i + m-1])
i += m
②
else:
i += 1
if h <= s[2]:
newsegs.append([0, h, s[2]])
else:
newsegs.append(s)
return newsegs
def update(data, segs):
for s in segs:
if s[0] != 0:
data.append(0)
p = len(data)-1
for i in range(len(segs)-1, -1,-1):
for j in range(segs[i][2], segs[i][1]-1,-1):
③
p-= 1
if segs[i][0] > 0:
data[p] = 127 + segs[i][0]
p-= 1
# 读取待加密数据存入data,读取指定的若干组用于变换的序列存入rs,代码略
'''
列表segs用于记录data的变换信息,segs[i]包含三个元素,segs[i][0]、segs[i][1]、segs[i][2]分别表示
data中一个子序列的状态、起始位置和结束位置,如果segs[i][0]为0,则表示该子序列未经过变换。
'''
segs = [[0,0,len(data)-1]]
for r in rs:
segs = trans(data,r,segs) # 根据r更新segs
update(data, segs) # 利用segs完成对data的变换操作
c = [1,3,0,2]
shuff(data, c)
# 输出加密后的data序列,代码略
【答案】 4 11 r[j]!=data[i+j] h=i data[p]=data[j]+segs[i][0]
【详解】(1)变换数组r = [[5, 1], [8, 7]],在序列data中,分别以索引号1、5、7、9为起始的包含两个元素的子
序列与r序列中的子序列相等,则有4个子串进行变换。题目要求在各子序列前插入一个标记元素,则共插入4个
标记元素。
答案为:4。
(2)由题目描述知,索引数组的长度可能小于原数组,当原数组索引超过索引数组的索引范围时,需要对原数组
进行分组,应以索引数组的长度m作为每一组的元素个数,若不足,则用0补齐。data长度为c的整数倍,则调用
shuff函数后,data的最后一个元素是分组后最后一组重排结果的最后一项, c[3] = 2,最后一组的元素值为[130,
6, 11, 10],所以索引2处的值为11。
答案为:11。
(3)compare函数返回data从索引i位置、r从索引0位置开始的连续相等元素的个数,trans函数处理序列变换,
update函数用于完成子串的变换和标记元素的插入。③compare函数中,j是r的索引,i是data的索引,该函数用
于检查data中是否存在从索引i开始的连续j项均与r相同,返回相同项的数量。若data[i + j] != r[j]成立,表明查
询结束,应结束循环,③答案为:r[j]!=data[i+j]。④trans函数的3个参数:data表示原始数据,r是当前变换数组,
segs记录了当前data的变换信息。对于其中一条变换信息s,s[0] == 0表明该信息所描述的子串没有经过标记,可以进行变换。若compare(data, i, r) == m成立,表明找到了需要进行变换的子串data[i: i + m],此时,若i > h成立,
则需要新增data[h: i]的未标记子序列和data[i: i + m]的标记子序列(标记值恰为m),与此同时,该子序列中
data[h: i + m]均为已处理状态,在i += m后更新h = i的作用是更新该子序列的头部标记,④答案为:h=i。
⑤update函数根据变换信息处理data数据中的具体更新,函数中需要实现元素插入的功能,因此需要逆序遍历
data,trans函数采用队列保证变换信息的有序性,逆序遍历变换信息的同时可以逆序遍历data,以免因数据的插入
而影响原始数据。索引p用于逆向遍历插入后data,索引j从变换信息的“结束索引”逆向遍历到“开始索引”,
由于变换信息中存储的是data的原始数据信息,因此data[p] = data[j] + segs[i][0]即为对data[j]的变换值的更新并移
动到最终的位置上,⑤答案为:data[p]=data[j]+segs[i][0]。