浙江省宁波市镇海中学2024-2025学年高三上学期12月首考考前仿真技术试题-高中信息技术 Word版含解析

文档属性

名称 浙江省宁波市镇海中学2024-2025学年高三上学期12月首考考前仿真技术试题-高中信息技术 Word版含解析
格式 zip
文件大小 247.5KB
资源类型 教案
版本资源 通用版
科目 信息技术(信息科技)
更新时间 2025-03-15 20:23:22

文档简介

2024学年第一学期镇海中学考前仿真试题
技术
本试题卷分两部分,第一部分信息技术,第二部分通用技术。满分100分,考试时间90分钟。
考生注意:
1.答题前,请务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔分别填写在试题卷和
答题纸规定的位置上。
2.答题时,请按照答题纸上“注意事项”的要求,在答题纸相应的位置上规范作答,在本试题卷上
的作答一律无效。
3.非选择题的答案必须使用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先
用2B铅笔,确定后必须使用黑色字迹的签字笔或钢笔描黑,答案写在本试题卷上无效。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 下列关于数据信息的说法,正确的是( )
A. 收集的数据有时不直接具备价值和意义
B. 随着传感器的应用,大数据时代数据的结构化程度越来越高
C. 电脑中的音乐数据属于模拟数据
D. 科学测量设备的提升提高了测量精度,说明修正之前的数据是错误数据,体现了数据具有真伪性
2. 过去几年,西工大长期遭受美国国家安全局网络攻击,利用多种网络武器窃取敏感武器科研数据,也涉及我国关键基础设施与人员信息,引发广泛关注。下列关于提升西工大信息系统安全的说法不正确的是( )
A. 敏感设备需要开启软件防火墙来预防病毒
B. 即使内网也应该加密传输信息,防止被中间设备窃取内容
C. 通过可移动设备(U盘)植入病毒是典型的入侵攻击手段,敏感设备应禁止可移动设备的接入
D. 合理分配用户权限,即使个别账号密码被盗取,也能控制影响范围,属于身份认证技术
3. 我国首款3A游戏《黑神话悟空》在国内外掀起西游热潮,游戏角色“天命人”的流畅生动、真实的棍棒动作令人印象深刻,制作过程中大量应用了真人动作捕捉技术和AI动作预测生成技术,下列选项是关于该技术的介绍,请判断与之对应的说法正确的是( )
A. 演员演示动作过程中有多台相机360度拍摄。人工智能模型需要学习这些采集到的数据来强化模型生成动作动画的连贯性。该人工智能属于强化学习流派
B. AI可以通过风格迁移算法将某种风格的动作迁移到新的角色。例如,将武术的动作风格应用到不同体
型的角色上,而无需重新捕捉。体现出跨领域人工智能
C. 人类负责主导动作的创意设计、场景规划和角色行为的核心逻辑,AI一键生成重复动画,修复不连贯动作。体现了混合增强人工智能技术
D. 在使用AI技术之前需要大量的人力把动作附到虚拟角色中,现在不需要这些劳动力了,体现出人工智能导致的失业大于就业
4. 下列关于编码的说法正确的是( )
A. 矢量图能够保证不论放大多少倍都清晰,说明其保存的信息量足够多,因此容量较大
B. 图像A为5120×2880像素,位深度为24位的位图,将其转换为2560×1440像素的16色的位图图像B。则图像A与图像B的存储容量之比为24:1
C. jpg图片作为未压缩格式,保留了图片原始内容,适合在互联网传播
D 音频数字化过程中量化位数与声音保真度成反比
5. 某农业公司利用智能温室系统实时监控植物生长环境。该系统通过传感器收集温室内的温度、湿度、光照强度等数据,并将这些信息通过串口传输到智能终端并上传至云服务器。温室管理人员可通过智能手环或面部识别进入温室,并通过专用的管理网页查看植物的生长状态和环境数据;农场游客可以在家通过手机APP了解农业种植的知识、远程预约参观,并通过扫描二维码进入温室参观。在温室内,游客还可通过虚拟现实技术观看不同的种植场景与未来农业的趋势。下列关于该系统的组成和功能的说法,正确的是( )
A. 被观测的植物是这个信息系统一部分,也是信息系统的用户
B. 数据最终会被存储在服务器的ROM中,方便后期分析处理
C. 虚拟现实技术的引入体现了信息系统的数据收集和输入功能
D. 游客进入温室扫描的二维码是信息系统的组成部分
6. 某农业公司利用智能温室系统实时监控植物生长环境。该系统通过传感器收集温室内的温度、湿度、光照强度等数据,并将这些信息通过串口传输到智能终端并上传至云服务器。温室管理人员可通过智能手环或面部识别进入温室,并通过专用的管理网页查看植物的生长状态和环境数据;农场游客可以在家通过手机APP了解农业种植的知识、远程预约参观,并通过扫描二维码进入温室参观。在温室内,游客还可通过虚拟现实技术观看不同的种植场景与未来农业的趋势。下列关于该系统的说法中,正确的是( )
A. 传感器与智能终端通信,没有网络协议支持
B. 刷智能手环就能进入温室,是因为手环是RFID读写器
C. 为了使用预约参观功能,游客需要连接该公司的WIFI网络
D. 为了防止设备IP冲突,云服务器应该开启DHCP协议
7. 某算法的部分流程图如下,变量ys={"110" : "A","111" : "B","10": "C","0" : "D"},raw= “111101100”,程序运行结束以后,下列说法错误的是( )
A. 程序输出为“BCAD”
B. 判断语句i < len(raw)一共执行了9次
C. 如果ys新增“101”:“F”,程序将得到相同输出
D. 这是一个单重循环
8. 某完全二叉树包含8个节点,其根节点在后序遍历序列、中序遍历序列中的位置序号分别记为x,y,则x-y的值为( )
A. 3 B. 4 C. 5 D. 6
9. 有如下函数定义:
def func(nums, k) :
que = [0] * k ; head, tail = 0, 0 ; result = []
for i in range(len(nums)) :
if head < tail and i - que[head] >= k :
head +=1
while head < tail and nums[i]>nums[que[tail-1]] :
tail -= 1
que[tail] = i
tail += 1
if i >= k - 1 :
result.append(nums[que[head]])
return result
假设输入的nums为[1, 3, -1, -3, 5], k的值为3,调用该函数以后,函数返回的结果为( )
A. [3, 3, 5,5, 5] B. [-1, -3, -3] C. [3, 3, 5] D. [-1, -3, -3,-3,-3]
10. 在图片分类任务训练神经网络时,损失函数的值(模型错误预测程度)通常会在训练开始阶段时较高,随着训练轮数的增加而逐渐下降,直到达到最小值(即最优解),但继续训练可能会导致出现过拟合现象(此时损失函数的值反而增高),小明使用如下算法确定效果最好时损失函数的值
def find_peak(arr):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] <= arr[mid - 1] and arr[mid] <= arr[mid + 1]:
return arr[mid]
elif arr[mid] > arr[mid - 1]:
right = mid - 1
else:
left = mid + 1
return -1
loss = [95, 87, 65, 48, 21, 15, 20, 28]
peak_value = find_peak(loss) # 运行完以后 peak_value 为 15
下列关于这个算法说法正确的是( )
A. 该算法的时间复杂度是O(nlog2n)
B. 该算法在单调递减的情况下也能正常运行
C. 如果连续多轮损失函数的值都是最优解(如本例中:连续3轮都是15),则该算法可以找到第一次出现最优解的轮次
D. 在本例中,函数返回时left和right分别是4,7
11. 有如下python程序段
d = [9, 3, 1, 8, 4, 2]
s = [0, 1, 2, 3, 4, 5]
n = len(d)
for i in range(1, n):
key = s[i]
j = i - 1
while j >= 0 and d[s[j]] > d[key]:
s[j + 1] = s[j]
j -= 1
s[j + 1] = key
print(s)
执行该程序过程中,第4次(从1开始计数)输出的内容为( )
A. [2, 5, 1, 4, 3, 0] B. [2, 1, 3, 0, 4, 5] C. [2, 1, 4, 3, 0, 5] D. [2, 1, 0, 3, 4, 5]
12. 使用列表d模拟链表结构(节点数大于0),每个节点包含数据区域和指针区域,head为头指针。现要判断链表是否为回文链表,如1->2->1就是回文链表。我们可以先找到中间节点,然后反转后半部分链表,最后逐节点比较前后部分链表节点的值,实现该功能的部分程序段如下,方框中应填入的正确代码为:
def func(lst, head):
p = q = head
while q != -1 and lst[q][1] != -1:
p = lst[p][1]

pre = -1; c = p
while c != -1:

a,b = head, pre
while b != -1:
if lst[a][0] != lst[b][0]:
return False
a,b = lst[a][1], lst[b][1]
return True
link_list =[[1, 3], [1, 4], [0, 1], [0, -1], [2, 0], [1, 2]]
head = 2
print(func(link_list, head)) # 输出: True
方框中要填入的代码可能如下,为了实现程序功能下列组合正确的是( )
① ②
if lst[q][1] == -1: q = 1st[q][1] else: q = - 1 if lst[q][1] != -1: q = lst[lst[q][1]][1] else: q = -l
③ ④
cn = lst[c][1] 1st[c][1] = pre pre = c c = cn c = cn lst[c][1] = pre pre = c cn = lst[c][1]
A. ①③ B. ②③ C. ①④ D. ②④
二、非选择题(本大题共4题,其中第13小题8分,第14小题8分,第15小题10分,共26分)
13. 网站注册需要有用户名和密码,编写程序以检查用户输入密码的有效性。合规的密码应满足以下要求:
(1)只能由a~z之间26个小写字母、A~Z之间26个大写字母、0~9之间10个数字以及!@#$四个特殊字符构成。
(2)密码最短长度:6个字符,密码最大长度:12个字符。
(3)大写字母,小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一个。
输入格式:输入一行不含空格的字符串。约定长度不超过100。该字符串被英文逗号分隔为多段,作为多组被检测密码。
输出格式:输出若干行,每行输出一组合规的密码。输出顺序以输入先后为序,即先输入则先输出。
输入举例:
seHJ12!@, sjdkffH$123, sdf!@&12HDHa!, 123&^YUhg@!
输出举例:
seHJ12!@
sjdkffH$123
实现上述功能的代码如下:
s=input().split(",")
for i in range(len(s)) :
if len(s[i])<=5 or len(s[i])>=13 :
________
num1=num2=num3=num4=0
flag1=flag2=flag3=flag4=0
j=0
while j < len(s[i]) :
if s[i][j] >="a" and s[i][j] <="z" :
num1+=1;flag1=1
elif s[i] [j] >="A" and s[i] [j] <="Z" :
num2+=1;flag2=1
elif s[i] [j] >="0" and s[i] [j] <="9" :
num3+=1;flag3=1
elif s[i] [j] in " !@#$" :
num4+=1;flag4=1
________
if ________ and flag1+flag2+flag3>=2 :
print(s[i])
(1)按照题目要求,判断“Ab321_@”是否是合格的密码_________(填:是/否)
(2)请在划线处填上合格的代码
14. 小明利用所学知识搭建了“小鸡自动孵化系统”,主要是为孵化箱提供一个合适的温度,模拟母鸡孵小鸡的过程。该系统结构示意图如图1所示。服务器端程序采用FlaskWeb框架编写,使用micro:bit作为智能终端,连接温度传感器采集温度数据(每分钟上传1次温度数据),传感器的数据由智能终端经IOT模块发送到Web服务器,当温度数据异常时(超过一定的温度范围),蜂鸣器会报警;也可以通过浏览器随时查询实时温度数据和历史温度数据,并且通过浏览器控制“温度调节器”调节环境温度。
请回答下列问题:
(1)“小鸡自动孵化系统”应用软件的实现架构是________(单选,填字母:A.B/S架构;B.C/S架构)
(2)孵化器初步搭建完成后,测试时,通过浏览器可以随时查看孵化箱内实时温度数据,但蜂鸣器一直报警,请结合图1分析,可能的原因是________(注:智能终端与传感器和蜂鸣器连接正常)
(3)若提交数据到Web服务器的URL为http://10.49.18.100:8080/temp id=1&val=30,则服务器端与该URL关联的路由设置语句是@app.route("_________")。
(4)图2表格中所列是某一天传感器采集到的温度值(整点时的数据),利用所给数据,求当天的平均温度,并绘图显示当天温度变化(图3)。实现代码如下,请在划线处填上合适的代码。
df=pd.read_excel("data1.xlsx")
n=len(df)
if n>60:
st=n-60
else:
st=0
Temp=[ ] ; sum=0
for i in range(n-1,st-1,-1) : #求当前查询时刻最近 1 个小时的平均温度
t=float( ) #获取温度值
Temp.append(t)
sum+=t
average=round(sum/len(df) ,1)
time=[]
for i in range(1,61): #用图表展示查询时刻之前 1 小时每分钟的温度情况
timeappend(i)
plt. ______ (time,Temp)
plt.title("孵化箱最近 1 小时温度变化,最近 1 小时平均温度是"+ ______ +"度")
pltxlabel("时刻")
plt.ylabel("温度")
plt.show( )
15. 有一个内存大小为n的内存条a,起始为空,每次进来一个任务它都会占用空余的最前面的一段或多段内存,删除任务则解放它占用的所有内存部分。
例如:n=100
进内存 S01 20 S01 占用的内存为[0,20),a存储为[0,20)
进内存 S02 10 S02 占用的内存为[20,30),a存储为[0,20), [20,30)
进内存 S03 30 S03 占用的内存为[30,60),a存储为[0,20), [20,30), [30,60)
删除 S02 内存[20,30)清空,a存储为[0,20), [30,60)
进内存 S04 20 S04 占用的内存为[20,30),[60,70),a存储为[0,20), [20,30) , [30,60), [60,70)
(1)已知内存大小为100的占用情况为[0,10),[20,25),[30,45),[70,75)。现有任务:进内存S021 30,所占用的内存区间为____________
(2)在划线处填上合适代码
a=[] #保存元素存储情况
dict1={} ;tmp=0 #将任务名按照顺序对应 0,1,2,3…以便列表作为元素下标 ans=[ ]
def add(name,v) :
start=0
i=0
while i < len(a):
now=a[i][0]-start
if now>=v :
a.insert(i, [start,start+v])
ans[name].append(start)
i+=1
break
elif _________:
a.insert(i, [start,a[i][0]])
ans[name].append(start)
v-=now
i+=1
________
i+=1
def find(key) :
L=0;R=len(a)-1
while L<=R:
m=(L+R)//2
if a[m][0]==key:
________
elif a[m][0]L=m+1
else:
R=m-1
def delete(name):
for i in range(len(ans[name])) :
t= ________
a.pop (t)
n=int(input( ))
a.append([n+1,n+1])
while 1 :
T=input().split()
if T[0]=='进内存' : #T[1]表示占用的任务名,T[2]表示任务内存大小 dict1[T[1]]=tmp
tmp+=1
ans.append([])
add(dict1[T[1]],int(T[2]))
else: #T[1]表示删除的任务名
delete(dict1[T[1]])
print(a)2024学年第一学期镇海中学考前仿真试题
技术
本试题卷分两部分,第一部分信息技术,第二部分通用技术。满分100分,考试时间90分钟。
考生注意:
1.答题前,请务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔分别填写在试题卷和
答题纸规定的位置上。
2.答题时,请按照答题纸上“注意事项”的要求,在答题纸相应的位置上规范作答,在本试题卷上
的作答一律无效。
3.非选择题的答案必须使用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先
用2B铅笔,确定后必须使用黑色字迹的签字笔或钢笔描黑,答案写在本试题卷上无效。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 下列关于数据信息说法,正确的是( )
A. 收集的数据有时不直接具备价值和意义
B. 随着传感器的应用,大数据时代数据的结构化程度越来越高
C. 电脑中的音乐数据属于模拟数据
D. 科学测量设备的提升提高了测量精度,说明修正之前的数据是错误数据,体现了数据具有真伪性
【答案】A
【解析】
【详解】本题考查数据、信息。A 选项正确,收集的数据在未经处理和分析时,有时确实不直接具备价值和意义,需要进一步挖掘和处理才能体现其价值。 B 选项错误,随着传感器的应用,大数据时代数据来源广泛且多样,包含大量非结构化数据,如文本、图像、音频等,并非结构化程度越来越高。 C 选项错误,电脑中的音乐数据是以二进制编码形式存储的,属于数字数据,而非模拟数据。模拟数据是连续变化的物理量表示的数据。 D 选项错误,科学测量设备提升提高测量精度,只能说明新数据更精确,但不能说之前的数据是错误数据,数据的真伪性强调数据本身是否真实可靠,而不是因精度不同就判定之前数据为假。 因此,本题选择 A。
2. 过去几年,西工大长期遭受美国国家安全局网络攻击,利用多种网络武器窃取敏感武器科研数据,也涉及我国关键基础设施与人员信息,引发广泛关注。下列关于提升西工大信息系统安全的说法不正确的是( )
A. 敏感设备需要开启软件防火墙来预防病毒
B. 即使在内网也应该加密传输信息,防止被中间设备窃取内容
C. 通过可移动设备(U盘)植入病毒是典型的入侵攻击手段,敏感设备应禁止可移动设备的接入
D. 合理分配用户权限,即使个别账号密码被盗取,也能控制影响范围,属于身份认证技术
【答案】D
【解析】
【详解】本题考查信息系统安全。合理分配用户权限,使得即使个别账号密码被盗取,也能控制影响范围,这属于访问控制技术,而不是身份认证技术。身份认证技术主要是验证用户的身份,如通过用户名和密码、指纹识别等方式确认用户是否是其声称的身份。因此,本题选择D。
3. 我国首款3A游戏《黑神话悟空》在国内外掀起西游热潮,游戏的角色“天命人”的流畅生动、真实的棍棒动作令人印象深刻,制作过程中大量应用了真人动作捕捉技术和AI动作预测生成技术,下列选项是关于该技术的介绍,请判断与之对应的说法正确的是( )
A. 演员演示动作过程中有多台相机360度拍摄。人工智能模型需要学习这些采集到的数据来强化模型生成动作动画的连贯性。该人工智能属于强化学习流派
B. AI可以通过风格迁移算法将某种风格的动作迁移到新的角色。例如,将武术的动作风格应用到不同体型的角色上,而无需重新捕捉。体现出跨领域人工智能
C. 人类负责主导动作的创意设计、场景规划和角色行为的核心逻辑,AI一键生成重复动画,修复不连贯动作。体现了混合增强人工智能技术
D. 在使用AI技术之前需要大量的人力把动作附到虚拟角色中,现在不需要这些劳动力了,体现出人工智能导致的失业大于就业
【答案】C
【解析】
【详解】本题考查人工智能。A 选项错误,强化学习是智能体通过与环境交互获取奖励信号以优化策略,而此场景中模型基于相机采集数据学习强化动作连贯性,更符合监督学习利用标记数据学习的特征,并非强化学习。B 选项错误,跨领域人工智能强调跨越不同领域应用知识技能,而将武术动作风格迁移到不同体型角色,仍局限于游戏动作设计这一领域,不属于跨领域应用。C 选项正确,混合增强人工智能技术旨在结合人类智能与人工智能优势,此情景中人类主导创意设计等核心内容,AI 负责生成重复动画与修复动作,实现了两者优势互补。D 选项错误,虽 AI 使部分动作附着人力需求减少,但同时催生如 AI 算法研发、数据标注等新岗位,不能简单认定人工智能导致失业大于就业。因此,本题选择C。
4. 下列关于编码的说法正确的是( )
A. 矢量图能够保证不论放大多少倍都清晰,说明其保存的信息量足够多,因此容量较大
B. 图像A为5120×2880像素,位深度为24位的位图,将其转换为2560×1440像素的16色的位图图像B。则图像A与图像B的存储容量之比为24:1
C. jpg图片作为未压缩格式,保留了图片原始内容,适合在互联网传播
D. 音频数字化过程中量化位数与声音保真度成反比
【答案】B
【解析】
【详解】本题考查数据编码。A选项错误,矢量图无论放大多少倍都清晰,是因为它基于数学公式描述图形,而非保存信息量多。其容量通常较小,因为只需记录图形的关键信息和算法,而非像位图那样记录每个像素点信息。 B选项正确,图像A存储容量计算:5120×2880×24÷8(字节),图像B存储容量计算:2560×1440×4÷8(字节),两者容量之比为(5120×2880×24÷8):(2560×1440×4÷8) = 24:1 。这里16色对应4位(2^4 = 16)。 C选项错误,jpg图片是压缩格式,通过有损压缩减少文件大小,适合在互联网传播是因其压缩后文件较小,便于传输。 D选项错误,音频数字化过程中,量化位数越高,对声音信号的划分越细,声音保真度越高,二者成正比。因此,本题选择B。
5. 某农业公司利用智能温室系统实时监控植物生长环境。该系统通过传感器收集温室内的温度、湿度、光照强度等数据,并将这些信息通过串口传输到智能终端并上传至云服务器。温室管理人员可通过智能手环或面部识别进入温室,并通过专用的管理网页查看植物的生长状态和环境数据;农场游客可以在家通过手机APP了解农业种植的知识、远程预约参观,并通过扫描二维码进入温室参观。在温室内,游客还可通过虚拟现实技术观看不同的种植场景与未来农业的趋势。下列关于该系统的组成和功能的说法,正确的是( )
A. 被观测的植物是这个信息系统一部分,也是信息系统的用户
B. 数据最终会被存储在服务器的ROM中,方便后期分析处理
C. 虚拟现实技术的引入体现了信息系统的数据收集和输入功能
D. 游客进入温室扫描的二维码是信息系统的组成部分
【答案】D
【解析】
【详解】本题考查信息系统的组成和功能。A 选项错误,被观测的植物是信息系统监测的对象,并非信息系统的用户。用户一般指能够主动与信息系统进行交互,利用系统功能的人,如温室管理人员、农场游客等。 B 选项错误,服务器通常使用硬盘等存储设备来存储数据,方便大量数据的长期存储和后期分析处理,ROM 是只读存储器,一般用于存储计算机启动时所需的基本程序和数据,不适合用于存储大量动态变化且需频繁读写的业务数据。 C 选项错误,虚拟现实技术在该场景中主要用于为游客提供虚拟的参观体验,让游客观看不同种植场景与未来农业趋势,体现的是信息系统的输出功能,将处理后的数据以虚拟
现实的形式呈现给用户,而非数据收集和输入功能。 D 选项正确,游客进入温室扫描的二维码包含了身份验证、权限管理等相关信息,是信息系统实现身份识别、访问控制等功能的重要组成部分,属于信息系统的组成部分。因此,本题选择 D。
6. 某农业公司利用智能温室系统实时监控植物生长环境。该系统通过传感器收集温室内的温度、湿度、光照强度等数据,并将这些信息通过串口传输到智能终端并上传至云服务器。温室管理人员可通过智能手环或面部识别进入温室,并通过专用的管理网页查看植物的生长状态和环境数据;农场游客可以在家通过手机APP了解农业种植的知识、远程预约参观,并通过扫描二维码进入温室参观。在温室内,游客还可通过虚拟现实技术观看不同的种植场景与未来农业的趋势。下列关于该系统的说法中,正确的是( )
A. 传感器与智能终端通信,没有网络协议支持
B. 刷智能手环就能进入温室,是因为手环是RFID读写器
C. 为了使用预约参观功能,游客需要连接该公司的WIFI网络
D. 为了防止设备IP冲突,云服务器应该开启DHCP协议
【答案】A
【解析】
【详解】本题考查信息系统的应用。
A项正确,将这些信息通过串口传输到智能终端,因此不需要网络协议支持。
B项错误,智能手环不是读写器,应该是发射端。
C项错误,预约参观功能通过手机APP实现,无需连接公司WiFi网络,移动通信网络即可满足需求。
D项错误,云服务器是在云端,不在系统的内网中。云服务器开不开启 DHCP 对系统内网的 IP 没有作用。防止 IP 冲突应开启内网服务器的 DHCP 才行。
故选A。
7. 某算法的部分流程图如下,变量ys={"110" : "A","111" : "B","10": "C","0" : "D"},raw= “111101100”,程序运行结束以后,下列说法错误的是( )
A. 程序输出为“BCAD”
B. 判断语句i < len(raw)一共执行了9次
C. 如果ys新增“101”:“F”,程序将得到相同输出
D. 这是一个单重循环
【答案】B
【解析】
【详解】本题考查算法流程图的执行。分析程序算法流程图可知,
程序输出为“BCAD”。
i初值为0,因此判断语句i < len(raw)一共执行了10次。
如果ys新增“101”:”F”程序将得到相同输出。因为在程序执行过程中,没有出现“101”这个子串,所以新增“101”:“F”不会影响输出。
这是一个单重循环。
故选B。
8. 某完全二叉树包含8个节点,其根节点在后序遍历序列、中序遍历序列中的位置序号分别记为x,y,则x-y的值为( )
A. 3 B. 4 C. 5 D. 6
【答案】A
【解析】
【详解】本题考查二叉树。 完全二叉树是一种特殊的二叉树,除了最后一层外,每一层上的节点数都是满的,并且最后一层上的节点都集中在该层最左边的若干位置。已知完全二叉树有8个节点,后序遍历的
顺序是先左子树,再右子树,最后根节点。对于此二叉树,根节点在后序遍历序列中的位置序号x=8。 接着求中序遍历序列:中序遍历的顺序是先左子树,再根节点,最后右子树。根节点在中序遍历序列中的位置序号y=5。 x y=8 5=3。因此,本题选择A。
9. 有如下函数定义:
def func(nums, k) :
que = [0] * k ; head, tail = 0, 0 ; result = []
for i in range(len(nums)) :
if head < tail and i - que[head] >= k :
head +=1
while head < tail and nums[i]>nums[que[tail-1]] :
tail -= 1
que[tail] = i
tail += 1
if i >= k - 1 :
result.append(nums[que[head]])
return result
假设输入的nums为[1, 3, -1, -3, 5], k的值为3,调用该函数以后,函数返回的结果为( )
A. [3, 3, 5,5, 5] B. [-1, -3, -3] C. [3, 3, 5] D. [-1, -3, -3,-3,-3]
【答案】C
【解析】
【详解】本题考查队列。该函数实现了在给定数组 nums 中,以长度为 k 的窗口滑动,每次滑动窗口找到窗口内的最大值,并将这些最大值按顺序存入 result 列表返回。 它使用一个队列 que 来辅助记录窗口内元素的索引。head 和 tail 分别表示队列的头和尾。因此,当输入的nums为[1, 3, -1, -3, 5], k的值为3时,第一个窗口:处理 [1, 3, -1],这三个数中最大值为 3,que[head] 存储的是最大值 3 的索引 1,所以第一个加入 result 的值是 3。 第二个窗口:处理 [3, -1, -3],此窗口内最大值还是 3,que[head] 对应索引指向的最大值仍为 3,所以第二个加入 result 的值同样是 3。 第三个窗口:处理 [-1, -3, 5],该窗口内最大值为 5,que[head] 存储的是最大值 5 的索引 4,所以第三个加入 result 的值为 5。 整个过程中,result 依次记录每个窗口内的最大值,最终 result 的值为 [3, 3, 5]。因此,本题选择C。
10. 在图片分类任务训练神经网络时,损失函数的值(模型错误预测程度)通常会在训练开始阶段时较高,
随着训练轮数的增加而逐渐下降,直到达到最小值(即最优解),但继续训练可能会导致出现过拟合现象(此时损失函数的值反而增高),小明使用如下算法确定效果最好时损失函数的值
def find_peak(arr):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] <= arr[mid - 1] and arr[mid] <= arr[mid + 1]:
return arr[mid]
elif arr[mid] > arr[mid - 1]:
right = mid - 1
else:
left = mid + 1
return -1
loss = [95, 87, 65, 48, 21, 15, 20, 28]
peak_value = find_peak(loss) # 运行完以后 peak_value 为 15
下列关于这个算法说法正确的是( )
A. 该算法的时间复杂度是O(nlog2n)
B. 该算法在单调递减的情况下也能正常运行
C. 如果连续多轮损失函数的值都是最优解(如本例中:连续3轮都是15),则该算法可以找到第一次出现最优解的轮次
D. 在本例中,函数返回时left和right分别是4,7
【答案】D
【解析】
【详解】本题考查二分查找。A选项错误,该算法采用二分查找的思想,每次迭代都将搜索区间缩小一半。 设数组长度为n,最坏情况下,需要进行log2n次迭代,每次迭代的操作次数是常数级别的,所以时间复杂度是O(log2n)。B选项错误,当数组单调递减时,如[95,87,65,48,21],进入循环后,mid取中间位置,arr[mid]总是小于arr[mid-1],会使得left=mid+1,最终会导致数组越界等错误情况,无法正常运行。C选项错误,该算法的逻辑是寻找局部最小值(即满足arr[mid]<=arr[mid 1]且arr[mid]<=arr[mid+1]的点),当存在连续多轮损失函数的值都是最优解时,只要其中一个满足局部最小值的条件,算法就能找到,但不一定是第一次出现最优解的轮次。D选项正确,对于数组loss=[95,87,65,48,21,15,20,
28]: 初始left=0,right=7,mid=(0+7)//2=3,arr[3]=48,arr[2]=65,48<65,所以left=mid+1=4。 第二次,mid=(4+7)//2=5,arr[5]=15,arr[4]=21,arr[6]=20,满足if条件,函数返回15,此时left和right分别是4,7。因此本题选择D。
11. 有如下python程序段
d = [9, 3, 1, 8, 4, 2]
s = [0, 1, 2, 3, 4, 5]
n = len(d)
for i in range(1, n):
key = s[i]
j = i - 1
while j >= 0 and d[s[j]] > d[key]:
s[j + 1] = s[j]
j -= 1
s[j + 1] = key
print(s)
执行该程序过程中,第4次(从1开始计数)输出的内容为( )
A. [2, 5, 1, 4, 3, 0] B. [2, 1, 3, 0, 4, 5] C. [2, 1, 4, 3, 0, 5] D. [2, 1, 0, 3, 4, 5]
【答案】C
【解析】
【详解】本题考查插入排序。这是一个插入排序的变体,它不是直接对d列表进行排序,而是对d列表元素的索引列表s进行排序,排序依据是d列表中对应索引位置的元素值。 插入排序在每次循环时,会将当前元素插入已排序部分的合适位置。 当 i=4 时,意味着要对 d 列表中的前 5 个元素进行排序,这 5 个元素为 [9,3,1,8,4]。 经过前面几次循环,到 i=4 时,要将索引 4 对应的元素 d[4]=4 插入已排序的前 4 个元素 [1,3,8,9](对应的索引为 [2,1,3,0])的合适位置。 插入后,前 5 个元素按升序排列为 [1,3,4,8,9],对应的索引分别为 [2,1,4,3,0]。 而此时索引 5 对应的值(即 s[5])并未参与这次排序,它仍保持初始值 5。 所以此时完整的 s 列表为 [2,1,4,3,0,5]。因此,本题选择C。
12. 使用列表d模拟链表结构(节点数大于0),每个节点包含数据区域和指针区域,head为头指针。现要判断链表是否为回文链表,如1->2->1就是回文链表。我们可以先找到中间节点,然后反转后半部分链表,最后逐节点比较前后部分链表节点的值,实现该功能的部分程序段如下,方框中应填入的正确代码为:
def func(lst, head):
p = q = head
while q != -1 and lst[q][1] != -1:
p = lst[p][1]

pre = -1; c = p
while c != -1:

a,b = head, pre
while b != -1:
if lst[a][0] != lst[b][0]:
return False
a,b = lst[a][1], lst[b][1]
return True
link_list =[[1 3], [1, 4], [0, 1], [0, -1], [2, 0], [1, 2]]
head = 2
print(func(link_list, head)) # 输出: True
方框中要填入的代码可能如下,为了实现程序功能下列组合正确的是( )
① ②
if lst[q][1] == -1: q = 1st[q][1] else: q = - 1 if lst[q][1] != -1: q = lst[lst[q][1]][1] else: q = -l
③ ④
cn = lst[c][1] 1st[c][1] = pre pre = c c = cn lst[c][1] = pre pre = c
c = cn cn = lst[c][1]
A. ①③ B. ②③ C. ①④ D. ②④
【答案】B
【解析】
【详解】本题考查链表。在寻找链表中间节点时,通常使用快慢指针的方法。快指针每次移动两步,慢指针每次移动一步。 在代码中,p 是慢指针,q 是快指针。在第一个while循环中,表示只要快指针没有到达链表末尾,就继续循环。在循环体中,p=lst[p][1] 让慢指针移动一步。对于快指针,应该每次移动两步,所以①框处应填入 q=lst[lst[q][1]][1],这样才能保证快指针每次移动两步,从而找到中间节点。所以①错误,②正确。 反转链表的常见方法是迭代法。在迭代反转链表时,需要保存当前节点的下一个节点(设为 cn),然后将当前节点的指针指向前一个节点(pre),接着更新 pre 为当前节点,c 为保存的下一个节点。 所以在②框处代码为 cn=lst[c][1];lst[c][1]=pre;pre=c;c=cn 可以正确实现链表反转。而④处代码顺序错误,先执行 c=cn ,此时cn并未事先赋值。所以③正确,④错误。 综上,为了实现程序功能,正确的组合是②③。因此,本题选择B。
二、非选择题(本大题共4题,其中第13小题8分,第14小题8分,第15小题10分,共26分)
13. 网站注册需要有用户名和密码,编写程序以检查用户输入密码的有效性。合规的密码应满足以下要求:
(1)只能由a~z之间26个小写字母、A~Z之间26个大写字母、0~9之间10个数字以及!@#$四个特殊字符构成。
(2)密码最短长度:6个字符,密码最大长度:12个字符。
(3)大写字母,小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一个。
输入格式:输入一行不含空格的字符串。约定长度不超过100。该字符串被英文逗号分隔为多段,作为多组被检测密码。
输出格式:输出若干行,每行输出一组合规的密码。输出顺序以输入先后为序,即先输入则先输出。
输入举例:
seHJ12!@, sjdkffH$123, sdf!@&12HDHa!, 123&^YUhg@!
输出举例:
seHJ12!@
sjdkffH$123
实现上述功能的代码如下:
s=input().split(",")
for i in range(len(s)) :
if len(s[i])<=5 or len(s[i])>=13 :
________
num1=num2=num3=num4=0
flag1=flag2=flag3=flag4=0
j=0
while j < len(s[i]) :
if s[i][j] >="a" and s[i][j] <="z" :
num1+=1;flag1=1
elif s[i] [j] >="A" and s[i] [j] <="Z" :
num2+=1;flag2=1
elif s[i] [j] >="0" and s[i] [j] <="9" :
num3+=1;flag3=1
elif s[i] [j] in " !@#$" :
num4+=1;flag4=1
________
if ________ and flag1+flag2+flag3>=2 :
print(s[i])
(1)按照题目要求,判断“Ab321_@”是否是合格的密码_________(填:是/否)
(2)请在划线处填上合格的代码
【答案】 ①. continue ②. j+=1 ③. num1+num2+num3+num4==len(s[i]) and flag4==1 ④. 否
【解析】
【详解】本题考查Python程序综合应用。
①密码最短长度:6个字符,密码最大长度:12个字符。当不在这个范围内,则使用continue跳过本次循环,故填continue。
②此处添加 j += 1,以保证 while 循环能够正常遍历字符串中的每个字符。
③只能由a~z之间26个小写字母、A~Z之间26个大写字母、0~9之间10个数字以及!@#$四个特殊字符构成;大写字母,小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一个。此处填num1+num2+num3+num4==len(s[i]) and flag4==1,以检查密码是否满足字符类型和特殊字符的要求。
④密码“Ab321_@”不符合题目要求,因为“_”字符不在题目要求的规定字符范围内,因此不是合格的密码。
14. 小明利用所学知识搭建了“小鸡自动孵化系统”,主要是为孵化箱提供一个合适的温度,模拟母鸡孵小鸡的过程。该系统结构示意图如图1所示。服务器端程序采用FlaskWeb框架编写,使用micro:bit作为智能终端,连接温度传感器采集温度数据(每分钟上传1次温度数据),传感器的数据由智能终端经IOT模块发送到Web服务器,当温度数据异常时(超过一定的温度范围),蜂鸣器会报警;也可以通过浏览器随时查询实时温度数据和历史温度数据,并且通过浏览器控制“温度调节器”调节环境温度。
请回答下列问题:
(1)“小鸡自动孵化系统”应用软件的实现架构是________(单选,填字母:A.B/S架构;B.C/S架构)
(2)孵化器初步搭建完成后,测试时,通过浏览器可以随时查看孵化箱内实时温度数据,但蜂鸣器一直报警,请结合图1分析,可能的原因是________(注:智能终端与传感器和蜂鸣器连接正常)
(3)若提交数据到Web服务器的URL为http://10.49.18.100:8080/temp id=1&val=30,则服务器端与该URL关联的路由设置语句是@app.route("_________")。
(4)图2表格中所列是某一天传感器采集到的温度值(整点时的数据),利用所给数据,求当天的平均温度,并绘图显示当天温度变化(图3)。实现代码如下,请在划线处填上合适的代码。
df=pd.read_excel("data1.xlsx")
n=len(df)
if n>60:
st=n-60
else:
st=0
Temp=[ ] ; sum=0
for i in range(n-1,st-1,-1) : #求当前查询时刻最近 1 个小时的平均温度
t=float( ) #获取温度值
Temp.append(t)
sum+=t
average=round(sum/len(df) 1)
time=[]
for i in range(1,61): #用图表展示查询时刻之前 1 小时每分钟的温度情况
time.append(i)
plt. ______ (time,Temp)
plt.title("孵化箱最近 1 小时温度变化,最近 1 小时平均温度是"+ ______ +"度")
plt.xlabel("时刻")
plt.ylabel("温度")
plt.show( )
【答案】 ①. A ②. 蜂鸣器故障;该传感器所在温度异常;程序阈值设置不合理 ③. /temp ④. df["温度"][i][0:-1]或df.at[i,"温度"][0:-1] ⑤. plot ⑥. str(average)
【解析】
【详解】本题考查信息系统搭建、pandas数据处理。
①B/S(浏览器 / 服务器)架构是通过浏览器来访问服务器获取服务,用户不需要安装专门的客户端软件。C/S(客户端 / 服务器)架构需要在用户端安装专门的客户端软件。题目中提到可以通过浏览器随时查询实时温度数据和历史温度数据,符合 B/S 架构特点,所以选 A。
②蜂鸣器报警的条件是温度数据异常(超过一定的温度范围),在智能终端与传感器和蜂鸣器连接正常的情况下,蜂鸣器一直报警,很可能是该温度传感器采集到的温度一直处于超过设定范围的状态,或者从硬件层面分析,蜂鸣器自身故障会致其持续报警,从软件方面分析,也可能是程序中阈值设置不合理。
③Flask 框架中,@app.route装饰器用于定义路由,括号内的字符串就是与该函数关联的 URL 路径,这里提交数据的 URL 为http://10.49.18.100:8080/temp id=1&val=30,所以路由设置语句是@app.route("/temp")。本空为/temp。
④该处需要获取温度值,可以通过df["温度"][i]选取数据框 “温度” 列第i行的值,因该值带 “℃”,通过切片方法[0:-1]去掉 “℃” 留数字供后续处理;另外df.at[i,"温度"]也可获取指定行 “温度” 列的值。因此,该空为df["温度"][i][0:-1]或df.at[i,"温度"][0:-1]。
⑤该空需要以time作 x 轴数据、Temp作 y 轴数据,绘制图3所示折线图,而plot函数可以实现绘制折线图。因此该空为plot。
⑥plt.title()函数用于设置图表标题,需要将平均温度值显示在标题中,average是浮点数类型,需要通过str()函数转换为字符串类型才能与其他字符串拼接。因此,该空为str(average)。
15. 有一个内存大小为n的内存条a,起始为空,每次进来一个任务它都会占用空余的最前面的一段或多段内存,删除任务则解放它占用的所有内存部分。
例如:n=100
进内存 S01 20 S01 占用的内存为[0,20),a存储为[0,20)
进内存 S02 10 S02 占用的内存为[20,30),a存储为[0,20), [20,30)
进内存 S03 30 S03 占用的内存为[30,60),a存储为[0,20), [20,30), [30,60)
删除 S02 内存[20,30)清空,a存储为[0,20), [30,60)
进内存 S04 20 S04 占用的内存为[20,30),[60,70),a存储为[0,20), [20,30) , [30,60), [60,70)
(1)已知内存大小为100的占用情况为[0,10),[20,25),[30,45),[70,75)。现有任务:进内存S021 30,所占用的内存区间为____________
(2)在划线处填上合适代码
a=[] #保存元素存储情况
dict1={} ;tmp=0 #将任务名按照顺序对应 0,1,2,3…以便列表作为元素下标 ans=[ ]
def add(name,v) :
start=0
i=0
while i < len(a):
now=a[i][0]-start
if now>=v :
a.insert(i, [start,start+v])
ans[name].append(start)
i+=1
break
elif _________:
a.insert(i, [start,a[i][0]])
ans[name].append(start)
v-=now
i+=1
________
i+=1
def find(key) :
L=0;R=len(a)-1
while L<=R:
m=(L+R)//2
if a[m][0]==key:
________
elif a[m][0]L=m+1
else:
R=m-1
def delete(name):
for i in range(len(ans[name])) :
t= ________
a.pop (t)
n=int(input( ))
a.append([n+1,n+1])
while 1 :
T=input().split()
if T[0]=='进内存' : #T[1]表示占用的任务名,T[2]表示任务内存大小 dict1[T[1]]=tmp
tmp+=1
ans.append([])
add(dict1[T[1]],int(T[2]))
else: #T[1]表示删除的任务名
delete(dict1[T[1]])
print(a)
【答案】 ① [10,20),[25,30),[45,60) ②. now!=0 ③. start = a[i][1] ④. return m ⑤. find(ans[name][i])
【解析】
【详解】本题考查Python程序综合应用。
(1)已知内存大小为100的占用情况为[0,10),[20,25),[30,45),[70,75)。现有任务:进内存S021 30,会先占用前面空余内存,10~20之间,25~30之间,45~60之间,因此所占用的内存区间为[10,20),[25,30),[45,60)。
(2)第一空,now=a[i][0]-start,计算当前位置 a[i][0] 与 start 的差值,得到当前可用的内存空间大小,如果不满足if判断条件,且now不为空,则执行elif,将该段剩余空间全部用完,故判断条件是now!=0。
第二空,当分配完区间之后,需要更新 start 变量为当前区间的结束位置,故填start = a[i][1]。
第三空,如果中间位置的元素的起始位置等于 key,返回该位置m,故填return m。
第四空,使用 find 函数找到该元素在 a 中的位置,并使用pop函数删除,故填find(ans[name][i])。
同课章节目录