-
1、小明要搭建教室环境监控系统,其结构示意图如图a 所示。小明采用了智能终端、 IoT 模块、传感器(如 PM2.5传感器)、执行器(如LED 灯)、服务器等硬件,该系统能实时 监测教室空气质量情况,用户可以通过浏览器实时监测当前和历史数据,传感器采集的数据 由智能终端经 IoT 模块发送到Web 服务器后保存到数据库,并对当前空气质量进行判断,根 据空气质量等级智能终端控制显示不同颜色的LED灯,该系统服务器上的部分代码如下:
#导入Flask框架模块及其他模块,代码略
app =Flask _name_ )
@app.route("/input")
def add_data():
id =int(request.args.get(id'))
value =float(request args.get(val'))
nowtime =datetime.datetime.now()
nowtime =nowtime.strftime('%Y-%m-%d %H:%M:%S')
db=sqlite3.connect("data.db")
cur=db.cursor()
cur.execute("INSERT INTO sensorlog(id,sensorvalue,updatetime)VALUES(%d,%f,'%s)" %(id,value,nowtime))
db.commit()
cur.close()
db.close()
#服务器其他功能,代码略
if _name_ =="_main_ ":
app.run(host="6.56.102.4",port=8080)
请回答下列问题
(1)、在搭建该系统的前期准备中,明确用户对该环境监控系统的目标期待及后期的可扩展性需求这一过程属于 (单选,填字母,A .需求分析 B .可行性分析 C .详细设计)(2)、在该系统硬件搭建及软件开发过程中,不正确的是 (单选,填字母)A、智能终端与Web服务器之间的数据传输可以是双向的 B、本系统 Web 服务器是采用GET方式接受传感器数据的 C、更改视图函数 add_data()的名称将影响程序功能 D、若 IoT 模块与智能终端断开连接,数据库中的数据将不再更新(3)、若某时刻传感器编号为1,采集的PM2.5数值为30,则智能终端在传输数据时使用的URL 是 http:// ,服务器接受该数据后存储的数据库表名称为 。(4)、小明将系统中近一年的数据导出,部分数据如图b所示,分析每月平均PM2.5浓度变化情况,线型图如图c所示,部分代码如下:#导入数据处理相关模块,代码略
df=df[ ]
dfinsert( 0,"月份","")#插入列
for i in df index:
data=str(dfat[i,"采集时间"])
dfat[i,”月份"]=data[5:7]
gf=dfgroupby(" 月份",as_index=True).数值.mean()
plt.plot( , gf.values)
#设置绘图参数,代码略
-
2、已知某年级有6个班级,所有学生名单存储在文件 “name.csv”中(如图1),学校举行某趣味活动项目中,需要每个班抽3名代表参加比赛,请编写一个随机抽取程序,执行效果如图2。请回答以下问题:(1)、加框处代码的作用是(2)、实现上述功能的部分Python 程序如下,请在划线处填写合适的代码。
import csv
import random
#数据读入
f=open("name.csv","r")
flines=csv.reader(f)
name_list=[]
m=6 #班级总数
total=18 #参赛总人数
for line in flines:
name list.append(line)
flag=[False]*n
grade=[3]*m
i=0
while i<total:
p=random.randint(, )
bj=int(name_list[p][0])
if flag[p]=False:
if grade[bj-1]>0:
flag[p]=True
i+=1
print("抽取名单为:")
print(”班级","姓名")
for i in range(n):
if flag[i]:
print(name_list[i][0],name_list[i][1])
f.close()
-
3、有如下 python 程序:
import random
a,i,c=[],0,0
while i<5:
b=random.randint(0,9)
if b not in a:
a.append(b)
i+=1
key=int(input("key="))
for j in range(len(a)):
if a[j]%key==0:
c+=1
else:
a[j-c]=a[j]
print(a)
运行该程序,若输入 key 为2,则输出的a 不可能为( )
A、[3,7,5,4,5] B、[3,7,1,5,5] C、[3,5,0,3,5] D、[9,7,4,7,3] -
4、某 Python 程序如下:
q=[""]*50
head=tail=0
s="ningbo'
for i in s:
q[tail]=i
tail+=1
while head<tail:
print(q[head],end="")
head+=1
for i in range(3):
q[tail]=q[head]
head+=1
tail+=1
执行该程序段后,输出结果为( )
A、nbgoni B、nbogni C、goninb D、ningbo -
5、定义如下函数:
def tob(n)
if n=0:
return "*
else:
return tob(n//2)+str(1-n%2)
执行语句s=tob(10) 后,s的值为( )
A、"1010" B、"0101" C、"1001" D、"1100" -
6、设栈S 初始状态为空,元素A、B、C、D、E、F依次入栈,出栈的序列为D、F、E 、C、B、A,则栈S的容量至少应该是( )A、5 B、4 C、3 D、2
-
7、某二叉树前序遍历为ABDFGCEH,后序遍历为FGDBHECA,则下列选项不可能是此二叉树的是( )A、 B、 C、 D、
-
8、某声音模拟信号的采样及量化函数模型如图所示,下列说法正确的是( )A、 图中纵坐标划分得越细表示采样频率越高,保真度越高 B、图中整个幅度分为0~7级,其量化位数至少为8位 C、图中各采样点的量化值不同,但其量化位数相同 D、声音数字化过程是将离散的模拟信号转换成连续的数字信号
-
9、华为Mate 60 Pro为全球首款支持卫星通话的大众智能手机,该手机搭载“鸿蒙操作系统4.0”,即使在无网络信号的情况下,也可以拨打接听卫星电话,同时还将上线AI 隔空操控、智感支付、注视不熄屏等智慧功能,华为的自研芯片麒麟9000s 的成功推出为国家科技发展 提供持续推动力,下列说法正确的是( )A、该手机搭载的“鸿蒙操作系统4.0”是应用软件 B、RAM 中的数据在手机重启后不会丢失 C、该手机作为一款5G 手机,下载速度最大可以达到5Gbit/s D、该手机具备多种“智慧功能”主要基于硬件上传感器的植入
-
10、下面关于网络说法不正确的是( )A、TCP/IP 协议是网络协议中最重要的协议,其他应用层协议很多建立在该协议基础上 B、 网络是由数据通信系统、网络软件和网络协议三个部分组成 C、数据通信是网络系统最基本的功能 D、城域网基本上是一种大型的局域网,通常使用与局域网相似的技术
-
11、阅读下列材料,回答第2至4题
某中学引进“智慧食堂”系统后,带有电子标签的餐盘通过智能结算台,可精准识别 不同餐盘进行快速结算。经测算,每单平均用时仅需1秒,有效降低了错单率,大幅度 缩短了排队等候时长。全校师生通过支付宝绑定个人银行卡并开通“刷脸”支付签约, 可通过“刷脸”进行餐费结算,家长可以随时随地通过浏览器登陆系统后查看孩子在校 的消费信息。依托“智慧食堂”系统,食堂管理人员可分析统计菜品销量、人员流量等 信息,为后厨按量供应、按需采购提供了有力的数据支撑,推动食堂餐饮保障模式从经验式、粗放式向科学化、精细化转变。
(1)、关于该“智慧食堂”系统的说法,不正确的是( )A、该系统的用户是指全校师生、食堂工作人员 B、从管理角度看,该信息系统是信息技术与食堂管理相结合的产物 C、该“智慧食堂”系统的实现必须有数据库的支持 D、该“智慧食堂”系统需要软硬件的支持(2)、该系统的应用场景中,体现人工智能技术的是( )A、通过智能结算台可精准识别不同餐盘进行快速结算 B、在智能结算台,进行“刷脸”餐费结算 C、依托“智慧食堂”系统统计畅销菜品 D、系统自动生成食堂经营数据报表(3)、关于该信息系统,下列说法不正确的是( )A、在“智慧食堂”系统中安装防火墙可以有效防止黑客入侵 B、该系统在设计时预留了指纹识别模块,这体现了信息系统的可扩展性 C、家长可以随时随地通过浏览器查看孩子的消费信息说明系统采用C/S 架构实现 D、为了系统安全需要对家长、食堂管理人员等用户身份进行认证,并设置不同权限 -
12、下列关于数据、信息、知识与智慧的说法,正确的是( )A、同一个数据在不同的场景下其意义是一样的 B、人们可以直接使用搜索引擎获得海量知识 C、信息具有载体依附性,书籍中的文字就是信息 D、智慧是一种更高层次的综合能力,体现为一种卓越的判断力
-
13、某快递驿站有A、B两类货架,收到的包裹重量小于等于10存放于A货架,其余存放于B货架。编写程序模拟生成取件码和顾客的取件过程,取件码是根据当前已处理的包裹数量生成,如A-0001表示当天第一个处理的包裹存放在A货架,B-0003表示当天第三个处理的包裹存放在B货架。取件码与顾客手机号关联,程序根据输入的手机号显示其所有包裹的取件码,并允许顾客一次性提取或者部分提取。程序的部分运行界面如图a和图b所示。(1)、当前已处理的包裹取件码是 A-0158,若下一个包裹重量是 12,其取件码为。(2)、定义函数save(pnum,code),参数pnum为手机号,code为取件码。函数功能是将一条包裹信息存储到列表goods和列表dic中。如图a的包裹数据,手机号“180****1215”在两个列表中的数据分别为goods[4]=["B-0005",-1]、goods[9]=["A-0010",4]和 dic[2]=["180****1215",9,2]。
①若调用该函数继续存储手机号“180****1215 ”的包裹, 其取件码是“B-0011 ”,则对应 dic[2]的值变为["180****1215", ▲ ,▲]。
②函数 save 代码如下,程序中加框处代码有错,请改正。
def save(pnum,code):
goods.append([code,-1])
n=len(goods)-1
print(n,"号包裹的手机号:",pnum,"取件码:",code)
num=search(dic,pnum) #函数返回手机号 pnum 在 dic 中的索引号,未找到返回-1
if num==-1:
dic.append([pnum,n,1]) #新增一个包裹信息
else:
goods[n][1]=dic[num][1]
dic[num][1]=n
(3)、实现取件功能的部分 Python 程序如下,请在划线处填入合适的代码。x=input("请输入您的手机号:")
num=search(dic,x)
if num!=-1:
#输出手机号为 x 的当前所有包裹信息,代码略
op=int(input("输入 0 取全部包裹,输入 1 取部分包裹:"))
if op==0:
print("您的包裹已经取完! ")
del dic[num] #删除 dic 中索引为 num 的元素
else:
order=input("请输入本次的取件码,只输入#表示结束取件:")
while order!="#":
p,q=head,head
while goods[q][0]!=order:
p=q
if p==head:
dic[num][1]=goods[q][1]
else:
goods[p][1]=goods[q][1]
dic[num][2]-=1
if dic[num][2]==0:
print("您的包裹已经取完!")
break
#输出手机号为 x 的当前所有包裹信息,代码略
order=input("请输入本次的取件码, 只输入#表示结束取件:")
else:
print("查无此号,请检查后重新输入!")
-
14、小明搭建花房环境监测系统。该系统能通过传感器获取花房的温度及湿度,出现异常时,通过执行器发出警报。用户通过浏览器可查看实时数据及历史数据,系统结构示意图如图a所示。请回答下列问题:(1)、该系统结构示意图中,虚线框处应是 (单选,填字母)。A、 B、 C、(2)、下列设备中, 实现该系统数据输入和输出功能的是 (多选,填字母)。A、传感器 B、执行器 C、IoT 模块 D、无线路由器 E、Web 服务器(3)、小明基于 Flask Web 框架编写服务器端的程序,部分代码如下。测试系统时,在浏览 器地址栏中输入“http://196.168.1.10 :5000/”显示首页数据,与该 URL 中路由关联的视图函数是。
#导入 Flask 框架模块及其他相关模块,代码略
app=Flask(__name__)
@app.route("/")
def index():
#从数据库读取温度和湿度数据,并返回页面,代码略
@app.route("/search")
def search():
#根据日期查询相应数据,并返回页面,代码略
#服务器其他功能,代码略
(4)、运行该系统,在浏览器地址栏中输入 URL 访问系统,系统无法正确显示当前的温度等数据。简要说明系统可能造成上述问题的原因(本系统中,传感器等硬件设备及浏览器,不会造成上述问题)。(注:回答 2 项)(5)、小明导出系统中某天24小时的温湿度数据,部分如图b所示。分析一天内每小时的平均温度,部分Python程序如下。import pandas as pd
import matplotlib.pyplot as plt df=pd.read_csv("data.csv") #读取文件 data.csv 中的数据
df.insert(0,"小时","") #插入列
for i in df.index: #通过行标签和列标签选取单个值
t=df.at[i,"时间"]
df.at[i,"小时"]=t[:2]
df=df.groupby("小时",as_index=False).▲ #以“小时”分组求均值
plt.bar(df.小时,df.温度)
#设置绘图参数,显示如图 c 所示柱形图,代码略
①程序中划线处合适的代码是(单选, 填字母: A .sum()/B .mean()/C .count())。
②加框处的语句作用:实现获取当天平均温度高于30的所有时间段中温度最高的5个,该处代码由以下三部分组成:
A .df=df.sort_values("温度") B .df=df.tail(5) C .df=df[df.温度>30]
则加框处代码依次为 (填字母)。
-
15、世界卫生组织推荐认为成年人正常血压标准:收缩压在90-140之间并且舒张压在60-90之间(包含端点值)。现有监测到的连续若干天的血压值,编程计算正常血压持续的最长天数并输出起止日期,若有多段最长天数 , .则输出最后一段的起止日期。(1)、某段时间测量的血压值如图所示,则正常血压持续的最长天数为。(2)、实现上述功能的部分 Python 程序如下,请在划线处填入合适的代码。
'''
数组a中保存每天监测到的血压值,a[2*i]和 a[2*i+1]分别表示第 i 天的收缩压和舒张压,数组 b 保存日期数据,代码略;
'''
n=len(a)
t,ans,end=0,0,0
for i in range(n//2):
if 90<=a[2*i]<=140 and 60<=a[2*i+1]<=90:
t+=1
if :
ans=t
end=i
else:
print("正常血压持续的最长天数为:",ans)
beg=
print("起止日期:",b[beg],"--",b[end])
-
16、有如下 Python 程序段:
import random
q=[0]*8 ; head,tail=0,4
for i in range(4):
k=random.randint(0,10)
if k%2==0:
q[tail]=k%5
tail+=1
else:
head+=1
while head<tail:
print(q[head],end=" ")
head+=1
程序运行后,输出结果可能为( )
A、0 0 0 0 2 3 0 6 B、0 1 2 3 4 C、0 0 0 0 D、2 4 -
17、若 a,b,c为互不相同的整数, 要找出它们中最小的数。以下 Python 程序段不可行的是( )A、k=a
if k>b and b<c:
k=b
elif k>c:
k=c
print(k)
B、k=aif k>b:
k=b
if b<c:
k=b
else:
k=c
print(k)
C、if a<b and a<c:k=a
elif b<c:
k=b
else:
k=c
print(k)
D、if a<b:k=a
else:
k=b
if c<k:
k=c
print(k)
-
18、定义如下函数:
def f(a,b):
if a<b:
return a+b
else:
return f(a-b,a+b)
执行语句 x=f(18,-2)后, x 的值为( )
A、40 B、36 C、20 D、16 -
19、有如下 Python 程序段:
s=[2,3,8,7,5]
for i in range(len(s)-1):
for j in range(len(s)-1,i,-1):
if s[j]<s[j-1]:
执行该程序段,加框处语句被执行的次数是( )
A、3 B、6 C、8 D、10 -
20、某二叉树的树形结构如图所示,其后序遍历结果为 DBGEFCA,前序遍历的结果为( )A、ABCDEFG B、ABDCEGF C、DBEGCFA D、ABDCGFE