内容正文:
2025学年第二学期期中杭州地区(含周边)重点中学
高一年级技术学科试题
考生须知:
1.本卷满分100分,考试时间90分钟;
2.答题前,在答题卷指定区域填写班级、姓名、考场号、座位号及准考证号并填涂相应数字。
3.所有答案必须写在答题卷上,写在试卷上无效;
4.考试结束后,只需上交答题卷。
第一部分:信息技术(共50分)
一、选择题 (本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
阅读下列材料,完成下面小题。
某校开展“青春心跳”健康监测活动,活动记录了学生在安静状态下每分钟的心跳次数(正常心率范围为60≤心率≤100,单位:次/分钟)。工作人员设计算法筛选出心率不在正常范围的学生。
1. 下列关于该算法的说法,不正确的是( )
A. 该算法的步骤一定是有限的
B. 该算法中的每一步操作都可实施
C. 该算法可以不输出任何结果
D. 该算法中对于每个步骤的执行描述必须是明确的
2. 若要判断某一个学生的心率是否在正常范围,最适合的程序控制结构是( )
A. 顺序结构 B. 分支结构 C. 树形结构 D. 循环结构
3. 该算法的部分流程图如图所示,执行这部分流程,若输入学生心率依次为“57、68、75、72、66、54”,下列说法正确的是( )
A. i≤6?的执行次数是6次 B. i←i+1的执行次数是6次
C. 执行该流程后,i的值为6 D. 若将i←1改为i←2,则输出结果不变
4. 下列选项中能正确表示心率rate不在正常范围的逻辑表达式是( )
A. not rate>=60 and not rate<=100 B. rate<60 and rate>100
C. not(60<=rate<=100) D. rate>=60 or rate<=100
【答案】1. C 2. B 3. B 4. C
【解析】
【1题详解】
本题考查算法的基本特征。算法必须满足有穷性(步骤有限,因此A选项说法正确)、确定性(每一步执行描述必须明确,因此D选项说法正确)、可行性(每一步操作都可以实际实施,因此B选项说法正确),算法必须至少输出一个结果,因此C选项说法错误,本题要求选不正确的选项。故答案为:C。
【2题详解】
本题考查程序的基本控制结构。程序的三大基本控制结构为顺序结构、分支结构、循环结构,树形结构不属于程序控制结构,排除C;要判断某个学生心率是否在正常范围,需要根据条件判断选择不同的处理,最适合使用分支结构。故答案为:B。
【3题详解】
本题考查流程图的执行分析。根据流程图逻辑,每处理一个学生数据都会执行一次i←i+1,总共输入6个学生数据,因此i←i+1共执行6次;i≤6需要执行7次(输入完6个数据后i变为7,还需要再判断一次才能退出循环),因此A错误;执行结束后i的值为7,因此C错误;若将i←1改为i←2,只会处理后5个学生的数据,输出结果发生改变,因此D错误。故答案为:B。
【4题详解】
本题考查逻辑表达式的设计。心率不在正常范围,即对正常范围的条件60<=rate<=100取反,也就是not(60<=rate<=100);选项A、B得到的条件是rate同时小于60并且大于100,不可能满足,错误;选项D的条件rate>=60 or rate<=100对所有心率都成立,错误。故答案为:C。
5. 下列Python表达式中,其值最大的是( )
A. 9%2**5 B. 5%2//2+3 C. len(str(10)) D. int(4.3)
【答案】A
【解析】
【详解】本题考查Python运算符优先级与基础内置函数的运算规则。选项A:根据运算符优先级,先计算幂运算2**5=32,再计算取模运算9%32=9,最终结果为9;选项B:按优先级计算,5%2=1,再计算1//2=0,最后0+3=3,最终结果为3;选项C:str(10)得到字符串"10",len()统计字符串长度,最终结果为2;选项D:int(4.3)对浮点数取整,最终结果为4。比较四个结果可知,选项A的结果最大。故答案为:A。
6. 已知字符串s="202606全国游泳冠军赛",则下列选项正确的是
A. s[9:10]的结果为"游泳" B. s[-4:]的结果为"冠军赛"
C. s[0:3]的结果为"2026" D. s[0:6][::-1]的结果为"606202"
【答案】D
【解析】
【详解】本题考查Python字符串的切片操作。首先明确Python切片规则:切片左闭右开,负索引从字符串末尾从后往前计数,[::-1]表示将字符串反转。对s="202606全国游泳冠军赛"按索引从0开始整理各字符:索引0:2、1:0、2:2、3:6、4:0、5:6、6:全、7:国、8:游、9:泳、10:冠、11:军、12:赛,逐个分析选项:第一个选项:s[9:10]仅取出索引为9的单个字符,结果为"泳",不是"游泳",错误;第二个选项:s[-4:]表示从倒数第4个字符取到末尾,结果为"泳冠军赛",不是"冠军赛",错误;第三个选项:s[0:3]取出索引0、1、2的字符,结果为"202",不是"2026",错误;第四个选项:s[0:6]取出前6个字符得到"202606",经[::-1]反转后得到"606202",正确。故答案为:D。
7. 已知字典person={"name":"Alice","age":16,"city":"Beijing"},若要访问键"age"对应的值,下列表达式正确的是( )
A. person[1] B. person{"age"} C. person["age"] D. person[age]
【答案】C
【解析】
【详解】本题考查Python字典元素的访问方法。Python中访问字典元素的正确语法为字典名[键],若键为字符串类型,需要给键添加引号。A选项person[1],字典不通过下标索引访问,且1不是该字典的键,错误;B选项person{"age"}存在语法错误,访问字典元素需要使用方括号而非大括号,错误;C选项person["age"]符合字典访问语法,字符串键"age"正确添加了引号,可以成功访问对应的值,正确;D选项person[age]未给字符串键添加引号,age会被识别为未定义的变量,错误。故答案为:C。
8. 某Python程序段如下:
x=5
y=3
x=x+y
y=x-y
s=x*y
print(s)
执行后,输出的结果是( )
A. 15 B. 16 C. 24 D. 40
【答案】D
【解析】
【详解】本题考查Python变量的赋值与算术运算。初始赋值后,x=5,y=3;执行x=x+y,x更新为5+3=8,y保持3不变;执行y=x-y,代入当前x=8、y=3,y更新为8-3=5,x保持8不变;计算s=x*y=8×5=40,最终输出结果为40,对应第四个选项。故答案为:D。
9. 某Python程序段如下:
a=8
if a*2>15:
a=a//3
print(a)
执行后,输出的结果是( )
A. 8 B. 5 C. 3 D. 2
【答案】D
【解析】
【详解】本题考查Python条件分支语句的执行逻辑与基本算术运算。程序执行过程为:首先变量a初始赋值为8,判断条件a*2 > 15,计算得8*2=16,满足16>15,因此执行缩进内的语句a = a//3;Python中//是整除运算符,向下取整,计算得8//3=2,最终输出的结果为2,对应第四个选项。故答案为:D。
阅读下列材料,完成下面小题。
某地区特色小吃麦饼的单价为15元/个,商家迎接店庆推出优惠活动,具体规则如下:
购买个数
<3个
3~5个
≥6个
优惠折扣
无优惠
9折
8折
10. 现用变量n表示顾客要购买的麦饼个数,y表示本次购买应付金额(元),则下列分支结构表达正确的是( )
A.
B.
C.
D.
if n<3:
y=15*n
elif n<6:
y=15*n*0.9
else:
y=15*n*0.8
if n<3:
y=15*n
if n<6:
y=15*n*0.9
if n>=6:
y=15*n*0.8
y=15*n
if n<6:
y=15*n*0.9
else:
y=15*n*0.8
if n>=6:
y=15*n*0.8
elif n<6:
y=15*n*0.9
elif n<3:
y=15*n
A. A B. B C. C D. D
11. 商家统计了最近一周(7天)的每日销售个数,现编写Python程序计算该周麦饼的日平均销售个数。实现该功能的程序段如下,方框中应填入的正确代码为( )
s=[12,9,17,18,24,34,45]#存放该周的每日麦饼销售个数
ave=0
n=len(s)
total=0
print("日平均销售个数为",ave)
A.
B.
C.
D.
for i in s:
ave+=s[i]/n
for i in range(len(s)):
total+=s[i]
ave=total/n
while i<n:
total+=s[i]
i+=1
ave=total/n
i=0
while i<n:
i+=1
ave+=s[i]/n
A. A B. B C. C D. D
【答案】10. A 11. B
【解析】
【10题详解】
本题考查Python分支结构的逻辑判断。根据题意优惠规则为:当购买个数n小于3时,无优惠,应付金额y=15*n;当n在3到5之间即n小于6时,打9折,y=15*n*0.9;当n大于等于6时,打8折,y=15*n*0.8。逐一分析选项:A选项的if-elif-else分支,判断顺序正确,逻辑符合优惠规则,是正确的。B选项使用三个独立的if语句,当n小于3时,也满足n小于6的条件,y会被错误重新赋值,所以错误。C选项默认y是无优惠的结果,所有小于6的n包括小于3的n都会被重新计算为9折,不符合规则,错误。D选项分支判断顺序错误,所有小于6的n都被归类为9折,小于3的也会按9折计算,错误。故答案为:A。
【11题详解】
本题考查Python循环结构计算平均值的程序设计。根据题意,需要计算一周7天的日平均销售个数,步骤是先累加所有日销量得到总销量,再除以天数得到平均销量。逐一分析选项:A选项中for i in s的循环里,i是列表中的元素值,不是索引,使用s[i]会报错,逻辑错误。B选项通过for循环遍历所有索引,累加得到总销量total,最后计算得到平均值ave,逻辑正确。C选项的while循环没有初始化循环变量i,程序运行会报错,错误。D选项先对i自增再访问s[i],会漏掉第一个销量,还会出现索引越界错误,逻辑错误。故答案为:B。
12. 某Python程序段如下:
s="2026a4b20c8d30"
total=0
flag=True
t=""
for i in range(len(s)):
if"0"<=s[i]<="9":
t=t+s[i]
else:
if flag==True:
total+=int(t)
flag=not flag
t=""
print(total)
执行后,输出的结果是( )
A. 2088 B. 2076 C. 2046 D. 12
【答案】C
【解析】
【详解】本题考查Python程序流程跟踪,字符串遍历与分支逻辑的分析能力。程序遍历字符串s,遇到数字就将其拼接为数字串t;遇到非数字时,若flag为True,则将当前t转为整数累加到total,之后翻转flag并清空t。
遇到第一个非数字a,前序数字串t为"2026",初始flag为True,因此total = 0 + 2026 = 2026,之后flag变为False,清空t。
遇到第二个非数字b,前序数字串t为"4",当前flag为False,不执行累加,flag变为True,清空t。
遇到第三个非数字c,前序数字串t为"20",当前flag为True,因此total = 2026 + 20 = 2046,之后flag变为False,清空t。
遇到第四个非数字d,前序数字串t为"8",当前flag为False,不执行累加,flag变为True,清空t。
字符串末尾的30没有后续非数字,不会触发累加逻辑,不会加入total。最终total的值为2046,对应题目第三个选项。故答案为:C。
二、非选择题(本大题共3小题,其中第13小题8分,第14小题10分,第15小题8分,共26分)
13. 小明同学为班级趣味活动编写了“猜数游戏”程序。该程序随机生成一个在10~99之间的整数,让同学猜。同学共有 5 次猜测机会,每次输入猜测的数字后,程序给出提示:"偏大"、"偏小"或"猜对了"。若在5次内猜对,游戏立即结束;若5次都未猜对,游戏结束并输出正确数字。请回答下列问题:
(1)实现上述功能的部分 Python程序如下,请在划线处填入合适的代码。
#计算机随机生成一个在10~99之间的整数,存储在变量 number中,代码略
count = 5 #剩余的猜测次数
while count > 0:
count =___________
if _________:
print("猜对了")
break #退出循环
elif ________:
print("偏小")
else:
print("偏大")
if guess != number:
print("你没有在规定次数内猜对")
print("正确的数为"+ str(number))
(2)若将加框处代码改为 guess= input("请输入猜测的数:"),那么当用户输入数字时,程序会 (单选,填字母)
A. 正常运行,比较字符串和整数时自动转换数据类型
B. 运行时出错,因为字符串和整数无法比较
C. 总是提示“偏大”
D. 总是提示“偏小”
【答案】(1) ①. count - 1 ②. guess == number ③. guess < number (2)B
【解析】
【详解】本题考查Python程序逻辑分析和基本数据类型的操作。
(1)①第一处划线处:count变量存储剩余猜测次数,每次进入循环完成一次猜测,剩余次数需要减1,因此填入count - 1;②第二处划线处:该条件成立时输出“猜对了”,说明条件为猜测值等于目标随机数,因此填入guess == number;③第三处划线处:该条件成立时输出“偏小”,代表猜测的数小于目标数,因此填入guess < number。
(2)修改代码后guess为字符串类型,number是整数类型,Python中字符串和整数无法直接比较大小,程序运行时会出错,对应选项B。
14. 某早餐店开展30天的大酬宾活动,活动规则为:顾客连续购买纯牛奶天数按每满5天为一档,不足5天部分不计入核算,具体奖励规则如下表:
连续购买天数
满5天
满10天
满15天
满20天
满25天
满30天
累计奖励瓶数
1
3
5
7
9
11
示例:某顾客购买纯牛奶情况为:第1~16天购买,第17~20天未购买,第21~30天购买。按照规则,第一段连续16天按15天核算(对应奖励5瓶);第二段连续10天(对应奖励3瓶),累计获得8瓶奖励。
请完成以下问题:
(1)某顾客购买纯牛奶情况为:第15 天未购买,第17~20天未购买,其它天都购买。则该顾30天内累计获得______瓶奖励。
(2)实现上述功能的部分 Python程序如下,请在划线处填入合适的代码。
'''
输入购买数据存储在字符串 s中,长度为 30,每位字符对应第1~30 天的购买状态:’0’表示当天未购买,’1’表示当天购买(如前10天每天都购买,则
代码略。
'''
s = s + ’#’
total = 0
cnt=0
_________
for i in range(n):
ch =__________
if ch == ’1’:
cnt += 1
else:
if cnt >= 5:
total +=
________
print("累计获得", total, "瓶奖励")
(3)方框中应填入的正确代码是 (单选,填字母)。
A. cnt//5*2-1 B. cnt//5*2+1
【答案】(1)6 (2) ①. n = len(s) ②. s[i] ③. cnt = 0 (3)A
【解析】
【小问1详解】
本题考查规则理解与逻辑分析。根据题意拆分连续购买分段:该顾客未购买日期为第15天、17~20天,共分为三段连续购买:第一段1~14天共14天,按规则得$14//5=2$,对应奖励3瓶;第二段仅第16天共1天,不足5天,奖励0瓶;第三段21~30天共10天,10//5=2,对应奖励3瓶;累计奖励3+0+3=6瓶。故答案为:6。
【小问2详解】
本题考查Python程序补全,循环变量定义。①后续代码为for i in range(n),说明此处需要定义循环次数n,代码开头执行了s = s + '#',拼接后字符串的长度就是总遍历次数,因此获取s的长度赋值给n。故答案为:n = len(s)。②遍历索引i,取出第i天的状态,因此填s[i]。③当前连续段结算完成后,需要重置连续购买计数器,为下一段计数做准备,因此填cnt = 0。
【小问3详解】
本题考查规律归纳与Python表达式推导。根据奖励规则:满5天即cnt//5=1时,奖励1瓶;满10天即cnt//5=2时,奖励3瓶;满15天即cnt//5=3时,奖励5瓶,归纳得奖励瓶数公式为2 *(cnt//5) -1,对应第一个选项。故答案为:A。
15. 学校AI答疑室有n个座位,该教室管理系统按时间顺序记录座位“入座/离开”操作,每条记录含座位号(0~n-1)、操作时刻。规则:①每日初始座位全空闲;②同一座位操作按“入座→离开”交替出现。为了了解该教室的使用率,现统计所有座位的总占用时长。
单次占用时长:①有离开记录则=离开时刻-入座时刻;②无离开记录则=截止时刻t-入座时刻。如当天截止时刻 t=18 (不含18)系统记录的数据如下表所示:
系统记录顺序
第1条
第2条
第 3条
第4条
第5条
座位号
1
2
1
1
1
操作时刻
10
12
13
15
17
计算过程:
●座位号1的占用情况:第1次占用时长=13-10=3;第2次占用时长=17-15=2;累计占用时长=3+2=5;
●座位号2的占用情况:占用后无离开记录,占用时长=18-12=6。总占用时长=5+6=11。
请回答下列问题:
(1)若将题中例子第2条数据的座位号2改为1,其它数据不变,则当天截止时刻 t 所有座位的总占用时长为_________。
(2)实现上述功能的部分 Python程序如下,请在划线处填入合适的代码。
,,,
读取座位数n、截止时刻t及当天截止时刻t所记录的数据。如题中示例对应的座位号和时刻分别存储在列表 data和 times中,值分别是[1,2,1,1,1]、[10,12,13,15,17]。
代码略
c=[0]*n #创建列表c,若n=4,则列表c为[0,0,0,0]
last=[-1]*n #表示各座位最近入座时间,初始-1表示空闲状态
________
for i in range(len(data)):
num=data[i]
time=times[i]
if last[num]==-1:
last[num]=time
else:
c[num] +=_______________
last[num]=-1
for j in range(n):
if ______________________:
c[j]+=t-last[j]
total+=c[j]
print("总占用时长:",total)
【答案】(1)5 (2) ①. total = 0 ②. time - last[num] ③. last[j] != -1
【解析】
【详解】本题考查Python程序逻辑分析,结合题目规则的手工计算与代码补全能力。
(1)计算总占用时长修改后所有操作均为座位1的操作,按入座→离开的交替规则计算: 时刻10:座位1空闲,执行入座,记录入座时间10;时刻12:座位1已占用,执行离开,新增时长12-10=2,累计时长2,座位变回空闲; 时刻13:座位1空闲,执行入座,记录入座时间13;时刻15:座位1已占用,执行离开,新增时长15-13=2,累计时长变为2+2=4,座位变回空闲;时刻17:座位1空闲,执行入座,记录入座时间17;所有操作结束后,座位1未离开,补算时长18-17=1,总累计时长为4+1=5,其余座位未被占用,因此总占用时长为5。
(2)第一空:代码后续需要累加得到总时长total,处理所有操作前需要初始化总时长为0,因此此处初始化total,故此次应为:total = 0。第二空:进入else分支说明当前是离开操作(last[num]!=-1表示已有入座记录),本次占用时长等于离开时刻减去入座时刻,累加到座位的累计时长中,故此处为:time - last[num]。第三空:遍历所有座位时,只有当前座位仍处于占用状态(未离开)才需要补算未离开的占用时长,last[j]=-1表示空闲,因此判断last[j]不等于-1即可,故此处为:last[j] != -1。
第1页/共1页
学科网(北京)股份有限公司
$
2025学年第二学期期中杭州地区(含周边)重点中学
高一年级技术学科试题
考生须知:
1.本卷满分100分,考试时间90分钟;
2.答题前,在答题卷指定区域填写班级、姓名、考场号、座位号及准考证号并填涂相应数字。
3.所有答案必须写在答题卷上,写在试卷上无效;
4.考试结束后,只需上交答题卷。
第一部分:信息技术(共50分)
一、选择题 (本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
阅读下列材料,完成下面小题。
某校开展“青春心跳”健康监测活动,活动记录了学生在安静状态下每分钟的心跳次数(正常心率范围为60≤心率≤100,单位:次/分钟)。工作人员设计算法筛选出心率不在正常范围的学生。
1. 下列关于该算法的说法,不正确的是( )
A. 该算法的步骤一定是有限的
B. 该算法中的每一步操作都可实施
C. 该算法可以不输出任何结果
D. 该算法中对于每个步骤的执行描述必须是明确的
2. 若要判断某一个学生的心率是否在正常范围,最适合的程序控制结构是( )
A. 顺序结构 B. 分支结构 C. 树形结构 D. 循环结构
3. 该算法的部分流程图如图所示,执行这部分流程,若输入学生心率依次为“57、68、75、72、66、54”,下列说法正确的是( )
A. i≤6?的执行次数是6次 B. i←i+1的执行次数是6次
C. 执行该流程后,i的值为6 D. 若将i←1改为i←2,则输出结果不变
4. 下列选项中能正确表示心率rate不在正常范围的逻辑表达式是( )
A. not rate>=60 and not rate<=100 B. rate<60 and rate>100
C. not(60<=rate<=100) D. rate>=60 or rate<=100
5. 下列Python表达式中,其值最大的是( )
A. 9%2**5 B. 5%2//2+3 C. len(str(10)) D. int(4.3)
6. 已知字符串s="202606全国游泳冠军赛",则下列选项正确的是
A. s[9:10]的结果为"游泳" B. s[-4:]的结果为"冠军赛"
C. s[0:3]的结果为"2026" D. s[0:6][::-1]的结果为"606202"
7. 已知字典person={"name":"Alice","age":16,"city":"Beijing"},若要访问键"age"对应的值,下列表达式正确的是( )
A. person[1] B. person{"age"} C. person["age"] D. person[age]
8. 某Python程序段如下:
x=5
y=3
x=x+y
y=x-y
s=x*y
print(s)
执行后,输出的结果是( )
A. 15 B. 16 C. 24 D. 40
9. 某Python程序段如下:
a=8
if a*2>15:
a=a//3
print(a)
执行后,输出的结果是( )
A. 8 B. 5 C. 3 D. 2
阅读下列材料,完成下面小题。
某地区特色小吃麦饼的单价为15元/个,商家迎接店庆推出优惠活动,具体规则如下:
购买个数
<3个
3~5个
≥6个
优惠折扣
无优惠
9折
8折
10. 现用变量n表示顾客要购买的麦饼个数,y表示本次购买应付金额(元),则下列分支结构表达正确的是( )
A.
B.
C.
D.
if n<3:
y=15*n
elif n<6:
y=15*n*0.9
else:
y=15*n*0.8
if n<3:
y=15*n
if n<6:
y=15*n*0.9
if n>=6:
y=15*n*0.8
y=15*n
if n<6:
y=15*n*0.9
else:
y=15*n*0.8
if n>=6:
y=15*n*0.8
elif n<6:
y=15*n*0.9
elif n<3:
y=15*n
A. A B. B C. C D. D
11. 商家统计了最近一周(7天)的每日销售个数,现编写Python程序计算该周麦饼的日平均销售个数。实现该功能的程序段如下,方框中应填入的正确代码为( )
s=[12,9,17,18,24,34,45]#存放该周的每日麦饼销售个数
ave=0
n=len(s)
total=0
print("日平均销售个数为",ave)
A.
B.
C.
D.
for i in s:
ave+=s[i]/n
for i in range(len(s)):
total+=s[i]
ave=total/n
while i<n:
total+=s[i]
i+=1
ave=total/n
i=0
while i<n:
i+=1
ave+=s[i]/n
A. A B. B C. C D. D
12. 某Python程序段如下:
s="2026a4b20c8d30"
total=0
flag=True
t=""
for i in range(len(s)):
if"0"<=s[i]<="9":
t=t+s[i]
else:
if flag==True:
total+=int(t)
flag=not flag
t=""
print(total)
执行后,输出的结果是( )
A. 2088 B. 2076 C. 2046 D. 12
二、非选择题(本大题共3小题,其中第13小题8分,第14小题10分,第15小题8分,共26分)
13. 小明同学为班级趣味活动编写了“猜数游戏”程序。该程序随机生成一个在10~99之间的整数,让同学猜。同学共有 5 次猜测机会,每次输入猜测的数字后,程序给出提示:"偏大"、"偏小"或"猜对了"。若在5次内猜对,游戏立即结束;若5次都未猜对,游戏结束并输出正确数字。请回答下列问题:
(1)实现上述功能的部分 Python程序如下,请在划线处填入合适的代码。
#计算机随机生成一个在10~99之间的整数,存储在变量 number中,代码略
count = 5 #剩余的猜测次数
while count > 0:
count =___________
if _________:
print("猜对了")
break #退出循环
elif ________:
print("偏小")
else:
print("偏大")
if guess != number:
print("你没有在规定次数内猜对")
print("正确的数为"+ str(number))
(2)若将加框处代码改为 guess= input("请输入猜测的数:"),那么当用户输入数字时,程序会 (单选,填字母)
A. 正常运行,比较字符串和整数时自动转换数据类型
B. 运行时出错,因为字符串和整数无法比较
C. 总是提示“偏大”
D. 总是提示“偏小”
14. 某早餐店开展30天的大酬宾活动,活动规则为:顾客连续购买纯牛奶天数按每满5天为一档,不足5天部分不计入核算,具体奖励规则如下表:
连续购买天数
满5天
满10天
满15天
满20天
满25天
满30天
累计奖励瓶数
1
3
5
7
9
11
示例:某顾客购买纯牛奶情况为:第1~16天购买,第17~20天未购买,第21~30天购买。按照规则,第一段连续16天按15天核算(对应奖励5瓶);第二段连续10天(对应奖励3瓶),累计获得8瓶奖励。
请完成以下问题:
(1)某顾客购买纯牛奶情况为:第15 天未购买,第17~20天未购买,其它天都购买。则该顾30天内累计获得______瓶奖励。
(2)实现上述功能的部分 Python程序如下,请在划线处填入合适的代码。
'''
输入购买数据存储在字符串 s中,长度为 30,每位字符对应第1~30 天的购买状态:’0’表示当天未购买,’1’表示当天购买(如前10天每天都购买,则
代码略。
'''
s = s + ’#’
total = 0
cnt=0
_________
for i in range(n):
ch =__________
if ch == ’1’:
cnt += 1
else:
if cnt >= 5:
total +=
________
print("累计获得", total, "瓶奖励")
(3)方框中应填入的正确代码是 (单选,填字母)。
A. cnt//5*2-1 B. cnt//5*2+1
15. 学校AI答疑室有n个座位,该教室管理系统按时间顺序记录座位“入座/离开”操作,每条记录含座位号(0~n-1)、操作时刻。规则:①每日初始座位全空闲;②同一座位操作按“入座→离开”交替出现。为了了解该教室的使用率,现统计所有座位的总占用时长。
单次占用时长:①有离开记录则=离开时刻-入座时刻;②无离开记录则=截止时刻t-入座时刻。如当天截止时刻 t=18 (不含18)系统记录的数据如下表所示:
系统记录顺序
第1条
第2条
第 3条
第4条
第5条
座位号
1
2
1
1
1
操作时刻
10
12
13
15
17
计算过程:
●座位号1的占用情况:第1次占用时长=13-10=3;第2次占用时长=17-15=2;累计占用时长=3+2=5;
●座位号2的占用情况:占用后无离开记录,占用时长=18-12=6。总占用时长=5+6=11。
请回答下列问题:
(1)若将题中例子第2条数据的座位号2改为1,其它数据不变,则当天截止时刻 t 所有座位的总占用时长为_________。
(2)实现上述功能的部分 Python程序如下,请在划线处填入合适的代码。
,,,
读取座位数n、截止时刻t及当天截止时刻t所记录的数据。如题中示例对应的座位号和时刻分别存储在列表 data和 times中,值分别是[1,2,1,1,1]、[10,12,13,15,17]。
代码略
c=[0]*n #创建列表c,若n=4,则列表c为[0,0,0,0]
last=[-1]*n #表示各座位最近入座时间,初始-1表示空闲状态
________
for i in range(len(data)):
num=data[i]
time=times[i]
if last[num]==-1:
last[num]=time
else:
c[num] +=_______________
last[num]=-1
for j in range(n):
if ______________________:
c[j]+=t-last[j]
total+=c[j]
print("总占用时长:",total)
第1页/共1页
学科网(北京)股份有限公司
$