2023年11月杭州一模信息技术卷完美解析(PDF版)

资源下载
  1. 二一教育资源

2023年11月杭州一模信息技术卷完美解析(PDF版)

资源简介

绝密★考试结束前
2023学年第一学期杭州市高三年级教学质量检测
技术试题卷
第一部分 信息技术(共 50 分)
一、选择题(本大题共 12 小题,每小题 2 分,共 24 分。每小题列出的四个备选项中只有一个是符合
题目要求的,不选、多选、错选均不得分)
1.下列有关数据和信息的说法,正确的是
A.计算机中的数据以二进制的形式存储 B.人们观看在线影视时,点播的视频是信息
C.信息本身会因为被别人获取而发生损耗 D.大数据的数据总量越大,价值密度就越高
【答案】A
【解析一】
本题考查数据和信息的相关知识。
A.计算机中的数据以二进制的形式存储,是正确的;选项 B.人们观看在线影视时,点播的视频是数据,故
选项 B是不正确的;选项 C.信息本身不会因为被别人获取而发生损耗,故选项 C是不正确的;选项 D.大
数据的数据总量越大,价值密度就越低,故选项 D是不正确的。所以答案是 A。
【解析二】
本题考查数据、信息、大数据的相关知识。
视频是数据,是信息的载体,选项 B错误;信息是可以共享的,不会发生损耗,选项 C错误;大数据的价
值密度小,选项 D错误。
2.下列关于进制与信息编码的说法,不.正.确.的是
A.最大的两位十六进制数值是 FFH
B.将商品信息转换为条形码的过程属于编码
C.声音数字化过程中的量化位数越大,保真度越好
D.ASCII码用 7位二进制进行编码,十进制范围为 1~128
【答案】D
【解析一】
本题考查进制和编码的相关知识。
ASCII码用 7位二进制进行编码,十进制的范围是 0~127,选项 D的说法错误。
【解析二】
本题考查进制与信息编码的相关知识。
选项 ABC都是正确的;选项 D.ASCII码用 7位二进制进行编码,十进制范围为 0~127,故选项 D是不正
确的。所以答案是 D。
3.下列关于人工智能的说法,正确的是
A.人工智能以机器为载体,模仿、延伸和扩展人类智能
B.人工智能具有强大的存储、记忆和搜索功能,不会出错
C.符号主义需要手工构造知识库,属于数据驱动的智能方法
高三技术 试题卷 第 1 页(共 14 页)
D.语音识别系统需要大量数据进行模型训练和测试,故无法识别实时语音
【答案】A
【解析一】
本题考查人工智能的相关知识。
人工智能是有可能出错的,选项 B错误;符号主义不是数据驱动的智能方法,选项 C错误;语音识别系统
可以识别实时语音,选项 D错误。
【解析二】
本题考查人工智能的相关知识。
选项 A.人工智能以机器为载体,模仿、延伸和扩展人类智能,是正确的;选项 B.人工智能具有强大的存储、
记忆和搜索功能,也有可能出错,故选项 B是不正确的;选项 C.符号主义需要手工构造知识库,数据驱动
属于联结主义,故选项 C是不正确的;选项 D.语音识别系统需要大量数据进行模型训练和测试,也能识别
实时语音,故选项 D是不正确的。所以答案是 A。
阅读下列材料,回答第 4至 5题。
某校学生考勤信息系统通过移动无线考勤机(支持刷卡、刷脸等识别方式)进行考勤,家长可在手机 APP
上进行学生请假申请,班主任审批之后,在校学生出校门时在考勤机上进行请假信息确认,离校后班主任
和家长手机 APP上实时收到学生的离校信息。在该系统的网页管理后台可以按班、按月对请假等数据进行
查询和统计。
4.结合材料,下列有关该信息系统说法不.正.确.的是
A.学校老师、家长和学生都是该信息系统的用户
B.考勤机可移动使用,说明该信息系统不受外部环境的制约
C.通过管理后台可查看当天的请假情况,说明该信息系统具有数据查询功能
D.家长可随时在 APP上发起请假申请,体现了系统跨越时空限制、服务随时随处的优势
【答案】B
【解析一】
本题考查信息系统的相关知识。
信息系统对外部环境具有依赖性,选项 B的说法错误。
【解析二】
本题考查信息系统的相关知识。
选项 ACD都是正确的;选项 B.考勤机可移动使用,但是该信息系统可能受其他外部环境的制约,故选项 B
是不正确的;所以答案是 B。
5.为了加强隐私保护和信息安全防护,下列说法不.正.确.的是
A.晚上可以关闭防火墙,节约资源
B.采用磁盘阵列、异地容灾等手段可以提高数据安全
C.家长通过预留的手机号码登录 APP属于用户身份认证
D.学生人脸、家长手机号码等都属于个人敏感信息,应做好隐私保护
【答案】A
【解析一】
本题考查信息及信息系统安全的相关知识。
因为信息系统的服务器是一直在运行,所以如果晚上关闭防火墙就无法保证系统晚上的安全,选项 A错误。
高三技术 试题卷 第 2 页(共 14 页)
【解析二】
本题考查信息安全的相关知识。
选项 A.晚上也不可以关闭防火墙,故选项 A是不正确的;选项 BCD都是正确的。所以答案是 A。
6.下列关于网络技术的说法,正确的是
A.网络仅由传输介质和网络互连设备组成
B.按照网络的覆盖范围分类,因特网属于城域网
C.网络中可以资源共享的仅是网络中的硬件资源
D.网络中传输信息都需要遵守网络协议
【答案】D
【解析一】
本题考查网络的相关知识。
网络是由计算机系统、数据通信系统、网络软件和网络协议组成的,选项 A错误;因特网属于广域网,选
项 B错误;网络中可以共享的资源有硬件、软件和数据,选项 C错误。
【解析二】
本题考查网络技术的相关知识。
选项 A.网络不仅由传输介质和网络互连设备组成,故选项 A是不正确的;选项 B.按照网络的覆盖范围分
类,因特网属于广域网,故选项 B是不正确的;选项 C.网络中可以资源共享的是网络中的硬件资源,还有软
件资源、数据资源,故选项 C是不正确的;选项 D.网络中传输信息都需要遵守网络协议,是正确的;所以
答案是 D。
7.某算法的部分流程图如第 7题图所示,执行这部分流程,若输入 i的值为序列[2,3,4,5]中的随机数,则下
列说法正确的是
第 7题图
A.变量 c的最大值为 11 B.“a>0 ”至少执行 5次
C.程序结束时变量 a一定等于 0 D.只能使用 while语句实现循环结构
【答案】B
【解析一】
本题考查流程图阅读。
阅读流程图可知,变量 c用于记录循环次数,变量 a的初始值为 20,若要 c最大,则每次 a-i中的 i值要最
高三技术 试题卷 第 3 页(共 14 页)
小,让 i=2,最多循环 10次,故 c最大值为 10,A选项错误;当 i取最大值 5时,循环次数最少,为 4次,
判断框执行 5次,故 B选项正确;a的最终值取决于最后一次 i的值,可能为负数,故 C选项错误;循环结
构可以用 for语句实现,因为循环最多执行 10次,中途退出可用 break语句实现,故 D选项错误。
【解析二】
本题考查流程图的相关知识。
A,要使得 c最大,则 a一直减 2,一共减了 10次,因此 c是 10;C,最终 a小于等于 0;D,可以使用
for语句搭配 break实现
8.某二叉树的树形结构如第 8题图所示,后序遍历结果为“WUSVTR”,则该二叉树的前序遍历结果为
第 8题图
A.RSTUVW B.RTSVUW C.RTSUWV D.RSUWTV
【答案】D
【解析一】
本题考查二叉树的遍历方式。
根据二叉树的后序遍历,左子树-右子树-根节点的顺序,可将后序遍历结果填入第 8题图,得出如图所示二
叉树,其前序遍历结果为 RSUWTV。
【解析二】
本题考查二叉树。
结合后序遍历可画出树形结构 ,所以前序遍历时 RSUWTV
9.若有一批元素的出栈顺序为“i,n,p,u,t”,其入栈顺序不.可.能.是
A.n,i,t,u,p B.n,i,u,t,p C.t,u,p,n,i D.i,n,p,u,t
【答案】B
【解析一】
本题考查栈的基本操作。
根据栈的先进后出,后进先出的特点,B选项中 u,t,p三个元素依次入栈,若按照题干元素 p先出栈,那么
u和 t都在栈内并且 t在栈顶,接下来出栈的应该是 t,而不是 u,故 B选项错误。
【解析一】
本题考查栈。
B,n进,i进,i出,n出,u进,t进,p进,p出,这时应该 t出而不是 u出。
高三技术 试题卷 第 4 页(共 14 页)
10.列表 d有 n个整型元素,输出列表中最长连续递增序列的长度。小明编写的 Python程序段如下:
k=1;lmax=1;n=len(d)
for i in range(1,n):
if d[i]>d[i-1]:
k+=1
else:
if k>lmax:
lmax=k
k=1
print(lmax)
该程序段在某些情况下无法得到符合题意的结果,下列 4组数据中能测试出这一问题的是
A.[1,4,5,1,2] B.[1,2,3,4,1] C.[1,5,1,2,3] D.[5,4,3,2,1]
【答案】C
【解析一】
本题考查顺序查找中最后一次查找的特殊性。
程序中逐个遍历相邻元素,判断其递增或非递增,若相邻元素为递增,则长度变量 k值加 1,否则将 k值与
长度最大值 lmax进行比较,若 k>lmax,则更新 lmax值为 k,并将 k值回归初始值 1;若最长的递增序列一
直持续至最后一个元素,即最后一次循环也是 d[i]>d[i-1],则无法将 k 与 lmax 进行比较,无法将最大值 k
赋值给 lmax,就如 C选项中,最终 k=3,lmax=2,但是不会再进行 k与 lmax的比较了,得到的最大长度只
能是 2。
【解析二】
本题考查最长连续序列。
判断最长在 else语句中,即 d[i]<=d[i-1]时,但忽略了最后一组一直连续递增。因此 C选项,1,2,3无法判断。
11.有如下 Python自定义函数:
def fun(x,i):
if xreturn i
elif x%i==0:
return x
else:
return fun(x-i,i+1)
执行语句 k=fun(37,3)后,k的值为
A.5 B.6 C.30 D.34
【答案】C
【解析一】
本题考查递归算法。
根据 if语句的条件,计算 fun(37,3)=fun(34,4)=fun(30,5),此时满足 x%i==0的条件,返回 x值为 30。
【解析二】
本题考查递归。
fun(37,3) fun(34,4) fun(30,5) 30
高三技术 试题卷 第 5 页(共 14 页)
12.有如下 Python程序段,其功能是删除无序链表(元素个数大于等于 2)中的重复元素。
def dele(a,head):
pre=head;p=a[head][1]
while p!=-1:
q=head
flag=False
while :
if a[q][0]==a[p][0]:
[1]
p=a[p][1]
flag=True
break
q=a[q][1]
if not flag:
pre=p
p=a[p][1]
a=[[0,3],[1,2],[1,4],[0,1],[0,5],[2,-1]]
dele(a,0)
①q!=-1 ②q!=p ③a[pre][1]=a[p][1] ④a[pre][1]=a[q][1]
方框中填入的正确代码依次为
A.②④ B.②③ C.①④ D.①③
【答案】B
【解析一】
本题考查链表元素删除的程序实现。
程序中外层循环用指针 p从第二个节点开始遍历至最后一个节点,内层循环用指针 q 从头节点开始遍历查
找相同元素,当出现相同元素时,删除其中一个,而 pre为 p的前驱节点,并未记录 q的前驱节点,故删除
的是节点 p,第二个方框填入的是语句③;由于删除的是 p节点,而 p用于外层循环的遍历,那么查找范围
到从头节点到 p节点,保证 p节点之前没有相同的元素即可,故第一个方框中填入的是语句②。
【解析二】
本题考查链表元素删除的程序实现。
由 pre=p, p=a[p][1],可知 pre是 p的前驱,删除是删除后继节点,因此第二加框处是删除后继 p节点,选③;
从 q=head,p=a[head][1],可知第一加框处 q!=p,否则 if a[q][0]==a[p][0]必然成立,因此第一加框处选②。
二、非选择题(本大题共 3小题,其中第 13 小题 7分,第 14小题 10分,第 15 小题 9 分,共 26 分)
13.对某二值图像(颜色编号只有 0、1)按如下规则对其进行数据压缩:
(1)记录原数据第 1个位置的颜色编号;
(2)从左往右依次扫描颜色编号,统计并记录连续出现的相同颜色编号个数;
例如:图像的颜色编号:00000000011111111000,压缩结果为“0,9,8,3”(用逗号分隔)
9个 8个 3个
请回答下列问题:
(1)若某二值图像按此规则压缩的结果为“1,1,3,5,6”,则该图像的颜色数据中有 个 1。
(2)定义如下 jys(s)函数,参数 s存储压缩结果,为字符串类型,如“0,9,8,3”。函数功能是实现数据解
压缩,函数以字符串类型返回原数据。请在划线处填入合适的代码。
高三技术 试题卷 第 6 页(共 14 页)
def jys(s):
d={"1":"0","0":"1"}

ns="";p=s[0];i=2
while inum =0
while ② :
num =num*10 +int(s[i])
i +=1
i +=1
for j in range(num):

p=d[p]
return ns
【答案】
(1)6 (1 分)
(2) ①n=len(s) (2 分)
②i <= n-1 and "0"<=s[i]<="9" 或 i <= n-1 and s[i]!="," (2 分)
③ns += p (2 分)
【解析一】
本题考查 python基础应用的相关知识。
(1)考查考生对题干的理解,根据题干中的例子“0,9,8,3”以及结合代码中字典 d的数据,可得出“1,
1,3,5,6”的结果是有 1个 1,3个 0,5个 1,6个 0。故最后 1的个数是 6。
(2)观察下方代码在 while的条件表达式中有一个未知量 n,根据已有线索可推断第 1空中的赋值语句形
式是求“n=____”,结合已有线索解密过程需要遍历字符串 s的每个元素,故推出“n=len(s)”。
代码说明如下:
ns="";p=s[0];i=2 #结合 return ns语句可知,ns为解密后输出的字符串。
#变量 p表示当前数字,i=2由于第一个位置表示开始的颜色,故从第二个数字开始取。
while inum =0 #设初值 num=0,每次取出当前数字后再重置
while i<=n-1 and"0"<=s[i]<="9": #若当前数字不是逗号且没有遍历完
num =num*10 +int(s[i]) #则取出当前数字
i +=1 #继续遍历
i+=1 #若遇到逗号退出,则 i的位置要加 1。若遍历完了加 1后,结束整个 while 循环。
for j in range(num): #访问 num个数,来决定有几个 0或 1。
ns +=p #将个数添加到 ns中
p=d[p] #若开始是 0,则下一个数字表示的是 1。
#若开始是 1,则下一个数字表示的是 0。
#可通过字典 d来实现切换。
结合图析整个解密过程更加清楚:
高三技术 试题卷 第 7 页(共 14 页)
【解析二】
本题以 RLE字符压缩算法为背景,主要考察字符串处理。
(1)压缩由结果“1,1,3,5,6”可知,原串由字符“1”开头,其中字符“1”连续出现 1次,随后分
别为 3个“2”、5个“1”、6个“2”。因此字符“1”共出现 6次。
(2)①空初始化原串长度 n = len(s);②空较为常规,考察字符的索引访问以及字符比较,当 s[i]为数字字
符时更新 num变量,即“当前有效数据”。这里由于字符串本身可以进行比较,因此答案“0”<=s[i]<=”9”
即可,不必要将字符“0”和“9”用 ord函数转换。然而考虑到原串的结尾分隔符缺失,因此 i == len(s)时
需要强制退出循环,因此答案为“0”<=s[i]<=”9” and i < n。③空用于记录连续出现的 num个字符,变量
p记录了当前连续出现的基本字符,这一点可以从变量 p的初始化和更新确认 p = s[0]、p = d[p]。因此第③
空更新返回值 ns的表达式为 ns += p。
14.小明搭建了图书查询系统,模拟如第 14题图 a所示自助图书借阅机的查询功能:把书籍放置在读写器
上,读写器读取到图书上 RFID电子标签的唯一编号后通过Wi-Fi 传输到Web 服务器数据库中,并在该
数据库查询到该书籍的借阅日期。该系统结构示意图如第 14题图 b所示。若图书编号是“A20-2440”,
智能终端提交数据到Web服务器的 URL为 http://192.168.3.200/cx bbh=A20-2440,请回答下列问题。
第 14题图 a 第 14题图 b
(1)关于该图书查询系统,下列说法正确的是 (多选,填字母)。
(注:全部选对的得 2 分,选对但不全的得 1 分,不选或有选错的得 0 分)
A.该系统网络应用软件的实现架构是 B/S 架构
B.数据库是服务器的外接数据存储设备
C.智能终端的 IP 地址是 192.168.3.200
D.若无线路由器出现故障,智能终端将无法提交数据到服务器
(2)该系统实现查询功能的部分服务器端程序如下,请在划线处填入合适的代码
@app.route(" ① ",methods=["GET"])
def get_h() :
DB="data/books.db"
bbh = request.args.get("bbh")
高三技术 试题卷 第 8 页(共 14 页)
conn=sqlite3.connect( ② )
#在数据库中查询编号为 bbh 的图书借阅日期存入变量 rslt,代码略
return rslt
(3)除了给图书贴电子标签,并用读写器采集图书编号外,请写出两种其它采集图书编号的方
式 。(注:回答 2种,1种正确得 1分)
(4)导出某月的图书借阅流水数据如第 14 题图 c所示,统计借阅次数最多的前 5名(相同借阅次数排
名相同),统计结果如第 14题图 d所示,部分 Python程序如下。
第 14题图 c 第 14题图 d
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read csv('bookdata.csv') #读取 bookdata.csv中的数据
df_gp=df.groupby('BookTitle',as index=False)['BookID']. ○A
#分组统计书籍被借阅次数
n=len(df_gp)
pm=[1]*n
for i in range(n):
for j in range(n):
if df_gp.at[i,'BookID']#通过行标签和列标签选取值进行比较
pm[i]+=1
df_gp.insert(2,'排名', pm) #插入“排名”列,值为列表 pm
df _pm=df_gp[ ○B ] #筛选最受欢迎的五本图书
df_pm=df_pm.sort_values('排名', ascending=True , ignore_index=True) #升序排列
print('本月图书借阅次数最多的前五名:')
print(df_pm['BookTitle'])
①划线○A 处应填入的代码为 (单选,填字母)。
A.sum() B. mean() C.count() D.max()
②在划线○B 处填写合适的代码。
【答案】
(1)AD (2 分,少选 1分,错选 0分)
(2) ① /cx (1分)
②DB (1分,小写不给分)
(3)图书贴条形码,并用扫描枪采集图书编号/用键盘(语音、手写板)输入图书编号/用摄像头识别
图书封面、图书编号等 (2分,1种 1分)
高三技术 试题卷 第 9 页(共 14 页)
(4) ①C (2 分)
②df_gp['排名']<=5 或 df_gp.排名<=5 (2 分)
【解析一】
本题考查信息系统、pandas模块以及分析处理数据的能力。
(1)选项 A:根据图 b 可得,用户可以通过浏览器为实现对服务器的访问,系统采用了 B/S 架构,所以 A
正确;选项 B:数据库将数据以文件的形式存储在存储服务器中,而非外接的数据存储设备,B错误;选项
C:服务器的 IP为:192.168.3.200,C错误。选项 D:根据图 b可得,智能终端通过无线路由实现和服务
器双向数据交互,所以 D正确。
(2)从题干中数据提交的 URL可得,实现数据提交的功能的路由为“/cx”;sqlite3.connect(path)表示连
接到数据库文件,path参数表示数据库文件的路径或者文件名。
(3)采集图书编号的方式有多种:可以通过图书编号以条形码的形式编码,然后通过扫描枪扫描;也可以
通过手动输入图书编号等方法。
(4)第一空根据题干要求分组统计书籍被借阅次数,count()函数可以用于对 Dataframe 中每一列的非空值进
行计数操作,以生成计数结果;第二空前面的代码段已经统计出每本书借阅次数,并且根据借阅次数计算排名,
借阅次数越多,排名越高。所以最受欢迎的五本图书即为排名的前 5名的记录,可以通过筛选“排名”数据
列小于等于 5的记录得到结果。
【解析二】
本题考查信息系统、pandas模块以及分析处理数据的能力。
(1)A 根据描述,传输、查阅数据均是通过浏览器完成,该系统是 B/S架构,正确
B 数据库是系统软件,不是存储设备,错误
C 这是服务器的 IP地址,不是智能终端的,错误
D 从图 b可知,无线路由器故障, 连接中断,无法传输数据,正确
(2)①从 URL不难得出正确路由:/cx;
② 这里是要连接数据库文件 DB,或者"data/books.db"亦可
(3)贴条形码、二维码,用摄像头(扫描枪)采集数据、直接输入(键盘等设备)、摄像头智能识别均可。
(4)① 根据要求,这里应该是分组计数,count(),选 C
② 根据前面双重循环的代码,遇到借阅次数比 i多的,pm[i]累加,说明 pm存储的是对应的排名,pm[i]
如果是初值 1,那就是没有借阅次数比它更多,排名第一。考虑到重名的情况,筛选条件是:df_gp['排名']<=5
15.某工厂生产的产品包含 n个(编号为 0~n-1)组件,其组装可由多名工人共同协助完成。组装时每个组件
都不可遗漏并能按序完成,有些组件存在前置组件(以下简称“前置”),即安装有先后顺序。例如,某
产品有 6个组件,如第 15题图 a所示,组件 3的前置是组件 1和组件 2,即安装组件 3需要在组件 1和
组件 2完成之后。若 0~5号组件的组装所需单位时间分别为 2,5,2,4,3,5,则在工人数量不限的情
况下,所有组件安装完成最短需要 14个单位时间。
为了梳理产品组件的组装顺序,并计算所有组件安装完成所需的最短时间,编写程序模拟组装过程:
先同时组装前置总数为 0的组件,完成后更新每个组件的前置总数,再重复以上步骤,直至所有组件安
装完毕,程序运行结果如第 15题图 b所示,请回答下列问题:
高三技术 试题卷 第 10 页(共 14 页)
(1)第 15题图 a所示产品的 1号组件组装时长若缩短为 3个单位时间,其它时间保持不变,则所有组
件安装完成所需最短时间为_______个单位时间。
(2)定义如下 cal(a,n)函数,参数 a列表的每个元素包含两项,a[i][1]是组件编号,a[i][0]是 a[i][1]的前置编
号,例如 a中某个元素值为[2,3],表示组件 2是组件 3的前置。该函数的返回值是列表 s和列表
pre,其中 s记录所有组件的相互关系,pre[i]记录初始情况下组件 i的前置总数。
def cal (a, n):
pre=[0]*n
s=[[0 for i in range(n)] for j in range(n)] #创建 n*n 的二维数组 s,元素初始值为 0
for i in range(len(a)):
x, y=a[i][0],a[i][1]
s[x][y]=1
pre[y]=__________________
return pre,s
(3)定义如下 proc(n, s, pre)函数,该函数的返回值是列表 v,v[i]代表从开始到组件 i完成组装所需的最
短时间。请在划线处填入合适的代码。
def proc(n, s, pre):
head=tail=0
que=[0]*n
for i in range(n):
if pre[i]==0:
que[tail]=i
tail+=1
while headx=que[head]
head+=1
for i in range(n):
if s[x][i]==1:
pre[i]-=1
if pre[i]==0:
que[tail]=i
tail+=1
v[i]=max(v[i], ① )
return v
"""
组装编号 0~n-1 的单个组件所需时间存入 t列表,组件前置关系存入 a列表,第 15题图 a所需时
间 t=[2,5,2,4,3,5];a=[[0,2],[2,3],[1,3],[3,5],[4,5]]
"""
n=len(t)
print('编号为 0~'+str(n-1)+'的组件组装所需单位时间分别为:’,t)
v=t[:]
pre, s=cal(a, n)
高三技术 试题卷 第 11 页(共 14 页)
v=proc(n, s, pre)
data=[0]*n
result=[i for i in range(n)] #创建列表 result=[0,1,2,……,n-1]
for i in range(n):
data[i]=v[i]-t[i] #data[i]表示组件 i开始安装时间
for i in range(n-1): #按组件开始安装时间升序排序,开始安装时间相同时按组件序号升序
for j in range(n-1-i):
if data[result[j]]>data[result[j+1]]:
②_________________________
print('组件组装顺序: ', result,',安装完成所需最短时间: ', max(v))
(4)以下选项与题(3)加框处代码功能相同的是_______(多选,填字母)。
(注:全部选对的得 2 分,选对但不全的得 1 分,不选或有选错的得 0 分)
A.head != tail B.head 0
【答案】
(1) 13 (1 分)
(2) pre[y]+1 (2 分)
(3) ① t[i]+v[x] (2 分)
② result[j],result[j+1]=result[j+1],result[j] (2 分)
(4) AB (2 分,少选 1 分,错选 0 分
【解析一】
本题考查基于索引的冒泡排序,自定义函数,队列等知识
(1)如下图所示,最短时间为 2+2+4+5=13
(2)根据题意,pre[i]存储初始情况下组件 i的前置总数,遍历数组 a,对于每个 a[i],a[i][0]是 a[i][1](y)
的前置,故该空答案为 pre[y]+1
(3)根据题意,以及样例,得到数组 s如左图所示,数组 pre如右图所示:
0 1 2 3 4 5
0 0 0 1 0 0 0
1 0 0 0 1 0 0 0 1 2 3 4 5
2 0 0 0 1 0 0 0 0 1 2 0 2
3 0 0 0 0 0 1 数组 pre
4 0 0 0 0 0 1
5 0 0 0 0 0 0
数组 s
根据题意,首先处理无前置的组件,故先遍历数组 pre,把值为 0的对应索引按顺序进行入队(que)操作;
然后,当队列 que非空时,依次进行出队操作,即对每个组件进行如下处理:
如图所示,
高三技术 试题卷 第 12 页(共 14 页)
若当前处理的组件为 0,以它为前置的是组件 2,则组件 2的最短完成时间 v[2]更新为 v[0]+t[2]=4,同时把
2入队
若当前处理的组件为 1,以它为前置的是组件 3,则组件 3的最短完成时间 v[3]更新为 v[1]+t[3]=8,
若当前处理的组件为 4,以它为前置的组件是 5,则组件 5的最短完成时间 v[5]更新为 v[4]+t[5]=8,如下图
所示
若当前处理的组件为 2,以它为前置的组件是 3,则组件 3的最短完成时间保持不变,同时因为 3的两个前
置 1,2都已经处理完成,故把 3进行入队
若当前处理的组件为 3,以它为前置的组件是 5,则组件 5的最短完成时间更新为 v[3]+t[5]=13,同时把 5
入队
最后处理的组件为 5,它是最后一个,没有前置组件,故处理结束
所以,所有组件完成后的最短完成时间是 max(v),即 13
第二空是对数组 data进行排序,根据题意,数组 result是索引数组,此处的冒泡排序是基于索引的冒泡排序,
故答案为 result[j],result[j+1]=result[j+1],result[j],即比较的是 data数组的相应数据,交换的是索引数组 result
的相应数据
(4)加框处代码的含义是队列非空,故 A正确。
本题中,所有组件都会依次入队和出队,故 B正确,C不正确
列表 que的长度保持不变,故 D不正确
【解析二】
(1)本题考查题目的理解和执行,执行过程如下
高三技术 试题卷 第 13 页(共 14 页)
(2)本题考查标记数组 pre,pre[i]记录组件 i的前景个数
根据题意 a中某个元素值为[2,3],则 x =2,y=3,表示 x是 y的前件 x y,组件 y的前件数加一
(3)①本题求 v[i]的最早结束时间
假设 x1,x2,…,xm 是组件 i的前件,则组件 i的最早开始时间为
max(v[x1],v[x2],…,v[x]),所以组件 i的最早结束时间为
max(v[x1],v[x2],…,v[x]) + t[i] max(v[x1] + t[i],v[x2] + t[i],…,v[x] + t[i]) """
②本题考查冒泡法排序,交换指针
data[i]存储组件 i的开始安装时间,result列表使用时,作为 data列表的索引,所以 reuslt列表是指
针,存储第 i个开始安装的组件的索引。
当 data[result[j]]>data[result[j+1]]时,节点 result[j+1]的开始安装时间早于节点 result[j]的开始安装时
间。节点 result[j+1]应该排在节点 result[j]的前面,所以交换 result[j+1]和 result[j]
(4)本题考查顺序队列不为空的条件
head !=tail head < tail
本题处理 n个组件,每个组件只入队一次,故全部组件入队时,tail = n
所以 n个组件没有处理完,即队列不为空的条件可以写成 head高三技术 试题卷 第 14 页(共 14 页)

展开更多......

收起↑

资源预览