2023年10月强基联盟高三信息技术卷完美解析

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

2023年10月强基联盟高三信息技术卷完美解析

资源简介

绝密★考试结束前
2023 学年第一学期浙江强基联盟 10 月统测
高三 技术试题
(2023.10)
第一部分 信息技术(共 50 分)
一、选择题(本大题共 12 小题,每小题 2 分,共 24 分。每小题列出的四个选项中,只有一个符合题目的 要求,不选、多选、错选均不得分)
1.下列有关数据与信息的说法正确的是
A.信息可用数字信号来表达,数字信号是以连续变化的物理量存在
B.数据只能用数字或文字来表示
C.同一信息对于不同的人群,其价值相同
D.信息必须经过数字化之后才能被计算机进行存储和处理
(
【答案】
D
【解析】
数据的表现形式有多种;模拟信号是以连续变化的物
理量存在;同一信息对于不同的人群,其价值不同。
)
2.关于人工智能,下列说法不正确的是
A.人工智能的发展在就业、安全、伦理等方面可能会带来新的挑战
B.基于深度学习的人工智能,一般会构造包含若干层的神经网络
C.专家系统是基于数据驱动的人工智能方法实现的
D.图灵测试是测试机器是否具有智能的方法
(
【答案】
C
【解析】
专家系统是符号主义的代表。
)
阅读下列材料,回答第 3 至 5 题:
某智慧食堂消费系统的部分功能:食堂内设有多台自助点餐终端,顾客下单后, 系统自动计算订单金 额,并提供相应的支付方式供顾客选择。顾客完成支付, 系统会将订单信息发送至后厨。配餐完成后, 系 统会通知顾客前往取餐。系统还具备数据分析功能,通过对顾客的消费习惯、菜品销售情况等数据进行分 析,帮助食堂管理者了解顾客需求,优化菜品搭配和供应链管理。
3.下列关于信息系统的组成描述,说法正确的是
A.该信息系统中的用户仅指食堂就餐的顾客
B.使用该系统不需要网络的支持
C.触摸屏自助点餐终端属于该系统的硬件
D.顾客点餐的数据保存在自助点餐终端中
(
【答案】
C
【解析】
点餐的数据保存在数据库中。
)
高三技术 试题卷 第 1 页(共 10 页)
4.下列关于该信息系统的安全与防护,说法不正确的是
A.定期备份服务器中数据可提升信息系统数据的安全
B.利用身份认证技术对该系统中不同的管理者设置不同的权限
C.及时更新系统,修复漏洞,提高系统安全性,降低病毒感染风险
D.设置防火墙,保护内部网络免受非法用户的入侵
(
【答案】
B
【解析】
访问控制技术可以对该系统中不同的管理者设置不同的权限。
)
5.关于该系统的功能,以下说法不正确的是
A.顾客输入餐桌号、用餐人数、菜品等信息属于数据收集和输入功能
B.顾客可查询菜品、账单等信息属于数据查询功能
C.显示或打印点餐数据和总消费金额属于数据输出功能
D.根据顾客点餐数据,优化菜品搭配属于数据存储功能
(
【答案】
D
【解析】
根据顾客点餐数据,优化菜品搭配属于数据加工处理功能。
)
6.下列关于网络系统的说法,不正确的是
A.网络由计算机系统、数据通信系统以及网络软件和网络协议组成
B.计算机网络按网络的覆盖范围分为:局域网、城域网、广域网
C.HTTP 协议用于管理被传送内容的完整性
D.网络系统最基本的功能是数据通信
(
【答案】
C
【解析】
TCP
协议管理被传送内容的完整性。
)
7.李华需要对处理好的照片进行编码,照片由类型+编号两部分构成。如果类型最多有 10 种,每种类型的 照片不超过 60 张。在尽可能减少编码长度的情况下,使用该编码方案保存的照片, 以下说法正确的是
A.用 4 位二进制数表示照片类型,6 位二进制数表示照片编号
B.用 4 位二进制数表示照片类型,5 位二进制数表示照片编号
C.用 3 位二进制数表示照片类型,6 位二进制数表示照片编号
D.用 3 位二进制数表示照片类型,5 位二进制数表示照片编号
(
【答案】
A
【解析】
如果类型最多有
10
种,需要用
4
位二进制数表示照片类型;每种类型的照片不超过
60
张,需要用
6

二进制数表示照片编号。
)
8.已知某二叉树的后序遍历为 GDBEHFCA ,中序遍历为 DGBAECHF ,下列说法正确的是 A.该二叉树中叶子节点有 3 个
高三技术 试题卷 第 2 页(共 10 页)
B.该二叉树的前序遍历为 ABDGCEHF
C.该二叉树是一棵完全二叉树,树的高度为 4
D.该二叉树中度为 1 的节点有 2 个
(
【答案】
A
【解析】
根据题意,可以构建出如下二叉树。该二叉树的前序遍历为
ABDGCEFH
。不是完全二叉树,该二叉树中度

1
的节点有
3


)
9.有如下程序段:
a=[30,10,20,11,12,50]
d=[0]*6 ; max=0 ; n=len(a)
for i in range(1,n):
for j in range(i):
if a[j]d[i]+= 1
if d[i]>max:
max=d[i]
执行程序后,变量 max 的值是
A.2 B.3 C.4 D.5
(
【答案】
D
【解析】
d
数组存储
i
号位前有多少个比
a[i]
小的元素个数。
max

d
数组中元素值的最大值。
)
10.有如下程序段:
def fun(k):
ifk==1 :
return " 1"
elifk%2==0:
return fun(k-1)+str(k%2)
else:
return str(k%2)+fun(k- 1)
执行语句 s=fun(5),则 s 的值为
高三技术 试题卷 第 3 页(共 10 页)
A."00111" B."11010" C." 11100" D."10110"
(
【答案】
C
【解析】
f(5)=’1’+f(4)=’1’+f(3)
+’0’=’1’+’1’+f(2)+’0’=’1’+’1’+f(1)+’0’+’0’=’11100

)
11.有如下 Python 程序段:
s=input()
stack=[0]* len(s);top=- 1;presign='+' ;num=0
for i in range(len(s)):
if '0'<=s[i]<='9':
num=num*10+int(s[i])
if i==len(s)- 1 or s[i] in '+-*/':
if presign=='+':
top+=1
stack[top]=num
elifpresign=='-':
top+= 1
stack[top]=-num
elifpresign=='*':
top+=1
stack[top]=stack[top- 1]*num
else:
top+= 1
stack[top]=stack[top-1]//num
presign=s[i]
num=0
print(sum(stack)) #sum 函数对 stack 中所有元素求和
若输入'5*4-6+10/3' ,程序运行后,输出结果是
A.32 B.24 C.17 D.8
(
【答案】
A
【解析】
根据前置运算符来进行栈内元素值的更新。
stack

[5, 20, -6,
10, 3, 0, 0,
0,
0,
0]
)
12.有如下 Python 程序段:
a=[i for i in range(1,7)]
b=[0]*6
head,tail=0,0
for i in range(1,7):
cnt=1
while cnta[tail]=a[head]
head=(head+1)%6
高三技术 试题卷 第 4 页(共 10 页)
tail=(tail+1)%6
cnt+=1
b[a[head]-1]=i
head=(head+1)%6
执行该程序段后,b[5]的值为
A.2 B.3 C.4 D.5
(
【答案】
B
【解析】
a
数组不断更新用来存放当前循环队列
b
中未存放数据的
下标位置。
b
数组更新为:第一次
b[0]=1,
第二

b[2]=2,
第三次
b[5]=3,
第四次
b
[1]=4,
第五次
b[3]=5,
第六次
b[4]=6
)
二、非选择题(本大题共 3 小题,第 13 小题 8 分,第 14 小题 9 分,第 15 小题 9 分,共 26 分)
13.小华开发了一个自动改卷系统,但是由于科目不同,没有固定的题号模板,于是小华又编写了 Python 程序,能根据试卷答案自动输出题号。如图 13-1 为答案模板文件,小华在模板文件中录入答案后保存 为"卷 3.txt",如图 13-2 所示,每一行是一题或者一题中的一小题的答案,题号之间没有跳跃。例如:
图 13-2 中【1】和【5】之间有 4 行,A、B 、C、D 为第 1 到 4 题的答案。程序运行结果如图 13-3 所
示。
第 13 题图 1 第 13 题图 2 第 13 题图 3
(1)实现上述功能的 Python 程序如下,若删除图 13-2 最后一行(【7】所在的行),对程序运行结果 影响(填文字:有/没有)。
(2)请在划线处填入合适的代码。
f=open("卷 3.txt",encoding="utf-8")
line=f.readline().strip() #strip()用于删除字符串尾部的"\n"换行符
c=0
preId=0
QuestionInfo=[ ]
while line:
if line[0] == "【":
curId = ①
if curId - preId > 1:
for i in range(preId, curId):
QuestionInfo.append(str(i))
elif c>0:
for i in range(1, c + 1):
QuestionInfo.append(str(preId) + "(" + str(i) + ")")
高三技术 试题卷 第 5 页(共 10 页)
c = 0

else:

line=f.readline().strip() #strip()用于删除字符串尾部的"\n"换行符
f.close()
print("卷 3 题号划分为:")
for Id in QuestionInfo:
print(Id)
(
【答案】

1
)有
2


2


int
(
line
[1:-1])

int
(
line
[1:
len
(
line
)-1])
或等价答案

preId
=
curId

c+=1

c=c+1
或等价答案
【解析】

1
)没有最后一行就无法确定【
6
】后面是多个小题还是多个题。

2


取出题号数字,要注意多位数的情况

迭代
preId
到当前题号
,
为下一次遇到新题号做准备

小题数量计数
2

2

2

)
14.小华在公司实验室搭建了一个农业大棚温湿度监测系统,温度上升到超过 30℃或温度下降到低于 10℃ 时,智能终端连接的蜂鸣器发出警报。系统的硬件搭建方式是:服务器通过实验室局域网的无线网络连 接智能终端,智能终端连接传感器和执行器,传感器采集的数据由智能终端经 IoT 模块发送到 Web 服务 器。请回答下列问题:
(1)若公司门口施工导致电信光纤被挖断,会导致 (单选,填字母:A.服务器接收不到智能终端 发出的数据 / B.在实验室使用局域网无法访问 Web 服务器 / C.在家中无法访问 Web 服务器)。
(2)小华基于 Flask Web 框架编写服务器端的程序,部分代码如下,视图函数 index()的返回值由 接 收(单选,填字母:A.浏览器 / B.智能终端 / C.智能终端和浏览器都可以)。
(3)要获取视图函数 index()返回的页面,应访问的 URL 是 http:// 。 #导入 Falsk 框架模块及其他相关模块,创建app 实例,代码略
@app.route('/index')
def index():
#从数据库读取近 1 小时获取的传感器编号、温度和湿度组成的二维列表 data ,代码略 return render_template('idx.html',data=data)
#服务器其他功能,代码略
if name == ' main ':
app.run(port=8000)
(4)小华将该系统用于种植草莓,不同季节,不同农作物对环境的要求都有所差异。同一种农作物在不 同的生长时期(苗期、现蕾期、盛花期、初果期、膨果期等)需要的生长环境也不同。请为小华提 出合理建议,优化或增加系统功能: 。
(5)小华采用 excel 表格记录了 2 个实验组种植草莓的实验数据,他希望绘制“淡雪现蕾期生长表现对 比 ”柱形图,部分数据(前 12 行)如图 14- 1 所示(时间格式为“年/月/日 时:分 ”) 。
高三技术 试题卷 第 6 页(共 10 页)
第 14 题图 1
df = pd.read_excel('strawberry.xlsx')
name=input("请输入品种")
period=input("请输入生长阶段")
df=df[df[" 品种"]==name]
df= df[df["生长阶段"]==period]
df = df.groupby(" ① ", as_index = False).mean() plt.title(name+period+"生长表现对比")
plt.bar(df.实验组, df.生长表现) #绘制柱形图 ①请在程序中划线处填入合适的代码。
第 14 题图 2
#分组求平均值
②小华要输出每个品种现蕾期生长阶段生长表现最好时的温度湿度,为此他需要修改程序代码,
以下操作恰当的是 (多选,填字母)。(注:全部选对的得 2 分,选对但不全的得 1 分,不 选或有选错的得 0 分)
A.筛选品种
B.筛选生长阶段
C.根据生长阶段分组,每组按生长表现降序排序,输出每组第一行
D.根据品种分组,每组按生长表现降序排序,输出每组第一行
(
【答案】

1

C
1


2

A
1


3

127.0.0.1
:8000/
index
1


4

建立不同作物在不同时期的阈值表,使不同时期的报警阈值不同等合理建议
2

要求:
回答内容题目描述的内容相关且合理

5

①实验组
2


BD
2

【解析】

1
)光纤是外网,只影响实验室内外之间
的通信

2

render
_
template
函数是利用提供的网页模板文件生成纯
HTML
文件,然后返回到用
户浏览器

3
)考察了默认的
IP
地址以及人为规定的
port
=8000

4
)略。

5


根据
bar
的图以及
plt
.
bar
代码可以看出

每个品种都要分析,所以品种不能被筛选掉,
A
错误。
规定了要对现蕾期进行研究,所以要筛选生长阶段,
B
正确。
按生长阶段分组后,每组有多个品种,只留第一行肯定错
误。
C
错误。
)
高三技术 试题卷 第 7 页(共 10 页)
(
D
项是要搭配
B
选项,先筛选出现蕾期的数据,再按品种分组,排序后每个品种现蕾
期表现
最好的温度湿度都排在了每组的第一行。
D
正确。
)
15.某咖啡店,店里共有 4 种咖啡,类型编号为 0 到 3,每次只能制作一种类型的咖啡,咖啡都是批量现做 (制作过程中不能更改数量或类型)。店员需按照订单的先后顺序完成订单(即当前订单完成之前不能 换订单),已经接到的订单中的同一类型咖啡可以一起制作(假设咖啡机能同时制作的数量上限足够高), 且不需要额外增加时间(即只需制作一杯的时间)。如图 15-1 为每个订单的咖啡数量,初始“订单 0 ” 中[6,0,2,4]表示 0 到 3 号咖啡的购买数量。此时店员先做数量最多的 6 份 0 号咖啡,1 分钟后接到新订单 [1,18,0,2],之后每分钟都会接到 1 个新订单,这些订单都计入每种咖啡的待做数量。3 分钟后这 6 份 0 号咖啡制作完成,程序会在“订单 0 ”中选择还没制作的且待做数量最多的(数量相同时先后不作要求) 咖啡作为下一次要制作的咖啡。编写 Python程序,每次制作完一种咖啡,输出接下来要制作的咖啡,运 行界面如图 15-2:
第 15 题图 1
第 15 题图 2
(1) 由图 15- 1 的订单信息,3 分钟后"咖啡 0"制作完成,那么图 15-2 中(1)处店员接下来要做的 咖啡是咖啡 。
(2)根据待制作的咖啡数量,对链表初始化,生成降序链表 lnk,则代码运行后 y 的值为 。 def sort():
for i in range(3):
for j in range(3,i,- 1):
if waitlist[index[j]][1] > waitlist[index[j - 1]][1]:
index[j], index[j - 1] = index[j - 1], index[j]
if waitlist[index[j]][1]==0:
return j
return 4
waitlist=[[3,6],[4,0],[1,2],[2,4]] # "咖啡 0"的批量制作时间为 3 分钟, 目前待做量为 6, 以此类推
q=[[6, 0, 2, 4], [1, 18, 0, 2], [2, 1, 2, 1], [0, 1, 0, 5], …… #如图 15- 1,代码略
#q 保存订单流,第一个订单[6,0,2,4]作为初始订单已计入 waitlist
index=[0, 1,2,3]
y=sort()
lnk=[- 1]*4
for i in range(y- 1): #创建降序链表
lnk[index[i]]=index[i+1]
p=lnk_h=index[0]
print("请制作咖啡"+str(p))
waitlist[p][1]=0 #咖啡 p 进入制作,待做数量回 0
(3)请在划线处填入合适的代码。
def enqueue(order): #order 是一个订单,例如[1,2,0,3]
global lnk_h
flag.append([0,0,0,0]) #新订单 4 种咖啡未完成
高三技术 试题卷 第 8 页(共 10 页)
for i in range(4):
f = True
if waitlist[i][1]==0: f=False
if order[i]==0: continue
waitlist[i][1]+=order[i] #将订单 order 中的咖啡 i 累加到待制作数量中
cur=lnk_h
while cur!=-1 and waitlist[i][1]pr,cur=cur,lnk[cur]
if cur!=i:
tmp = lnk[i]
lnk[i]=cur
if cur==lnk_h:
lnk_h=i
else:
lnk[pr]=i
iff:
while cur!=i:
pr,cur=cur,lnk[cur]

def nextfood(qhead,qtail): #找到下一次要做的咖啡
global lnk_h
cur=lnk_h
while ② :
pr,cur=cur,lnk[cur]
if cur==lnk_h:
lnk_h=lnk[lnk_h]
elif cur==- 1:
return - 1
else:
lnk[pr]=lnk[cur]
waitlist[cur][1]=0
for i in range( ③ ):
if q[i][cur]!=0: flag[i][cur] = 1
return cur
qhead,qtail=0, 1
order=q[qhead]
flag=[[1,0,0,0]] #flag[i][j]=1 标记"订单 i"中的"咖啡 j"已经在做或已经做完。
lnk_h, time =lnk[lnk_h],0
while True:
time=(time+1)%waitlist[p][0]
if qtailenqueue(q[qtail]) #接新订单
qtail+= 1
if time==0:
高三技术 试题卷 第 9 页(共 10 页)
while qheadorder=q[qhead]
p=nextfood(qhead,qtail)
if p == - 1 : break
print("请制作咖啡"+str(p))
(
【答案】

1

3
1


2

3
2


3


lnk
[
pr
]=
tmp
或等价答案
2


cur
!=-1
and
(q[
qhead
][
cur
]==0
or
flag
[
qhead
][
cur
]=
=1)
或等价答案
2


qhead
,
qtail

0,
tail

qtail
或等价答案
2

range
的第一个参数只要是
0

qhead
之间,都可以给分
【解析】

1
)初始订单
[6,0,2,4]

6
杯咖啡
0
一开始就已经
在做了, 所以各咖啡待做的数量是
[0,0,2,4]
,在咖啡
0
制作当中,接到了
3
个订单,待做数量变成了
[
3,20,4,12]
,此时咖啡
1
最多,但是当前还在完成订单
0

过程中,由订单
0
中的
[6,0,2,4]
可知,咖啡
1
数量为
0
,所以不作
为下一种要做的咖啡,而是选择了
12

咖啡
3.
本质上是按照待做数量看成一个降序链表,然后尽可能取链表头部,但是要经过筛选,筛选条件就
是该咖啡在当前订单中,且还没被做过。

2
)通过索引排序得到了使
waitlist
能够按照待
做数量降序排序。
lnk
是个纯指针链表。在索引排序的过
程中,从后往前比,把大的数运到前面,如果遇到最大的数为
0

则结束排序,
return
不含
0
的节点个数,
也就是说数量为
0
的咖啡不会出现在
lnk
链表里,也是为后面
nextfood
做铺垫,到待制作咖啡对应的链
表为空的时候,整个程序也就结束了。

3

①前面有一句
tmp
=
lnk
[i]
,也就是备份
i
的后继节点,因为新订单使咖啡
i
数量变多,要重新维护链
表使
它仍然降序,这里就考虑了几种情况:
情况一:是咖啡
i
本身不在链表里,那么只要找到位
置插入节点即可,对应的就是
f==
False
的情况
情况二:是咖啡
i
本身在链表里,且位置发生了变化,那
就要从头开始找到新的插入位置, 然后插入咖啡
i
这个节点,插入后继续向后查找并删除链表中原来的咖啡
i
节点
情况三:咖啡
i
已经在链表里,且其数量增加后在链表中的位置不需要调整。
②要找到下一种要做的咖啡,
由于链表是降序的,从数量多的开始遍历,这里实际上
就是考察了对节点的筛选,要求当前订单
q[
qhead
]
中该咖啡数量不为
0

且还没被做过,但
是既然是查找算法,就要考虑边界保护的问
题,所以
cur
!=-
1
也是必须的,如果当前链表已
经是空链表,说明待做咖啡已经没有了,所有订单都完成了。
③将当前订单到已经接到的订单中所有的咖啡
cur
(
也就是下一件马上要让店员做的咖啡
)
标记为
1.
意思就
是要开始做了。那么有些同学写
range
(0,
tail
)
,这样会重复标记之前已经标记过
1
的那些已经完成的订单,
程序也能正常运行,只是效率不高。考虑到
能想到这一步并做出来已经很不容易,程序能运行就给分。
)
高三技术 试题卷 第 10 页(共 10 页)

展开更多......

收起↑

资源预览