相关试卷

  • 1、有一批n个零件需要加工,编号为0到n-1,编号为i的零件的加工难度为a[i]。工厂有m台机器,将所有零件分成m个编号连续的区间,每台机器依次加工一个区间内的零件。为了提高加工效率,按以下规则划分区间:

    ①从左到右划分这m个区间,每个区间的零件数量至少1个,不多于k个。

    ②一个区间内的零件加工难度的最大值与最小值的差距为该区间的“极差”。

    ③这m个区间的“极差”的最大值称为DIF值,划分时应使DIF值尽量最小。

    现在要求计算加工这批零件的最小DIF值,并输出一种可行的区间划分方案。

    例如,有8个零件,加工难度a=[5,4,2,6,2,8,7,3],有2台机器,每台机器加工零件的数量不多于5个。一种划分方案为:第1组的难度为[5,4,2,6,2],极差为4,第2组的难度为[8,7,3],极差为5,则该分组方案的DIF值为5。在这个例子中,5是最小的DIF值。请回答下列问题:

    (1)若在题目例子中增加1台机器,其他参数不变,则最小的DIF值是

    (2)定义bigsma(a)函数,预处理出任意一个连续区间内,加工难度的最大值和最小值。

    def bigsma(a):

    #遍历所有可能的区间,求每个区间最大值

    for i in range(n):

    for j in range(i, n):

    if i= =j:

    max_ vals[i][j] = a[i]

    else:

    for k in range(i, j+1):

    max_ vals[i][j]=max(max_ vals[i][j],a[k])

    #遍历所有可能的区间,求每个区间最小值

    for i in range(n):

    for j in range(i, n):

    if i= =j:

    min_ vals[i][j] = a[i]

    else:

    min_ vals[i][j]=min(min_ vals[i][j-1],a[j])

    return max_ vals, min_ vals

    该函数中求区间最值(填:大或小)的算法效果更高,其时间复杂度为0()。

    (3)定义judege(x)函数,用于判断Diff值为x时,是否可以找到一种可行的区间划分方案并记录方案。实现该功能的Python代码如下,请在程序中划线处填入合适的代码。

    def judge(x):

    cnt = start = 0

    ans = []

    while start <= n - 1:

    end = start

    for j in range(start, start + k):

    if j > n - 1 or j > n - (m - cnt): break

    cur_ max = max_ vals[start][j]

    cur_ min = min_ vals[start][j]

    if:

    break

    else:

    end = j

    ans. append([start, end])

    cnt += 1

    if cnt == m:

    return True, ans

    return False, []

    (4)算法思想:由于DIF越小,分组成功的可能性越小,反之越大,答案具有单调性。故使用二分算法查找答案并判定,求出最小的DIF的值。

    #读取零件数量存入n,机器数量存入m,每个区间最多零件数存入k,保证k>n//m#每个零件的加工难度存入列表a,代码略。

    输入:

    825

    [5,4,2,6,2,8,7,3]

    输出:

    D1F值为:5

    一种可行的分组方案:

    [5,4,2,6,2]

    [8,7,3]

    max_ vals=[[0]*n for i in range(n)]#初始化存储每个区间最大值的二维数组

    min_ vals=[[0]*n for i in range(n)]#初始化存储每个区间最小值的二维数组

    max_ vals, min_ vals=bigsma(a)

    left=0;right=max(a)-min(a)

    final_ ans=[]

    while left<=right:

    mid=(left+right)//2

    ok, ans=judge(mid)

    if ok:

    answer=mid

    right=mid-1

    else:

    left=mid+1

    print("DIF值为:", answer)

    print("一种可行的分组方案:")

    for x in final_ ans:

    print(a[x[0]:x[1]+1])

  • 2、某市模拟考试成绩部分数据如图a所示。本次考试特殊分数线:579,给定有效分(语文:106,数学:98,外语:114,选考:258)数据,现需要统计全市各学校各学科达标人数(总分在特殊线及以上并且单科在有效分及以上)。请回答下列问题:

    图a

    (1)首先,通过以下代码段提取该市所有学校名称,并且依次保存到列表xuexiao中。

    import pandas as pd

    import matplotlib. pyplot as plt

    #读取数据

    df = pd. read_ excel(' data. xlsx', sheet_ name = '数据')

    df1 = df. groupby('            ', as_ index = True)

    xuexiao = []

    for item in df1:

    xuexiao. append(item[0])   # append(x): 添加x到列表最后

    划线处应该填写的是(单选,填字母)

    A.学校       B.班级       C.总分       D.名次

    (2)其次,通过以下代码段统计各学校各学科有效分以上的人数,并保存到列表ans中。然后绘制柱状图,请在划线①②③处填写合适的代码。

    #计算各校各科目达标人数

    teshu = 579 # 特殊线分数

    kemu = ["语文", "数学", "外语", "选考"]

    fenshu = [106,98,114,258]

    n =

    m = len(kemu)

    ans = [[xuexiao[i] , 0, 0, 0, 0] for i in range(n)]

    df2 = df []

    for i in range(m):

    for j in range(n):

    df3 = df2[df2['学校'] == xuexiao[j]]

    df4 = df3[df3[kemu[i]] >= fenshu[i]]

    temp = len(df4)     # len()用于获取DataFrame的行数(记录数)

    #绘图

    df_ p = pd. DataFrame(ans, columns=["学校", "语文", "数学", "英语", "选考"])

    #其他绘图代码略

    (3)基于以上处理过程,绘制如图b的图表。由图可知,哪个学校数学学科是最弱势学科(填学校名称)

    图b

  • 3、小丽要搭建家庭宠物房环境监控系统,实时监测温度、湿度和光照强度,异常时通过小喇叭报警。小丽可通过浏览器查看实时数据和历史记录,设定温湿度和光照强度的阈值。硬件包括智能终端、温湿度、光照传感器、执行器(小喇叭)各一个。智能终端直接连接传感器和执行器,并通过IOT模块连接服务器(本地)。请回答下列问题:

    (1)系统运行一段时间后,发现小喇叭连接的p1端口接触不稳定,小丽更换到p2端口,为了保证系统正常运行,小丽需要修改(单选,填字母:A.不需要修改任何程序B.服务器端程序C.智能终端程序)

    (2)小丽在家通过手机浏览器查看实时数据,若WIFI状态下正常,使用移动通信网络无法访问,可能的原因是(单选,填字母)

    A.IOT模块故障                  B.服务器与互联网连接故障                    C.智能终端与传感器连接故障

    (3)下列关于该系统的数据及支撑技术的说法,正确的是(多选,填字母)。

    A.服务器是硬件设备,服务器端运行的程序属于应用软件

    B.服务器内存大小,决定了该系统可以存储多长时间的历史数据

    C.该系统数据输入来源只有温度、湿度、光照强度传感器

    D.温度、湿度、光照强度等数据采集时间间隔可以相同,也可以不同

    (4)该系统关于宠物房温度数据连续5次温度值的平均值超过某阈值时,通过小喇叭播放声音报警。以下是实现该功能的部分程序段,哪个代码段有误(单选,填字母)#从数据库获取最近5次温度数据的列表lst

    n = len(lst)

    s =0

    for i in range(n):

    s += lst[i]

    avg = s / n

    n = len(lst)

    s =0

    for i in 1st:

    s += i

    avg = s / n

    n = len(lst)

    i =0

    while i < len(lst):

    s = s + lst[i]

    avg = s / n

    A

    B

    C

    #判断avg的值是否在范围内,并返回相应控制信号值,代码略

    (5)根据系统现有传感器设备,为系统设计一个基于传感器数据的自动控制功能

  • 4、有如下Python程序段

    a = "ABC"; n = len(a)

    que = [["", "", a]]

    while len(que) >0:

    d = que. pop(0)     #pop(0)功能是返回索引0位置的数据,并删除

    if len(d[0]) = = n:

    print(d[0])

    else:

    if d[1] != "":

    que. append([d[0] + d[1][-1], d[1][:-1], d[2]])

    if d[2] != "":

    que. append([d[0], d[1] + d[2][ 0], d[2][1:]])

    程序运行结束后输出内容中的第3个字符串为(     )

    A、BAC B、ACB C、ABC D、BCA
  • 5、阅读以下程序:

    a = [2,3,1,2,4,4,3,2,5,4]

    m = 0; tmp =0;

    for i in range(len(a)):

    if i % 4 != 0:

    tmp += a[i]

    elif m < tmp:

    m = tmp; tmp =0

    print(m)

    程序运行结束后,输出的结果是(     )

    A、7 B、8 C、9 D、10
  • 6、定义如下函数:

    def f(x):

    if x <= 3:

    print(x)

    return

    for i in range(1,5):

    f(x - i)

    f(6)

    程序执行结束后,输出3的个数是(     )

    A、4 B、5 C、6 D、7
  • 7、列表a中存储有链表,a=[[3,2],[7,4],[9,6],[2,7],[8,-1],[4,1],[1,-1],[6,0]],a[i][0]表示数据,a[i][1]表示指针,链表节点数之和与a长度相等。下列说法正确的是(     )
    A、列表a中存储有2个链表,头节点索引分别是5、7 B、列表a中存储的链表中节点数较少的有2个节点 C、执行代码“a[i-1][1]=a[i][1]”可以删除索引为“i”的节点 D、执行代码“a.append([5,5])”可以为其中一个链表增加一个节点
  • 8、将字符串“level”中的字符依次入栈,出栈顺序仍然是“level”的方案数为(     )
    A、1 B、2 C、3 D、4
  • 9、某算法的部分流程图如图所示,若n值为5,数组a为:[7,2,6,5,3],数组b为:[0,1,2,3,4],执行这部分流程图后,输出的结果为(     )

    A、[1,0,4,2,3] B、[0,2,3,4,1] C、[0,2,1,3,4] D、[1,2,3,4,0]
  • 10、科技馆推出智慧服务系统,提供场馆预约、智能导览与智能停车。参观者可分时段预约,通过电子门票二维码或人脸识别快速入馆;智能导览功能可以实现参观者靠近展项时自动进行语音讲解,同时可与场馆数字人进行语音实时问答;智能停车模块整合车位查询、预约及在线支付功能,为提前规划行程提供支持。关于该信息系统数据采集与编码的说法,正确的是(     )
    A、系统中的所有数据都以十六进制形式存储和传输 B、电子门票二维码的生成过程属于数据编码 C、用户与数字人交谈仅涉及数据的模数转换 D、为节省存储空间,语音包应存储为WAV格式
  • 11、科技馆推出智慧服务系统,提供场馆预约、智能导览与智能停车。参观者可分时段预约,通过电子门票二维码或人脸识别快速入馆;智能导览功能可以实现参观者靠近展项时自动进行语音讲解,同时可与场馆数字人进行语音实时问答;智能停车模块整合车位查询、预约及在线支付功能,为提前规划行程提供支持。关于该信息系统中软硬件的说法,不正确的是(     )
    A、可利用距离传感器实现参观者靠近展项时自动讲解 B、系统服务器的硬件配置对系统性能没有影响 C、场馆数字人需要在软件的支持下工作 D、智慧停车模块的车位数据可以通过传感器实时采集
  • 12、科技馆推出智慧服务系统,提供场馆预约、智能导览与智能停车。参观者可分时段预约,通过电子门票二维码或人脸识别快速入馆;智能导览功能可以实现参观者靠近展项时自动进行语音讲解,同时可与场馆数字人进行语音实时问答;智能停车模块整合车位查询、预约及在线支付功能,为提前规划行程提供支持。下列关于该系统提供的服务中,涉及人工智能的是(     )
    A、分时段预约参观场馆 B、自动计算停车场费用 C、与数字人进行实时问答 D、靠近展项时自动进行语音讲解
  • 13、科技馆推出智慧服务系统,提供场馆预约、智能导览与智能停车。参观者可分时段预约,通过电子门票二维码或人脸识别快速入馆;智能导览功能可以实现参观者靠近展项时自动进行语音讲解,同时可与场馆数字人进行语音实时问答;智能停车模块整合车位查询、预约及在线支付功能,为提前规划行程提供支持。关于该信息系统组成与功能的说法,正确的是(     )
    A、手机与服务器处于同一局域网下才能进行数据双向传输 B、使用人脸识别进入场馆属于系统的数据输入与处理功能 C、该系统硬件仅由用户手机、系统服务器、传感器组成 D、系统中的所有数据都存储在服务器的数据库中
  • 14、下列关于信息安全与社会责任的做法,不合理的是(     )
    A、对用户敏感信息进行加密存储 B、主办方在活动结束后进行匿名满意度调查 C、鼓励用户转发官方公众号推文 D、将用户预约记录有偿共享给第三方广告公司
  • 15、某科技馆每周举办“探乐科学馆”主题活动,涵盖“地球科学”“航空航天”等主题,活动需通过小程序提前预约,部分活动(如航模秀)可现场直接参与。现场照片将推送至官方公众号进行宣传,便于活动推广与回顾。下列关于活动中数据与信息的说法,正确的是(     )
    A、“航模秀”可现场参与说明信息传播不需要载体 B、活动参加人数不断变化说明信息具有真伪性 C、用户预约信息的价值可能随时间推移发生改变 D、用户预约记录、现场照片以结构化数据进行存储
  • 16、某数据序列data中的元素均为小于127的正整数。现在要对data进行加密,处理过程分“变换”和“重排”两步。“变换”处理方法是用指定的n组序列R0R1Rn-1依次对data进行变换。利用Ri对data进行变换的过程是:在data中查找所有与Ri相同的子序列,将找到的每个子序列中的元素值加上Ri的长度值Li , 并在各子序列前插入一个标记元素(值为127+Li),这些子序列及标记元素不再参与后续的变换。

    如data为[3,5,1,6,3,8,7,5,1,8,7],指定的两组序列为[5,1]、[3,8,7],“变换”处理后的data为[3,129,7,3,6,130,6,11,10,129,7,3,8,7]。对data“重排”处理通过给定的shuff函数实现。

    请回答下列问题:

    (1)若data为[3,5,1,6,3,8,7,5,1,8,7],指定的两组序列为[5,1]、[8,7],经过“变换”处理后,data中插入的标记元素个数为

    (2)“重排”处理的shuff函数如下:

    def shuff(data, c):             # 根据列表c对列表data进行重排

    # 若列表data的长度不是列表c长度的整数倍,则用0补足,代码略

    m = len(c)

    s = [0] * m

    k = 0

    while k < len(data):

    for i in range(m):

    s[i] = data[k + i]

    for i in range(m):

    data[k + i] = s[c[i]]

    k += m

    若data为[3,129,7,3,130,6,11,10],c为[1,3,0,2],调用shuff(data, c)后,data的最后一个元素值为

    (3)实现加密功能的部分Python程序如下,请在划线处填入合适的代码。

    def compare(data, i, r):

    # 函数功能:返回data从索引i位置、r从索引0位置开始的连续相等元素的个数

    # 例如r为[7, 3, 6],data从索引i位置开始的元素依次为7, 6, 7, 3, …,函数返回1

    j = 0

    while j < len(r) and i + j < len(data):

    if①:

    break

    else:

    j += 1

    return j

    def trans(data, r, segs):

    newsegs = []

    for s in segs:

    if s[0] == 0:

    h = i = s[1]

    m = len(r)

    while i + m <= s[2] + 1:

    if compare(data, i, r) == m:

    if i > h:

    newsegs.append([0, h, i-l])             # 为newsegs追加一个元素

    newsegs.append([m, i, i + m-1])

    i += m

    else:

    i += 1

    if h <= s[2]:

    newsegs.append([0, h, s[2]])

    else:

    newsegs.append(s)

    return newsegs

    def update(data, segs):

    for s in segs:

    if s[0] != 0:

    data.append(0)

    p = len(data)-1

    for i in range(len(segs)-1, -1,-1):

    for j in range(segs[i][2], segs[i][1]-1,-1):

    p-= 1

    if segs[i][0] > 0:

    data[p] = 127 + segs[i][0]

    p-= 1

    # 读取待加密数据存入data,读取指定的若干组用于变换的序列存入rs,代码略

    '''

    列表segs用于记录data的变换信息,segs[i]包含三个元素,segs[i][0]、segs[i][1]、segs[i][2]分别表示data中一个子序列的状态、起始位置和结束位置,如果segs[i][0]为0,则表示该子序列未经过变换。

    '''

    segs = [[0,0,len(data)-1]]

    for r in rs:

    segs = trans(data,r,segs)             # 根据r更新segs

    update(data, segs)                                 # 利用segs完成对data的变换操作

    c = [1,3,0,2]

    shuff(data, c)

    # 输出加密后的data序列,代码略

  • 17、某研究小组拟采集某水域水位及周边土壤含水量等数据,进行地质灾害监测。该小组在实验室搭建了一个模拟系统,该系统的智能终端获取传感器数据,并通过无线通信方式将数据传输到Web服务器,服务器根据数据判断出异常情况后,通过智能终端控制执行器发出预警信号。请回答下列问题。

    (1)该模拟系统中的传感器和执行器(单选,填字母:A.必须连接在不同智能终端 / B.可以连接在同一智能终端)。

    (2)水位传感器和土壤水分传感器连接在同一智能终端,服务器能正常获取土壤含水量数据,但不能正常获取水位数据,以下故障与该现象无关的是(单选,填字母)。

    A.水位传感器故障          B.水位传感器与智能终端连接故障          C.智能终端无法与服务器通信

    (3)下列关于该系统设计的说法,正确的有(多选,填字母)。

    A.水位、土壤含水量等数据的采集时间间隔不能相同

    B.水位、土壤含水量等数据可用数据库存储

    C.可以基于Flask Web 框架编写服务器程序

    D.系统获取数据的程序可以只部署在服务器端

    (4)现场实地测试时需要设置多个监测点,每个监测点配备一个智能终端。为使服务器能区分出数据的监测点来源,从智能终端的角度写出一种可行的解决方法。

    (5)研究小组整理出近几年的水位(日平均)数据,部分数据如图a所示(图中水位单位为“米”)。现要统计2023年水位最高的前100天在各月的分布情况,并绘制如图b所示的柱形图。

    图a

    图b

    实现上述功能的部分Python程序如下:

    import pandas as pd

    import matplotlib.pyplot as plt

    df=pd.read_excel("data.xlsx")

    df=df[df["年"] == 2023]                    # 筛选出2023年的数据       

    plt.bar(df1["月"],df1["水位"])          # 绘制柱形图

    #设置绘图参数,显示如图图b所示的柱形图,代码略

    方框中应填入的语句依次为(选3项,填数字序列)。

    ①df1 = df1.groupby("月",as_index = False).count()             # 分组计数

    ②df1 = df.sort_values("水位",ascending = False)                # 降序排序

    ③df1 = df1.sort_values("水位",ascending = False)             # 降序排序

    ④df1 = df1.head(100)                                                     # 获取前100条数据

    (6)观察图b可知,2023年水位最高的前100天分布在7月的天数最多。现要筛选出2023年7月的水位数据以便进一步分析,可在第(5)小题处理结果的基础上,再运行如下语句,请在划线处填入合适的代码。

    df2 = df[]

  • 18、某监控设备可定时采集红绿信号灯状态数据,数据格式记为[a,b],其中a、b分别为红灯和绿灯的状态值,0表示灯灭,1表示灯亮,如[0,1]表示红灯灭、绿灯亮。

    现要编写程序,每隔1秒采集并检测信号灯是否存在如下异常状态:第一类,红绿灯同亮或同灭;第二类,红灯或绿灯超时,即保持同一状态时长大于上限值(如300秒)。检测到异常状态就发送相应信息。请回答下列问题:

    (1)若检测到“红绿灯同亮”异常,则采集到的数据是(单选,填字母)。

    A.[0,0]                           B.[0,1]                           C.[1,0]                           D.[1,1]

    (2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。

    tlimit = 300                    # 设置信号灯保持同一状态时长上限值

    pre = [-1,-1]

    t = [0,0]                       # t[0]、t[1]分别记录红灯、绿灯保持同一状态的时长

    while True:

    # 接收一次采集到的状态数据,存入d,代码略

    if①:

    if d[0] == 1:

    # 发送“红绿灯同亮”信息,代码略

    else:

    # 发送“红绿灯同灭”信息,代码略

    for i in②:   

    if d[i] == pre[i]:

    t[i]+= 1

    if③:   

    if i == 0:

    # 发送“红灯超时”信息,代码略

    else:

    # 发送“绿灯超时”信息,代码略

    else:

    t[i] = 1

    pre = d

    # 延时1秒,代码略

  • 19、使用列表d模拟链表结构(节点数n>0),如图a所示,每个节点包含数据区域和指针区域,h为头指针。现要按链表顺序将这n个节点中的数据依次存放到d[0][0]、d[1][0]…d[n-1][0]中,最终保持节点链接关系不变,结果如图b所示。实现上述功能的Python程序段如下,方框中应填入的正确代码为(     )

    图a

    图b

    p,i = h,0

    while p! =-1:

    tp = d[p][1]

    if p == i:

    i+= 1

    elif p>i:

    d[i][0],d[p][0] = d[p][0],d[i][0]

         

    i+= 1

    p = tp

    # 调整头指针h及指针区域,保持节点链接关系不变,代码略

    d[i][1] = d[p][1]

    d[p][1] = i

    d[p][1] = d[i][1]

    d[i][1] = p

    d[i][1] = p

    d[p][1] = d[i][1]

    d[p][1] = i

    d[i][1] = d[p][1]

    A.

    B.

    C.

    D.

    A、A B、B C、C D、D
  • 20、有如下Python程序段:

    for i in range(0,len(a)-1,2):

    if i > 0 and a[i] < a[i-1]:

    a[i],a[i-1] = a[i-1],a[i]

    if a[i] < a[i+1]:

    a[i],a[i+1] = a[i+1],a[i]

    列表a有6个元素,运行该程序段后,a可能的值是(     )

    A、[2,9,8,6,9,3] B、[9,9,8,6,3,2] C、[9,3,6,2,8,9] D、[6,3,9,2,9,8]
上一页 2 3 4 5 6 下一页 跳转