内容正文:
余姚中学 2025学年 第一学期12月质量检测高二技术试卷
第一部分 信息技术(50分)
一、选择题(本大题共12题,每题2分,共24分,每题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)
1. 某教学辅助系统通过摄像头和麦克风,采集并识别学生的表情、动作、语音等,转化为课堂投入值,同时录制课堂视频,最后上传服务器,形成教研活动资料库。下列关于数据与信息的说法,正确的是( )
A. 课堂视频没有价值 B. 采集语音时不会产生新数据
C. 学生的表情、动作是信息的载体 D. 系统中的数据均为非结构化数据
【答案】C
【解析】
【详解】本题考查的是数据与信息。A错误:课堂视频作为教研资料,具有分析和研究价值,因此有价值。B错误:语音采集会将模拟声音转换为数字数据(如音频文件),生成新数据。C正确:表情、动作是信息载体,承载学生课堂状态的信息。D错误:系统中的“课堂投入值”可能是结构化数据(如数值),而视频、音频是非结构化数据,因此并非全为非结构化数据。故选C。
2. 某教学辅助系统通过摄像头和麦克风,采集并识别学生的表情、动作、语音等,转化为课堂投入值,同时录制课堂视频,最后上传服务器,形成教研活动资料库。为了节约系统存储空间,下列做法合适的是( )
A. 利用AI生成文字报告后删除视频
B. 保持视频原分辨率并将帧频降低至5fps
C. 将视频转换为BMP图像序列
D. 将AVI视频格式转换成MP4视频格式
【答案】D
【解析】
【详解】本题考查的是数据存储。选项A:生成文字报告后删除视频虽节省空间,但系统需存储视频作为教研资料,删除不符合需求。选项B:降低帧频(5fps)会减少视频流畅度,但保持原分辨率仍占用较大存储空间,效果有限。选项C:BMP为无压缩图像格式,转换为BMP序列会大幅增加存储空间,明显不合理。选项D:MP4采用H.264等高效压缩编码,相比AVI可显著减小文件体积,同时保持画质,是合理选择。故选D。
3. 某教学辅助系统通过摄像头和麦克风,采集并识别学生的表情、动作、语音等,转化为课堂投入值,同时录制课堂视频,最后上传服务器,形成教研活动资料库。下列提升语音识别准确性的做法,不合理的是( )
A. 减少训练次数 B. 优化识别算法
C. 使用降噪麦克风 D. 对教室做隔音处理
【答案】A
【解析】
【详解】本题考查的是人工智能。语音识别的准确性提升通常需要优化算法、降低环境噪音以及通过更多训练数据或训练次数让模型充分学习语音特征。减少训练次数会导致模型欠拟合,无法充分提取有效特征,从而降低识别准确性,因此是不合理的做法。故选A。
4. 某超市自助结账系统通过语音提示操作流程,顾客将商品条形码对准终端设备扫描区,终端设备从服务器获取商品价格并自动计价,顾客核对无误后完成支付。下列有关信息系统安全与防护的做法,不合理的是( )
A. 对交易数据进行加密 B. 定期自动备份数据
C. 为不同用户设置不同的权限 D. 将销售记录随意发布到网络
【答案】D
【解析】
【详解】本题考查的是信息系统安全。销售记录可能包含敏感信息(如商品销售情况、顾客隐私等),随意发布到网络会泄露数据,违反信息安全原则,属于不合理做法。故选D。
5. 在某次阅兵无人机表演中,每架无人机需要传输以下信息:
高度(范围:0~100米,精度0.1米)
速度(范围:0~50米/秒,精度0.2米/秒)
状态码(共8种状态)
若所有信息均用二进制编码(不考虑压缩),且每个信息按最小位数独立编码,则每架无人机每次传输所需的总二进制位数是( )
A. 21位 B. 19位 C. 17位 D. 15位
【答案】A
【解析】
【详解】本题考查二进制编码的位数计算。首先,计算高度信息的二进制位数。高度范围是0到100米,精度为0.1米,因此可能的高度值有1000种(包括0)。需要用二进制表示1000个不同的值,最小位数为⌈log21000⌉=10位。其次,计算速度信息的二进制位数。速度范围是0到50米/秒,精度为0.2米/秒,因此可能的速度值有250种(包括0)。需要用二进制表示250个不同的值,最小位数为⌈log2250⌉=8位。最后,计算状态码的二进制位数。状态码有8种状态,需要用二进制表示8个不同的值,最小位数为⌈log28⌉=3位。将各部分的位数相加,总二进制位数为10+8+3=21位。故答案为:A。
6. 小林根据图所示的流程图编写Python程序如下:
n=int(input())
s=0
while n > 5:
s=s+n
n-=1
print(s)
用下列输入数据进行测试,程序段与流程图输出结果不同的是( )
A. 20 B. 10 C. 6 D. 5
【答案】D
【解析】
【详解】本题考查流程图与程序代码的对比分析能力。从流程图看,它先进行一次“s←s+n,n←n-1”操作,然后再判断“n>5”是否继续循环;而给出的Python代码则是在进入循环前先判断“n>5”。因此,当输入n=5时,按流程图:会先执行一次s=s+5→s=5,n=4,再判断n>5为假,最后输出5; 按程序段:先判断5>5为假,不进入循环,最后输出0。 故两者在n=5时输出结果不同,答案选D。
7. 下列Python表达式中,值最大的是( )
A. abs(-2**2) B. 8%3**2 C. len('chr(65)') D. int('1'+'2')//4
【答案】B
【解析】
【详解】本题考查Python表达式计算。分别计算各选项结果: 1. |-2∗2|:幂运算优先级高于负号,2∗2=4,取负为-4,绝对值计算结果为4; 2. 8%3**2:幂运算优先,32=9,取余运算中被除数小于除数时余数为被除数本身,结果为8; 3. 字符串′chr(65)′包含c、h、r、(、6、5、)共7个字符,长度计算结果为7; 4. 字符串拼接得′12′,转为整数12,整数除法计算结果为3。 比较结果:8>7>4>3。因此,本题选择B选项。
8. 字符串变量s中存有小李身份证号码(s="330104200608160037",其中7至14位“20060816”代表出生日期),若想提取小李身份证中的出生日期,下列Python表达式错误的是( )
A. s[-12:-4] B. s[6:14] C. [7:15] D. s[6:-4]
【答案】C
【解析】
【详解】本题考查Python字符串切片。首先明确身份证字符串s=330104200608160037共18位,出生日期对应索引6到13(左闭右开切片需取[6:14]),负数索引中-12对应正数索引6,-4对应正数索引14。 A选项,s[-12:-4]等价于s[6:14],能正确提取出生日期,该表达式无误; B选项,s[6:14]直接截取索引6到13的字符,能正确提取出生日期,该表达式无误; C选项,[7:15]缺少字符串变量名s,存在语法错误,且即便补充为s[7:15],截取的是索引7到14的字符,得到的是"00608160",无法正确提取出生日期,该表达式错误; D选项错误,s[6:-4]等价于s[6:14],能正确提取出生日期,该表达式无误。因此,本题选择C选项。
9. 栈的入栈顺序为a,b,c,d,e,f,其出栈顺序是q1,q2,q3,q4,q5,q6。若q3为c,则q2的值不可能是( )
A. a B. b C. e D. f
【答案】D
【解析】
【详解】本题考查栈的出栈顺序与入栈顺序的关系。若 q2= f:不可能。原因如下:f是最后一个入栈的元素(在 𝑐 之后)。 若q2 = f,则 f是第二个出栈的元素,且 q2 = 𝑐 紧随其后。f 出栈后,栈顶必须是 𝑐 (因为 𝑞 3 = 𝑐 ),这意味着当 f入栈时,栈顶必须是 𝑐 (即 f入栈前,𝑑 和 𝑒 必须已出栈,否则栈顶会是 𝑑 或 𝑒 )。 但在 f入栈前,只有q1一个出栈事件(因为q2= f 是第二个出栈,发生在f入栈后)。q1只能出栈一个元素,无法同时出栈 𝑑 和 𝑒 (两个元素),矛盾。故本题应选D。
10. 某python程序段如下:
s="hAp#py"
que=[""]*10
head,tail=0,0
res=""
for i in range(len(s)):
if 'a'<=s[i]<='z':
que[tail]=s[i]
tail+=1
else:
head+=1
print(que[head:tail])
执行该程序段,输出的结果是( )
A. ['h','p','p','y'] B. ['p','p','y'] C. ['p','y'] D. ['y']
【答案】C
【解析】
【详解】本题考查Python程序调试与执行。程序段的主要功能是将字符串 s 中的小写字母存入队列 que 中,并通过调整 head 和 tail 指针控制输出结果。遇到小写字母tail递增1,其他字符head递增1。因此que=['h','p','p','y'],head=2,tail=4,因此输出结果是['p','y']。故选C。
11. 有如下Python程序段:
b=[];n=len(a)
for i in range(n):
for j in range(i+1,len(a[i])):
if a[i][j]==a[j][i]:
b.append(a[i][j]) #将元素添加到b中
print(b)
执行该程序段后,若数组b的值为[3,5],数组a的值可能是( )
A. a=[[1,3,7],[3,1,5],[6,5,3]] B. a=[[1,3,5],[3,1,2],[5,2,3]]
C. a=[[1,3,4],[3,1,5],[4,5,3]] D. a=[[2,4,5],[3,1,3],[5,3,3]]
【答案】A
【解析】
【详解】本题考查的是数组。程序检查二维数组a中i<j位置的元素是否对称(即a[i][j] == a[j][i]),并将符合条件的元素按遍历顺序存入列表b。若结果为[3,5],需满足以下条件:
1. i=0, j=1:a[0][1]和a[1][0]相等。
2. i=1, j=2:a[1][2]和a[2][1]相等。
选项A:
i=0时,j=1(3=3)→ 添加3;
j=2(7≠6)→ 不添加。 i=1时,j=2(5=5)→ 添加5。
最终b为[3,5],符合条件。故选A。
12. 使用列表a模拟链表结构(节点数n>0且n为偶数),每个节点包含数据区域和指针区域,head为头指针,结构如图所示。若要计算该链表中两个中点位置节点数据区域的平均值。实现上述功能的Python程序段如下所示,方框中应填入的正确代码为( )
s=f=head
num=0
while f!=-1:
num=(num+a[s][0])/2
print("平均值为",num)
A.
if a[f][1]==-1:
num+=a[s][0]
s=a[s][1]
f=a[a[f][1]][1]
B.
s=a[s][1]
f=a[a[f][1]][1]
if a[f][1]==-1:
num+=a[s][0]
C.
if a[a[f][1]][1]==-1:
num+=a[s][0]
s=a[s][1]
f=a[a[f][1]][1]
D.
s=a[s][1]
f=a[a[f][1]][1]
if a[a[f][1]][1]==-1:
num+=a[s][0]
A. A B. B C. C D. D
【答案】C
【解析】
【详解】本题考查链表。这道题使用快慢指针找链表中点的方法,快慢指针法中,快指针每次走两步,慢指针每次走一步。当快指针的下一个的下一个(即 a[a[f][1]][1])为 -1 时,说明快指针即将到达末尾,此时慢指针指向第一个中点,将其数据加入 num,然后慢指针后移一步(s = a[s][1]),快指针后移两步(f = a[a[f][1]][1])。循环结束后,慢指针会指向第二个中点,再通过 num = (num + a[s][0]) / 2 计算平均值。①因为要找链表的中点有两个,若判断条件为if a[f][1]==-1:,则两个中点的前面一个中点会漏掉,故排除AB;②若先遍历,再判断,同样会把需要的中点漏掉。故答案为C。
二、非选择题(本大题共3小题,其中13题8分,14题10分,15题8分,共26分)
13. 在图片编辑中,每种颜色都用十六进制编码表示,比如“#D2A336”,其中“D2”表示红色分量,“A3”表示绿色分量,“36”表示蓝色分量。“颜色反转”就是把这三种颜色各自的8位二进制数字反过来(0变1,1变0),再转化成十进制数字。
比如输入#D2A336,经过反转后十进制颜色值会变成RGB(45,92,201):
请输入十六进制颜色值:#D2A336
RGB(45,92,201)
RGB 十六进制、二进制和十进制颜色表示对照表如下:
颜色
R
G
B
十六进制
D2
A3
36
二进制
11010010
10100011
00110110
十进制
210
163
54
颜色反转过程如下:
颜色
R
G
B
二进制原值
11010010
10100011
00110110
二进制反转
00101101
01011100
11001001
十进制
49
92
201
(1)将十六进制颜色“#36FF00”反转后的十进制颜色值为RGB(( ))。
(2)实现上述功能的程序如下,请在划线处填入合适的代码。
def rev(n):
if 'A' <= n <= 'z':
n= ord(n)-ord('A')+10
else:
n= int(n)
t=""
while len(t) < 4:
r= ①____
t= str(r)+t
n=n//2
return t
s= input("请输入十六进制颜色值:")
s=s[1:]
ans=[]
for i in range(0,6,2):
a= rev(s[i])+ rev(s[i+1])
x=0
for j in range(8):
x= ②____
ans. append(x)
#将列表ans按RGB(xx, xx, xx)的格式输出,代码略
(3)将加框处判断条件替换为“n>0”,对程序的正确性____(选填:有/无)影响。
【答案】 ①. 201,0,255 ②. 1-n%2 或等价答案 ③. x*2+ int(a[j]) ④. 有
【解析】
【详解】本题考查颜色编码的反转及其在程序中的实现。
(1)十六进制颜色“#36FF00”表示RGB颜色值,其中“36”表示红色分量,“FF”表示绿色分量,“00”表示蓝色分量。将每个分量的二进制值进行反转后,得到新的二进制值,再转化为十进制值。具体步骤如下:- 红色分量“36”对应的二进制为“00110110”,反转后为“11001001”,对应的十进制为201。- 绿色分量“FF”对应的二进制为“11111111”,反转后为“00000000”,对应的十进制为0。- 蓝色分量“00”对应的二进制为“00000000”,反转后为“11111111”,对应的十进制为255。故答案为:RGB(201,0,255)。
(2)程序中需要填入合适的代码以实现颜色反转功能。在代码①处,计算当前位的反转值,使用表达式“1-n%2”可以得到当前位的反转值。在代码②处,计算反转后的十进制值,使用表达式“x*2+int(a[j])”可以逐位累加得到最终的十进制值。故答案为:① 1-n%2 或等价答案;② x*2+int(a[j])。
(3)将加框处判断条件替换为“n>0”,会影响程序正确性。原条件用于判断是否继续进行二进制转换,替换后可能导致逻辑错误。故答案为:有。
14. 手术室空气质量是术后感染的影响因素之一。某研究小组搭建手术室空气质量监测系统,在4间手术室(编号OR1到OR4)各设置一个监测点,分别采集手术室内的PM2.5浓度、温度和湿度。该小组对系统中某天的数据进行分析,部分数据如题图a所示(术后发生感染标记为1,否则为0)。请回答以下问题:
图a
手术室编号
术后感染0
0
OR3
0093750
1
OR2
0.056911
2
OR1
0.053571
3
OR4
0.036496
表b
(1)现要计算该天每个手术室“术后感染”的平均值并降序输出,如表b所示,请选择合适的代码填入划线处(填字母)。
df= pd. read_excel(" data. xlsx")
df1= ①____
df2= ②____
print(df2)
①②处可选代码有:
A. df1. groupby("手术室编号")["术后感染"]. mean()
B. df1. sort_values("术后感染", ignore_index= True)
C. df. groupby("手术室编号" as_index= False) ["术后感染"]. mean()
D. df1. sort_values("术后感染", ascending= False, ignore_index= True)
(提示:ignore_index= True 的作用是在排序后从0开始重建索引)
(2)在df2降序排序的基础上,再筛选出“术后感染”平均值最高的手术室的各项数据到df3。请选择合适的代码填入划线处(填字母)。
oid= ③____
df3= ④____
③④处可选代码有:
A. df[df.手术室编号== oid] B. df2[df2.手术室编号== oid]
C. df2. at[0, "手术室编号"] D. df2[0].手术室编号
(3)研究小组还绘制出各手术室数据平均值的图表如图c。分析图表可知,手术室空气细菌菌落数越多,术后感染风险____(选填:越低/越高)。
【答案】 ①. C ②. D ③. C ④. A ⑤. 越高
【解析】
【详解】本题考查数据分析与处理能力。
(1)首先需要计算每个手术室“术后感染”的平均值,并按降序排列。根据题意,使用groupby方法计算平均值,然后使用sort_values方法进行降序排列。故①应为C,②应为D。
(2)在df2降序排序的基础上,筛选出“术后感染”平均值最高的手术室的各项数据。首先获取df2中“术后感染”平均值最高的手术室编号,然后在原数据df中筛选出对应手术室的数据。故③应为C,④应为A。
(3)根据图c的分析,手术室空气细菌菌落数越多,术后感染风险越高。
15. 某工厂每天会收到预约加工订单,某天的订单数据如表a所示。订单种类分为A、B、C、D四种,不同种类订单的单个价值不同,如表b所示。该工厂共有三条加工订单的流水线,各流水线的加工速度如表c所示。订单价值=订单数量×单个价值,工厂收益是完成加工的各订单的价值总和。为实现收益最大化,工厂引进流水线调度系统,当流水线空闲时,该系统优先选择加工已送达订单中价值最高的订单,若有多条流水线空闲,优先为加工速度最快的流水线安排订单。编写程序,模拟系统的订单分配过程,输出每条流水线加工的订单及该订单加工完成的时间。
订单序号
预计送达时间
数量
种类
1
08:03
32
B
2
13:50
24
D
3
08:03
24
A
4
08:06
40
C
5
08:10
72
C
…
…
…
…
表a
订单种类
单个价值
A
6
B
4
C
2
D
1
表b
流水线
加工速度
1
8件/分钟
2
4件/分钟
3
2件/分钟
表c
(1)已知1号流水线加工的前3个订单的订单序号是1、3、4,订单详情如图a所示,则订单序号为1的订单加工完成的时刻为____(填写格式如08:00)。
(2)模拟加工过程,输出每条流水线加工的订单及该订单加工完成时间的部分Python程序如下,请在划线处填入合适的代码。
#读取数据存储到列表data
# data中每个元素由订单序号、预计送达时间、数量和种类构成,预计送达时间已转换成对应分钟数,种类已转换成对应价值。如某元素[1,"08:03",32,"B"]已转换为[1,483,32,4]。所有元素按预计送达时间升序排序,若预计送达时间相同则按总价值降序排序,代码略
n= len(data)
speed=[8,4,2] #三条流水线的加工速度
line=[0]* len(speed) #记录三条流水线的加工结束时间
finish=[[] for i in range(len(speed))]
for i in range(n):
data[i].append(-1)
i=0;head=-1
while i < n or head != -1:
first=0
ear_time=line[0]
for j in range(1,len(line)):#寻找最先加工结束的流水线
if line[j] < ear_time :
ear_time=line[j]
①____
while i < n and data[i][1] <= ear_time :
#处理流水线加工结束前到达的订单
if head == -1:
head=i
else:
p=head
q=p
values=data[i][2]*data[i][3]
while p != -1 and values < data[p][2]*data[p][3]:
q=p
②____
if p == head:
data[i][4]=p
head=i
else:
data[i][4]=p
data[q][4]=i
i+=1
if head != -1:
line[first]=line[first]+data[head][2]/speed[first]
finish[first].append([data[head][0],line[first]])
head=data[head][4]
else:
line[first]= ③____
finish[first].append([data[i][0],line[first]])
i+=1
#输出每条流水线加工的订单及该订单加工完成的时间,代码略
【答案】 ①. 08:10或8:10 ②. first=j ③. p= data[p][4] ④. data[i][1]+ data[i][2]/ speed[first]
【解析】
【详解】本题考查的是链表的综合应用。
(1)1、2号订单都是8:03分开始,需按价值优先的规则确定加工顺序,订单 1(B 类): 32×4=128 ;订单 3(A 类): 24×6=144。故加工顺序为:订单 3> 订单 1> 订单 4。订单3数量为24,工时长 = 订单数量 ÷ 加工速度 = 24÷8=3分钟;订单3数量为24,工时长 = 订单数量 ÷ 加工速度 = 32÷8=4 分钟;因此订单1完成时刻 = 08:03 + 3分钟 + 4 分钟= 08:10。
(2)① first = j:在循环中,当找到结束时间更早的流水线时,更新 first 为该流水线的索引 j,确保 first 始终指向最先空闲的流水线。 ② p = data[p][4]:在链表插入过程中,p 为当前节点索引,data[p][4] 存储下一个节点索引。此行将 p 移动到链表下一个节点,继续遍历以找到合适的插入位置(按订单价值降序)。 ③ data[i][1] + data[i][2] / speed[first]:当无待处理订单(head == -1)但还有新订单时,直接将新订单分配给空闲流水线。加工开始时间为订单送达时间 data[i][1],完成时间 = 送达时间 + 加工时间(数量 / 速度)。
第1页/共1页
学科网(北京)股份有限公司
$
余姚中学 2025学年 第一学期12月质量检测高二技术试卷
第一部分 信息技术(50分)
一、选择题(本大题共12题,每题2分,共24分,每题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)
1. 某教学辅助系统通过摄像头和麦克风,采集并识别学生的表情、动作、语音等,转化为课堂投入值,同时录制课堂视频,最后上传服务器,形成教研活动资料库。下列关于数据与信息的说法,正确的是( )
A. 课堂视频没有价值 B. 采集语音时不会产生新的数据
C. 学生的表情、动作是信息的载体 D. 系统中的数据均为非结构化数据
2. 某教学辅助系统通过摄像头和麦克风,采集并识别学生的表情、动作、语音等,转化为课堂投入值,同时录制课堂视频,最后上传服务器,形成教研活动资料库。为了节约系统存储空间,下列做法合适的是( )
A. 利用AI生成文字报告后删除视频
B. 保持视频原分辨率并将帧频降低至5fps
C. 将视频转换为BMP图像序列
D 将AVI视频格式转换成MP4视频格式
3. 某教学辅助系统通过摄像头和麦克风,采集并识别学生的表情、动作、语音等,转化为课堂投入值,同时录制课堂视频,最后上传服务器,形成教研活动资料库。下列提升语音识别准确性的做法,不合理的是( )
A. 减少训练次数 B. 优化识别算法
C. 使用降噪麦克风 D. 对教室做隔音处理
4. 某超市自助结账系统通过语音提示操作流程,顾客将商品条形码对准终端设备扫描区,终端设备从服务器获取商品价格并自动计价,顾客核对无误后完成支付。下列有关信息系统安全与防护做法,不合理的是( )
A. 对交易数据进行加密 B. 定期自动备份数据
C. 为不同用户设置不同的权限 D. 将销售记录随意发布到网络
5. 在某次阅兵无人机表演中,每架无人机需要传输以下信息:
高度(范围:0~100米,精度0.1米)
速度(范围:0~50米/秒,精度0.2米/秒)
状态码(共8种状态)
若所有信息均用二进制编码(不考虑压缩),且每个信息按最小位数独立编码,则每架无人机每次传输所需的总二进制位数是( )
A. 21位 B. 19位 C. 17位 D. 15位
6. 小林根据图所示的流程图编写Python程序如下:
n=int(input())
s=0
while n > 5:
s=s+n
n-=1
print(s)
用下列输入数据进行测试,程序段与流程图输出结果不同的是( )
A. 20 B. 10 C. 6 D. 5
7. 下列Python表达式中,值最大的是( )
A. abs(-2**2) B. 8%3**2 C. len('chr(65)') D. int('1'+'2')//4
8. 字符串变量s中存有小李身份证号码(s="330104200608160037",其中7至14位“20060816”代表出生日期),若想提取小李身份证中的出生日期,下列Python表达式错误的是( )
A. s[-12:-4] B. s[6:14] C. [7:15] D. s[6:-4]
9. 栈的入栈顺序为a,b,c,d,e,f,其出栈顺序是q1,q2,q3,q4,q5,q6。若q3为c,则q2的值不可能是( )
A. a B. b C. e D. f
10. 某python程序段如下:
s="hAp#py"
que=[""]*10
head,tail=0,0
res=""
for i in range(len(s)):
if 'a'<=s[i]<='z':
que[tail]=s[i]
tail+=1
else:
head+=1
print(que[head:tail])
执行该程序段,输出的结果是( )
A ['h','p','p','y'] B. ['p','p','y'] C. ['p','y'] D. ['y']
11. 有如下Python程序段:
b=[];n=len(a)
for i in range(n):
for j in range(i+1,len(a[i])):
if a[i][j]==a[j][i]:
b.append(a[i][j]) #将元素添加到b中
print(b)
执行该程序段后,若数组b的值为[3,5],数组a的值可能是( )
A. a=[[1,3,7],[3,1,5],[6,5,3]] B. a=[[1,3,5],[3,1,2],[5,2,3]]
C. a=[[1,3,4],[3,1,5],[4,5,3]] D. a=[[2,4,5],[3,1,3],[5,3,3]]
12. 使用列表a模拟链表结构(节点数n>0且n为偶数),每个节点包含数据区域和指针区域,head为头指针,结构如图所示。若要计算该链表中两个中点位置节点的数据区域的平均值。实现上述功能的Python程序段如下所示,方框中应填入的正确代码为( )
s=f=head
num=0
while f!=-1:
num=(num+a[s][0])/2
print("平均值为",num)
A.
if a[f][1]==-1:
num+=a[s][0]
s=a[s][1]
f=a[a[f][1]][1]
B.
s=a[s][1]
f=a[a[f][1]][1]
if a[f][1]==-1:
num+=a[s][0]
C.
if a[a[f][1]][1]==-1:
num+=a[s][0]
s=a[s][1]
f=a[a[f][1]][1]
D.
s=a[s][1]
f=a[a[f][1]][1]
if a[a[f][1]][1]==-1:
num+=a[s][0]
A. A B. B C. C D. D
二、非选择题(本大题共3小题,其中13题8分,14题10分,15题8分,共26分)
13. 在图片编辑中,每种颜色都用十六进制编码表示,比如“#D2A336”,其中“D2”表示红色分量,“A3”表示绿色分量,“36”表示蓝色分量。“颜色反转”就是把这三种颜色各自的8位二进制数字反过来(0变1,1变0),再转化成十进制数字。
比如输入#D2A336,经过反转后十进制颜色值会变成RGB(45,92,201):
请输入十六进制颜色值:#D2A336
RGB(45,92,201)
RGB 十六进制、二进制和十进制颜色表示对照表如下:
颜色
R
G
B
十六进制
D2
A3
36
二进制
11010010
10100011
00110110
十进制
210
163
54
颜色反转过程如下:
颜色
R
G
B
二进制原值
11010010
10100011
00110110
二进制反转
00101101
01011100
11001001
十进制
49
92
201
(1)将十六进制颜色“#36FF00”反转后的十进制颜色值为RGB(( ))。
(2)实现上述功能的程序如下,请在划线处填入合适的代码。
def rev(n):
if 'A' <= n <= 'z':
n= ord(n)-ord('A')+10
else:
n= int(n)
t=""
while len(t) < 4:
r= ①____
t= str(r)+t
n=n//2
return t
s= input("请输入十六进制颜色值:")
s=s[1:]
ans=[]
for i in range(0,6,2):
a= rev(s[i])+ rev(s[i+1])
x=0
for j in range(8):
x= ②____
ans. append(x)
#将列表ans按RGB(xx, xx, xx)的格式输出,代码略
(3)将加框处判断条件替换为“n>0”,对程序的正确性____(选填:有/无)影响。
14. 手术室空气质量是术后感染的影响因素之一。某研究小组搭建手术室空气质量监测系统,在4间手术室(编号OR1到OR4)各设置一个监测点,分别采集手术室内的PM2.5浓度、温度和湿度。该小组对系统中某天的数据进行分析,部分数据如题图a所示(术后发生感染标记为1,否则为0)。请回答以下问题:
图a
手术室编号
术后感染0
0
OR3
0.093750
1
OR2
0.056911
2
OR1
0.053571
3
OR4
0.036496
表b
(1)现要计算该天每个手术室“术后感染”的平均值并降序输出,如表b所示,请选择合适的代码填入划线处(填字母)。
df= pd. read_excel(" data. xlsx")
df1= ①____
df2= ②____
print(df2)
①②处可选代码有:
A. df1. groupby("手术室编号")["术后感染"]. mean()
B. df1. sort_values("术后感染", ignore_index= True)
C. df. groupby("手术室编号", as_index= False) ["术后感染"]. mean()
D. df1. sort_values("术后感染", ascending= False, ignore_index= True)
(提示:ignore_index= True 的作用是在排序后从0开始重建索引)
(2)在df2降序排序的基础上,再筛选出“术后感染”平均值最高的手术室的各项数据到df3。请选择合适的代码填入划线处(填字母)。
oid= ③____
df3= ④____
③④处可选代码有:
A. df[df.手术室编号== oid] B. df2[df2.手术室编号== oid]
C. df2. at[0, "手术室编号"] D. df2[0].手术室编号
(3)研究小组还绘制出各手术室数据平均值的图表如图c。分析图表可知,手术室空气细菌菌落数越多,术后感染风险____(选填:越低/越高)。
15. 某工厂每天会收到预约加工订单,某天的订单数据如表a所示。订单种类分为A、B、C、D四种,不同种类订单的单个价值不同,如表b所示。该工厂共有三条加工订单的流水线,各流水线的加工速度如表c所示。订单价值=订单数量×单个价值,工厂收益是完成加工的各订单的价值总和。为实现收益最大化,工厂引进流水线调度系统,当流水线空闲时,该系统优先选择加工已送达订单中价值最高的订单,若有多条流水线空闲,优先为加工速度最快的流水线安排订单。编写程序,模拟系统的订单分配过程,输出每条流水线加工的订单及该订单加工完成的时间。
订单序号
预计送达时间
数量
种类
1
08:03
32
B
2
13:50
24
D
3
08:03
24
A
4
08:06
40
C
5
08:10
72
C
…
…
…
…
表a
订单种类
单个价值
A
6
B
4
C
2
D
1
表b
流水线
加工速度
1
8件/分钟
2
4件/分钟
3
2件/分钟
表c
(1)已知1号流水线加工的前3个订单的订单序号是1、3、4,订单详情如图a所示,则订单序号为1的订单加工完成的时刻为____(填写格式如08:00)。
(2)模拟加工过程,输出每条流水线加工的订单及该订单加工完成时间的部分Python程序如下,请在划线处填入合适的代码。
#读取数据存储到列表data
# data中每个元素由订单序号、预计送达时间、数量和种类构成,预计送达时间已转换成对应分钟数,种类已转换成对应价值。如某元素[1,"08:03",32,"B"]已转换为[1,483,32,4]。所有元素按预计送达时间升序排序,若预计送达时间相同则按总价值降序排序,代码略
n= len(data)
speed=[8,4,2] #三条流水线的加工速度
line=[0]* len(speed) #记录三条流水线的加工结束时间
finish=[[] for i in range(len(speed))]
for i in range(n):
data[i].append(-1)
i=0;head=-1
while i < n or head != -1:
first=0
ear_time=line[0]
for j in range(1,len(line)):#寻找最先加工结束的流水线
if line[j] < ear_time :
ear_time=line[j]
①____
while i < n and data[i][1] <= ear_time :
#处理流水线加工结束前到达订单
if head == -1:
head=i
else:
p=head
q=p
values=data[i][2]*data[i][3]
while p != -1 and values < data[p][2]*data[p][3]:
q=p
②____
if p == head:
data[i][4]=p
head=i
else:
data[i][4]=p
data[q][4]=i
i+=1
if head != -1:
line[first]=line[first]+data[head][2]/speed[first]
finish[first].append([data[head][0]line[first]])
head=data[head][4]
else:
line[first]= ③____
finish[first].append([data[i][0],line[first]])
i+=1
#输出每条流水线加工的订单及该订单加工完成的时间,代码略
第1页/共1页
学科网(北京)股份有限公司
$