浙江省强基联盟2024-2025学年高三上学期8月联考信息技术试题 (解析版)

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

浙江省强基联盟2024-2025学年高三上学期8月联考信息技术试题 (解析版)

资源简介

浙江强基联盟 2024 年 8 月高三联考 技术 试题
浙江强基联盟研究院 命制
考生须知:
1.答题前,请务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔分别填写在试题卷和答题纸规定的位置上。
2.答题时,请按照答题纸上“注意事项”的要求,在答题纸相应的位置上规范作答,在本试题卷上的作答一律无效。
3.非选择题的答案必须使用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后必须用黑色字迹的签字笔或钢笔描黑。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 某校推出“互联网+明厨亮灶”系统,利用互联网技术通过视频监控对食堂后厨进行实时直播,监控视频和用户观看数据自动上传至云端保存。学生、家长及学校负责人可通过手机APP或小程序实时查看厨房环境卫生、食品加工操作等情况。根据阅读材料,下列关于数据与数据处理的说法,正确的是( )
A. 用户观看的视频是模拟信号
B. 实时直播的视频数据适用于批处理
C. 该系统中的视频数据属于结构化数据
D. 学生和家长均可查看食堂情况体现信息的共享性
2. 某校推出“互联网+明厨亮灶”系统,利用互联网技术通过视频监控对食堂后厨进行实时直播,监控视频和用户观看数据自动上传至云端保存。学生、家长及学校负责人可通过手机APP或小程序实时查看厨房环境卫生、食品加工操作等情况。下列关于该信息系统组成与功能的说法,正确的是( )
A. 该系统的用户是学生、家长及学校负责人
B. 该系统的数据处理功能主要体现在数据的收集和输入上
C. 系统中的数据保存在云端,体现数据的传输和存储功能
D. 网络故障会影响该系统的使用,说明信息系统本身有安全隐患
3. 某校推出“互联网+明厨亮灶 ”系统,利用互联网技术通过视频监控对食堂后厨进行实时直播, 监控视频和用户观看数据自动上传至云端保存。学生、家长及学校负责人可通过手机 APP 或小程序实 时查看厨房环境卫生、食品加工操作等情况。为提升该系统的安全性,以下方法不可行的是( )
A. 限制视频直播的观看权限,仅允许授权用户通过验证后查看
B. 在厨房内增加更多的监控摄像头,以提高视频监控的覆盖范围
C. 定期更换系统登录密码,并使用复杂度高的密码以增强账户安全
D. 对上传至云端的数据进行加密处理,确保数据传输和存储的安全
4. 如图所示为某二进制数据的图形编码,使用□表示 0,■表示 1,逐行编码,下列说法正确的是( )
A. 存储图中数据需要 32 字节 B. 该编码过程实现了数模转换
C. 该数据第 2 个字节的编码是 11011101 D. 该图形编码可表示十六进制数 DD 5B 08 FA
5. 智能垃圾箱通过无线通信模块连接城市管理系统,通过大量前期学习,垃圾箱能够识别投放物品 的类型,自动分类垃圾。为方便市民使用,智能垃圾桶还配备了触摸屏。关于智能垃圾箱的说法,正确的是( )
A. 智能垃圾桶进行无线通信不需要传输介质
B. 无线通信模块的功能可以通过 RFID 技术实现
C. 触摸屏既是该系统的输入设备,又是输出设备
D. 智能垃圾桶接入的系统网络按覆盖范围分属于局域网
6. 智能垃圾箱通过无线通信模块连接城市管理系统,通过大量前期学习,垃圾箱能够识别投放物品的类型,自动分类垃圾。为方便市民使用,智能垃圾桶还配备了触摸屏。以下有关人工智能的说法,正确的是( )
A. 增大前期训练的数据量,能降低智能垃圾箱识别的错误率
B. 市民使用智能垃圾箱回收垃圾形成“混合增强智能 ”形态
C. 智能垃圾箱运用符号主义人工智能,通过预定义规则进行分类
D. 智能垃圾箱的未来发展潜力巨大,不会对社会产生负面影响
7. 某导航软件根据车速判定堵塞情况,并用不同颜色标示,其判定算法如流程图所示,以下代码与流程图功能一致的是( )
A. if x<50: if x<=20 : print("红") else: print("黄") else: print("绿") B. s="红" if x>=50 : s="绿" else: s="黄" print(s) C. s="绿" if x<20: s="红" elif x>=20 s="黄" print(s) D s="黄" if x<20: s="红" elif x>=50 s="绿" print(s)
A. A B. B C. C D. D
8. 队列A从队首到队尾的元素依次为1,2,3,4,栈B初始为空。约定以下操作:T操作指队列A中元素出队,若出队元素为奇数则乘2后入栈B,若为偶数则除以2后入队A;Q操作指栈B中元素出栈后入队A。经过TQTTTQT操作后,队列A中从队首到队尾的元素依次为( )
A. 1,2,6,1 B. 2,1,2,6 C. 6,2,2,1 D. 2,6,1,2
9. 某完全二叉树的中序遍历结果为“天生我才必有用 ”,其前序遍历结果为( )
A. 天生我才必有用 B. 天我生必用有才 C. 才生天我有必用 D. 才生有天我必用
10. 有如下程序段:
# 随机生成 5 个正整数并存入列表 s 中,代码略
def sort_indices(s) :
n=len(s)
y=[i for i in range(n)] # 生成序列 0 ~ n-1
for i in range(n-1) :
for j in range(n-i-1):
if s[y[j]]>=s[y [j+1]] :
y [j],y [j+1]=y [j+1],y[j]
return y
执行上述程序后,若返回的结果为[2,1,0,4,3],下列选项中,列表 s 中各元素值可能的是( )
A. [3,2,1,5,4] B. [4,2,1,5,3] C. [5,2,1,3,4] D. [3,2,5,1,4]
11. 某二分查找算法用于查找非降序序列arr中小于等于key的最后一个元素位置,python代码如下:
arr=[1,1,4,4,4,5,5,5] key=int(input())
L=0;R=len(arr)-1
while (1) : mid=(L+R)//2
if (2) :
L=mid+1 else:
R=mid-1
print(R)
划线(1)(2)处可供选择的语句有:①L则正确的代码应为( )
A. ①③ B. ①④ C. ②③ D. ②④
12. 某无序链表图a所示,对链表数据进行整理,将所有小于x的节点通过头插的方法逐个放置在链表前面。例如,当x等于3时,对数据进行整理的结果如图b所示:
图 a 图 b
实现程序代码如下:
a=[[1,1], [4,2],[2,3], [3,4],[5,5], [2,-1]]
p=head=0
x=int(input())
frt=-1
while p!=-1 :
if a[p][0] < x and p != head :
pp=p # 提取出要移动的元素
else :
frt=p
p=a[p] [1]
方框处可填入的代码为( )
A. a[pp] [1]=head head=pp a[frt] [1]=a[p] [1] p=a[p] [1] B. a[frt] [1]=a[p] [1] p=a[p] [1] a[pp] [1]=head head=pp C. a[frt] [1]=a[p] [1] a[p][1]=head p=a[p] [1] head=pp D. a[pp] [1]=head head=pp a[p][1]=a[frt] [1] p=a[p] [1]
A. A B. B C. C D. D
二、非选择题(本大题共3小题,第13题7分,第14题10分,第15题9分,共26分)
13. 七段数码管常用于显示数字,如图a所示。给每段数码管编号,通过点亮不同的段显示不同的数字。例如,数字0需要点亮A,B,C,D,E,F段,数字1需要点亮B,C段。数码管经常发生故障:常亮和不亮。系统会根据运行日志判定数码管是否发生故障,如图b所示,日志由多行字符串组成,每行字符串中第一个字符为显示的数字,后为亮起的数码管编号。例如,“1BC”表示显示数字1时,B、C段亮起。日志中可能有同一个数字的多次记录,但不会自相矛盾。
编写程序,用7个字符来标示数码管的检测结果。对于每一段,如果有证据表明它常亮,标记为“X”,若有证据表明它不亮,标记为“x”,若正常,标记为“0”。
图 a 图 b
(1)某段日志如图 b 所示,则检验结果为____(单选,填字母)
A.x00X000 B.x00x000 C.X00x000 D.X00X000
(2)实现上述功能的 python 程序如下,请在划线处填入合适的代码
check=[[1,1,1,1,1,1,0],[0,1,1,0,0,0,0],[1,1,0,1,0,1,1],[1,1,1,1,0,0,1],[0,1,1,0,1,0,1],[1,0,1,1,1,0,1],[1,0,1,1,1,1,1],[1,1,1,0,0,0,0],[1,1,1,1,1,1,1],[1,1,1,1,1,0,1]]
ans=['0']*7
f=open("log.txt")
line=f.readline().strip ()
while line:
t=①____
L=len(line)
a=[0] * 7
for j in range(1,L) :
a[②____] = 1
for j in range(7):
if ③____:
ans[j]='X'
elif a[j]==0 and check[t][j]==1 :
ans[j]='x'
line=f.readline().strip () # 读取一行数据
f.close() # 关闭文件
for i in range(7):
print(ans[i],end="") # 输出检测结果
14. 小王家安装了智能家居系统,房间内的灯可根据环境光线的强弱自动开启或关闭。现统计7月1日到7月7日6:00-18:00的开、关灯时间,部分数据如图a所示。编写python程序统计每天灯光开启的总时间,并绘制如图b所示的柱形图。
图 a 图 b
(1)统计及可视化部分程序如下,请补充完善:
import pandas as pd
import matplotlib.pyplot as plt
def tran(time) : # 将时间字符串转换为秒
return int(time[0:2])*3600+int(time[3:5])*60+int(time[6:8])
df = pd.read_excel('light_data.xlsx')
day = []
for d in df["date"] :
day.append(①____)
df.insert(0," 日期",day) # 插入“ 日期 ”列,并初始化为 day
for i in df.index:
on = df.at[i, 'on']
off = df.at[i, 'off'] # 通过行标签和列标签选取单个值
df['时长'] = ②____ # 计算开灯时长(单位:分钟)
dfh=df.groupby (' 日期',as_index=False) ['时长'].sum()
plt.bar(③____, dfh['时长'])
# 设置绘图参数,显示如图b 所示的柱形图,代码略
(2) 自控光照系统的结构示意图如图 c 所示:
①下列关于该系统设计的说法,正确的是____ (多选,填字母)。
A.可以使用红外传感器监测否有人经过
B.服务器故障不影响手机控制灯光
C.IOT 模块故障会影响手机端浏览历史开关灯数据
D.搭建完成后运行程序发现其中错误属于动态测试
②在智能终端中编写如下代码:err,resp=Obloq.get("input id=1&val="+str(t),10000)来实时传送所需数据,服务器端接收到数据并存储,则路由的设置语句是:@app.route("____")
③智能家居系统可以通过手机 app 控制灯光,查看相应数据,该系统采用的开发模式为____,
(选填:A.B/S 模式;B.C/S 模式),采用该开发模式的优点有____。
15. 小明开发了一款股票交易复盘软件,软件可以跟踪一段时期内某支股票的价格走势,并计算最佳买入和卖出时间来获得最大收益(1股收益=卖出价格-买入价格)。小明可同时拥有多股该股票,但每天最多只能进行一次操作(即买入1股、卖出1股或什么都不做)。
如图所示,软件跟踪获取某支股票最近9天的价格分别为10,5,4,7,9,12,6,2,10,则可以在第2、3、8天买入,在第5、6、9天卖出,此时可获取的最大收益为-5-4+9+12-2+10=20。
计算最大收益的算法设计如下:
①将跟踪获取的股票价格存入数组a中;
②设计“买卖计划队列”,记为q,h指针指向当前最小买入价格,初始值为0;
③遍历股价数组a,如果当天股价a[i]大于计划队列q中的最小买入价格,将计划表内h指针指向的价格买入,并将当天股价a[i]插入到有序队列q中,标记为卖出,获取“暂时收益”。但为使收益最大化,该价格不进行真实卖出操作,之后如果遇到更高股价,则取消此前卖出标记,并将更高股价标记为卖出,获取更大“暂时收益”。
④若当天股价a[i]小于等于计划队列q中的最小买入价格,直接将当天股价a[i]插入到有序队列q中。如此往复,直到价格数组a遍历结束。
(1)若天数为7天,每天股票价格为2,5,4,3,8,8,6,则能获得的最大收益为____。
(2)定义函数q_sort(h,t),功能为对买卖计划队列中的股价数据进行升序排序,代码如下。
def q_sort(h,t):
tmp=q[t]
i=t-1
while i>=h and
q [i+1]=q [i]
i-=1
q [i+1]=tmp
方框处的代码有误,请更正:____
(3)定义函数 pq_push(x,f),功能为维护买卖计划队列,请完成划线处代码填空。
def pq_push(x,f) :
global t # 定义变量 t 为全局变量
q [t] [0]=x
q [t] [1]=f
t=t+1
q_sort( )
(4)实现上述算法的程序代码如下,请完成划线处代码填空。
# 输入天数 n 及每天的股价数据a,代码略
h=t=0
pq_push(a[0],0) ans=0
for i in range(1,n) :
if a[i]>q [h] [0]:
①____
if q[h][1]==0:
h+=1
else :
q [h] [1]=0
pq_push(a[i]1)
else :
②____
print(ans)浙江强基联盟 2024 年 8 月高三联考 技术 试题
浙江强基联盟研究院 命制
考生须知:
1.答题前,请务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔分别填写在试题卷和答题纸规定的位置上。
2.答题时,请按照答题纸上“注意事项”的要求,在答题纸相应的位置上规范作答,在本试题卷上的作答一律无效。
3.非选择题的答案必须使用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后必须用黑色字迹的签字笔或钢笔描黑。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 某校推出“互联网+明厨亮灶”系统,利用互联网技术通过视频监控对食堂后厨进行实时直播,监控视频和用户观看数据自动上传至云端保存。学生、家长及学校负责人可通过手机APP或小程序实时查看厨房环境卫生、食品加工操作等情况。根据阅读材料,下列关于数据与数据处理的说法,正确的是( )
A. 用户观看的视频是模拟信号
B. 实时直播的视频数据适用于批处理
C. 该系统中的视频数据属于结构化数据
D. 学生和家长均可查看食堂情况体现信息的共享性
【答案】D
【解析】
【详解】本题考查数据与数据处理。
A. 用户观看的视频是数字信号,而不是模拟信号。模拟信号是连续的,而数字信号是离散的,视频在传输和存储过程中通常会被转换为数字信号。
B. 实时直播的视频数据需要实时处理,而不是批处理。批处理是指将数据积累到一定数量后再进行处理,不适用于需要实时反馈的场景。
C. 该系统中的视频数据属于非结构化数据。结构化数据是指具有固定格式或有限长度的数据,而视频数据没有固定的格式和长度。
D. 学生和家长均可查看食堂情况,这体现了信息的共享性。信息共享是指信息可以被多个用户访问和使用。
故选D。
2. 某校推出“互联网+明厨亮灶”系统,利用互联网技术通过视频监控对食堂后厨进行实时直播,监控视频和用户观看数据自动上传至云端保存。学生、家长及学校负责人可通过手机APP或小程序实时查看厨房环境卫生、食品加工操作等情况。下列关于该信息系统组成与功能的说法,正确的是( )
A. 该系统的用户是学生、家长及学校负责人
B. 该系统的数据处理功能主要体现在数据的收集和输入上
C. 系统中的数据保存在云端,体现数据的传输和存储功能
D. 网络故障会影响该系统的使用,说明信息系统本身有安全隐患
【答案】C
【解析】
【详解】本题考查信息系统相关内容。信息系统是一个以处理信息流为目的的人机一体化系统,它由计算机硬件、网络和通信设备、计算机软件、信息资源、信息用户和规章制度组成。A选项,信息系统中的用户范围很广,如信息系统的使用者、计算机和非计算机设备的操作与维护人员、程序设计员、数据库管理员、系统分析员、信息系统的管理人员及人工收集、加工、传输信息的有关人员等,选项错误。B选项, 信息系统的数据处理功能主要体现在输入、存储、处理、输出和控制五个基本功能上,选项错误。C选项,系统中的数据保存在云端,体现数据的传输和存储功能,选项正确。D选项,网络故障会影响该系统的使用,说明信息系统本身有外部依赖性,选项错误。故本题答案是C选项。
3. 某校推出“互联网+明厨亮灶 ”系统,利用互联网技术通过视频监控对食堂后厨进行实时直播, 监控视频和用户观看数据自动上传至云端保存。学生、家长及学校负责人可通过手机 APP 或小程序实 时查看厨房环境卫生、食品加工操作等情况。为提升该系统的安全性,以下方法不可行的是( )
A. 限制视频直播的观看权限,仅允许授权用户通过验证后查看
B. 在厨房内增加更多的监控摄像头,以提高视频监控的覆盖范围
C. 定期更换系统登录密码,并使用复杂度高的密码以增强账户安全
D. 对上传至云端的数据进行加密处理,确保数据传输和存储的安全
【答案】B
【解析】
【详解】本题考查的是信息系统安全。在厨房内增加更多的监控摄像头,以提高视频监控的覆盖范围,这个措施主要关注的是视频监控的覆盖范围,而非系统本身的安全性。虽然增加监控摄像头可以提高监控的全面性和准确性,但它并不直接增强系统的安全性。反而,如果摄像头的管理和配置不当,还可能引入新的安全风险,如摄像头被非法访问或控制。故本题应选B。
4. 如图所示为某二进制数据的图形编码,使用□表示 0,■表示 1,逐行编码,下列说法正确的是( )
A. 存储图中数据需要 32 字节 B. 该编码过程实现了数模转换
C. 该数据第 2 个字节的编码是 11011101 D. 该图形编码可表示十六进制数 DD 5B 08 FA
【答案】D
【解析】
【详解】本题考查数据编码相关内容。A选项,存储图中数据需要 4*8/8=4 字节,选项错误。B选项,该编码过程实现的是模数转换,选项错误。C选项,该数据第 2 个字节的编码是 01011011,选项错误。D选项,该图形编码可表示二进制数为:11011101 01011011 00001000 11111010,转换成十六进制数为:DD 5B 08 FA,选项正确。故本题答案是D选项。
5. 智能垃圾箱通过无线通信模块连接城市管理系统,通过大量前期学习,垃圾箱能够识别投放物品 的类型,自动分类垃圾。为方便市民使用,智能垃圾桶还配备了触摸屏。关于智能垃圾箱的说法,正确的是( )
A. 智能垃圾桶进行无线通信不需要传输介质
B. 无线通信模块的功能可以通过 RFID 技术实现
C. 触摸屏既是该系统的输入设备,又是输出设备
D. 智能垃圾桶接入的系统网络按覆盖范围分属于局域网
【答案】C
【解析】
【详解】本题考查智能处理。
A. 智能垃圾桶进行无线通信需要传输介质,无线通信通过电磁波在空气中传播,因此需要空气作为传输介质。故A选项错误。
B. 无线通信模块的功能不能完全通过RFID技术实现。RFID技术主要用于短距离的无线通信和识别,而智能垃圾箱的无线通信模块可能需要更远距离的通信能力。故B选项错误。
C. 触摸屏既可以作为输入设备(用户通过触摸屏输入信息),又可以作为输出设备(显示信息给用户)。故C选项正确。
D. 智能垃圾桶接入的系统网络按覆盖范围可能属于广域网(如连接到城市管理系统),而不仅仅是局域网。故D选项错误。
故选C。
6. 智能垃圾箱通过无线通信模块连接城市管理系统,通过大量前期学习,垃圾箱能够识别投放物品的类型,自动分类垃圾。为方便市民使用,智能垃圾桶还配备了触摸屏。以下有关人工智能的说法,正确的是( )
A. 增大前期训练的数据量,能降低智能垃圾箱识别的错误率
B. 市民使用智能垃圾箱回收垃圾形成“混合增强智能 ”形态
C. 智能垃圾箱运用符号主义人工智能,通过预定义的规则进行分类
D. 智能垃圾箱的未来发展潜力巨大,不会对社会产生负面影响
【答案】A
【解析】
【详解】本题考查人工智能相关内容。A选项,增大前期训练的数据量,通常可以让人工智能模型学习到更多的模式和特征,从而提高其准确性,降低智能垃圾箱识别的错误率,选项正确。B选项,市民使用智能垃圾箱回收垃圾主要是智能垃圾箱在发挥作用,不能形成“混合增强智能”形态;混合增强智能是指将人类智能与人工智能进行深度融合,而这里只是市民使用智能设备,并非深度融合,选项错误。C选项,智能垃圾箱通常运用深度学习等机器学习方法,而非符号主义人工智能;符号主义人工智能主要是基于逻辑和规则进行推理,而智能垃圾箱一般是通过对大量数据的学习来进行分类,选项错误。D选项,智能垃圾箱的未来发展潜力巨大,但也可能会对社会产生一些负面影响,比如可能会导致部分垃圾回收从业人员失业等问题。故本题答案是A选项。
7. 某导航软件根据车速判定堵塞情况,并用不同颜色标示,其判定算法如流程图所示,以下代码与流程图功能一致的是( )
A. if x<50: if x<=20 : print("红") else: print("黄") else: print("绿") B. s="红" if x>=50 : s="绿" else: s="黄" print(s) C. s="绿" if x<20: s="红" elif x>=20 s="黄" print(s) D. s="黄" if x<20: s="红" elif x>=50 s="绿" print(s)
A. A B. B C. C D. D
【答案】D
【解析】
【详解】本题考查算法流程图相关内容。由流程图可知,其描述的算法是:若x大于等于50,则显示绿色;若x小于50且大于等于20,则显示黄色;若x小于20,则显示红色。A选项,x小于等于20时,显示红色,与流程图功能不一致。B选项,x小于50时,显示黄色,与流程图功能不一致。C选项,x大于等于20(包含大于等于50)时,显示黄色,与流程图功能不一致。D选项,与流程图功能一致。故本题答案是D选项。
8. 队列A从队首到队尾的元素依次为1,2,3,4,栈B初始为空。约定以下操作:T操作指队列A中元素出队,若出队元素为奇数则乘2后入栈B,若为偶数则除以2后入队A;Q操作指栈B中元素出栈后入队A。经过TQTTTQT操作后,队列A中从队首到队尾的元素依次为( )
A. 1,2,6,1 B. 2,1,2,6 C. 6,2,2,1 D. 2,6,1,2
【答案】A
【解析】
【详解】本题考查栈和队列。
1. 初始状态:队列A = [1, 2, 3, 4],栈B = []
2. 第一次T操作:
- 队列A出队元素1(奇数),乘2后入栈B
- 队列A = [2, 3, 4],栈B = [2]
3. 第二次Q操作:
- 栈B出栈元素2,入队A
- 队列A = [2, 3, 4, 2],栈B = []
4. 第三次T操作:
- 队列A出队元素2(偶数),除以2后入队A
- 队列A = [3, 4, 2, 1],栈B = []
5. 第四次T操作:
- 队列A出队元素3(奇数),乘2后入栈B
- 队列A = [4, 2, 1],栈B = [6]
6. 第五次T操作:
- 队列A出队元素4(偶数),除以2后入队A
- 队列A = [2, 1, 2],栈B = [6]
7. 第六次Q操作:
- 栈B出栈元素6,入队A
- 队列A = [2, 1, 2, 6],栈B = []
8. 第七次T操作:
- 队列A出队元素2(偶数),除以2后入队A
- 队列A = [1, 2, 6, 1],栈B = []
最终队列A从队首到队尾的元素依次为:1, 2, 6, 1
故选A。
9. 某完全二叉树的中序遍历结果为“天生我才必有用 ”,其前序遍历结果为( )
A. 天生我才必有用 B. 天我生必用有才 C. 才生天我有必用 D. 才生有天我必用
【答案】C
【解析】
【详解】本题考查二叉树相关内容。结合完全二叉树及中序遍历,构建二叉树如图所示:。则其前序遍历序列为:才生天我有必用。故本题答案是C选项。
10. 有如下程序段:
# 随机生成 5 个正整数并存入列表 s 中,代码略
def sort_indices(s) :
n=len(s)
y=[i for i in range(n)] # 生成序列 0 ~ n-1
for i in range(n-1) :
for j in range(n-i-1):
if s[y[j]]>=s[y [j+1]] :
y [j]y [j+1]=y [j+1],y[j]
return y
执行上述程序后,若返回的结果为[2,1,0,4,3],下列选项中,列表 s 中各元素值可能的是( )
A. [3,2,1,5,4] B. [4,2,1,5,3] C. [5,2,1,3,4] D. [3,2,5,1,4]
【答案】A
【解析】
【详解】本题考查Python基础。
该函数通过冒泡排序算法对列表 s 的索引进行排序,但排序的依据是列表 s 中对应索引的元素值。最终返回的索引列表 [2,1,0,4,3] 表示了 s 中元素的一个排序后的索引序列,即 s[2] 是最小的,然后是 s[1],接着是 s[0],之后是 s[4],最后是 s[3]。[3,2,1,5,4]:根据索引序列 [2,1,0,4,3],s[2] = 1 是最小的,然后是 s[1] = 2,接着是 s[0] = 3,之后是 s[4] = 4,最后是 s[3] = 5。这符合索引序列所指示的排序。故正确答案为:选项A。
11. 某二分查找算法用于查找非降序序列arr中小于等于key的最后一个元素位置,python代码如下:
arr=[1,1,4,4,4,5,5,5] key=int(input())
L=0;R=len(arr)-1
while (1) : mid=(L+R)//2
if (2) :
L=mid+1 else:
R=mid-1
print(R)
划线(1)(2)处可供选择语句有:①L则正确的代码应为( )
A. ①③ B. ①④ C. ②③ D. ②④
【答案】D
【解析】
【详解】本题考查二分查找算法相关内容。二分查找法(也称折半查找法)是一种在有序数组中查找某一特定元素搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。结合二分查找算法思想,当L<=R成立时,重复执行循环体,确定mid值,若对应的值arr[mid]小于等于key,说明要查找的key值应在arr[mid]的右侧,左边界L修改为mid+1后,继续在[L,R]范围内查找;否则要查找的key值应在arr[mid]的左侧,右边界R修改为mid-1后,继续在[L,R]范围内查找;直到查找成功或L<=R不成立(查找失败)。故本题答案是D选项。
12. 某无序链表图a所示,对链表数据进行整理,将所有小于x的节点通过头插的方法逐个放置在链表前面。例如,当x等于3时,对数据进行整理的结果如图b所示:
图 a 图 b
实现程序代码如下:
a=[[1,1], [4,2],[2,3], [3,4],[5,5], [2,-1]]
p=head=0
x=int(input())
frt=-1
while p!=-1 :
if a[p][0] < x and p != head :
pp=p # 提取出要移动的元素
else :
frt=p
p=a[p] [1]
方框处可填入的代码为( )
A. a[pp] [1]=head head=pp a[frt] [1]=a[p] [1] p=a[p] [1] B. a[frt] [1]=a[p] [1] p=a[p] [1] a[pp] [1]=head head=pp C. a[frt] [1]=a[p] [1] a[p][1]=head p=a[p] [1] head=pp D. a[pp] [1]=head head=pp a[p][1]=a[frt] [1] p=a[p] [1]
A A B. B C. C D. D
【答案】B
【解析】
【详解】本题考查链表及Python程序实现。方框处处理移动的元素,frt是前一个元素,需要移动p元素,因此先将p保存到pp中,其次将frt指针指向p的下一个元素,即a[frt] [1]=a[p] [1]。接着更新p指向下一个元素,即p=a[p] [1]。再将pp指向链表前面,即头节点a[pp] [1]=head,同时更新头节点head=pp。故选B。
二、非选择题(本大题共3小题,第13题7分,第14题10分,第15题9分,共26分)
13. 七段数码管常用于显示数字,如图a所示。给每段数码管编号,通过点亮不同的段显示不同的数字。例如,数字0需要点亮A,B,C,D,E,F段,数字1需要点亮B,C段。数码管经常发生故障:常亮和不亮。系统会根据运行日志判定数码管是否发生故障,如图b所示,日志由多行字符串组成,每行字符串中第一个字符为显示的数字,后为亮起的数码管编号。例如,“1BC”表示显示数字1时,B、C段亮起。日志中可能有同一个数字的多次记录,但不会自相矛盾。
编写程序,用7个字符来标示数码管检测结果。对于每一段,如果有证据表明它常亮,标记为“X”,若有证据表明它不亮,标记为“x”,若正常,标记为“0”。
图 a 图 b
(1)某段日志如图 b 所示,则检验结果为____(单选,填字母)
A.x00X000 B.x00x000 C.X00x000 D.X00X000
(2)实现上述功能的 python 程序如下,请在划线处填入合适的代码
check=[[1,1,1,1,1,1,0],[0,1,1,0,0,0,0],[1,1,0,1,0,1,1],[1,1,1,1,0,0,1],[0,1,1,0,1,0,1],[1,0,1,1,1,0,1],[1,0,1,1,1,1,1],[1,1,1,0,0,0,0],[1,1,1,1,1,1,1],[1,1,1,1,1,0,1]]
ans=['0']*7
f=open("log.txt")
line=f.readline().strip ()
while line:
t=①____
L=len(line)
a=[0] * 7
for j in range(1,L) :
a[②____] = 1
for j in range(7):
if ③____:
ans[j]='X'
elif a[j]==0 and check[t][j]==1 :
ans[j]='x'
line=f.readline().strip () # 读取一行数据
f.close() # 关闭文件
for i in range(7):
print(ans[i],end="") # 输出检测结果
【答案】 ①. A ②. int(line[0])或 ord(line[0])-48 ③. ord(line[j]) -65或 ord(line[j])-ord('A ') ④. a[j]==1 and check[t] [j]==0
【解析】
【详解】本题考查Python程序综合应用。
①1. 分析日志:
- 1BCD:显示数字1时,B、C、D段亮起。
- 4BCDEG:显示数字4时,B、C、D、E、G段亮起。
- 6EFGCD:显示数字6时,E、F、G、C、D段亮起。
- 7BCD:显示数字7时,B、C、D段亮起。
- 7DCB:显示数字7时,D、C、B段亮起。
2. 分析每段数码管的状态:
- A段:数字6、7记录显示A段没有亮起,故A段不亮,标记为“x”。
- B段:所有记录显示B段正常,标记为“0”。
- C段:所有记录显示C段正常,标记为“0”。
- D段:所有记录中D段都亮起,故D段常亮,标记为“X”。
- E段:所有记录显示E段正常,标记为“0”。
- F段:所有记录显示F段正常,标记为“0”。
- G段:所有记录显示G段正常,标记为“0”。
3. 最终结果为:x00X000。故选A。
②每行字符串中第一个字符为显示的数字,后为亮起的数码管编号。此处从line字符串中取出显示的数字,将字符型转换为整数型,故填int(line[0])或 ord(line[0])-48。
③此次用数组a统计每条记录中,亮起的数码管编号标记为1,反之标记为0,因为后面的字符是字母,故填ord(line[j])-65或 ord(line[j])-ord('A ')。
④对于每一段,如果有证据表明它常亮,标记为“X”,对比elif结构,可知此处填a[j]==1 and check[t] [j]==0。
14. 小王家安装了智能家居系统,房间内的灯可根据环境光线的强弱自动开启或关闭。现统计7月1日到7月7日6:00-18:00的开、关灯时间,部分数据如图a所示。编写python程序统计每天灯光开启的总时间,并绘制如图b所示的柱形图。
图 a 图 b
(1)统计及可视化的部分程序如下,请补充完善:
import pandas as pd
import matplotlib.pyplot as plt
def tran(time) : # 将时间字符串转换为秒
return int(time[0:2])*3600+int(time[3:5])*60+int(time[6:8])
df = pd.read_excel('light_data.xlsx')
day = []
for d in df["date"] :
day.append(①____)
df.insert(0," 日期",day) # 插入“ 日期 ”列,并初始化为 day
for i in df.index:
on = df.at[i, 'on']
off = df.at[i, 'off'] # 通过行标签和列标签选取单个值
df['时长'] = ②____ # 计算开灯时长(单位:分钟)
dfh=df.groupby (' 日期',as_index=False) ['时长'].sum()
plt.bar(③____, dfh['时长'])
# 设置绘图参数,显示如图b 所示的柱形图,代码略
(2) 自控光照系统的结构示意图如图 c 所示:
①下列关于该系统设计的说法,正确的是____ (多选,填字母)。
A.可以使用红外传感器监测是否有人经过
B.服务器故障不影响手机控制灯光
C.IOT 模块故障会影响手机端浏览历史开关灯数据
D.搭建完成后运行程序发现其中错误属于动态测试
②在智能终端中编写如下代码:err,resp=Obloq.get("input id=1&val="+str(t),10000)来实时传送所需数据,服务器端接收到数据并存储,则路由的设置语句是:@app.route("____")
③智能家居系统可以通过手机 app 控制灯光,查看相应数据,该系统采用的开发模式为____,
(选填:A.B/S 模式;B.C/S 模式),采用该开发模式的优点有____。
【答案】 ①. d[8:10] ②. (tran(off)-tran(on))/60 ③. dfh[" 日期"] ④. AD ⑤. /input ⑥. B ⑦. 降低系统通信开销 ;开发难度低 ;安全性高;便捷性等
【解析】
【详解】本题考查Python程序综合应用。
(1)此处将日期data中取出具体的日保存到变量day中,日期的索引是8~9,故①处填d[8:10]。
②处计算开灯时长,关灯时间保存到off中,开灯时间保存到on中,使用tran函数转换为秒进行计算,最后将结果转换为分钟,即除以60,故填(tran(off)-tran(on))/60。
③处绘制柱形图,dfh是以日期进行分类汇总,按时长进行求和。横坐标是从dfh中取出日期,纵坐标是从dfh中取出时长,故填dfh[" 日期"]。
(2)①A. 可以使用红外传感器监测是否有人经过,正确。B. 服务器故障会影响手机控制灯光,错误。C. IOT 模块(即物联网模块)故障不会影响手机端浏览历史开关灯数据,错误。D. 搭建完成后运行程序发现其中错误属于动态测试,正确。故选AD。
②根据代码中的URL格式,路由应设置为"/input"。
③通过手机 app 控制灯光,查看相应数据,该系统采用的开发模式为C/S模式,即客户端/服务器模式,采用该开发模式的优点有降低系统通信开销 ;开发难度低 ;安全性高;便捷性等。
15. 小明开发了一款股票交易复盘软件,软件可以跟踪一段时期内某支股票的价格走势,并计算最佳买入和卖出时间来获得最大收益(1股收益=卖出价格-买入价格)。小明可同时拥有多股该股票,但每天最多只能进行一次操作(即买入1股、卖出1股或什么都不做)。
如图所示,软件跟踪获取某支股票最近9天的价格分别为10,5,4,7,9,12,6,2,10,则可以在第2、3、8天买入,在第5、6、9天卖出,此时可获取的最大收益为-5-4+9+12-2+10=20。
计算最大收益的算法设计如下:
①将跟踪获取的股票价格存入数组a中;
②设计“买卖计划队列”,记为q,h指针指向当前最小买入价格,初始值为0;
③遍历股价数组a,如果当天股价a[i]大于计划队列q中的最小买入价格,将计划表内h指针指向的价格买入,并将当天股价a[i]插入到有序队列q中,标记为卖出,获取“暂时收益”。但为使收益最大化,该价格不进行真实卖出操作,之后如果遇到更高股价,则取消此前卖出标记,并将更高股价标记为卖出,获取更大“暂时收益”。
④若当天股价a[i]小于等于计划队列q中的最小买入价格,直接将当天股价a[i]插入到有序队列q中。如此往复,直到价格数组a遍历结束。
(1)若天数为7天,每天股票价格为2,5,4,3,8,8,6,则能获得的最大收益为____。
(2)定义函数q_sort(h,t),功能为对买卖计划队列中的股价数据进行升序排序,代码如下。
def q_sort(h,t):
tmp=q[t]
i=t-1
while i>=h and
q [i+1]=q [i]
i-=1
q [i+1]=tmp
方框处的代码有误,请更正:____
(3)定义函数 pq_push(x,f),功能为维护买卖计划队列,请完成划线处代码填空。
def pq_push(x,f) :
global t # 定义变量 t 为全局变量
q [t] [0]=x
q [t] [1]=f
t=t+1
q_sort( )
(4)实现上述算法的程序代码如下,请完成划线处代码填空。
# 输入天数 n 及每天的股价数据a,代码略
h=t=0
pq_push(a[0],0) ans=0
for i in range(1,n) :
if a[i]>q [h] [0]:
①____
if q[h][1]==0:
h+=1
else :
q [h] [1]=0
pq_push(a[i],1)
else :
②____
print(ans)
【答案】 ①. 13 ②. q [i][0]>tmp[0] ③. h,t-1 ④. ans+=a[i]-q [h] [0] ⑤. pq_push(a[i],0)
【解析】
【详解】本题考查的是Python队列综合应用。
(1)股价序列:2,5,4,3,8,8,6。第一天买入2;第二天卖出5,暂时收益5-2=3;第三天买入4;第四天买入3;第五天卖出8,第二天操作撤回,收益8-2=6;第六天卖出3,收益8-3=5;第七天卖出4,收益8-4=2;最后收益为:6+5+2=13。
(2)考察插入排序。q[t][0]在进行移动后会更新,因此比较对象应为tmp[0] ,故方框处的代码应改为:q [i][0]>tmp[0]
(3)排序对象为队列h-t范围内的数据,但t指针已经指向空位,因此传值时为h,t-1,故划线处代码为:h,t-1
(4)①当可获取收益时(a[i]>q[h][0]),需要更新最大收益ans,并判断当前最低买入价格是否作为临时卖出价格存在。如果是临时卖出价格,则进行反悔操作,即以当前价格作为卖出价(实质上是获取两个价格之间的差价);如果不是,可以直接卖出。故此处应为:ans+=a[i]-q [h] [0]。 ②当遇到更低的价格时,我们需要将当前价格a[i]加入队列中,并且标记为买入,故此处应为:pq_push(a[i],0)。

展开更多......

收起↑

资源列表