2023年4月绍兴二模信息技术卷解析(PDF版)

文档属性

名称 2023年4月绍兴二模信息技术卷解析(PDF版)
格式 zip
文件大小 586.0KB
资源类型 教案
版本资源 浙教版(2019)
科目 信息技术(信息科技)
更新时间 2023-04-14 07:51:56

图片预览

文档简介

浙江省选考科目考试绍兴市适应性试卷(2023 年 4 月)
技术试题卷
第一部分 信息技术解析(50 分)
一、选择题(本大题共 12小题,每小题 2分,共 24分,每小题列出的四个备选项中只有一个是符合题
目要求的,不选、错选、多选均不得分)
阅读下列材料,回答第 1至 2题。
ChatGPT是一款聊天机器人,它能识别文本和语音信息,编写和调试计算机程序,进行音乐和文
学创作,回答问题等。ChatGPT是使用深度学习、强化学习等来实现的,它所使用的海量训练数据主
要来自于互联网上的各种文本数据。
1.关于聊天机器人 ChatGPT,下列说法不.正.确.的是
A.它能处理不同表达形式的数据 B.训练它所使用的海量数据属于大数据
C.它编写的计算机程序内容是信息 D.它给出的问题答案一定是准确的
【答案】D
【解析】
本题考查信息、数据、大数据及 AI的知识
A.正确,它能识别文本和语音信息等
B.正确,ChatGPT使用的海量训练数据来源于互联网,互联网上的数据满足大数据的 4特征
C.正确,它编写的程序内容具有一定的意义,是我们所需要的东西,是信息
D.错误,它给出的答案不一定准确,因为它使用训练的数据来源于互联网,互联网上的数据不一定 全部都
是准确的。
2.关于 ChatGPT中应用的人工智能技术,以下说法正确的是
A.深度学习属于符号主义 B.深度学习需要手工构造知识库来进行
C.强化学习体现的是一种自我学习的能力 D.通过强化学习提升能力无需经验支持
【答案】C
【解析】
本题考查人工智能的知识点
A.错误,深度学习属于是联结主义
B.错误,深度学习基于数据驱动,不需要事先手动构造知识库
C.正确,强化学习是让学习者事先不知道最终答案,而是在学习过程中不断尝试各种解决问题的途径,然
后根据结果反馈来调整相应的学习方法,体现了一种自我学习的能力。
D.错误,强化学习需要从过去的经验中不断学习,提升能力
阅读下列材料,回答第 3至 5题。
师生通过校园网,利用移动终端登录学校“电子图书馆系统”后,既能预约纸质书本借还时间,
又可线上阅读电子书籍。该系统服务器通过数据库实时更新相关内容,并统计各项数据。
3.下列关于该信息系统组成的说法,正确的是
A.电子书籍属于该系统的数据 B.该系统中的用户只有师生
C.服务器和数据库均属于该系统的硬件 D.校园网属于该系统的软件
高三技术试题卷 第 1 页 共 10 页
【答案】A
【解析】
本题考查信息系统的组成
A.正确
B.错误,系统的用户范围比较大,不仅包含开发人员、使用人员还有维护人员等
C.错误,数据库属于是该系统的软件
D.错误,校园网属于是该系统的网络
4.以下关于该信息系统功能的说法,不正确的是
A.提交预约时间,体现了数据输入功能 B.存储电子书籍,体现了数据存储功能
C.更新数据库内容,体现了数据查询功能 D.统计借阅人数,体现了数据加工处理功能
【答案】C
【解析】
本题考查信息系统的组成
A.正确
B.错误,系统的用户范围比较大,不仅包含开发人员、使用人员还有维护人员等
C.错误,数据库属于是该系统的软件
D.错误,校园网属于是该系统的网络
5.为保证该信息系统数据的安全性,下列做法中不.合.理.的是
A.对该系统采取病毒防护措施 B.对师生登录信息进行加密存储
C.及时更新系统防堵漏洞 D.通过共享账户高效管理数据
【答案】D
【解析】
本题考查信息系统的安全
信息系统的安全与防护一般主要是从以下几个方面着手考虑。
①硬件:磁盘阵列、异地容灾
②软件:安装并启动防火墙、安装杀毒软件并经常杀毒、系统更新和升级、数据加密、备份等,
原则是以防为主、查杀为辅
所以 ABC均正确,D选项错误
6.下列有关信息编码的说法不.正.确.的是
A.编码是将信息进行形式转换的过程
B.不同信息在计算机内均以二进制方式进行存储和处理
C.相同数据经不同编码方式后生成的文件容量一定相同
D.文本、图像、音频、视频文件的压缩过程属于编码
【答案】C
【解析】
本题考查信息编码
必修 1课本 P7:编码(Encoding)是信息按照某种规则或格式,从一种形式转换为另一种形式的 过程。解码
是编码的逆过程。所以 A和 D正确。
高三技术试题卷 第 2 页 共 10 页
必修 1课本 P7: 数据的表现形式可以是文本、图形、图像、声音、视频等,但不管是哪种形式的数据,
最终存储在计算机中的都是经过一定规则编编码后的二进制数字。 所以 B正确。
选项 C: 字符串”111111”压缩为 6个 1,可以存储为”61”。很显然两者容量是不一样。
所以选项 C错误。
7.某算法的部分流程图如第 7题图所示,执行这部分流程,若入输 x的
值为 29,依次输入 a的值为 2, 3,4, 0,则输出 c的值是
A. 1 B.2 C.3 D.4
【答案】B
【解析】
本题考查循环结构流程图执行
方法:列表法执行 循环次数 a x c
29 0
① 2 24 1
② 3 17 2
③ 4 8 2
④ 0
8.某表达式树如第 8题图所示,则该树的后序遍历结果是
A. 3+7*5-8/2 B. 8/2*5+37-
C. 37+5*82/- D. 82/5-3+7*
【答案】C
【解析】
本题考查树的后序遍历: 左子树 右子树 父结点
排除法: 根结点最后访问,“-”是根结点,最后输出,故排除 AD ;“*”
是左子树的根,左子树遍历最后输出,故排除 B。
9.有如下 Python程序:
def f(n):
if n==1:
return "*"
else:
return n*f(n-1)
print(len(f(4)))
执行该程序,输出结果为
A.4 B.6 C.10 D.24
【答案】D
【解析】
本题考查递归函数的执行。
高三技术试题卷 第 3 页 共 10 页
递推过程 回归过程
f(4) = 4*f(3) f(4)="************************"
f(3)= 3*f(2) f(3)="******"
f(2)= 2*f(1) f(2)="**"
f(1) =”*”
所以 len(f(4)) = 24 , 该算法是阶乘递归算法的变形。
10.有如下 Python程序:
a = [13, 7, 10, 21, 16, 9, 7, 25]
k, p = a[0], 0
for i in range(1, len(a)):
if a[i] <= k:
p = i
k = a[p]
print(p, k)
执行该程序,输出结果为
A. 7 6 B. 6 7 C. 1 7 D. 7 1
【答案】B
【解析】
本题考查代码的分析与理解能力。
本题程序,是标准的查找列表中最小值的代码。其中 p是最小值的下标,k是最小值。再根据条件:a[i] <=
k。最小值的下标是 6,值是 7。正确选项 B。
11.有如下Python程序:
s = input()
sq = [""] * 100
head, tail, flag, res = 0, 0, True, ""
for i in range(len(s)):
if s[i] == "-":
while head != tail:
res += sq[head]
head = head + 1
if flag:
sq[tail] = sq[head]
tail, head = tail + 1, head + 1
flag = not flag
else:
sq[tail] = s[i]
tail = tail + 1
如输入的s为"Python-2023-",执行该程序,则变量res的值为
A. "Pthony2230" B. "Ptoynh2203" C. "tPyhno2302" D. "yPntho2023"
【答案】A
【解析】
本题考查队列的基本操作。
代码基本逻辑,遇到'-'字符前,字符入队。遇到'-'字符后,队列中的元素按照一定的规则出队。其中关键在
于对 flag 变量的把握。好在 4个选项差异较大,排除法可以较快选出正确答案。首先第一个出队的元素没
高三技术试题卷 第 4 页 共 10 页
有受到影响,一定是字符'P',排除选项 C、D。此时 flag==True,字符'y'重新进入队尾。接下来't'出队,此时,
flag==False,对应重新入队的代码不执行。那么接下来就是'h'出队。正确答案 A
12.有如下Python程序:
import random
target = random.randint(20, 70)
nums = [11,23,35,44,57,68,76,89] # 随机生成[20,70]区间内的一个正整数
left, right, lst = 0, len(nums) - 1, []
while left <= right:
lst.append([left, right]) #为 lst追加一个元素
mid = (left + right) // 2
if nums[mid] == target:
break
elif nums[mid] < target:
left = mid + 1
elif nums[mid] > target:
right = mid - 1
该程序段运行后,列表lst的长度不.可.能.为
A. 1 B. 2 C. 3 D. 4
【答案】D
【解析】
本题考查二分查找
分析代码,所谓列表长度其实就是本段二分代码的查找次数。
列表共 8个元素,最少 1次(有 break),最多 4次。
根据中点取值 mid = (left + right) // 2,整个二分判定树第 4层节点出现在判定树的最右边,考虑到 target<=70,
查找到 76时,不可能继续往右查找。所以 4次是不可能的。选 D
其实这段二分代码有 break中断语句,也只可能是 4。
二、非选择题(本大题共 3题,其中第 13题 8分,第 14题 9分,第 15题 9分,共 26分)
13.小明为水培蔬菜实验室搭建了环境温湿度监测系统,该系统结构示意图如第 13题图所示。该系统可实
时监测实验室环境温湿度数据,数据由智能终端经 IoT模块发送至Web服务器,若环境温湿度监测值超
过设定阈值区间,则控制执行器调节温湿度,用户可通过移动终端访问 URL查看实时数据。
(1)根据该系统的功能要求,第 13题图中①②③处的设备分别为 (单选,填字母)。
A.①Web服务器 ②电源 ③执行器
高三技术试题卷 第 5 页 共 10 页
B.①路由器 ②Web 服务器 ③传感器
C.①执行器 ②传感器 ③Web服务器
(2)该系统Web 服务器端程序采用 Flask Web框架开发,服务器 IP为 100.168.30.11,端口号为 8080,采
用 GET形式提交数据,各子页面功能如下表所示:
序号 子页面路径 功能说明
1 / 实时显示温度数据
2 /set 提交温湿度数据并返回提示信息
3 /data 统计显示历史数据
若某一时刻传感器监测到环境温度值为 24.5,湿度值为 36,则提交数据至Web 服务器的 URL为
(单选,填字母)。
A. http:// 100.168.30.11:8080/data temp=24.5&hum=36
B. http:// 100.168.30.11:8080/set temp=24.5&hum=36
C. http:// 100.168.30.11:8080/set 24.5&36
D. http:// 100.168.30.11:8080/ temp=24.5&hum=36
(3)已知系统设有 m个监测点,服务器能正常接收数据,现抽取某一时刻的一组监测值进行异常监测。
若某监测点温度与室内平均温度 avg 的差值超过正数 t,即为异常点。各监测点编号为 1~m, 其温
度值存储于数组元素 a[0]~a[m-1]中,检测并输出异常点编号的 Python程序部分代码如下,加框处
语句有误,请改正。
i=0
while i<= m- 1;
if a[i]-avg >=t :
print(“异常点编号为”,i+1)
i=i+1
(4)正确修改程序后,在系统调试过程中,发现仅有一处监测点一直存在异常,简要说明系统中可能造
成上述问题的原因 。(本系统中通信网络、传感器与智能终端的连接均不
存在问题。注:回答 2项,1项正确得 1分)
【答案】
(1)C
(2)B
(3)abs(a[i]-avg)>t
(4)传感器故障、监测环境问题、数据传输问题(数据处理软件)、算法问题(阈值设定的合理性)
【解析】
本题考查信息系统的相关知识。
(1)智能终端里主要有两类设备,分别是执行器和传感器,传感器获取数据执行器执行相关操作。另外数
据库的数据肯定是和服务器建立起联系的,从第③空就可以判断出答案选 C。
(2)根据题干描述得知采用的是 GET的形式来提交数据,结合表格中可观察到提交数据的子页面路由是
/set则可确定选项在 B、C中间,其中 C选项没有利用变量很明显错误,故答案选 B。
(3)根据题目描述中“若某监测点温度与室内平均温度 avg 的差值超过正数 t,即为异常点”可得两数相减
有可能出现负数,故需要利用函数 abs来进行取绝对值。
(4)有一处检测点一直存在异常,结合通信网络、传感器与智能终端的连接均不存在问题的前提下,我们
可以推测可能是以下几种常见的错误类型网络 IOT模块出现故障、传感器采集数据发生故障、服务器对应
的数据管理软件出现问题、阈值 t的取值不合理等。
③app.run(host=“192.168.10.1”,port=8080) 服务器对外开放,访问地址为 http:// 192.168.10.1:8080
高三技术试题卷 第 6 页 共 10 页
④app.run(host=“0.0.0.0”,port=8080) 服务器对外开放,本机访问服务器,
②和③两种都可,其他设备访问用③;如果不写 host和 port,依次对应两个参数。
14.社区举行红歌比赛。本次比赛共设四首比赛曲目,每位选手随机抽选其中一首,作为自己的参赛曲目。
活动负责人统计了本次比赛的相关数据并存储于“match.csv”文件中,文件部分内容如第 14题图 a所
示。
为分析本次比赛的结果情况,编写 Python程序。请回答下列问题:
(1)定义 j函数,功能为:读取文件 file,返回每位参赛选手的总得分并填入数据表中(总得分=专家分
*0.6+投票分*0.4)。函数代码如下,划线处应填入的代码为 。
import pandas as pd
def tj(file):
df=pd.read_csv(file)
for i in df.index: # df.index是 df对象的行索引
df.at[i,"总得分"]= # at方法根据行、列标签选择单个值
retum df
(2)为查找得到每首比赛曲目的选手最高总得分,部分 Python程序如下,请在划线处填入合适的代码。
df= ① #读取文件并计算总得分
df=df.sort_values("总得分",ascending=False) #根据总得分进行降序排序
dic={}
for m in["曲目 1","曲目 2","曲目 3","曲目 4"]:
j=0
while j<=len(df)-1:
if ② :
dic[m]=dfatti,"参赛选手编号]
break

print(dic)
(3)统计每首参赛曲目的选手平均总得分,并绘制图表显示,如第 14题图 b所示。部分 Python程序如
下,划线处应填入的代码为 。
import matplotlib.pyplot as plt
df1=df.groupby("参赛曲目",as_index=False).mean() #分组并求平均值
高三技术试题卷 第 7 页 共 10 页
x = dfl.参赛曲目
y =
plt.bar(x,y)
plt.xlabecl("曲目名称")
plt.ylabel("平均得分")
plt.show()
【答案】
(1) df.at[i,"专家分”]*0.6+df.at[i,"投票分"]*0.4或 df["专家分"][i]*0.6+df["投票分"][i]*0.4
(2) ①tj("match.csv") ②df.at[j,"参赛曲目"]==m或 df["参赛曲目"][j]==m ③j=j+1
(3)dfl.总得分
【解析】
本题考查 pandas数据处理相关知识
(1)由题干可知:总得分=专家分*0.6+投票分*0.4,故(1)处填:df.at[i,"专家分"]*0.6+df.at[i,"投票分
"]*0.4
(2)①tj函数对传的文件求总分,此处调用函数,传入参数应为文件名,注意要加双引号,填:tj("match.csv")
对 df对象按总分降序排序后,要查找每首曲目的最高得分,可以从上向下依次遍历 df的每一行。本题利用
双循环,外循环枚举曲目 m,内循环从上到下遍历 df,若找到某一行参赛曲目与 m相同,即为该曲目最大
值,此时添加入字典 dic即可。②处填:df.at[j,"参赛曲目"]==m
③空与 while循环有关,此处为循环变量的增加,j=j+1
(3)由题意与图 b可知,y轴数据为总得分的平均值,即 dfl.总得分
15.操作系统管理 n个连续的内存单元,地址编号为 0 ~ n-1,可动态分配给多项作
业使用。现有一个作业队列,其中记录了各项作业申请的内存单元数量、作
业请求等情况。某作业执行时,会向系统请求分配一.段.连.续.的.内.存.单.元.(简
称“块”),执行完后由系统回收该空闲块(回收后若存在连续的多个空闲
块,则合并为一块)。系统分配内存的方法是:按作业请求从所有空闲单元
中尽可能地挑选一个能满足要求的最小空闲块,当有多块满足要求时,选择
起始地址编号最小的空闲块(能分配时则从该空闲块的起始地址开始分配:
不能分配时则提示内存不足)。编写 Python程序模拟动态分配过程。请回答
下列问题:
(1)设有 500个内存单元,地址编号为 0 ~ 499,初始全部空闲。某队列作业顺序执行情况如第 15题图
所示,则作业“J6”申请到的内存块起始地址编号为 。
(2)定义如下函数 sortbysize(free),参数 free链表的各节点由空闲块的起始地址、块大小、链接地址描述,
并按起始地址升序。函数功能是保持 free的链接结构不变,返回列表 lst,lst是 free中各节点按块
大小升序、块大小相同按起始地址升序的索引序列。
def sortbysize(free):
#对链表 free进行排序,free[0]描述了链表的头指针、空闲块个数
lst = []
p = free[0][0] #free[0][0]为链表的头指针
while p != -1:
lst.append(p) #为 lst追加一个元素
p = free[p][2]
高三技术试题卷 第 8 页 共 10 页
m = free[0][1] #free[0][1]为空闲块个数
stk = [-1] * m; top =-1
j = m – 1
while j >= 0:
tmp = lst[j]
while top != -1 and free[tmp][1] > free[stk[top]][1]:
lst[j] = stk[top]; j += 1; top -= 1
top += 1; stk[top] = tmp; j -= 1
while top > -1:
j += 1; lst[j] = stk[top]; top -= 1
return lst
执行语句 lst = sortbysize([[1, 4], [0, 160, 2], [200, 120, 3], [350, 70, 4], [442, 70, -1]]),执行过程中变量
top的值最大为 ,执行后 lst的值为 。
(3)实现内存分配功能的代码如下,请在划线处填上合适的代码。
def alloc(size, free): #分配内存,无法分配时返回-1,否则返回分配内存块的起始地址
#检查 free链表,若有地址连续的多个空闲块则合并为一个空闲块,代码略
if free[0][1] == 0: #free[0][1]为空闲块个数
return -1
lst = sortbysize(free)
i = 0
while i < len(lst) and ① :
i += 1
if i == len(lst):
return -1
prev = 0
curr = free[0][0] #free[0][0]为链表的头指针
while curr != lst[i]:
prev = curr
curr = free[curr][2]

if free[curr][1] == size: #分配空闲块,并更新链表 free
if prev != 0:
free[prev][2] = free[curr][2]
else:
free[prev][0] = free[curr][2]
free[0][1] -= 1
else:

free[curr][1] -= size
return address
'''
读取并处理作业队列,free链表的各节点由空闲块的起始地址、块大小、链接地址描述,并按起始
地址升序,代码略。若当前作业需要分配 size大小的内存块,则进行如下处理
'''
高三技术试题卷 第 9 页 共 10 页
address = alloc(size, free)
if address == -1:
print("无法分配,内存不足!")
else:
print(address)
【答案】
(1)224
(2)3 [3,4,2,1]
(3)① free[lst[i]][1] < size
② address = free[curr][0] 或 address = free[lst[i]][0]
③ free[curr][0] += size
【解析一】
(1)
作业编号 内存块大小 作业请求 处理结果 分配/回收后空闲块链表状态
J1 160 分配 分配 0~159 160~499
J2 64 分配 分配 160~223 224~499
J3 120 分配 分配 224~343 345~499
J4 86 分配 分配 334~429 430~499
J1 160 回收 回收 0~159 0~159、430~499
J3 120 回收 回收 224~343 0~159、224~343、430~499
J5 70 分配 分配 430~499 0~159、224~343
J6 64 分配 分配 224~287 0~159、288~343
(2)①题中已经说明了函数 sortbysize(free)的返回值是列表 lst,lst是 free中各节点按块大小升序、块大小
相同按起始地址升序的索引序列。则容易得出 lst的值为[3,4,2,1]。
②题中 stk是辅助栈,lst列表中原先为[1,2,3,4],stk辅助 lst列表中的值进行排序。在整个过程中当 top为
最大值 3的时候,stk的值为[1,2,4,3]。
(3)
①#遍历空闲块列表 lst,找到第一个大小不小于 size的空闲块的索引,因此此处填 free[lst[i]][1] < size
②当 curr等于 lst[i]时,说明找到了可以容纳大小为 size 的空闲内存块。因此,代码执行 address =
free[curr][0],将该内存块的起始地址存储在变量 address 中。变量 address 存储了可以分配给请求的内存
块的起始地址。
③在找到大小为 size的空闲块后,如果该块内存的大小大于 size,则将该块的大小减去 size,以便在剩余
空间中分配其他内存。
【解析二】
本题内存分配为背景总和考察了栈、链表的使用。
第(1)小题可以画数轴或列出当前的“块”来思考。对于作业 J1~J4的内存依次分配为[0,159],[160, 223],[224,
343],[344, 429],最后剩余空闲内存[430, 499],长度为 69。随着作业 J1和 J3的回收,最小能存放长度为
高三技术试题卷 第 10 页 共 10 页
70的块是原作业 J3的内存,即起始编号 224。
第(2)小题要求从代码中读懂算法,当然在数据量不大的情况下也可以手动模拟。根据题意排序后的结果是
一个索引序列,排序规则是块大小升序、起始地址升序,则 lst = [3, 4 , 2, 1]。执行过程中辅助栈的最大元素
个数是 3。实际上这是双栈模拟排序算法,模拟排序时牢记两个原则:
“原始栈当前元素个数 + 辅助栈当前元素个数 = 总元素个数”
“维护一个降序的辅助栈”
具体模拟过程不做展开。
第(3)小题实现具体的内存分配。由于 lst是已排序的空闲内存起始位置索引列表,从头开始遍历列表 lst,保
证找到最小的课容纳长度为 size 的空闲内存,即第①问答案 free[lst[i]][1] < size。
第②问初始化 address,由于 if语句的特性只执行一个分支,即返回值 address可能未被赋值,所以需要提前
对 address赋值,address = free[curr][0],即当前空闲内存的起点。将该长度为 size 的内存分配给新的作业后,
这部分空闲内存减少了 size 长度,即起点后移 size,第③问答案 free[curr][1] += size。
高三技术试题卷 第 11 页 共 10 页
同课章节目录