-
1、某商场会员管理系统,创建账户后系统会根据用户的消费金额整除10后累计入用户积分中,若积分达到一定值后,则会自动提升会员等级,不同会员等级对应的最低积分要求如图a所示。由于系统数据较多,并且更新数据时会有大量的数据查找、修改、删除等操作,为了方便管理和维护,系统存储会员数据时根据会员编号升序排序,如图b所示。
(1)若会员NO.2021021227新增消费583之后,他的会员积分是 , 会员等级是。
(2)定义setup函数,该函数功能是将已有的用户数据按照会员积分升序排序,并统计出每个等级的人数及该等级积分最低会员的索引。加框处代码有误,请改正。
def setup():
head=-1
for i in range(0, len(data)):
if i= =0 or data[i][2]< data[head][2]:
data[i][4]= head
head=i
else:
p= head; q= data[p][4]
while q!=-1 and data[q][2]< data[i][2]:
p=q
q= data[q][4]
data[p][4]=i
data[i][4]=q
k= data[i][3]
if level[k][2]==-1 or data[i][2]<= data[level[k][2]][2]:
level[k][0]+=1
return head
(3)编写程序实现如下功能,每当有用户消费之后,自动更新用户的相应数据。实现该功能的程序段如下,请在划线处填入合适的代码。
def search(num):
#找到会员编号所对应的会员数据索引,代码略
def dele(t, head): #将索引为t的会员数据总链表中删除
p= head
if t= = head:
head= data[head][4]
else:
while data[p][4]!=t:
p= data[p][4]
①
level[data[t][3]][0]-=1
if level[data[t][3]][0]= =0:
level[data[t][3]][2]=-1
elif level[data[t][3]][2]= =t:
②
return head
'''读取会员数据存入 data列表,每个元素包含会员编号、会员姓名、会员积分、会员等级四项内容,代码略'''
level=[[0,0],[0,50],[0,100]……] #level列表每个元素包含每个等级人数、最低积分要求
for i in range(len(level)):
level[i]. append(-1)
for i in range(len(data)):
data[i]. append(-1)
head= setup()
num= input("请输入会员编号: ")
point= int(input("请输入消费的金额: "))
t= search(num)
if t!=-1:
data[t][2]=③
head= dele(t, head)
#将更新信息后的会员数据重新插入到链表中,更新列表data 和level中的数据,代码略
else:
#创建会员账户并同步相关信息,代码略
-
2、小罗模拟设计24小时人体血压监测系统。当使用者穿戴相应的设备后,设备中的智能终端通过传感器实时获取血压数据,并借助蓝牙方式与手机连接后,将数据传输到服务器。若服务器检测到血压异常后,通过穿戴设备的屏幕和手机APP发出预警信息,同时用户也可通过浏览器和手机APP访问服务器查询历史数据。请回答下列问题。
(1)下列关于该系统的说法,正确的是(多选,填字母)。
A.该系统只采用B/S开发模式
B.手机中APP属于系统软件
C.传感器和执行器不一定要连接到同一个智能终端
D.采集的时间和血压数据存储在数据库中
(2)系统运行时,小罗发现服务器中采集的血压数据正常时,系统也发出了预警信号,造成该现象的原因可能是(单选,填字母:A.系统的阈值设置错误/B.传感器故障/C.智能终端故障)。
(3)若当用户血压异常,数据因手机网络连接故障无法上传服务器时,如何让用户收到预警信号。
(4)小罗利用系统采集了某位高血压患者30天的血压数据,若用户的收缩压大于等于140且舒张压大于等于90则认为患者有高血压风险。系统测试时每隔1个小时上传1次数据,部分数据如图a所示,现要统计患者一个月内高血压次数最多的5个监测时间点,并绘制出相应的柱状图,如图b所示。用户可以根据监测结果在血压多次偏高的时间点服用药物,保证身体健康(已知该药物一天服用一次)
import pandas as pd
import matplotlib. pyplot as plt
df= pd. read_ excel(" test. xlsx")
df1= df[df["收缩压(mmHg)"]>=140]
plt. bar(df2.监测时间, df2.监测日期)
plt. title("高血压次数统计")
plt. show()
print(df2)
方框中应填入的语句依次为(选3项,填数字序列)。
①df2=df1. groupby("监测时间", as_index= False).监测日期. count()
②df2=df2. sort_ values("监测日期", ascending= False)[:5]
③df1=df1[df1["舒张压(mmHg)"]>=90]
④df2= df. groupby("监测时间", as_ index= False). count()
⑤df= df[df["舒张压 (mmHg)"]>=90]
⑥df2=df2. sort_ values("监测时间", ascending= False). head(5)
(5)观察图b,若系统建议患者服用药物对血压进行控制,则之前服用药物比较合适(单选,填字母:A.9点/B.12点/C.15点/D.18点)。
-
3、徐老师设计了一个德育考评系统,学生每天按时到校得1分,若能连续5天都按时到校,则连续按时到校的这几天共可获得1+2+3+4+5分,连续按时到校超过5天,第5天之后的每天得5分,迟到得0分,若学生平时表现良好,可以获得一次消除迟到记录的机会,如图所示,某学生的到校数据为“YYNYYYNY”,其中“Y”表示按时到校,“N”表示迟到。徐老师设计相应的程序,找到消除迟到记录后总分最大的一种方案并进行修改,若有相同结果,则选择最早的一条记录进行修改。如图中消除前德育考评总分为10分,消除第3天迟到记录后,德育考评总分为21分。
日期
第1天
第2天
第3天
第4天
第5天
第6天
第7天
第8天
打卡状态
Y
Y
N
Y
Y
Y
N
Y
德育分数
+1
+2
+0
+1
+2
+3
+0
+1
消除后打卡状态
Y
Y
Y
Y
Y
Y
N
Y
消除后德育分数
+1
+2
+3
+4
+5
+5
+0
+1
(1)某位同学的到校记录为“NYYNYYNY”,则消除一次迟到记录后德育考评总分最大为。
(2)实现上述功能的程序如下,请在划线处填入合适的代码。
def cal(data):
#根据学生到校记录data,计算出相应的德育考评总分,代码略
data=input("输入有迟到记录的学生到校数据")
score= cal(data)
print("原德育成绩是", score)
check=[0]
for i in range(len(data)):
if①:
check. append(i)
check. append(len(data)-1)
t=0; maxt=0
for i in range(1, len(check)-1):
before=②
after= cal(data[check[i-1]: check[i]]+"Y"+ data[check[i]+1: check[i+1]+1])
temp= after-before
if temp> maxt:
maxt= temp; t=i
print("消除的位置是第", check[t]+1, "天,德育考评总分是",③, "分")
-
4、有如下Python程序段
st1=[0]*10;top1=-1
st2=[0]*10;top2=-1
for num in a:
if num % 2= =0:
temp=num*2
else:
temp=num*3
while top1!=-1 and st1[top1]>temp:
popped=st1[topl]
top1-=1
while top2!=-1 and st2[top2]>popped:
top2-=1
top2+=1
st2[top2]=popped
top1+=1
st1[top1]=temp
当列表a为[3,2,5,4,1,6]时,运行该程序段,则列表st2所有数据之和为( )
A、51 B、15 C、4 D、3 -
5、已知列表a中存储了n个整型数据,小孙设计了一个算法可以删除列表a中重复的数据,并将去重后的数据升序排序。实现该功能的程序段如下,方框中应填入的正确代码为( )
bottom = len(a); i = 0
while i < bottom-1:
flag= False; j = bottom-2
while j>=i:
if a[j+1] < a[j]:
a[j], a[j+1] = a[j+1], a[j]
flag= True
elif a[j] == a[j+1]:
flag=True
j-=1
if not flag:
break
i+=1
A.a[j],a[bottom-1]=a[bottom-1],a[j]
bottom-=1
B.a[j],a[bottom-1]=a[bottom-1],a[j]
j+=1
C.a[j+1],a[bottom-1]=a[bottom-1],a[j+1]
bottom-=1
D.a[j+1],a[bottom-1]=a[bottom-1],a[j+1]
j+=1
A、A B、B C、C D、D -
6、有如下Python程序段
def code(t):
if len(t)==0:
return ""
k= int(t[0])
return code(t[1:])+ str((k+3)%8)
s= input("输入原始数据: ")
answer= code(s)
print("加密结果为: ", answer)
若最终输出的加密结果为2174,则输入的原始数据是( )
A、7641 B、1467 C、5427 D、7245 -
7、队列S有若干元素。约定:U操作是指出队,H操作是指元素出队后再入队。经过UHUHHU操作后,队列中队首到队尾的元素依次为4,1,3,则队列S初始状态中队首到队尾的元素可能为( )A、1,1,4,4,3,3 B、4,4,1,1,3,3 C、1,4,3,1,4,3 D、3,1,4,3,1,4
-
8、一棵完全二叉树如图所示,已知它的后序遍历序列为ABCDEFGHI,现将图中节点1和节点2两个位置的数据值交换,并去掉节点2,则剩余节点的前序遍历结果为( )A、BECADHFG B、IECADHFG C、ACDEFGHB D、ACDEFGHI
-
9、某算法部分流程图如图所示,已知列表a的初值为[0,0,0,0,0,0],执行该流程图后,输出的结果可能是( )A、[1,6,16,18,13,12] B、[8,16,25,30,34,42] C、[10,5,6,6,16,22] D、[2,2,12,9,16,8]
-
10、某无人连锁酒店系统采用人工智能技术支持的全自动化服务模式。用户可通过手机APP进行预订,在入住流程中,用户可利用自然语言处理系统或者通过触摸屏与酒店服务机器人进行交互,系统会将用户信息上传至服务器后结合生物特征识别技术完成身份验证,用户也可通过手机访问服务器查看个人订单的相关信息。客房内部配置智能终端,用户可通过语音指令或手动指令两种方式对空调、照明设备、智能电视等硬件设备进行个性化设置。该无人酒店预开设300家门店,每个门店有若干房间,现用两个字节的二进制对所有房间进行编码,二进制码的前几位表示酒店号,其余位表示房间号,则每个门店能设计房间数最多是( )A、32 B、64 C、96 D、128
-
11、某无人连锁酒店系统采用人工智能技术支持的全自动化服务模式。用户可通过手机APP进行预订,在入住流程中,用户可利用自然语言处理系统或者通过触摸屏与酒店服务机器人进行交互,系统会将用户信息上传至服务器后结合生物特征识别技术完成身份验证,用户也可通过手机访问服务器查看个人订单的相关信息。客房内部配置智能终端,用户可通过语音指令或手动指令两种方式对空调、照明设备、智能电视等硬件设备进行个性化设置。为了提高服务机器人的语音识别效果,以下策略不合理的是( )A、增加数据库存储容量 B、增加多样化的数据训练 C、优化算法模型 D、识别前对数据进行降噪、特征提取等预处理
-
12、某无人连锁酒店系统采用人工智能技术支持的全自动化服务模式。用户可通过手机APP进行预订,在入住流程中,用户可利用自然语言处理系统或者通过触摸屏与酒店服务机器人进行交互,系统会将用户信息上传至服务器后结合生物特征识别技术完成身份验证,用户也可通过手机访问服务器查看个人订单的相关信息。客房内部配置智能终端,用户可通过语音指令或手动指令两种方式对空调、照明设备、智能电视等硬件设备进行个性化设置。下列关于该系统中网络技术的说法,不正确的是( )A、服务机器人必须安装相应的网络软件 B、智能终端可通过无线的方式将数据上传至服务器 C、数据通信系统主要由传输介质和网络互联设备等组成 D、该系统数据传输时可以不遵循传输控制协议(TCP)
-
13、某无人连锁酒店系统采用人工智能技术支持的全自动化服务模式。用户可通过手机APP进行预订,在入住流程中,用户可利用自然语言处理系统或者通过触摸屏与酒店服务机器人进行交互,系统会将用户信息上传至服务器后结合生物特征识别技术完成身份验证,用户也可通过手机访问服务器查看个人订单的相关信息。客房内部配置智能终端,用户可通过语音指令或手动指令两种方式对空调、照明设备、智能电视等硬件设备进行个性化设置。下列关于该信息系统功能的说法,不正确的是( )A、用户查看相关信息需要数据库技术的支持 B、系统运行时使用了多种传感器 C、客房内的智能终端与照明设备进行双向数据通信 D、系统可通过分析用户的语音数据从而提供更好的个性化服务
-
14、某无人连锁酒店系统采用人工智能技术支持的全自动化服务模式。用户可通过手机APP进行预订,在入住流程中,用户可利用自然语言处理系统或者通过触摸屏与酒店服务机器人进行交互,系统会将用户信息上传至服务器后结合生物特征识别技术完成身份验证,用户也可通过手机访问服务器查看个人订单的相关信息。客房内部配置智能终端,用户可通过语音指令或手动指令两种方式对空调、照明设备、智能电视等硬件设备进行个性化设置。下列关于该系统信息安全与社会责任的说法,正确的是( )A、系统无需安装防火墙 B、该信息系统只需要维护和升级客户端 C、系统中的用户数据可以公开发布到网络上 D、系统根据访问控制功能对用户和管理员设置不同的权限
-
15、某无人连锁酒店系统采用人工智能技术支持的全自动化服务模式。用户可通过手机APP进行预订,在入住流程中,用户可利用自然语言处理系统或者通过触摸屏与酒店服务机器人进行交互,系统会将用户信息上传至服务器后结合生物特征识别技术完成身份验证,用户也可通过手机访问服务器查看个人订单的相关信息。客房内部配置智能终端,用户可通过语音指令或手动指令两种方式对空调、照明设备、智能电视等硬件设备进行个性化设置。下列关于该系统中的数据和信息的说法,正确的是( )A、用户的语音指令不是该系统中的数据 B、系统中的数据可以用十六进制形式表示 C、摄像头通过数模转换将捕捉人体图像上传到服务器中 D、数据处理过程中不会产生新的有价值的信息
-
16、某接单平台上有 n 项任务单,每项任务单包含两个属性:
截止日期:该任务必须在截止日期结束前(含当天)完成。
每单报酬:完成该单后可获得的报酬。
平台规定:每天最多完成一单,且每单只能完成一次。若未在截止日期前完成,则无法获得该单对应报酬。请设计一种合理的接单方案,使得总报酬最大化。
为使总报酬最大化,接单策略如下:
·按照报酬高低的顺序依次接单,优先处理高报酬订单,从订单的最晚截止日向前规划,确定订单可完成的最晚日期,确保其在截止日期前(包括截止日期当天)完成。
·若多单报酬相同,优先接截止日期晚的单;
·若多单报酬与截止日期都相同,优先接编号较小的单;
·若按以上策略无法完成某单,则放弃,尝试接下一单。
例如有8个任务单, 存储在 task中,task =[[2,600], [4,600], [2,500], [1,800],[1,800], [4,1000], [3,600], [4,800]], task[i]代表第 i+1号订单, 其包含两个数据项:截止日期与单笔报酬。则接单方案如下:
时间
第1天
第2天
第3天
第4 天
接单编号
单号 4
单号2
单号8
单号6
每单报酬
800
600
800
1000
此时,接单顺序为4,2,8,6, 可得总报酬为 800+600+800+1000=3200。
(1)若将案例 task 中的单号3数据修改为[4,900],为使总报酬最大,则接单顺序为。
(2)编写函数 sort _t()如下,请完善划线处代码。
def sort _t (task):
for t in task:
t. append(-1) # append()用于在列表末尾添加新元素
h=0
n= len (task)
for i in range (1, n):
p, q=h,-1
while p!=-1 and task[i][1]<= task[p][1]:
if task[i][1]== task[p][1] and:
break
q=p
p= task[p][2]
if q!=-1:
task[q][2]=i
task[i][2]=p
else:
task[i][2]=h
h=i
return h
(3)实现上述功能的部分代码如下,请在划线处填入合适的代码。
#依次读取任务单数据并存入 task中,获取最晚截止日期存入 max _d中,代码略
f=[i for i in range(max_d+1)]
def find(x):
for i in range(x, 0,-1):
if ①:
f[i]=-1
return i
return - 1
ans=0
lst=[0]*(max__ d+1)
h= sort __t (task)
p=h
while p!=-1:
②
t= find(day)
if t!=-1:
③
ans+= task[p][1]
p= task[p][2]
for i in range(max _d+1):
if lst[i]!=0:
print("第",i, "天接单编号为: ", lst[i])
print("获得总报酬: ", ans)
-
17、制作果酒时适宜的发酵温度是18℃~25℃。若温度连续8小时超过30℃,会导致酵母菌活性下降,果酒制作失败。6个小组在实验室局域网环境中搭建温度监测系统。该系统中的智能终端连接传感器,每隔1小时采集1次温度数据,通过网络将数据传输到服务器(所有小组共用1台服务器),服务器根据上传数据判断出异常情况后,控制智能终端发出预警信息。小组成员可通过浏览器登录系统查看温度数据。请回答下列问题:
(1)6个小组独立搭建监测系统,温度传感器、智能终端和执行器的配备总数量合理的是(单选,填字母)。
A.6个温度传感器、6个智能终端和6个执行器
B.6个温度传感器、1个智能终端和1个执行器
C.6个温度传感器、6个智能终端和1个执行器
(2)下列关于该系统中数据管理的说法,正确的是(单选,填字母)
A.数据库中存储的数据为非结构化数据
B.智能终端不具备数据存储和处理功能
C.可通过传感器编号来区分不同小组采集的数据
(3)下列关于该系统设计的说法,正确的是(多选,填字母)
A.智能终端可以通过IoT模块接入无线网络
B.系统采用C/S模式,需安装专用客户端软件
C.该系统搭建在局域网中,无需考虑系统安全问题
D.确定在局域网中搭建该系统属于前期准备中的概要设计
(4)在实验室环境下,6个小组搭建的温度监测系统均正常运行。6个小组分别将智能终端与传感器部署到实际环境后,发现从浏览器中可查询到历史数据,但无法查看最新数据,现已排除所有智能终端和传感器同时故障的可能,请写出两种可能的原因。
(5)将监测系统中一星期内所有小组的监测数据导出到文件“data.xlsx”中,部分数据如图a所示。现要找出制作果酒有可能失败的小组编号,并绘制对应小组的温度监测数据折线图(如图b所示)。
import pandas as pd
df = pd. read _ excel ("data. xlsx")
def check(df):
c = 0
for temp in df ["温度"(℃)"]
if temp>30:
c += 1
if:
return True
else:
c = 0
return False
failed = []
bh=["A", "B", "C", "D", "E", "F"]
for d in bh:
df1=
if check(df1):
failed. append(d)
plt. plot
#设置绘图参数并绘图,代码略
print ("可能失败的小组编号:", failed)
Ⅰ.请在划线处填入合适的代码。
Ⅱ.划框①②处可选代码如下,正确的代码是和(填字母,顺序错误不得分)。
A.df1= df [df ["小组编号"]==d] B.df1= df ["小组编号"==d]
C.df1 ["时间"],dfl ["温度(℃)"] D.df1. index, df1. 温度(℃)
-
18、某小区配置了5个快递柜,每个柜包含小、中、大三类格口,可分别存放小、中、大件物品。系统需根据快递员的订单需求分配快递柜。为快速完成投递,优先分配能满足所有投递需求的快递柜。若存在多个满足条件的快递柜,则优先选择剩余格口总量最多的柜子;若剩余格口总量相同,则选取编号较小的快递柜。
(1)若当前各柜剩余格口容量如表所示,快递员需要寄存的快递大小类型为4小件,3中件,2大件,应分配号柜给快递员。
1号柜
2号柜
3号柜
4 号柜
5号柜
剩余小格数量
10
7
5
6
7
剩余中格数量
7
6
4
6
5
剩余大格数量
2
1
3
1
0
(2)实现上述功能的部分 python代码如下,请在划线处填入合适的代码。
cab=[10,7,2,7,6,1,5,4,3,6,6,1,7,5,0] #按顺序存储各快递柜剩余格子数量#获取所有需投递快递的类型,存储到列表c_ type中
# c_ type[0], c_ type[1], c_ type[2]分别表示小件,中件与大件的数量, 代码略
k=i=0
flag=[0]*5
while i<5:
for j in range(3):
if① :
flag[i]=-1
break
else:
flag[i]+= cab[i*3+j]-c_ type[j]
②
k=0
for i in range(1,5):
if flag[k]< flag[i]:
k=i
if③:
print ("请你前往",k+1,"号快递柜")
else:
#处理不能放在一个快递柜的情况,代码略
#更新 cab中的数据,代码略
-
19、有如下Python程序段:
a=[2,-5,3,4,-1,2,3,5]
qa=[0,0,0,0]
max=0
head=1; tail=0
temp=0
for i in range(len(a)):
qa[tail]=a[i]+ temp-qa[head]
if qa[tail]> max:
max= qa[tail]
temp= qa[tail]
tail=(tail+1)%4
head=(head+1)%4
print(max)
运行程序,输出结果是( )
A、4 B、8 C、9 D、10 -
20、有如下python程序段:
a=[7,3,2,4,6,9]
n= len(a)
i=n-1
while i>=1:
k=0
for j in range(i):
if a[j]<a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
k=j
__________
若运行程序后,列表a=[9, 7,6,4, 3, 2],则划线处的语句可以为( )
①i—=1 ②i=k—1 ③i=k ④i=k+1
A、①③ B、②③ C、①④ D、②④