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

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

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

资源简介

绝密★考试结束前
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:
ifk>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]:
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
#
变量
p
表示当前数字,
i=2
由于第一个位置表示开始的颜色,故从第二个数字开始取。
while
i
num
=0
while
i
<=n-
1
and
"0"<=s[i]<="9":
num
=
num
*
10 +
int
(s[i])
#
遍历整个加密字符串
s
#
设初值
num
=0,
每次取出当前数字后再重置
#
若当前数字不是逗号且没有遍历完
#
则取出当前数字
i
+=
1
i+=
1
for
j in range(num):
ns
+=p
p=d[p]
结合图析整个解密过程更加清楚:
#
继续遍历
#
若遇到逗号退出,则
i
的位置要加
1
。若遍历完了加
1
后,结束整个
while
循环。
#
访问
num
个数,来决定有几个
0

1

#
将个数添加到
ns

#
若开始是
0,
则下一个数字表示的是
1

#
若开始是
1,
则下一个数字表示的是
0

#
可通过字典
d
来实现切换。
#
结合
return
ns
语句可知,
ns
为解密后输出的字符串。
)
高三技术 试题卷 第 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'].
#分组统计书籍被借阅次数
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.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
”;
sqlite
3
.
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 页)
(
0
1
2
3
4
5
0
0
1
2
0
2
) (
数组
pre
)
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
分)
)(1) 13
(

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
)
(
2
) (
0
) (
0
) (
0
) (
1
) (
0
) (
0
)
(
3
) (
0
) (
0
) (
0
) (
0
) (
0
) (
1
)
(
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 页)

展开更多......

收起↑

资源预览