1. 模拟搭建“室内烟雾实时监控系统”,该系统结构示意图如第13题图所示。智能终端接收烟雾传感器采集的数据,IoT模块传送数据到Web服务器并保存到数据库。Web服务器将数据处理的结果经IoT模块传给智能终端,由智能终端启动继电器实现对水泵的控制,并且用户可以通过浏览器访问网页,查看实时数据。

(1) 在设计系统的前期准备中,需要确定所需的软硬件配置,这一过程属于  (单选,填字 母:A .需求分析 /B .概要设计 /C .详细设计)
(2) “室内烟雾实时监控系统”的开发模式是 (单选,填字母:A .B/S模式 /B .C/S模式)
(3) 烟雾传感器每隔1秒采集一次数据,在数据处理的代码中,有函数check(a,b,c)用于检测最近3 次烟雾浓度值a、b、c,若至少有两次超过100,则认为有火情,函数返回True,否则返回False。

下面是check函数的部分代码,请从选项中选择合适的语句完成填空      (单选,填字母)。

def check(a,b,c):

    x = a>100; y = b>100; z = c>100

    if                  

        return True

return False

A. (x and y and z) or (x or y or z) B. x and y or x and z or y and z C. x or y and x or z and y or z D. not x or not y or not z
(4) 在服务器端,配置IP和端口号的语句为server=Server(host="192.168.1.1",port=80,threaded=True),设置路由函数的语句为@app.route("/warn"),则用户访问的URL为 http://
(5) 小明用高浓度的烟雾测试系统,通过客户端查看到烟雾浓度数据已连续超过阈值,但是水泵 没有运行,若服务器和终端的代码均正确,则可能的原因是
【考点】
运算符、基本运算与表达式; 过程与自定义函数; 网络应用模式; 搭建信息系统的前期准备;
【答案】

您现在未登录,无法查看试题答案与解析。 登录
综合题 普通
能力提升
换一批
1. 决策树是一种通过树形结构进行分类的人工智能预测模型,如根据图1所示“气象特点与游客是否来游乐场的关系”绘制的图2所示的决策树树形结构:

图 1

图 2

通过了解当天的是否有风、天气、温度和湿度这4个节点参数即可预测当天是否有人来游乐场。不同的节点划分顺序可以绘制不同的决策树,为了选出最优的节点划分顺序,需要采用“信息熵”与“信息增益”指标。

信息熵,又称香农熵,被用来度量信息量的大小,信息熵越大表示信息量越大;

信息增益,表示样本经某节点划分后的信息熵变化大小。我们绘制决策树时应当逐次选择信息增益最大的节点作为当前节点。

对于有n个信息的样本D,记第k个信息发生的概率为𝑝𝑘,信息熵计算公式为E(D)=− ∑𝑛 𝑝𝑘𝑙𝑜𝑔2(𝑝𝑘)

例如游乐场14个样本中“去”(9个)、“不去”(5个),则信息熵

若样本按“是否有风”节点划分,“是”(6个,其中3个去,3个不去)信息熵=

“否”(8个,其中6个去,2个不去)信息熵= =0.811;经过此节点划分后的信息增益=原始信息熵−按此节点划分后样本信息熵比例和

(1) 根据上述描述与题图1,则“天气”节点中的“多云”信息熵是
(2) 实现求首次划分节点的程序如下,请在划线处填入合适的代码:

def cal(lst):    #计算样本 lst 的信息熵

x,y,z=0,len(lst),0    #x表示该样本信息熵,y表示该样本数量,z表示某信息发生的概率

    num={}

    for i in lst:

        if i not in num:

            

        num[i]+=1

    for k in num:

        z=num[k]/y     #计算该信息发生的概率

        x-=z*log(z,2)     #根据公式计算信息熵,log(b,a)等价于 logab

    return   x def check(x,y): 

#根据节点x,对样本 y 进行划分,返回示例:{'否': [1, 1, 0, 0, 1, 1, 1, 1], '是': [1, 1, 0, 1, 0, 0]},代码略

dic={'是否有风': ['否', '否', '否', '否', '否', '否', '否', '否', '是', '是', '是', '

是', '是', '是'], 

'天气': ['多云', '多云', '晴', '晴', '晴', '雨', '雨', '雨', '多云', '多云', '晴', '晴', '雨', '雨'], 

'温度': [28, 27, 29, 22, 21, 21, 20, 24, 18, 22, 26, 24, 18, 21], '湿度': [78, 75, 85, 90, 68, 96, 80, 80, 65, 90, 88, 63, 70, 80], 

'是否前往': [1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0]} xm=list(dic.keys())

entropy=cal(dic[xm[-1]])  #调用函数计算样本原始信息熵 entropy #计算各节点信息增益

m=0;p=""

col=xm[:-1]     #“是否前往”是结果项,不参与计算

for i in col:

    size=len(dic[i]);entropy_1=0

    zyb=     #调用函数对样本 dic 按照当前节点进行划分

    for j in zyb:      #根据划分情况逐个求子样本信息熵并按比例累加

        entropy_1+=len(zyb[j])/size*cal(zyb[j])

    zy=entropy-entropy_1

    print(i,"的信息增益:",zy)

    if zy>m:     #计算最大信息增益与信息增益最大的节点

        m=zy

         

print("信息增益最大的节点:",p)

综合题 困难
2. 高一年级开展“7选3”选科调查,现要求每位学生在预选卡上填写个人信息(班级、学号、姓名)并选涂三门选考科目(少于或多于三门的预选卡作废)。如小王预选组合是“物生技”其三门选考科目填涂情况如图a所示。预选卡回收后,通过读卡机将相关信息读入数据库中,其中选科信息存储规则:按照“政治、历史、地理、物理、化学、生物、技术”顺序存储为一个7位二进制字符串。因此小王的选科信息二进制编号存储为“0001011”。

为了了解选科预选情况,统计选科组合种类及每种组合人数。小王设计并制作了VB程序。运行该程序,单击“读取”按钮,从数据库中读取信息并显示在列表框List1中;单击“统计”按钮,在列表框List2中显示每种选科组合人数(无人选择的组合不显示)及选科组合种类。程序运行界面如图b所示。

(1) 若某个学生“7选3”的预选选科组合为“政史生”,则该选科组合对应的+进制编号为
(2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

Dim cla(1 To 1000) As Integer    ‘班级号

Dim snum(1 To 1000) As String    ‘学号

Dim sname(1 To 1000) As String    ‘姓名

Dim xinxi(1 To 1000) As String    ‘选科信息二进制编号

Dim xknum(1 To 127) As Integer    ‘各选科组合人数

Dim n As Integer

Private Sub Command1_Click()

    ‘从数据库中读取n名学生的班级、学号、姓名和选科信息分别存储在数组cla、snum、sname和xinxi中,并输出在列表框List1中,代码略。

End Sub

Private Sub Command2_ Click ( )

    Dim t As Integer, i As Integer, count As Integer

    For i=1 To n

        t = BtoD(xinxi(i))

        

    Next i

    count = 0

    For i=127 To 1 Step-1    ‘选科组合十进制编号的范围

        If  Then

            count = count + 1

            List2.AddItem change(i) +””+ Str (xknum(i)

        End If

    Next i

    List2. AddItem“选科组合种类共有:”+ Str (count) + “种”

End Sub

Function BtoD(s As String) As Integer    ‘将选科信息二进制编号转换为十进制编号

    Dim x As Integer, i As Integer

    x=0

    For i=1 To 7

        If Mid(s,i,1) = “1” Then

            x=

        End If

    Next i

    BtoD = x

End Function

Function change(c As Integer) As String

    ‘该函数的功能是将选科十进制编号转换成对应的组合名称,代码略。

End Function

综合题 困难
3. 找出一个随机数列(长度为n)中的最长非降序段,计算其长度。非降序段中如果存在连续相等的数,则忽略,如非降序段2,3,4,4,5,长度计为4。

编写如下VB程序,实现上述功能。运行程序,在文本框Text1中输入随机数列“19,21,3,5,18,18,18,23,25,10,11,12,17,17,7”,单击“统计”按钮,在文本框Text2中输出5。

程序运行界面如图所示。

(1) 观察程序界面,窗体中至少包含个对象。
(2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

Dim a(1 To 100) As Integer     '数组a依次存放数列中的数Dim n As Integer

Private Sub Command1_Click( )

    Dim i As Integer, k As Integer, max As Integer, t As Integer Dim s As String, ch As String

    s = Text1.Text n = Len(s)

    i = 1: k = 1

    Do While i <= n

        ch = Mid(s, i, 1)

        If ch <> "," Then  Else k = k + 1 i = i + 1

    Loop

    i = 1: max = 0

    Do While i <= k

        t =

        If t > max Then max = t i = i + t

    Loop

    Text2.Text = Str(max)

End Sub

Function length(p As Integer) As Integer        '函数功能是计算a(p)开始的非降序段长度

    Dim j As Integer, c As Integer

    j = p: c = 1

    Do While j <= n – 1

        If  Then

            If a(j) < a(j + 1) Then c = c + 1 Else

            Exit Do

        End If

        j = j + 1

    Loop

    length = c

End Function

(3) 程序加框处代码有错,请改正。
综合题 普通