内容正文:
浙江省强基联盟2026-2027学年高二上开学考
技术试题
考生须知:
1.答题前,请务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔分别填写在试题卷和答题纸规定的位置上。
2.答题时,请按照答题纸上“注意事项”的要求,在答题纸相应的位置上规范作答,在本试题卷上的作答一律无效。
3.非选择题的答案必须使用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后必须用黑色字迹的签字笔或钢笔描黑。
第一部分信息技术(共50分)
一、选择题(本大题共15小题,每小题2分,共30分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
阅读下列材料,完成下面小题:
某校的智慧朗读系统,支持学生提前设置录音参数。学生朗读文言文、英语课文等内容时,系统实时采集声音信号并同步展示波形图,当音量超出合理范围时会自动发出提醒。录音结束后,智能模型对学生的发音表现进行0~100分量化评分;系统根据得分数据生成个性化评价报告,并上传至云端存储。
1. 下列关于数据与信息的说法,不正确的是( )
A. 该系统中数据的表现形式是多样的
B. 系统生成的报告上传云端后,可设置成多人查看
C. 查看报告的过程不会产生新的数据
D. 评价报告中的分析结果可用于指导学生改进朗读
2. 下列做法对提升该智慧朗读系统数据安全无效的是( )
A. 定期修改管理员密码 B. 定期备份服务器中的朗读报告数据
C. 按日期对朗读数据进行分类归档 D. 对云端存储的学生数据进行加密
3. 下列关于该系统数据编码的描述,不正确的是( )
A. 朗读评分的分数以二进制形式存储
B. 英文字符、汉字都有对应的字符编码
C. 其他参数不变,调整采样频率会影响音频文件大小
D. 人发出的朗读声是数字信号
4. 某同学在该系统上设置了如下参数,录制了A.wav和B.wav文件,则两个音频文件存储容量之比约为( )
文件名
采样频率
量化位数
声道数
时长
A.wav
44.1kHz
8位
立体声
180s
B.wav
22.05kHz
16位
立体声
180s
A. 1:1 B. 1:2 C. 2:1 D. 2:3
5. 该系统按照以下规则实现音量提示功能:
·30≤v≤80,记录“音量正常”
·v>80,提示“音量过高”
·v<30,提示“音量过低”
实现该功能的部分流程图如图所示,表达式为:
①v>80? ②v≥30? ③s←"音量过高" ④s←"音量正常"
则(1)~(4)处表达式序号依次为( )
A. ①②③④ B. ①②④③ C. ②①④③ D. ②①③④
6. 根据上一题的音量提示规则,下列 Python 程序段无法实现该功能的是( )
A.
if v < 30:
s="音量过低"
elif v <= 80:
s="音量正常"
else:
s="音量过高"
B.
if v > 80:
s="音量过高"
if v>=30:
s="音量正常"
if v < 30:
s="音量过低"
C.
if v > 80:
s="音量过高"
else:
if v >= 30:
s="音量正常"
else:
s="音量过低"
D.
if v >80:
s="音量过高"
elif v >=30:
s="音量正常"
else:
s="音量过低"
A. A B. B C. C D. D
【答案】1. C 2. C 3. D 4. A 5. A 6. B
【解析】
【1题详解】
本题考查数据与信息的基本概念。该系统中的数据包含波形图、评分数值、评价报告等多种表现形式;云端报告可通过权限设置为多人查看;用户查看报告时会生成浏览记录、操作日志等新的数据,因此该说法错误;评价报告的分析结果能够反馈朗读的问题,可指导学生改进朗读。故答案为:C。
【2题详解】
本题考查数据安全的防护措施。定期修改管理员密码可防范未授权访问,提升数据安全;定期备份数据可避免数据丢失,保障数据安全;按日期对朗读数据分类归档仅属于数据整理管理操作,不涉及数据的保密性、完整性防护,对提升数据安全无效;云端数据加密可防止数据泄露,提升安全性。故答案为:C。
【3题详解】
本题考查数据编码与音频数字化的基础知识。计算机内所有数据都以二进制形式存储,朗读评分也不例外;英文字符、汉字都有对应的专属字符编码;音频文件容量和采样频率正相关,其他参数不变时调整采样频率会改变音频文件大小;人发出的朗读声是连续的模拟信号,并非数字信号。故答案为:D。
【4题详解】
本题考查音频文件存储容量的计算。音频存储容量公式为:存储容量=采样频率(Hz)*量化位数*声道数*时长(s)/8。代入参数计算A.wav容量为44100*8*2*180/8,B.wav容量为22050*16*2*180/8,二者比值为(44100*8):(22050*16)=1:1。故答案为:A。
【5题详解】
本题考查分支流程图的逻辑分析。流程图中(1)判断为Y时执行(3),对应v>80时输出音量过高,因此(1)是①v>80?,(3)是③s←"音量过高";(1)判断为N时进入(2)的判断,(2)判断为Y时执行(4),对应v≤80且v≥30时输出音量正常,因此(2)是②v≥30?,(4)是④s←"音量正常",顺序为①②③④。故答案为:A。
【6题详解】
本题考查Python分支结构的逻辑验证。选项A、C、D的分支逻辑都可以完全匹配音量提示的三条规则;选项B中当v>80时,第一个if将s赋值为"音量过高",但后续第二个if判断v>=30也成立,会把s重新覆盖赋值为"音量正常",最终得到错误结果,无法实现要求的功能。故答案为:B。
7. 下列 Python 表达式中,值最小的是( )
A. 7%3**3 B. len("warm-up")
C. abs(int(-4.3)) D. ord("c")-ord("a")
【答案】D
【解析】
【详解】本题考查的是Python表达。选项A:7 % 3**3 => 7 % 27 = 7;选项B:len("warm-up") => 7;选项C:abs(int(-4.3)) => abs(-4) => 4;选项D:ord("c")-ord("a") => 99 - 97 => 2。题目要求选最小,故本题应选D。
8. a="3.14",b=[2,0,[2,1]],则表达式 a[3] * b[2][0]的值是( )
A. "11" B. "44" C. 8 D. 2
【答案】B
【解析】
【详解】本题考查的是Python表达式。
a[3]:字符串"3.14",索引3是字符"4"。
b[0]:列表b中索引2的元素是[2,1],再取该列表的索引0,是数字2。
表达式为:"4"*2。在Python中,字符串乘以整数表示重复字符串,结果为"44"。故本题应选B。
9. 有如下 Python 程序段:
s="Science"
t=""
for i in range(0,len(s),2):
t += s[i]
print(t)
执行该程序段后,输出的结果是( )
A. Sinee B. Science C. Sine D. See
【答案】C
【解析】
【详解】本题考查Python字符串索引与for循环range函数的使用。首先,字符串s的值为"Science",其长度len(s)为7,字符对应的索引依次是0:S、1:c、2:i、3:e、4:n、5:c、6:e。循环语句range(0,len(s),2)生成的i取值为0、2、4、6,每次循环将s中对应索引的字符追加到t中,依次取出的字符是S、i、n、e,拼接后t的结果为"Sine",对应第三个选项。故答案为:C
10. 有如下Python程序段:
t = 0
for i in range(1, 4):
for j in range(1, i+1):
t = t + j
print(t)
执行该程序段后,输出的结果是( )
A. 10 B. 6 C. 14 D. 20
【答案】A
【解析】
【详解】本题考查的是循环嵌套。
i=1:j=1→t=0+1=1
i=2:j=1,2→t=1+1=2,t=2+2=4
i=3:j=1,2,3→t=4+1=5,t=5+2=7,t=7+3=10
故本题应选A。
11. 有如下Python程序段,用于判断列表data中元素是否升序,是则输出"YES",不是则输出"NO"。当data=[1,2,3,4,5]时,运行代码时系统报错“list index out of range”(列表索引越界),引发该报错的语句是( )
'''输入列表 data 的值,代码略'''
i = 1 #①
s = "YES"
while i < len(data) :
if data[i] > data[i+1]: #②
s = "NO" #③
break
i += 1 #④
print(s)
A. ① B. ② C. ③ D. ④
【答案】B
【解析】
【详解】本题考查的是程序的调试运行。当 i=4 时,data[5]被访问,超出列表最大索引4。因此报错发生在语句②。故选B。
12. 有如下 Python 程序段:
def fun(a):
n = len(a); i = 0
while i < n // 2:
a[i] = a[i] + a[n - 1 - i]
i += 1
return a
a = [1, 2, 3, 4, 5, 6]
print(fun(a))
执行该程序段后,输出的结果是( )
A. [7, 7, 7, 4, 5, 6] B. [7, 8, 9, 4, 5, 6]
C. [7, 7, 7, 7, 7, 7] D. [7, 8, 9, 10, 11, 12]
【答案】A
【解析】
【详解】本题考查的是循环语句的应用。n // 2 = 3,循环执行 i=0,1,2。
i=0:a[0] = 1+6 = 7
i=1:a[1] = 2+5 = 7
i=2:a[2] = 3+4 = 7
列表后半部分(a[3]~a[5])保持不变。故本题应选A。
阅读下列材料,回答以下小题:
某实验室搭建了室内环境监测系统,每日监测数据记录在字符串record中,例如:record ="0111" 记录了该实验室连续4天的监测数据(其中“0”表示异常、“1”表示正常)。
13. 当record = "011100111101011111101111111101"时,该实验室首次出现连续4天及以上正常是从第几天开始的(天数从 1 开始编号)( )
A. 第3天 B. 第7天 C. 第14天 D. 第17天
14. 为找出序列中最长连续正常天数的长度,算法自然语言描述如下:
设定变量c、m,初始值均为0。
变量c:逐日扫描时,若当天为正常,则c加1;若当天为异常,则c重置为0。
变量m:每次c更新后,若c>m,则将m更新为c的值。
下列说法正确的是( )
A. m会随每一天监测数据的处理而持续递增
B. c保存的是整个序列中最长连续正常天数的长度
C. m的值不会因为c被重置而发生变化
D. 当出现异常数据时,m会被清零
15. 实现查找最长连续正常天数的 Python 程序如下
record = "011100110101011111000111111111"
mlen = 0
①
for i in range(len(record)):
if ② :
cnt += 1
if cnt > mlen:
mlen = cnt
else:
cnt = 0
print("连续正常最多的天数是", mlen, "天")
上述程序段中划线处代码可选填代码( )
①cnt = 0 ②cnt = 1 ③record[i ]== "0" ④ record[i] == "1"
A. ①③ B. ②④ C. ②③ D. ①④
【答案】13. B 14. C 15. D
【解析】
【13题详解】
本题考查字符串遍历与连续子串统计的基础应用。我们逐位遍历给定的record字符串,按从第1天开始计数的规则统计连续为"1"的长度:前6位的序列是0、1、1、1、0、0,最长连续正常天数为3,不满足4天及以上;从第7位开始的连续4位都是"1",是首次出现连续4天及以上正常的起始位置。故答案为:B。
【14题详解】
本题考查最长连续子序列算法的变量逻辑理解。选项A,m只有当当前连续正常计数c大于原有m值时才会更新,遇到异常数据c重置为0时m不会递增,不会持续递增;选项B,c保存的是当前扫描过程中的连续正常天数,不是整个序列的最长值,m才是存储最长连续正常天数的变量;选项C,m仅在c更新后且c大于当前m时才会修改,c被重置为0时,0不可能大于原有m的值,因此m的值不会因为c被重置而发生变化,该描述正确;选项D,出现异常数据时,只有c会被清零,m不会被清零。故答案为:C。
【15题详解】
本题考查Python实现最长连续子序列统计的代码补全逻辑。首先变量cnt用于记录当前连续正常的天数,初始值需要设为0,因此①处填cnt = 0;分支逻辑中,当当天监测数据为正常也就是record[i] == "1"时,执行cnt自增1的操作,否则将cnt重置为0,因此②处填record[i] == "1",对应组合是①④。故答案为:D。
二、非选择题(本大题共2小题,其中第16小题10分,第17小题10分,共20分)
16. 为响应“双碳”目标,鼓励市民优先选择共享单车出行,某平台推出“绿行能量折扣券”福利活动。平台按日统计每位用户的骑行累计实付金额,并在当日消费结算后根据该金额赠送不同数量的“8折骑行折扣券”。折扣券自领取后的下一日起7天内有效,超时自动失效。发券、用券规则如下:
①发券规则:
▲金额≥6.0元(类型0):赠送2张全场8折券;
▲3.0元≤金额<6.0元(类型1):赠送1张全场8折券;
▲金额<3.0元(类型为2):不赠送。
②用券规则:
▲下单时,卡包内若存在有效8折券,则系统自动使用;
▲有多张有效券时,优先使用最早领取的有效优惠券;
▲优惠券一经使用,该券立即失效。
现编写Python程序统计某用户一段时期内总消费金额,所有消费记录统一存放在列表data中,结构如表a所示。
序号
日期
金额
类型
1
20260601
7
0
2
20260603
5
1
3
20260605
1.5
2
4
20260606
8.5
0
5
20260615
4
1
6
20260619
1.8
2
表a
序号
获得优惠券
实付金额
有效优惠券剩余张数
1
2
7
2
2
1
4
2
3
0
1.2
1
表b
(1)由题意可知,当该顾客在完成第3笔消费后,共计花费12.2元,获得优惠券和使用优惠券的过程如表b。当消费到第5笔后,共计花费了______元。
(2)定义如下mon(date)函数,date为购买日期数据。函数功能是计算当前日期消费时所获得优惠券的有效期截止日期并返回其值。
def mon(date): #计算优惠券的有效期截止日
#拆分年、月、日
date = int(date)
y =_________________
m =
d = date % 100
#各月份天数(不处理闰年2月)
month = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
total= d + 7
mday = month[m]
if total <= mday:
newy, newm, newd = y, m, total
else:
#此处用来计算优惠券有效期的截止日期跨月或跨年的情况,代码略
return str(newy * 10000 + newm * 100 + newd)
①请在划线处填入合适的代码。
②加框处实现月份的提取,若改成 date%100//10,功能是否相同__________(选填:是/否)
(3)实现统计某顾客一段时期内总消费金额的 Python 程序如下,程序中用到的列表函数与方法如表c所示,在划线处填入合适的代码。
函数与方法
功能
w.append(x)
在列表w末尾添加元素x
表c
def coupon(a): #获取优惠券
if a[2] == 0:
cou.append(mon(a[0]))
_________________
elif a[2] == 1:
cou.append(mon(a[0]))
'''读取某顾客的消费数据存入 data 列表,每个元素包含消费日期、消费金额、类型,如:[["20260601",8,0],["20260602",5,1]],代码略'''
cou = [] #存放每张优惠券的截止日期
money = 0
i=0
for k in range(len(data)):
while i < len(cou) and cou[i] < data[k][0]:
_________________
if i == len(cou):
money += data[k][1]
else:
_________________
i += 1
coupon(data[k])
print("共支付了:",round(money,2),"元")
【答案】(1)23 (2) ①. date//10000或其他等价答案 ②. 否
(3) ①. cou.append(mon(a[0])) ②. i+=1 ③. money+=data[k][1]*0.8或money=money+data[k][1]*0.8或其他等价答案
【解析】
【详解】本题考查Python程序设计结合业务逻辑的综合应用,包含日期处理、队列思想模拟优惠券使用、消费金额统计的知识点。
(1)第1笔实付7元,第2笔使用1张券后实付5*0.8=4元,第3笔使用1张券后实付1.5*0.8=1.2元,第4笔使用剩余1张券后实付8.5*0.8=6.8元,第5笔时之前所有优惠券都已过期,无可用券,实付4元,累加7+4+1.2+6.8+4=23元。
(2)①日期格式为yyyymmdd的整数,除以10000取整即可得到年份,所以y的赋值为date//10000;②原月份提取逻辑是date//100%100,比如日期20260601,date//100得到202606,对100取余得到6,而date%100得到01,再//10得到0,完全无法得到正确月份,所以功能不同。
(3)①类型0的消费要赠送2张券,已经添加了1张,还需要再执行一次cou.append(mon(a[0]))。②处理过期券的while循环:循环条件是当前下标i对应的优惠券截止日期早于当前消费日期,说明该券已过期,需要跳过这张失效的券,所以执行i += 1。③处理有可用券的分支:存在有效券时消费可以打8折,所以实付金额累加data[k][1]*0.8,故代码为:money += data[k][1] * 0.8
17. 某工厂利用智能视觉系统检测金属垫片表面缺陷,图像特征分析是核心步骤。系统采集图像并转换为灰度数值矩阵(像素取值范围0~255),再对灰度矩阵执行最大池化降采样,在压缩数据的同时提取图像关键特征,生成特征图以供后续分析。已知图像灰度数值矩阵已存储在二维列表image中,池化窗口尺寸为size。现需编写程序完成特征图的生成,请回答下列问题。
(1)假设图a为原始灰度数值矩阵,池化窗口尺寸为2×2。步骤为:从图a左上角开始,先选取第一个2×2池化窗口,窗口内数据为“4、1、1、2”,求得最大值为4;接着窗口向右平移2格,选取右上角池化窗口,计算该窗口最大值为 _____ 。按此规则依次处理,生成图b所示特征图。
(2)定义函数 getMax (startR,startC, size),功能是从列表image的startR行、startC 列开始,取出一个size×size的小方块,返回这个小方块里最大的那个数值。
def getMax(startR,startC,size):
maxval = -1
for x in range(startR, startR + size):
for y in range(startC, startC + size):
_________________
return maxval
①若只修改函数中加框处代码为 if image[x][y] < maxval:,函数功能是否能实现查找窗口内最小值_________(填:是/否)
②请在划线处填入合适的代码。
(3)实现上述功能的部分 Python 程序如下,请在划线处填入合适的代码。
def max_P(image, size):
h = len(image)
w = len(image[0])
outH = h// size #池化后特征图的高度
outW = w // size #池化后特征图的宽度
fts = [[0]*outW for i in range(outH)] #如outW=2,outH=2时 ts=[[0,0],[0,0]]
for i in range(outH):
for j in range(outW):
startR =_________
startC = j * size
_________
return fts
'''
读取原始图像数据存入image列表,如 image=[[4, 1, 3, 5], [1, 2, 2, 6],[8, 1, 3, 1],[1, 6, 2,2]],image[0][0]存放原始图像左上角位置的灰度值,代码略
'''
size = int(input()) #读取池化窗口尺寸
result = max_P(image, size)
#输出result列表中的特征图,代码略
【答案】(1)6 (2) ①. 否 ②. maxval=image[x][y]
(3) ①. i*size ②. fts[i][j]=getMax(startR,startC,size)
【解析】
【详解】本题考查Python二维列表遍历、最大池化算法的逻辑实现、循环与分支结构的应用。
(1)右上角2×2池化窗口的元素是3、5、2、6,其中最大值为6。
(2)①,原函数初始化maxval为-1,灰度像素取值范围是0~255,所有像素值都大于-1,修改判断条件为if image[x][y] < maxval后,没有任何像素值满足小于-1的条件,maxval始终保持-1,无法得到窗口内的最小值,因此不能实现查找最小值的功能。②原函数的判断条件是如果当前像素值大于maxval,就更新maxval为当前像素值,所以划线处需要填入代码为:maxval=image[x][y]。
(3)①外层循环i遍历特征图的行索引,对应原始图像的行起始位置是i乘以池化窗口尺寸size,因此startR赋值为i*size;②得到起始行和起始列后,调用getMax函数获取当前窗口的最大值,赋值给特征图对应位置fts[i][j],故代码为:fts[i][j]=getMax(startR,startC,size)。
第1页/共1页
学科网(北京)股份有限公司
$
浙江省强基联盟2026-2027学年高二上开学考
技术试题
考生须知:
1.答题前,请务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔分别填写在试题卷和答题纸规定的位置上。
2.答题时,请按照答题纸上“注意事项”的要求,在答题纸相应的位置上规范作答,在本试题卷上的作答一律无效。
3.非选择题的答案必须使用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后必须用黑色字迹的签字笔或钢笔描黑。
第一部分信息技术(共50分)
一、选择题(本大题共15小题,每小题2分,共30分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
阅读下列材料,完成下面小题:
某校的智慧朗读系统,支持学生提前设置录音参数。学生朗读文言文、英语课文等内容时,系统实时采集声音信号并同步展示波形图,当音量超出合理范围时会自动发出提醒。录音结束后,智能模型对学生的发音表现进行0~100分量化评分;系统根据得分数据生成个性化评价报告,并上传至云端存储。
1. 下列关于数据与信息的说法,不正确的是( )
A. 该系统中数据的表现形式是多样的
B. 系统生成的报告上传云端后,可设置成多人查看
C. 查看报告的过程不会产生新的数据
D. 评价报告中的分析结果可用于指导学生改进朗读
2. 下列做法对提升该智慧朗读系统数据安全无效的是( )
A. 定期修改管理员密码 B. 定期备份服务器中的朗读报告数据
C. 按日期对朗读数据进行分类归档 D. 对云端存储的学生数据进行加密
3. 下列关于该系统数据编码的描述,不正确的是( )
A. 朗读评分的分数以二进制形式存储
B. 英文字符、汉字都有对应的字符编码
C. 其他参数不变,调整采样频率会影响音频文件大小
D. 人发出的朗读声是数字信号
4. 某同学在该系统上设置了如下参数,录制了A.wav和B.wav文件,则两个音频文件存储容量之比约为( )
文件名
采样频率
量化位数
声道数
时长
A.wav
44.1kHz
8位
立体声
180s
B.wav
22.05kHz
16位
立体声
180s
A. 1:1 B. 1:2 C. 2:1 D. 2:3
5. 该系统按照以下规则实现音量提示功能:
·30≤v≤80,记录“音量正常”
·v>80,提示“音量过高”
·v<30,提示“音量过低”
实现该功能的部分流程图如图所示,表达式为:
①v>80? ②v≥30? ③s←"音量过高" ④s←"音量正常"
则(1)~(4)处表达式序号依次为( )
A. ①②③④ B. ①②④③ C. ②①④③ D. ②①③④
6. 根据上一题的音量提示规则,下列 Python 程序段无法实现该功能的是( )
A.
if v < 30:
s="音量过低"
elif v <= 80:
s="音量正常"
else:
s="音量过高"
B.
if v > 80:
s="音量过高"
if v>=30:
s="音量正常"
if v < 30:
s="音量过低"
C.
if v > 80:
s="音量过高"
else:
if v >= 30:
s="音量正常"
else:
s="音量过低"
D.
if v >80:
s="音量过高"
elif v >=30:
s="音量正常"
else:
s="音量过低"
A. A B. B C. C D. D
7. 下列 Python 表达式中,值最小的是( )
A. 7%3**3 B. len("warm-up")
C. abs(int(-4.3)) D. ord("c")-ord("a")
8. a="3.14",b=[2,0,[2,1]],则表达式 a[3] * b[2][0]的值是( )
A. "11" B. "44" C. 8 D. 2
9. 有如下 Python 程序段:
s="Science"
t=""
for i in range(0,len(s),2):
t += s[i]
print(t)
执行该程序段后,输出的结果是( )
A. Sinee B. Science C. Sine D. See
10. 有如下Python程序段:
t = 0
for i in range(1, 4):
for j in range(1, i+1):
t = t + j
print(t)
执行该程序段后,输出的结果是( )
A. 10 B. 6 C. 14 D. 20
11. 有如下Python程序段,用于判断列表data中元素是否升序,是则输出"YES",不是则输出"NO"。当data=[1,2,3,4,5]时,运行代码时系统报错“list index out of range”(列表索引越界),引发该报错的语句是( )
'''输入列表 data 的值,代码略'''
i = 1 #①
s = "YES"
while i < len(data) :
if data[i] > data[i+1]: #②
s = "NO" #③
break
i += 1 #④
print(s)
A. ① B. ② C. ③ D. ④
12. 有如下 Python 程序段:
def fun(a):
n = len(a); i = 0
while i < n // 2:
a[i] = a[i] + a[n - 1 - i]
i += 1
return a
a = [1, 2, 3, 4, 5, 6]
print(fun(a))
执行该程序段后,输出的结果是( )
A. [7, 7, 7, 4, 5, 6] B. [7, 8, 9, 4, 5, 6]
C. [7, 7, 7, 7, 7, 7] D. [7, 8, 9, 10, 11, 12]
阅读下列材料,回答以下小题:
某实验室搭建了室内环境监测系统,每日监测数据记录在字符串record中,例如:record ="0111" 记录了该实验室连续4天的监测数据(其中“0”表示异常、“1”表示正常)。
13. 当record = "011100111101011111101111111101"时,该实验室首次出现连续4天及以上正常是从第几天开始的(天数从 1 开始编号)( )
A. 第3天 B. 第7天 C. 第14天 D. 第17天
14. 为找出序列中最长连续正常天数的长度,算法自然语言描述如下:
设定变量c、m,初始值均为0。
变量c:逐日扫描时,若当天为正常,则c加1;若当天为异常,则c重置为0。
变量m:每次c更新后,若c>m,则将m更新为c的值。
下列说法正确的是( )
A. m会随每一天监测数据的处理而持续递增
B. c保存的是整个序列中最长连续正常天数的长度
C. m的值不会因为c被重置而发生变化
D. 当出现异常数据时,m会被清零
15. 实现查找最长连续正常天数的 Python 程序如下
record = "011100110101011111000111111111"
mlen = 0
①
for i in range(len(record)):
if ② :
cnt += 1
if cnt > mlen:
mlen = cnt
else:
cnt = 0
print("连续正常最多的天数是", mlen, "天")
上述程序段中划线处代码可选填代码( )
①cnt = 0 ②cnt = 1 ③record[i ]== "0" ④ record[i] == "1"
A. ①③ B. ②④ C. ②③ D. ①④
二、非选择题(本大题共2小题,其中第16小题10分,第17小题10分,共20分)
16. 为响应“双碳”目标,鼓励市民优先选择共享单车出行,某平台推出“绿行能量折扣券”福利活动。平台按日统计每位用户的骑行累计实付金额,并在当日消费结算后根据该金额赠送不同数量的“8折骑行折扣券”。折扣券自领取后的下一日起7天内有效,超时自动失效。发券、用券规则如下:
①发券规则:
▲金额≥6.0元(类型0):赠送2张全场8折券;
▲3.0元≤金额<6.0元(类型1):赠送1张全场8折券;
▲金额<3.0元(类型为2):不赠送。
②用券规则:
▲下单时,卡包内若存在有效8折券,则系统自动使用;
▲有多张有效券时,优先使用最早领取的有效优惠券;
▲优惠券一经使用,该券立即失效。
现编写Python程序统计某用户一段时期内总消费金额,所有消费记录统一存放在列表data中,结构如表a所示。
序号
日期
金额
类型
1
20260601
7
0
2
20260603
5
1
3
20260605
1.5
2
4
20260606
8.5
0
5
20260615
4
1
6
20260619
1.8
2
表a
序号
获得优惠券
实付金额
有效优惠券剩余张数
1
2
7
2
2
1
4
2
3
0
1.2
1
表b
(1)由题意可知,当该顾客在完成第3笔消费后,共计花费12.2元,获得优惠券和使用优惠券的过程如表b。当消费到第5笔后,共计花费了______元。
(2)定义如下mon(date)函数,date为购买日期数据。函数功能是计算当前日期消费时所获得优惠券的有效期截止日期并返回其值。
def mon(date): #计算优惠券的有效期截止日
#拆分年、月、日
date = int(date)
y =_________________
m =
d = date % 100
#各月份天数(不处理闰年2月)
month = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
total= d + 7
mday = month[m]
if total <= mday:
newy, newm, newd = y, m, total
else:
#此处用来计算优惠券有效期的截止日期跨月或跨年的情况,代码略
return str(newy * 10000 + newm * 100 + newd)
①请在划线处填入合适的代码。
②加框处实现月份的提取,若改成 date%100//10,功能是否相同__________(选填:是/否)
(3)实现统计某顾客一段时期内总消费金额的 Python 程序如下,程序中用到的列表函数与方法如表c所示,在划线处填入合适的代码。
函数与方法
功能
w.append(x)
在列表w末尾添加元素x
表c
def coupon(a): #获取优惠券
if a[2] == 0:
cou.append(mon(a[0]))
_________________
elif a[2] == 1:
cou.append(mon(a[0]))
'''读取某顾客的消费数据存入 data 列表,每个元素包含消费日期、消费金额、类型,如:[["20260601",8,0],["20260602",5,1]],代码略'''
cou = [] #存放每张优惠券的截止日期
money = 0
i=0
for k in range(len(data)):
while i < len(cou) and cou[i] < data[k][0]:
_________________
if i == len(cou):
money += data[k][1]
else:
_________________
i += 1
coupon(data[k])
print("共支付了:",round(money,2),"元")
17. 某工厂利用智能视觉系统检测金属垫片表面缺陷,图像特征分析是核心步骤。系统采集图像并转换为灰度数值矩阵(像素取值范围0~255),再对灰度矩阵执行最大池化降采样,在压缩数据的同时提取图像关键特征,生成特征图以供后续分析。已知图像灰度数值矩阵已存储在二维列表image中,池化窗口尺寸为size。现需编写程序完成特征图的生成,请回答下列问题。
(1)假设图a为原始灰度数值矩阵,池化窗口尺寸为2×2。步骤为:从图a左上角开始,先选取第一个2×2池化窗口,窗口内数据为“4、1、1、2”,求得最大值为4;接着窗口向右平移2格,选取右上角池化窗口,计算该窗口最大值为 _____ 。按此规则依次处理,生成图b所示特征图。
(2)定义函数 getMax (startR,startC, size),功能是从列表image的startR行、startC 列开始,取出一个size×size的小方块,返回这个小方块里最大的那个数值。
def getMax(startR,startC,size):
maxval = -1
for x in range(startR, startR + size):
for y in range(startC, startC + size):
_________________
return maxval
①若只修改函数中加框处代码为 if image[x][y] < maxval:,函数功能是否能实现查找窗口内最小值_________(填:是/否)
②请在划线处填入合适的代码。
(3)实现上述功能的部分 Python 程序如下,请在划线处填入合适的代码。
def max_P(image, size):
h = len(image)
w = len(image[0])
outH = h// size #池化后特征图的高度
outW = w // size #池化后特征图的宽度
fts = [[0]*outW for i in range(outH)] #如outW=2,outH=2时 ts=[[0,0],[0,0]]
for i in range(outH):
for j in range(outW):
startR =_________
startC = j * size
_________
return fts
'''
读取原始图像数据存入image列表,如 image=[[4, 1, 3, 5], [1, 2, 2, 6],[8, 1, 3, 1],[1, 6, 2,2]],image[0][0]存放原始图像左上角位置的灰度值,代码略
'''
size = int(input()) #读取池化窗口尺寸
result = max_P(image, size)
#输出result列表中的特征图,代码略
第1页/共1页
学科网(北京)股份有限公司
$