浙江省北斗星盟2023-2024学年高二下学期5月月考技术试题-高中信息技术(解析版)

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

浙江省北斗星盟2023-2024学年高二下学期5月月考技术试题-高中信息技术(解析版)

资源简介

2023学年第二学期北斗星盟5月阶段性联考
高二年级技术学科试题
考生须知:
1.本卷共13页满分100分,考试时间90分钟。
2.答题前,在答题卷指定区域填写班级、姓名、考场号、座位号及准考证号并填涂相应数字。
3.所有答案必须写在答题纸上,写在试卷上无效。
4.考试结束后,只需上交答题纸。
第一部分:信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)
1. 下列关于数据和信息的说法不正确的是( )
A. 数据的表现形式可以是数字、图形符号和字母等
B. 信息可以依附于不同的载体,也可以脱离载体而独立存在
C. 计算机中的数据以二进制形式存储
D. 信息价值可能随时间的推移而变化
2. 下列关于大数据及其处理的说法正确的是( )
A. 大数据体量规模巨大,可以抽取价值密度高的样本进行分析
B. 在大数据处理过程中,泄露个人信息不会造成安全问题
C. 大数据产生速度快,实时生成的大数据无法与批处理整合处理
D. 文本数据处理在情报分析、垃圾邮件过滤、机器翻译等方面有重要应用
3. 学校引进了自动售货机,在自动售货机中提供各类饮料。师生可以根据自身需求选择自己喜欢的饮料组合。该机具备屏幕展示、货物保鲜、支付等功能。师生可以使用现金、移动支付或刷卡等支付方式进行购买,方便快捷。销售商通过售货机智能化的监控系统,实时了解库存情况,并通过指纹识别打开饮料机及时进行补货。同时,销售商根据不同时间段和需求预测来调整饮料的采购量。下列关于该系统的组成、功能和应用的说法不正确的是( )
A. 销售商管理后台可查看饮料销售情况,说明该信息系统具有数据查询功能
B. 学校老师和学生都是该信息系统的用户
C. 该系统服务器需安装系统软件
D. 饮料售卖机不属于该信息系统硬件设备
4. 学校引进了自动售货机,在自动售货机中提供各类饮料。师生可以根据自身需求选择自己喜欢的饮料组合。该机具备屏幕展示、货物保鲜、支付等功能。师生可以使用现金、移动支付或刷卡等支付方式进行购买,方便快捷。销售商通过售货机智能化的监控系统,实时了解库存情况,并通过指纹识别打开饮料机及时进行补货。同时,销售商根据不同时间段和需求预测来调整饮料的采购量。该系统的下列应用中,体现人工智能技术的是( )
A. 扫码支付饮料费用 B. 销售商通过数据库中的数据了解饮料售卖情况
C. 销售商通过指纹识别打开售货机补充饮料 D. 屏幕上展示饮料的配料表
5. 学校引进了自动售货机,在自动售货机中提供各类饮料。师生可以根据自身需求选择自己喜欢的饮料组合。该机具备屏幕展示、货物保鲜、支付等功能。师生可以使用现金、移动支付或刷卡等支付方式进行购买,方便快捷。销售商通过售货机智能化的监控系统,实时了解库存情况,并通过指纹识别打开饮料机及时进行补货。同时,销售商根据不同时间段和需求预测来调整饮料的采购量。下列关于信息系统安全和信息社会责任的说法,正确的是( )
A. 未经授权,可将师生购买饮料的视频放到电商平台展示
B. 售货机不会出现数据安全问题,可以不用备份数据
C. 为该系统安装杀毒软件和防火墙,以提高系统的安全性
D. 对所有用户设置相同的访问权限
6. 下列关于网络系统的说法,不正确的是( )
A. 网络仅具有数据资源的共享功能
B. 无论是局域网还是广域网,都要遵守网络通信协议
C. 5G网络满足物联网海量连接和车联网极低延时要求
D. 服务器负责数据处理和网络控制,并构成网络的主要资源
7. 某算法的部分流程图如图所示。执行这部分流程,若依次输入的数据为3、-4、5、-2、2、3、0,则输出m的值为( )
A. 5 B. 7 C. 8 D. 10
8. 使用键盘在word软件中输入“bliokocke”其中“”代表撤销操作(如oni表示撤销最近输入的“i”保留on),编程模拟其输入过程,合适的数据结构和最后输入的字母是( )
A. 栈 block B. 队列 block C. 队列 bicke D. 栈 blook
9. 下列Python表达式中,计算结果值与其它选项不同的是( )
A. abs(-3//2) B. 3**3%5 C. len("1+2") D. int(max("2","12"))
10. 某加密程序的代码如下:
s=input("请输入明文: ")
q="1896720354";mw=""
for i in range(len(s)):
if”0”<=s[i]<="9":
mw+=q[int(s[i])]
elif "a"<=s[i]<="z"
mw+=chr((ord(s[i])-ord("a")+i%2)%26+ord("a")
else:
mw=s[i]+mw
print(mw)
运行该程序段,若输入s的值为“Win98@”,则输出结果是( )
A. @Wjn45qrdon B. Wjn53@qr.don C. Wjn32@qr.don D. @Wkp45sseqo
11. 有如下Python程序段:
from random import randint
a=[1]*8
p=randint(1,7)
a[0]=p
for i in range(1len(a)):
a[i]=a[i-1]+randint(15)*2
for i in range(len(a)-1,p,-1):
a[i]=a[i-1]
a[i-1]=p
print(a)
执行该程序段后,输出的结果可能是( )
A. [4,10,18,4,20,22,24,26] B. [6,14,22,32,40,44,6,46] C. [1,1,7,11,19,31,33,41] D. [2,5,2,7,17,19,21,29]
12. 从链表b中随机取出6个不同节点元素存入数组a,方框中填入的代码不能实现该功能的为( )
import random
b=[["A",1],[ "B",2],[ "C",3],[ "D",4],[ "E",5],[ "F",6],[ "G",7],[ "H",-1]]
head=0
a=[ ]
for i in range(6):
k=random.randint(0,len(b)-i-1)
if k==0:
a.append(b[head][0])
head=b[head][1]
else:
print(a)
A. p=head for j in range(k): pre=p p=b[p][1] b[pre][1]=b[p][1] a.append(b[p][0]) B. p=head for j in range(k+1): pre=p p=b[p][1] a.append(b[p][0]) b[pre][1]=b[p][1] C. p=head;i=0 while i<k: i=i+1;pre=p p=b[p][1] b[pre][1]=b[p][1] a.append(b[p][0]) D. p=head;i=0 while i<k-1: i=i+1 p=b[p][1] a.append(b[b[p][1]][0]) b[p][1]= b[b[p][1]][1]
A. A B. B C. C D. D
二、非选择题(本大题共3小题,其中第13小题9分,第14小题8分,第15小题9分,共26分)
13. 小张搭建了智能楼道灯控制系统,实现楼道灯自动控制。当楼道内光线不足,并检测到有声音时,楼道灯开启,持续亮灯一定时间后关闭。该系统结构示意图如图所示,请回答下列问题:
(1)请在上图虚线框内用箭头标出智能终端与传感器、楼道灯和IoT模块之间的数据传输关系。____
(2)智能终端上的程序具有如下功能:每隔0.5秒获取1次传感器采集的光线值、声音值;当楼道光线值Light低于阈值L(200),并且检测到声音值Sound超过阈值S(1000)时,自动打开楼道灯,当亮灯时间超过h时关灯。部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,并从服务器获取光线阈值和声音阈值,分别保存在变量L和S中,代码略
#从服务器获取亮灯时间保存在h中,代码略
flag=False;Lasttime=0
while True:
#获取当前时间,保存在Newtime中,代码略
#获取传感器采集的光线值和声音值,分别保存在变量Light和Sound中,代码略
if not flag:
if LightS:
flag=True
①____
#打开楼道LED灯,代码略
elif Newtime - Lasttime>h:
②____
#关闭楼道LED灯,代码略
#相关数据存储到数据库,代码略
sleep(500)
(3)用户通过浏览器将光线、声音的阈值,以及亮灯持续时间数据提交到服务器的URL为http://192.168.1.98:5000/upload L=200&S=1000&h=15,则服务器端应用实例app与该URL关联的路由设置语句是@app.route("____")。
(4)系统搭建完成后,正常运行一段时间后,小张发现有同学晚上经过楼道时,楼道灯未打开。他通过浏览器查看实时监测数据,发现页面上显示的光线值正常。结合图示,简要说明系统中可能造成上述问题的原因。____
14. 小红收集了某高中期中考试成绩,对成绩计算位次。计算位次规则如下:
①按总分计算位次,总分高者优先。
②总分相同,比较语文、数学两门成绩之和即语数总分,高者优先。
③总分相同,语文、数学成绩之和也相同时,取语文、数学两门中的单科较高成绩进行比较,高者优先。
编写Python程序,计算每位同学的位次。
(1)定义read_data函数,读取某高中期中考试成绩(chengji.xlsx)文件,部分数据如图a所示。在表中增加“语数总分”列,计算每个人的语文和数学成绩的和,并以“总分”列为主关键字“语数总分”列为次要关键字进行排序。
def read_data(datafile):
df=pd.read_excel(datafile)
df["语数总分"]= ①____
df=df.sort_values(["总分","语数总分"], ②____,ignore_index=True)
return df
def sort1(start,end,df2):#计算当总分和语数总分都相同时的学生位次。代码略
(2)Python主程序如下:
import pandas as pd
file="chengji.xlsx"
df1=read_data(file)
i=0
while i<=len(df1)-2:
if ①____
df1.at[i, "名次"]=i+1;i=i+1
else:
if df1.at[i, "语数总分"]!=df1.at[i+1, "语数总分"]:
df1.at[i, "名次"]=i+1;i=i+1
else:
j=i+1
while dfl.at[i, "语数总分"]==dfl.at[j, "语数总分"]:
j=j+1
sort1(i,j-1,df1)#总分和语数总分都相同的学生调用sort1函数计算位次
②____
#最后一位同学位次处理及数据保存到"jieguo.xlsx"文件,代码略
15. 树上有n个苹果,已知小明身高为160cm,板凳高度为40cm,每个苹果大小不一样,摘苹果和搬板凳分别需要消耗1个能量点。假设小明共有ey个能量点,如何摘能使小明摘到苹果的总重量最大?
程序思路:先按苹果高度(小于等于160,大于160且小于等于200)将数据分别存储apple_a,apple_b中,并按苹果重量降序排列。再对两组数据进行比较:若消耗2个能量点的最重苹果重量大于消耗1个能量点的最重两个苹果重量之和,则摘下消耗2个能量点的最重苹果,否则摘下消耗1个能量点的最重苹果。苹果的高度与重量存储在列表apple中,每个元素中的第一个值表示苹果高度(cm),第二个值表示苹果重量(g)。如apple=[[100,202],[210,300],[170,400],[110,100],[140,150],[180,340]],ey=5,则摘下的苹果为:[170,400],[100,202],[180,340]。请回答下列问题:
(1)若apple=[[200,102],[205,200],[160,400],[150,300],[130,190],[175,104],[188,350]],能量点数ey=6,则摘到的总重量最大是____g。
(2)定义link(d)函数。函数功能是将列表d创建成链表,请在划线处填入代码。
def link(d):
for i in range(len(d)):
d[i].append(-1) #在d[i]中追加一个元素-1
for i in range(1,len(d)):
____
return d
def sort(d):#列表d的每个元素由高度与重量构成。函数功能是将d按重量降序排列,代码略
(3)实现摘苹果的主程序如下,请在划线处补充代码。
apple=[[100,202],[210,300],[170,400],[110,100],[140,150],[180,340]]
apple_a=[];apple_b=[]
#按苹果高度(小于等于160,大于160且小于等于200)将数据分别存储在apple_a,apple_b中
#代码略
sort(apple_a);sort(apple_b);link(apple_a);link(apple_b)
head_a,head_b=0,0;apple_end=[]
alen=len(apple_a);blen=len(apple_b)
ey=int(input("请输入能量值: "))
def linkdel(d,head,dlen):
apple_end.append(d[head])
①____
dlen=dlen-1
return head,dlen
while ey>0:
if alen>1 and blen>0:
if ②____ and ey>=2:
ey=ey-2
head_b,blen=linkdel(apple_b,head_b,blen)
else:
ey=ey-1
head_a,alen=linkdel(apple_a,head_a,alen)
elif blen==0 and alen>0:
ey=ey-1
head_a,alen=linkdel(apple_a,head_a,alen)
elif blen>0 and alen==1:
if ey>1 and apple_b[head_b][1]>apple_a[head_a][1]:
ey=ey-2
head_b,blen=linkdel(apple_b,head_b,blen)
else:
ey=ey-1
head_a,alen=linkdel(apple_a,head__a,alen)
elif
ey=ey-2
head_bblen=linkdel(apple__b,head_b,blen)
else:
break
print("剩下能量值: ",ey)
print("摘下的苹果: ",end=" ")
for i in range(len(apple_end)):
print(apple_end[i][:2],end=" ")
(4)程序中加框处有误,请修正。____2023学年第二学期北斗星盟5月阶段性联考
高二年级技术学科试题
考生须知:
1.本卷共13页满分100分,考试时间90分钟。
2.答题前,在答题卷指定区域填写班级、姓名、考场号、座位号及准考证号并填涂相应数字。
3.所有答案必须写在答题纸上,写在试卷上无效。
4.考试结束后,只需上交答题纸。
第一部分:信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)
1. 下列关于数据和信息的说法不正确的是( )
A. 数据的表现形式可以是数字、图形符号和字母等
B. 信息可以依附于不同载体,也可以脱离载体而独立存在
C. 计算机中的数据以二进制形式存储
D. 信息的价值可能随时间的推移而变化
【答案】B
【解析】
【详解】本题考查数据与信息。信息通常需要依附于某种载体,例如文字、图像、声音等形式,它们共同构成了信息的呈现方式。信息本身不会脱离载体而独立存在。故答案为:B。
2. 下列关于大数据及其处理的说法正确的是( )
A. 大数据体量规模巨大,可以抽取价值密度高的样本进行分析
B. 在大数据处理过程中,泄露个人信息不会造成安全问题
C. 大数据产生速度快,实时生成的大数据无法与批处理整合处理
D. 文本数据处理在情报分析、垃圾邮件过滤、机器翻译等方面有重要应用
【答案】D
【解析】
【详解】本题考查大数据。A选项:大数据体量规模巨大,但抽取样本进行分析可能会丢失大量有价值的信息,不能代表整体数据,A选项错误。B选项:在大数据处理过程中,泄露个人信息会造成严重的安全问题,B选项错误。C选项:大数据产生速度快,实时生成的大数据可以与批处理整合处理,C选项错误。D选项:文本数据处理在情报分析、垃圾邮件过滤、机器翻译等方面有重要应用,D选项正确。 故答案为:D。
3. 学校引进了自动售货机,在自动售货机中提供各类饮料。师生可以根据自身需求选择自己喜欢的饮料组合。该机具备屏幕展示、货物保鲜、支付等功能。师生可以使用现金、移动支付或刷卡等支付方式进行购买,方便快捷。销售商通过售货机智能化的监控系统,实时了解库存情况,并通过指纹识别打开饮料机及时进行补货。同时,销售商根据不同时间段和需求预测来调整饮料的采购量。下列关于该系统的组成、功能和应用的说法不正确的是( )
A. 销售商管理后台可查看饮料销售情况,说明该信息系统具有数据查询功能
B. 学校老师和学生都是该信息系统的用户
C. 该系统服务器需安装系统软件
D. 饮料售卖机不属于该信息系统硬件设备
【答案】D
【解析】
【详解】本题考查信息系统的组成及功能。自动售货机是该信息系统的核心硬件设备之一,它负责提供饮料的销售服务,并通过与服务器的连接实现与管理后台的数据交换。故答案为:D。
4. 学校引进了自动售货机,在自动售货机中提供各类饮料。师生可以根据自身需求选择自己喜欢的饮料组合。该机具备屏幕展示、货物保鲜、支付等功能。师生可以使用现金、移动支付或刷卡等支付方式进行购买,方便快捷。销售商通过售货机智能化的监控系统,实时了解库存情况,并通过指纹识别打开饮料机及时进行补货。同时,销售商根据不同时间段和需求预测来调整饮料的采购量。该系统的下列应用中,体现人工智能技术的是( )
A. 扫码支付饮料费用 B. 销售商通过数据库中的数据了解饮料售卖情况
C. 销售商通过指纹识别打开售货机补充饮料 D. 屏幕上展示饮料的配料表
【答案】C
【解析】
【详解】本题考查人工智能技术。销售商通过指纹识别打开售货机补充饮料是体现人工智能技术的应用。指纹识别属于生物特征识别技术的一种,利用人工智能算法对指纹进行识别,确保只有授权的人员才能打开售货机进行补货。故答案为:C。
5. 学校引进了自动售货机,在自动售货机中提供各类饮料。师生可以根据自身需求选择自己喜欢的饮料组合。该机具备屏幕展示、货物保鲜、支付等功能。师生可以使用现金、移动支付或刷卡等支付方式进行购买,方便快捷。销售商通过售货机智能化的监控系统,实时了解库存情况,并通过指纹识别打开饮料机及时进行补货。同时,销售商根据不同时间段和需求预测来调整饮料的采购量。下列关于信息系统安全和信息社会责任的说法,正确的是( )
A. 未经授权,可将师生购买饮料的视频放到电商平台展示
B. 售货机不会出现数据安全问题,可以不用备份数据
C. 为该系统安装杀毒软件和防火墙,以提高系统的安全性
D. 对所有用户设置相同的访问权限
【答案】C
【解析】
【详解】本题考查信息系统安全。A选项:未经授权,将师生购买饮料的视频放到电商平台展示,属于侵犯隐私的行为,是不合法的,A选项错误。B选项:售货机涉及到支付信息和库存管理等数据,存在数据安全问题,必须进行数据备份,B选项错误。C选项:为该系统安装杀毒软件和防火墙,可以有效防止病毒和网络攻击,提高系统的安全性,C选项正确。D选项:对所有用户设置相同的访问权限,不符合信息安全的基本原则,不同角色应有不同的访问权限,D选项错误。 故答案为:C。
6. 下列关于网络系统的说法,不正确的是( )
A. 网络仅具有数据资源的共享功能
B. 无论是局域网还是广域网,都要遵守网络通信协议
C. 5G网络满足物联网海量连接和车联网极低延时要求
D. 服务器负责数据处理和网络控制,并构成网络的主要资源
【答案】A
【解析】
【详解】本题考查网络系统。网络系统不仅具有数据资源的共享功能,还包括了很多其他的功能和特点,比如通信、数据传输、远程控制等。故答案为:A。
7. 某算法部分流程图如图所示。执行这部分流程,若依次输入的数据为3、-4、5、-2、2、3、0,则输出m的值为( )
A. 5 B. 7 C. 8 D. 10
【答案】C
【解析】
【详解】本题考查流程图。程序运行过程如下所示,由此可知最终输出的m的值为8。故答案为:C。
s m a
0 0 3
3 3 -4
0 3 5
5 5 -2
3 5 2
5 5 3
8 8 0
8. 使用键盘在word软件中输入“bliokocke”其中“”代表撤销操作(如oni表示撤销最近输入的“i”保留on),编程模拟其输入过程,合适的数据结构和最后输入的字母是( )
A. 栈 block B. 队列 block C. 队列 bicke D. 栈 blook
【答案】A
【解析】
【详解】本题考查数据结构。输入过程中,需要按照先进后出的原则,即最后输入的字符最先被撤销,因此可以使用栈来模拟。栈的特性正好符合这种撤销操作的需求。最后输入的字母为:block。故答案为:A。
9. 下列Python表达式中,计算结果值与其它选项不同的是( )
A. abs(-3//2) B. 3**3%5 C. len("1+2") D. int(max("2","12"))
【答案】C
【解析】
【详解】本题考查Python表达式。abs(-3//2):首先计算-3//2得到-2,然后取其绝对值得到2。3**3%5:首先计算3**3得到27,然后对27取模5得到2。len("1+2"):字符串"1+2"的长度为3,因此结果是3。int(max("2","12")):比较字符串"2"和"12",根据字符串的ASCII码比较规则,逐个字符比较,"2"在"1"之前,所以max("2","12")返回"2",然后将其转换为整数得到2。故答案为:C。
10. 某加密程序的代码如下:
s=input("请输入明文: ")
q="1896720354";mw=""
for i in range(len(s)):
if”0”<=s[i]<="9":
mw+=q[int(s[i])]
elif "a"<=s[i]<="z"
mw+=chr((ord(s[i])-ord("a")+i%2)%26+ord("a")
else:
mw=s[i]+mw
print(mw)
运行该程序段,若输入s的值为“Win98@”,则输出结果是( )
A. @Wjn45qrdon B. Wjn53@qr.don C. Wjn32@qr.don D. @Wkp45sseqo
【答案】A
【解析】
【详解】本题考查Python程序。对于明文中的每个字符,根据其类型进行不同的处理:如果是数字字符('0'到'9'),则根据预设的字符串“1896720354”进行替换。如果是小写字母字符('a'到'z'),则将其转换为另一个小写字母,转换规则为:先将其转换为对应的数字,然后对于每个字母,根据其在字符串中的位置(即索引值)的奇偶性来进行不同的位移。偶数索引的字母向右移动1位,奇数索引的字母向左移动1位,移动时循环利用字母表。如果不是数字字符或小写字母字符,则保持不变。将处理后的字符依次拼接到加密后的字符串mw中。输出加密后的结果mw。根据上述规则,输入s的值为“Win98@”,输出的结果为:“@Wjn45qrdon”。故答案为:A。
11. 有如下Python程序段:
from random import randint
a=[1]*8
p=randint(1,7)
a[0]=p
for i in range(1,len(a)):
a[i]=a[i-1]+randint(1,5)*2
for i in range(len(a)-1,p,-1):
a[i]=a[i-1]
a[i-1]=p
print(a)
执行该程序段后,输出的结果可能是( )
A. [4,10,18,4,20,22,24,26] B. [6,14,22,32,40,44,6,46] C. [1,1,7,11,19,31,33,41] D. [2,5,2,7,17,19,21,29]
【答案】B
【解析】
【详解】本题考查Python程序。程序中首先创建了一个包含8个元素的列表a,并将第一个元素初始化为一个随机数p。然后,通过循环依次计算列表中后续元素的值,每个元素的值为前一个元素的值加上一个随机数乘以2。接着,又通过一个循环将列表中从第p个元素开始到倒数第二个元素的值向后移动一位,并将原来位置上的值替换为p。最后,输出列表a,最终程序结束时,一定有a[p]=p。A选项错误,不存在a[p]=p。C选项错误,由输出结果可知,p=1,但此时a[5]-a[4]=12,由题中a[i]=a[i-1]+randint(1,5)*2可知,该情况不可能存在。D选项错误,由输出结果可知,p=2,但a[1]-a[0]=3,由题中a[i]=a[i-1]+randint(1,5)*2可知,该情况不可能存在。故答案为:B。
12. 从链表b中随机取出6个不同节点元素存入数组a,方框中填入的代码不能实现该功能的为( )
import random
b=[["A",1],[ "B",2],[ "C",3],[ "D",4],[ "E",5],[ "F",6],[ "G",7],[ "H",-1]]
head=0
a=[ ]
for i in range(6):
k=random.randint(0,len(b)-i-1)
if k==0:
a.append(b[head][0])
head=b[head][1]
else:
print(a)
A. p=head for j in range(k): pre=p p=b[p][1] b[pre][1]=b[p][1] a.append(b[p][0]) B. p=head for j in range(k+1): pre=p p=b[p][1] a.append(b[p][0]) b[pre][1]=b[p][1] C. p=head;i=0 while i<k: i=i+1;pre=p p=b[p][1] b[pre][1]=b[p][1] a.append(b[p][0]) D p=head;i=0 while i<k-1: i=i+1 p=b[p][1] a.append(b[b[p][1]][0]) b[p][1]= b[b[p][1]][1]
A. A B. B C. C D. D
【答案】B
【解析】
【详解】本题考查Python以及链表。B选项的代码:for j in range(k+1):该代码在遍历链表时多取了一次节点,导致取出的节点数不符合要求。故答案为:B。
二、非选择题(本大题共3小题,其中第13小题9分,第14小题8分,第15小题9分,共26分)
13. 小张搭建了智能楼道灯控制系统,实现楼道灯的自动控制。当楼道内光线不足,并检测到有声音时,楼道灯开启,持续亮灯一定时间后关闭。该系统结构示意图如图所示,请回答下列问题:
(1)请在上图虚线框内用箭头标出智能终端与传感器、楼道灯和IoT模块之间的数据传输关系。____
(2)智能终端上的程序具有如下功能:每隔0.5秒获取1次传感器采集的光线值、声音值;当楼道光线值Light低于阈值L(200),并且检测到声音值Sound超过阈值S(1000)时,自动打开楼道灯,当亮灯时间超过h时关灯。部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,并从服务器获取光线阈值和声音阈值,分别保存在变量L和S中,代码略
#从服务器获取亮灯时间保存在h中,代码略
flag=False;Lasttime=0
while True:
#获取当前时间,保存在Newtime中,代码略
#获取传感器采集的光线值和声音值,分别保存在变量Light和Sound中,代码略
if not flag:
if LightS:
flag=True
①____
#打开楼道LED灯,代码略
elif Newtime - Lasttime>h:
②____
#关闭楼道LED灯,代码略
#相关数据存储到数据库,代码略
sleep(500)
(3)用户通过浏览器将光线、声音的阈值,以及亮灯持续时间数据提交到服务器的URL为http://192.168.1.98:5000/upload L=200&S=1000&h=15,则服务器端应用实例app与该URL关联的路由设置语句是@app.route("____")。
(4)系统搭建完成后,正常运行一段时间后,小张发现有同学晚上经过楼道时,楼道灯未打开。他通过浏览器查看实时监测数据,发现页面上显示的光线值正常。结合图示,简要说明系统中可能造成上述问题的原因。____
【答案】 ①. ②. Lasttime=Newtime ③. flag=False ④. /upload ⑤. 声音传感器故障:楼道灯故障:声音传感器与智能终端连接断开;楼道灯与智能终端连接断开等。
【解析】
【详解】本题考查信息系统的应用。
(1)智能终端与传感器、楼道灯和IoT模块之间的数据传输关系如答案中所示。
(2)当楼道灯亮起后,需要更新Lasttime为当前时间Newtime,以便后续计算亮灯时间否超过预设时间h。故答案为:Lasttime=Newtime。在亮灯时间超过h后,需要将flag重置为False,表示楼道灯应该关闭。故答案为:flag=False。
(3)服务器端应用实例app与该URL关联的路由设置语句是@app.route("/upload")。故答案为:/upload。
(4)可能原因包括:声音传感器故障:如果声音传感器出现故障,将无法正确检测到声音值,导致楼道灯不会打开。楼道灯故障:如果楼道灯本身出现故障,无法正常工作,即使检测到光线和声音值正常,也无法打开。传感器与智能终端连接断开:如果传感器与智能终端之间的连接出现问题,智能终端将无法获取传感器采集的数据,导致无法正确判断是否需要打开楼道灯。楼道灯与智能终端连接断开:如果楼道灯与智能终端之间的连接出现问题,智能终端将无法控制楼道灯的开关状态,导致无法实现灯的自动控制。
14. 小红收集了某高中期中考试成绩,对成绩计算位次。计算位次规则如下:
①按总分计算位次,总分高者优先。
②总分相同,比较语文、数学两门成绩之和即语数总分,高者优先。
③总分相同,语文、数学成绩之和也相同时,取语文、数学两门中的单科较高成绩进行比较,高者优先。
编写Python程序,计算每位同学的位次。
(1)定义read_data函数,读取某高中期中考试成绩(chengji.xlsx)文件,部分数据如图a所示。在表中增加“语数总分”列,计算每个人的语文和数学成绩的和,并以“总分”列为主关键字“语数总分”列为次要关键字进行排序。
def read_data(datafile):
df=pd.read_excel(datafile)
df["语数总分"]= ①____
df=df.sort_values(["总分","语数总分"], ②____,ignore_index=True)
return df
def sort1(start,end,df2):#计算当总分和语数总分都相同时的学生位次。代码略
(2)Python主程序如下:
import pandas as pd
file="chengji.xlsx"
df1=read_data(file)
i=0
while i<=len(df1)-2:
if ①____
df1.at[i, "名次"]=i+1;i=i+1
else:
if df1.at[i, "语数总分"]!=df1.at[i+1, "语数总分"]:
df1.at[i, "名次"]=i+1;i=i+1
else:
j=i+1
while dfl.at[i, "语数总分"]==dfl.at[j, "语数总分"]:
j=j+1
sort1(i,j-1,df1)#总分和语数总分都相同的学生调用sort1函数计算位次
②____
#最后一位同学位次处理及数据保存到"jieguo.xlsx"文件,代码略
【答案】 ①. df["语文"]+df["数学"]或df.语文+df.数学或df[["语文","数学"]].sum(axis=1) ②. ascending=False或ascending=[False,False] ③. df1.at[i, "总分"]!=df1.at[i+1, "总分"] ④. i=j
【解析】
【详解】本题考查Python综合应用。
(1)在计算“语数总分”列时,需要将每个人的语文和数学成绩相加得到语数总分。这可以通过DataFrame的列操作实现,即将"语文"列和"数学"列相加,或者使用sum函数计算两列的和。故答案为:df["语文"]+df["数学"]或df.语文+df.数学或df[["语文","数学"]].sum(axis=1)。在排序时,需要按照总分和语数总分进行降序排序,以保证总分高者优先。因此,需要将参数ascending设置为False,或者使用列表形式[False, False],其中第一个False表示总分降序,第二个False表示语数总分降序。故答案为:ascending=False或ascending=[False,False]。
(2)在判断是否需要继续向下比较时,需要比较当前同学的总分与下一位同学的总分是否相等。因此,需要判断当前同学的总分与下一位同学的总分是否不相等。故答案为:df1.at[i, "总分"]!=df1.at[i+1, "总分"]。当总分相同但语数总分不同的情况下,需要将索引指针i移动到下一位同学的位置,即将i的值更新为j。故答案为:i=j。
15. 树上有n个苹果,已知小明身高为160cm,板凳高度为40cm,每个苹果大小不一样,摘苹果和搬板凳分别需要消耗1个能量点。假设小明共有ey个能量点,如何摘能使小明摘到苹果的总重量最大?
程序思路:先按苹果高度(小于等于160,大于160且小于等于200)将数据分别存储apple_a,apple_b中,并按苹果重量降序排列。再对两组数据进行比较:若消耗2个能量点的最重苹果重量大于消耗1个能量点的最重两个苹果重量之和,则摘下消耗2个能量点的最重苹果,否则摘下消耗1个能量点的最重苹果。苹果的高度与重量存储在列表apple中,每个元素中的第一个值表示苹果高度(cm),第二个值表示苹果重量(g)。如apple=[[100,202],[210,300],[170,400],[110,100],[140,150],[180,340]],ey=5,则摘下的苹果为:[170,400],[100,202],[180,340]。请回答下列问题:
(1)若apple=[[200,102],[205,200],[160,400],[150,300],[130,190],[175,104],[188,350]],能量点数ey=6,则摘到的总重量最大是____g。
(2)定义link(d)函数。函数功能是将列表d创建成链表,请在划线处填入代码。
def link(d):
for i in range(len(d)):
d[i].append(-1) #在d[i]中追加一个元素-1
for i in range(1,len(d)):
____
return d
def sort(d):#列表d的每个元素由高度与重量构成。函数功能是将d按重量降序排列,代码略
(3)实现摘苹果的主程序如下,请在划线处补充代码。
apple=[[100,202],[210,300],[170,400],[110,100],[140,150],[180,340]]
apple_a=[];apple_b=[]
#按苹果高度(小于等于160,大于160且小于等于200)将数据分别存储apple_a,apple_b中
#代码略
sort(apple_a);sort(apple_b);link(apple_a);link(apple_b)
head_a,head_b=0,0;apple_end=[]
alen=len(apple_a);blen=len(apple_b)
ey=int(input("请输入能量值: "))
def linkdel(d,head,dlen):
apple_end.append(d[head])
①____
dlen=dlen-1
return head,dlen
while ey>0:
if alen>1 and blen>0:
if ②____ and ey>=2:
ey=ey-2
head_b,blen=linkdel(apple_b,head_b,blen)
else:
ey=ey-1
head_a,alen=linkdel(apple_a,head_a,alen)
elif blen==0 and alen>0:
ey=ey-1
head_a,alen=linkdel(apple_a,head_a,alen)
elif blen>0 and alen==1:
if ey>1 and apple_b[head_b][1]>apple_a[head_a][1]:
ey=ey-2
head_b,blen=linkdel(apple_b,head_b,blen)
else:
ey=ey-1
head_a,alen=linkdel(apple_a,head__a,alen)
elif
ey=ey-2
head_b,blen=linkdel(apple__b,head_b,blen)
else:
break
print("剩下能量值: ",ey)
print("摘下的苹果: ",end=" ")
for i in range(len(apple_end)):
print(apple_end[i][:2],end=" ")
(4)程序中加框处有误,请修正。____
【答案】 ①. 1240 ②. d[i-1][2]=i ③. head=d[head][2]或head+=1 ④. apple_b[head_b][1]>apple_a[head_a][1]+apple_a[apple_a[head__a][2]][1] ⑤. blen>0 and alen==0 and ey>1
【解析】
【详解】本题考查Python综合应用。
(1)将苹果数据存储为:apple_a: [[160, 400], [150, 300], [130, 190]];apple_b: [[188, 350], [175, 104], [200, 102]]。根据题中思路可知,要摘取的苹果为[[160, 400], [150, 300], [188, 350], [130, 190]],此时摘到的总重量最大为1240。故答案为:1240。
(2)在link函数中,需要将每个元素表示的苹果列表转换成链表。这里的代码逻辑是将每个元素末尾添加一个索引值,指向下一个元素,形成链表。因此,当前元素的索引值应该指向下一个元素的索引值,所以是d[i-1][2]=i。故答案为:d[i-1][2]=i。
(3)这段代码是摘苹果的核心逻辑,在循环中判断了不同情况下能否继续摘取苹果,以及应该摘取哪个苹果。这里的代码逻辑是根据当前头指针的位置,更新头指针的位置。如果当前头指针指向的元素有下一个元素,则将头指针更新为下一个元素的位置;否则,头指针向后移动一位。因此,代码应该是head=d[head][2]或head+=1。这里是在判断是否应该选择消耗2个能量点摘取苹果的情况。条件应该是比较apple_b中当前位置的苹果重量是否大于apple_a中当前位置和其下一个位置的苹果重量之和。因此,正确的判断条件是apple_b[head_b][1]>apple_a[head_a][1]+apple_a[apple_a[head_a][2]][1]。
(4)这里是程序中判断苹果摘取是否结束的条件。如果apple_b中还有剩余苹果,但是apple_a中已经没有苹果了,并且还有能量点剩余,则继续摘取apple_b中的苹果。故答案为:blen>0 and alen==0 and ey>1。

展开更多......

收起↑

资源列表