2023年12月金丽衢12校联考高三信息技术卷完美解析

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

2023年12月金丽衢12校联考高三信息技术卷完美解析

资源简介

绝密★考试结束前(23年 12月)
金丽衢十二校 2023 学年高三第一次联考
技术试题
第一部分 信息技术(共 50 分)
一、选择题(本大题共 12 小题,每小题 2 分,共 24 分。每小题列出的四个备选项中只有一个是符合
题目要求的,不选、多选、错选均不得分)
1.下列关于数据和信息的说法,正确的是
A.计算机中的视频以十六进制形式存储
B.付款码在一段时间后会失效,说明信息具有真伪性
C.盲文是数据的一种表现形式
D.通过无线网络传输的信息不需要依附于载体
【答案】C
【解析】
选项 A,计算机内部所有数据都是以二进制形式存储,该选项错误;选项 B,付款码会失效,主要是体现信
息的时效性,也是提高安全性的手段,该选项错误;选项 D,信息必须依附于载体才能存在,无线传输时
的载体就是电磁波,虽然看不见,但不代表不存在,该选项错误。
2.下列关于人工智能和大数据的说法,正确的是
A.某学籍管理系统中的几十万条数据是大数据
B.电商平台的个性化推荐是基于大数据分析了用户购买商品的原因
C.人工智能的发展不会威胁到人类的安全
D.利用神经网络解决分类问题的方法属于人工智能的联结主义
【答案】D
【解析】
选项 A,学籍管理系统的数据不能算大数据,因为每个数据都非常重要,缺一不可,大数据中的数据允许
个别数据的不准确或缺失,该选项错误;选项 B个性化推荐是基于大数据的相关性分析,而不是因果关系
分析,该选项错误;选项 C,人工智能技术推动人类社会进步的同时,也可能威胁人类安全,该选项错误。
阅读以下材料,回答 3—5 题。
在建设智慧校园时,不少学校引入电子班牌系统。该系统的主要应用场景:签到、测温、请假、家校
沟通、信息发布等,学生可以通过电子班牌与家长聊天,教师可以发布班级公告等,所有的数据都存储在
云服务器上。该电子班牌的主要参数和功能如下:
3.下列关于该信息系统组成的说法,正确的是
A.测温模块属于该系统的硬件 B.电子班牌仅支持有线网络接入
金丽衢 12校 技术选考试题 第 1 页 共 11 页
C.Android 属于该系统的应用软件 D.该信息系统中的用户只有教师和学生
【答案】A
【解析】
选项 B,电子班牌也支持无线网络来接入,该选项错误;选项 C,Android是操作系统,属于系统软件,该
选项错误;选项 D,信息系统中的用户除了教师和学生,还有程序设计员、维护人员等,该选项错误。
4.下列关于该信息系统功能和应用的说法,不.正.确.的是
A.学生数据可以存储在云服务器的数据库中
B.学校停电导致该系统无法使用,说明信息系统本身具有安全隐患
C.学生通过电子班牌与家长聊天,说明该系统具有数据传输功能
D.该系统的请假功能规范了工作流程,提高学校的工作效率
【答案】B
【解析】
文件、数据库、云存储是数据存储的常见方式,选项 A正确;选项 B,停电导致信息系统不能使用说明信
息系统对外部环境有依赖性,该选项错误;选项 C、选项 D均正确。
5.下列关于信息系统安全和信息社会责任的说法,正确的是
A.学生不能审批请假单是由于学生没有通过该系统的身份认证
B.若将电子班牌的操作系统升级为最新版本,则该系统就不存在漏洞
C.系统管理员可以将学生信息出售给第三方机构
D.在服务器上安装防火墙可以有效阻挡外来的网络攻击
【答案】D
【解析】
选项 A,学生不能审批请假单是因为访问控制的权限问题,学生帐号没有审批的权限;选项 B,新版本的操
作系统也可能存在漏洞;选项 C,学生信息属于个人隐私信息或重要信息,出售信息会侵犯个人隐私。只
有选项 D是正确的。
6.下列关于网络系统的说法,不.正.确.的是
A.客户端和服务器之间能够正常通信需要遵循 TCP/IP 协议
B.连接网络的智能设备不一定都有 IP 地址
C.无线路由器是组建家庭网络的常用设备
D.各部门可以通过网络共用一台打印机,体现网络的资源共享功能
【答案】B
【解析】
选项 B,IP地址是用于标识网络上设备的唯一地址,连接到网络的智能设备都需要有 IP地址(动态地址或
静态地址),否则不能正常上网,所以选项 B是不正确的。选项 A、C、D均正确。
7.某位图图像最多需要表示 500种颜色,若采用十六进制给每种颜色编号,至少需要的编码位数是
A.4 B.3 C.2 D.1
金丽衢 12校 技术选考试题 第 2 页 共 11 页
【答案】B
【解析】
本题考查信息的编码。
500种颜色,编码精度为 16n >= 500,即 n=3,所以选 B。
8.某二叉树如第 8 题图所示,下列说法正确的是
A.该二叉树是完全二叉树
B.该二叉树有 4 个叶子节点
C.该二叉树的中序遍历结果为 BDACFE
D.该二叉树用一维数组表示为['A','B','C','D','E','F']
【答案】B
【解析】
本题考查二叉树。
A.错误,一棵完全二叉树至多只有最下面两层的结点的度数可以小于 2,并且最下层的结点都集中在该层
最左边的若干位置上。
B.错误,叶子节点有 2个
C.正确
D.错误,该树用数组表示为['A','B','C',None,'D',None,'E',None,None,None,None,None,None,'F']
9.有如下 Python程序段:
a="Python"; q=[0]*6
head,tail=0,0
i=len(a)-1
while i>=0:
if i%3!=0:
q[tail]=a[i]
else:
q[tail]=q[head]
head+=1
tail+=1
i-=1
print(q[head:tail])
当执行该程序段后,输出的结果是( ▲ )
A.['n', 't', 'y', 'o'] B.['n', 't', 'y'] C.['n', 'o', 'n', 't', 'y'] D.['n', 'o', 'n', 't', 'y', 'o']
【答案】A
【解析】
本题考查队列。
根据题意可知,当索引 i为 3的倍数时,队首元素出队并入队尾,否则 a[i]入队。
即['n']-->['n','o']-->['o','n']-->['o','n','t']-->['o','n','t','y']-->['n','t','y','o'],故选 A。
10.有如下 Python程序段:
def f(s):
金丽衢 12校 技术选考试题 第 3 页 共 11 页
if len(s)==2:
return s
else:
return f(s[len(s)//2+1:]+s[:len(s)//2])
print(f("abcde"))
当执行该程序段后,显示的结果是
A.eb B.be C.da D.ad
【答案】A
【解析】
本题考查递归函数
f('abcde')
f('deab')
f('bde')
f('eb')
所以答案 A。
11.某二分查找算法的 Python程序段如下:
import random
key=random.randint(1,4)*2
a=[2,3,4,4,4,6,7,10]
ans=0;i=0;j=len(a)-1
while i<=j:
m=(i+j)//2
if key>=a[m]:
i=m+1
else:
j=m-1
ans+=a[m]
print(ans)
执行该程序段后,ans的值不.可.能.是
A.27 B.14 C.11 D.9
【答案】C
【解析】
本题考查二分查找。
4
3 6
2 4 4 7
10
根据题意 key的值可能是 2,4,6,8。
程序查找的是 key的右边界,即当 key=2时,ans=4+3+2=9;
当 key=4时,ans=4+6+4=14;
当 key=6时,ans=4+6+7=17;
金丽衢 12校 技术选考试题 第 4 页 共 11 页
当 key=8时,ans=4+6+7+10=27。所以不可能的是 C。
12.有如下 Python程序段:
num="1433218"; k=3
n=len(num); ans=""
s= [""]*n; top=-1;
for i in num:
while k>0 and top>-1 and s[top]>i:
top-=1
k-=1
top+=1
s[top]=i
if k > 0:
top-=k
while top > -1:
ans=s[top]+ans
top-=1
print(ans)
执行该程序段后,输出的内容是
A.1321 B.1322 C.3121 D.1218
【答案】D
【解析】
本题考查栈。
根据题意代码 'while k>0 and top>-1 and s[top]>i:'可以判断,栈中的元素必须是递增的,且最多出栈 3 次;即
['1']-->['1','4']-->['1','3']-->['1','3','3']-->['1','2']-->['1','2','1']-->['1','2','1','8']
'4'出栈 两个'3'
所以最后结果为'1218'
二、非选择题(本大题共 3 小题,其中第 13 小题 8 分,第 14 小题 8 分,第 15 小题 10 分)
13.某校图书馆提供 3类自习室,A类最多容纳 2人,B类最多容纳 4人,C类最多容纳 8人,以 1小时为
单位进行预约,每.人.每.天.只.能.预.约.一.次.,.每.次.预.约.仅.限.个.人.,规定预约时间结束之前必须离开。图书馆
每天 6点开馆,22点闭馆。编写程序,输入某自习室号牌,根据已预约情况,输出该自习室还能被预约
的时间段。例:读取“A102”已预约情况[[6,11], [15,18], [8,12], [15,22]],其中“A102”表示为 A类 102号自
习室,[6,11]表示某个人预约 6:00开始,11:00前必须离开,时间占用如第 13题图所示,则该自习室还
能预约的时间段为[[6,8],[11,15],[18,22]]。请回答下列问题:
第 13题图
(1)若“B101”的已预约情况为[[6,11],[8,12],[8,11],[6,12]],则该自习室还能预约的时间段是 。(时
间段格式参照题中样例)
(2)实现上述功能的部分 Python 代码如下,请在划线处填入合适的代码。
r = input("输入自习室号牌: ")
金丽衢 12校 技术选考试题 第 5 页 共 11 页
# 根据自习室号牌 r,获取该自习室可容纳的人数上限和预约情况分别存入 ceil和 time中,代码略
# 如 time = [[6,11],[15,18],[8,12],[15,22]]
bucket = [0]*24 #记录该自习室每个时刻被预约的人数
for period in time:
for i in range(period[0], ① ):
bucket[i]+= 1
ans = []; rec = []
for i in range(6,22):
if bucket[i]rec.append(i)
if len(rec)==0:
print("该自习室目前没有可预约时段")
else:
left,right = 0,0
i=1
while iif rec[i]==rec[i-1]+1:

else:
ans.append([rec[left],rec[right]+1])
left,right=i,i

ans.append([rec[left], rec[right]+1])
print(r,"可预约的时间:", ans)
【答案】
(1)[[6,8], [11,22]] 或等价描述(若括号没有写全,也可给分) (1分)
(2) ①period[1] (2分)
② right=i或 right+=1 (2分)
③ i+=1或 i=i+1 (2分)
【解析】
本题考查 Python语言基础及简单算法知识。
(1)由于 B自习室能容纳 4个同学,因此“B101”的已预约情况为[[6,11],[8,12],[8,11],[6,12]],则表明[8,11]
已经被占用,而其他时段都可以预约,故该自习室还能预约的时间段是[[6,8],[11,22]]。
(2)①根据代码可知该处的代码应该是 period[1],因为 time是一个二维列表,列表 bucket记录该自习室
每个时刻被预约的人数。需要说明的是,为什么答案不是 period[1]+1,是因为右边界的值不统计在 bucket
中(如第 13题图所示)。②代码 rec[i]==rec[i-1]+1表示可预约教室的时段是连续的,例如 8点可以预约,9
点也可以预约,因此可以将这两个时间点进行合并,此时应该将右边界加 1,或者直接将下标 i作为右边界,
故答案是 right+=1或 right=i 。③由于统计是以每个小时为单位进行的,因此 while 循环语句的步长 i每次
应该加 1,i代表小时数,故答案是 i+=1或 i=i+1。
金丽衢 12校 技术选考试题 第 6 页 共 11 页
14.小李在卧室搭建了一个简易的室内湿度监测系统,系统通过湿度传感器获取室内的环境湿度,湿度超过
阈值时自动打开除湿器(执行器);用户可以通过浏览器查看实时湿度(主页)、历史湿度数据和设置
湿度阈值。每隔一段时间记录一次湿度数据。该系统的架构图如第 14题图 a所示。
(1)下列有关该系统数据传输的说法,不正确的是 。(单选,填字母)
A. 用户的请求通过浏览器传输到 Web 服务器
B. Web 服务器将接收到的湿度数据写入数据库
C. IoT 模块将 Web 服务器的历史湿度数据传输给智能终端
(2)基于 Flask Web框架编写服务器端程序,则服务器端应用实例 app中与设置阈值页面相关联的路由
置语句是@app.route(' ')。
(3)室内适宜的湿度范围是 hmin~hmax(含 hmin、hmax 且 hmin适宜、偏高时,将 sta的值对应设为 0、1、2。下列 Python程序段中符合要求的有 。
(多选,填字母)。(注:全部选对得 2 分,选对但不全得 1 分,不选或有选错得 0 分)
(4)该系统正常工作一段时间后,小李发现用浏览器访问服务器能正常显示实时湿度,但是当实时湿度
超过阈值时,执行器并没有工作,结合第 14 题图 a,简要说明该系统中可能造成上述问题的原因:
。(注:回答 2 项,1 项正确得 1 分)
(5)将该年 1—10 月湿度数据导出,部分数据如第 14 题图 b 所示,分析 1—10 月中每天 8 时刻
的月平均湿度值并绘制线形图如第 14 题图 c 所示。程序如下,请在划线处填入合适的代码。
#其他代码略
df = pd.read_csv("humidity.csv")
df["月份"] = 0 #新增一列
for i in df.index:
金丽衢 12校 技术选考试题 第 7 页 共 11 页
df.at[i, "月份"] = df.at[i, "日期"][5:7] #通过行、列确定单个值并修改
dfh = df[ ① ] #筛选出每天 8 时刻的数据
g = dfh.groupby(" ② ").mean() #分组求平均值
plt.plot(g.index, g.相对湿度)
plt.ylabel("每月 8:00 时刻的平均相对湿度")
plt.xlabel("月份")
plt.show()
【答案】
(1)C (1分)
(2)/sethum (1分)
(3)AD (2分)
(4) 硬件故障:执行器或智能终端异常 (2分)
连接故障:执行器和智能终端连接故障
(5) ①df.时刻==8或 df['时刻']==8或 df.时刻=='8'或 df['时刻']== '8' (2分)
②月份 (2分)
【解析】
(1)WEB服务器中的历史数据是保存在数据库中,并不是通过 IOT模块传递给智能终端,故 C选项错误。
(2)题目中要求的是服务器端应用实例 app与设置阈值页面的路由关系,通过观察图 a可知该页面的路由
是“/sethum”
(3)B选项中,如果 h的值小于 hmin,由于两个 if语句存在两个入口,故最后 sta的值为 1(适宜)而不
是 0(偏低),所以 B选项错误;C选项中,如果 h的值等于 hmax根据题目要求是适宜的湿度范围,但是
从 C选项出发 sta的值是 2属于偏高,所以 C选项也错误。故答案选 AD。
(4)根据题意,小李访问服务器是能正常显示湿度(说明服务器方面没有没有什么问题,包括浏览器的显
示,数据库的保存),但超过阈值时,执行器无法工作(说明问题出在智能终端方面),结合图 a的系统
架构图,可从以下几个方面分析。硬件方面:执行器发生故障、智能终端发生故障。连接方面:执行器和
智能终端的连接故障。代码方面:服务器返回值参数错误导致执行器无法启动工作。
(5)第 1小空考察的是 pandas筛选的知识点,要求筛选出每天 8时刻的数据,结合图 b可知要筛选的是时
刻列故答案是“df.时刻==8”,第 2小空也是常规的知识点,考察的是根据哪列进行分组求平均值,结合图 c
中 x轴的参数可知要参加分组的列是“月份”,亦可从代码中得知新增的“月份”列,故答案是“月份”
15.某音乐平台的曲库中共有 n首(编号为 0~n—1)歌曲,每首歌曲初始的热度值均为 0。歌曲列表分为
热榜区和非热榜区,热榜区按热度值降序排列,若热度值相同则按歌曲编号升序排列;非热榜区按歌曲
编号升序排列,某时刻的榜单如第 15题图 a所示。用户对歌曲的操作会改变其热度值,规则如第 15题
图 b所示。初始状态时,n首歌曲都在非热榜区,若某歌曲的热度值大于等于预设的阈值时,则将其移
至热榜区;相反,若热榜区中某歌曲的热度值小于预设的阈值时,则将其移至非热榜区。现有一段时间
内的操作记录存储在"operation.csv"文件中,部分数据如第 15题图 c所示,编写 Python程序模拟两个榜
区歌曲的实时更新功能。
金丽衢 12校 技术选考试题 第 8 页 共 11 页
(1)若该曲库中有三首歌曲,编号分别为 0、1、2,初始热度值均为 0,热榜阈值为 3。经过第 15题图
c所示的若干个操作后,最终热榜区显示的歌曲编号依次为 ▲ 。
(2)定义函数 printsongs(headA,headB),其功能是输出某次操作后 songs中的歌曲榜单信息。如第 15题图
a所示的歌曲榜单,该曲库中共有 10首歌。此时 headA和 headB的值分别为 6和 0;编号 8、9的
歌曲数据在列表中分别表示为 songs[8]、songs[9],其值分别为[8,-2,"悬溺",-1]、 [9,8,”如果这就是
爱”,0]。函数 printsongs代码如下,请在划线处填入合适的代码。
def printsongs(headA,headB):
print("###热榜歌曲###")
p=headA
while p!=headB :
print("歌曲编号:",songs[p][0],"歌曲名:",songs[p][2],"热度值:",songs[p][1])

print("###非热榜歌曲###")
while p!=-1:
#其他代码略
(3)实现曲库从非热榜区移至热榜区或更新热榜区的部分 Python程序如下,请在划线处填入合适的代码。
#读取曲库和操作数据,分别存入列表 songs和 op中。songs中的每个元素包含三个数据项,分别对应
#歌曲的编号、热度值、名称。op中每个元素包含两个数据项,分别对应歌曲编号和操作编号。代码略
inc=[0,1,3,-5] #操作编号对应的数值变化
val=int(input('请输入热榜阈值')) #阈值设置
for i in range(0, len(songs) - 1):
songs[i].append(i + 1)
songs[len(songs) - 1].append(-1)
headA,headB=0,0
for x in op:
p,q=headA,headA
while q!=-1 and songs[q][0]!=x[0]:
p=q
q=songs[q][3]
if q==-1:
print("未找到该歌曲")
else:
tmp=songs[q][1] #修改前的热度值
songs[q][1]+= ① #修改后的热度值
if (tmp=val) or (songs[q][1]>=tmp>=val): #上热榜或升榜
px,py=headA,headA
while py!=-1 and (songs[py][1]>songs[q][1] or ② ):
px=py
py=songs[py][3]
if q==headB:
headB=songs[headB][3]
if py != q:
金丽衢 12校 技术选考试题 第 9 页 共 11 页
songs[p][3] = songs[q][3]

if py == headA or headA == headB:
headA=q
else:
songs[px][3]=q
printsongs(headA,headB) #输出当前操作后的榜单
#其他情况代码略
【答案】
(1)0,2(不按顺序不给分) (1分)
(2)p = songs[p][3] (2分)
(3) ① inc[x[1]] (2分)
② songs[py][1]==songs[q][1] and songs[py][0]③ songs[q][3] = py (2分)
【解析】
本题考查链表遍历、查找、插入和删除等基本操作及算法的综合应用能力。
(1)经过操作后,0号歌曲热度值为 6,2号为 4,1号为-5,阈值为 3,则 0号、2号歌曲上热榜并按热度
值降序排序,热榜区显示的歌曲编号为:0,2
(2)从代码的注释语句可以看出几个重要变量的结构:
歌曲库:songs:[[“歌曲编号”,热度值,名称,指针域]....]
操作: op:[[“歌曲编号”,操作编号].....]
(3)处的代码用于从表头 headA开始遍历热榜链表,此空为指针 p的跳转:p = songs[p][3]⑶本题的任务比
较简单,通过操作 op计算相应歌曲的热度值,再依据热度值判断是否进入热榜,若是,找到插入位置进行
插入。涉及到链表的增、删、查、改,主要考查链表的基本操作。以下为代码的模块结构及部分语句解释:
inc=[0,1,3,-5] #操作编号对应的数值变化
val=int(input('请输入热榜阈值')) #阈值设置
for i in range(0, len(songs) - 1):
songs[i].append(i + 1) 数组 songs转链表
songs[len(songs) - 1].append(-1)
headA,headB=0,0
for x in op: #遍历操作 op
p,q=headA,headA
while q!=-1 and songs[q][0]!=x[0]:
在 songs中找操作 op中的歌曲编号 x[0]
p=q
q=songs[q][3]
if q==-1:
print("未找到该歌曲")
找到后,该歌曲的热度累加当前操作
else: #若热榜中有歌曲 x[0]
tmp=songs[q][1] # 值。通过操作编号 x[1],在列表 inc中修改前的热度值
songs[q][1]+= # 找到对应的热度值,填:inc[x[1]]① 修改后的热度值
if (tmp=val) or (songs[q][1]>=tmp>=val): #上热榜或升榜 根据修改以后的热度值,处理是
px,py=headA,headA 否进入热榜,若进入需在降序
while py!=-1 and (songs[py][1]>songs[q][1] or ② ):
序列中查找插入位。依题意首
px=py
先按热度值降序排序,若热度
py=songs[py][3]
值相同,按编号升序排序,②
处填:
金丽衢 12校 技术选考试题 第 10 页 共son1g1s[p页y][1]==songs[q][1] and
songs[py][0]出循环后 q插在 px与 py之间
if q==headB:
headB=songs[headB][3]
if py != q:
songs[p][3] = songs[q][3] #从原链表删除 q节点

if py == headA or headA == headB: #若插在头节点之前
headA=q #修改头节点指针
else:
songs[px][3]=q
printsongs(headA,headB) #输出当前操作后的榜单
金丽衢 12校 技术选考试题 第 11 页 共 11 页

展开更多......

收起↑

资源预览