考生须知:
- 考生答题前,务必将自已的姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸上。
- 选择题的答案须用 2B 铅笔将答题纸上对应题目的答案标号涂黑,如要改动须将原填涂处用橡皮擦净。
- 非选择题的答案须用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用 2B 铅笔,确定后须用黑色字迹的签字笔或钢笔描黑,答案写在本试题卷上无效。
一、选择题(本大题共 12 小题,每小题 2 分,共 24 分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
-
下列关于数据和信息的说法,正确的是
A. 数据的表现形式只能是文字和图像
B. 同一信息对所有人而言其价值是相同的
C. 计算机中保存的数据可以是未经数字化的
D. 信息是数据经分析、解释后得到的 -
下列关于人工智能的说法,不正确的是
A. 深度学习方法一般脱离数据进行学习
B. 采用行为主义方法的智能体通过与环境的交互学习提升智能
C. 符号主义人工智能的实现依赖对符号的推理和运算
D. 人工智能促进社会发展的同时也会带来一定的社会担忧
阅读下列材料,回答第 3 至 5 题。
某水果连锁店“智能收银系统”中,AI 收银秤具备自动识别水果品种、称重、应付金额计算、扫码支付等功能,同时还具备和服务器数据库进行数据交换的功能。该系统主要设备的部分参数与功能如下表所示:
服务器 | AI 收银秤 |
---|---|
显示器:1280x1024 | 显示器:1920x1080 AI 摄像头:自动识别水果品种 |
CPU:八核 2.30GHz | CPU:四核 1.80GHz 扫码摄像头:支持多种付款码扫码 |
硬盘:4TB | 硬盘:64GB 秤体:内置传感器支持精确称重 |
操作系统:Linux | 操作系统:Windows 打印机:打印购物小票 |
-
下列关于该信息系统组成的说法,正确的是
A. Linux 属于该系统的应用软件
B. 该信息系统中的用户只有客户和店员
C. 服务器和 AI 收银秤均属于该系统的硬件
D. 服务器硬盘容量是 AI 收银秤硬盘容量的 16 倍 -
为提升该信息系统数据的安全性,下列措施中不合理的是
A. 为系统不同的授权用户设置相应的权限
B. 非营业时间关闭服务器防火墙
C. 升级服务器端杀毒软件
D. 定期备份服务器中数据 -
下列关于该信息系统中数据的说法,不正确的是
A. 选购水果的重量数据可由秤体内置传感器采集得到
B. 选购水果的品种数据可由 AI 摄像头自动识别得到
C. 顾客付款码数据无需事先存放于该系统数据库
D. 应付金额的计算只能在服务器端完成 -
下列关于网络技术的说法,正确的是
A. 无线网络中的数据通信不需要传输介质
B. 网络协议是实现不同网络之间正确通信的基础
C. 网络中的资源就是指网络中的所有硬件资源
D. 移动终端之间只能通过移动通信网络进行通信 -
某算法的部分流程图如图所示,执行这部分流程,若输入 x 的值依次为 10,7,8,12,0,则输出 k 的值是
A. 2
B. 3
C. 4
D. 5 -
有 1 个队列,队首到队尾的元素依次为 8,3,2,9,5。约定:T 操作是指队列中 1 个元素出队后再入队, Q 操作是指队列中 1 个元素出队。则经过 TTTQTTQ 系列操作后,队列中队首到队尾的元素依次为
A. 2,9,5
B. 2,5,8
C. 5,8,2
D. 8,3,2 -
列表
s
包含 8 个互不相等的元素,即 s[0],s[1],s[2],...,s[7],有如下 Python 程序段:n = 8 for i in range(1, n - 1): for j in range(1, n - i - 1): if s[j] > s[j-1]: s[j], s[j-1] = s[j-1], s[j]
该程序段实现的是
A.s[O]
到s[5]
的降序排列
B.s[1]
到s[6]
的降序排列
C.s[1]
到s[7]
的升序排列
D.s[2]
到s[6]
的升序排列 -
定义如下函数:
def rf(n): if n < 3: return n return rf(n-1) + rf(n-3)
执行语句
v = rf(5)
,函数rf
被调用的次数是
A. 11
B. 5
C. 7
D. 15 -
有如下 Python 程序段:
import random a = ['A', 'B', '#', '#', 'C', 'D', '#'] stk = [0] * len(a); top = -1 for i in range(len(a)): op = random.randint(0, 1) # 随机生成 0 或 1 if op == 1 and a[i] != '#': top += 1; stk[top] = a[i] a[i] = '#' elif op == 0 and top != -1 and a[i] == '#': a[i] = stk[top]; top -= 1
执行该程序段后,
a
的值不可能是
A.['A','B','#','#','C','D','#']
B.['#','#','#','#','#','#','#']
C.['#','B','#','#','C','D','A']
D.['#','#','A','B','C','D','#']
二、非选择题(本大题共 3 小题,第 13 小题 8 分,第 14 小题 9 分,第 15 小题 9 分,共 26 分)
-
小明为家庭小菜园搭建了环境温湿度监测系统,该系统结构示意图如第 13 题图所示。Web 服务器端程序采用 Flask Web 框架开发。传感器采集的数据由智能终端经 IoT 模块发送到 Web 服务器,执行器用于实现温湿度的控制。请回答下列问题:
(1)下列选项标注了第 13 题图中虚线框内的智能终端与传感器执行器之间的数据传输关系,其中合理的是______ (单选,填字母)。
(2)该系统网络应用软件的实现架构是______ (单选,填字母:A. B/S 架构 / B. C/S 架构)。
(3)若传感器的编号 id 为 1,湿度值 h 为 60 提交数据到Web服务器的 URL 为 http://192.168.1.6:5000/toserv?h=60&id=1 ,则服务器端应用实例 app 中与该 URL 关联的路由设置语句是@app.route('______')
。
(4)菜园里的蔬菜适宜生长的空气温度范围是tmin
~tmax
。现要求当温度t
正常、偏低、偏高时,将sta
的值对应设为 0、1、2。 下列 Python 程序段中符合要求的有______ (多选,填字母)。(注:全部选对的得 2 分,选对但不全的得 1 分,不选或有选错的得 0 分)A B C D if t < tmin: sta = 1 if t > tmax: sta = 2 else: sta = 0
if t < tmin: sta = 1 elif t > tmax: sta = 2 else: sta = 0
sta = 0 if t < tmin: sta = 1 else: sta = 2
sta = 0 if t < tmin: sta = 1 if t > tmax: sta = 2
(5)小明设定采集并上传数据的时间间隔为 1 分钟。他用浏览器查看温湿度页面,页面动态显示最新的温度、湿度及其采集时间。系统正常工作一段时间后,他发现该页面不再变化,刷新后仍不变。结合第 13 题图,简要说明系统中可能造成上述问题的原因 ____________ (本系统中,传感器损坏传感器和智能终端连接异常,不会造成上述问题)。(注:回答 2 项,1 项正确得 1 分)
-
小红收集了部分城市 2021 年全年每天 PM2.5、PM10、CO 浓度数据,每天的数据分别保存在以 8 位日期字符串命名的 CSV 文件(例如 20210927.csv)中,每个文件记录了一天 24 小时的监测数据,示例如第 14 题图 b 所示。 为统计分析城市 A 全年各月份 PM2.5 的月平均浓度(当月的日平均浓度的平均值),编写 Python 程序。请回答下列问题:
(1)定义pmday
函数,功能为:读取某天的 CSV 文件,返回城市 A 当天 PM2.5 的日平均浓度。函数代码如下,划线处应填入的代码为 ______ (单选,填字母)。
A.df['类型'] == 'PM2.5'
B.df['类型' == 'PM2.5']
C.df[df['类型']] == 'PM2.5'
D.df[df['类型'] == 'PM2.5']
import pandas as pd def pmday(dayfile): df = pd.read_csv(dayfile) # 读取文件dayfile中的数据 df = ______ return df['城市A'].mean() # 返回城市A当天PM2.5的日平均浓度
(2)统计城市 A 各月份 PM2.5 的月平均浓度并绘制线形图,部分 Python 程序如下,请在划线处填写合适的代码。
import matplotlib.pyplot as plt def tstr(t): if t < 10: return '0' + str(t) else: return t pm = [0] * 12 mdays = [31,28,31,30,31,30,31,31,30,31,30,31] for m in range(12): sm = 0 mstr = tstr(m + 1) for d in range(___①___): dstr = tstr(d + 1) dayfile = '2021' + mstr + dstr + '.csv' sd = pmday(dayfile) ___②___ pm[m] = sm / mdays[m] x = [1,2,3,4,5,6,7,8,9,10,11,12] y = ___③___ plt.plot(x, y) # 绘制线形图 # 设置绘图参数,显示线形图,代码略
(3)城市 A 2021 年 PM2.5 年平均浓度为 34.6 微克/立方米。由第 14 题图 c 可知,城市 A 2021 年 PM 2.5 月平均浓度超过年平均浓度的月份共 ______ 个。
-
有 2 组器件共 n 个,要用一台检测设备检测。每个送检器件的信息包含送达时间、检测时长和优先级。 优先级有 m(1<m<6)个等级,由高到低分别用 0~m-1 的整数表示。每个机器件的送达时间各不相同。 已送达的器件按照各优先级通道分别排队,先到达先入队。设备每次检测都从当前各非空队列中,选取优先级最高的队列的队首器件出队进行检测。〔同一时刻出现入队和出队时,先处理入队。 编写程序模拟检测过程,先合并 2 组器件的数据,然后计算所有器件的平均等待时长,其中每个器件等待时长为其开始检测的时间与送达时间的时间差。(时间单位均为秒)
请回答下列问题:
(1)由题意可知,第 15 题图中器件 A、B、C、D 的检测顺序为 A-C-D-B,A、C、D 的等待时长分别为 0、1、0,B 的等待时长是______器件 送达时间 检测时长 优先级 A 0 3 2 B 1 1 2 C 2 1 1 D 4 3 0 11 3 2 12 2 2 第 15 题图
(2)定义如下
merge(lst1, lst2)
函数,参数lst1
和lst2
的每个元素由送达时间、检测时长和优先级 3 项构成,lst1
和lst2
均己按送达时间升序排列。函数功能是将lst2
中的元素合并到lst1
中,并将lst1
按送达时间升序 排列,函数返回lst1
。def merge(lst1, lst2): i = len(lst1) - 1 j = len(lst2) - 1 for t in range(len(lst2)): lst1.append([0, 0, 0]) k = len(lst1) - 1 while j >= 0: if i >= 0 and lst1[i][0] > lst2[j][0]: lst1[k] = lst1[i] i -= 1 else: lst1[k] = lst2[j] j -= 1 k -= 1 return lst1
① 调用
merge(lst1, lst2)
函数,若lst1
为[[0,3,2], [1,1,2], [12,2,2]]
,lst2
为[[2,1,1], [4,3,0], [11,3,2]]
, 则 while 语句中循环体的执行次数是______ 。
② 若函数中 while 语句的条件“j>=0
”误写为“k>=0
”,会导致某些情况下无法得到符合函数功能的结果。调用merge(lst1, lst2)
函数,下列 4 组数据中能测试出这一问题的是______ (单选,填字母)。
A.lst1 = [[0,3,2], [4,3,0]]; lst2 = [[1,1,2]]
B.lst1 = [[1,1,2]]; lst2 = [[0,3,2], [4,3,0]]
C.lst1 = [[1,1,2], [4,3,0]]; lst2 = [[0,3,2]]
D.lst1 = [[4,3,0]]; lst2 = [[0,3,2], [1,1,2]]
(3)实现模拟检测过程并计算平均等待时长的部分 Python 程序如下,请在划线处填入合适的代码。def proc(data, m): n = len(data) queinfo = [] for i in range(m): queinfo.append([-1, -1]) # queinfo 追加一个元素 [-1, -1] for i in range(n): data[i].append(-1) # data[i] 追加一个元素 -1 curtime = 0 waitnum = 0 i = 0 ___①___ while i < n or waitnum > 0: if i < n and data[i][0] <= curtime: k = data[i][2] if queinfo[k][0] == -1: queinfo[k][0] = i else: ___②___ data[p][3] = 1 queinfo[k][1] = i waitnum += 1 i += 1 elif waitnum > 0: k = 0 while queinfo[k][0] == -1: k += 1 p = queinfo[k][0] total += curtime - data[p][0] curtime += data[p][1] ___③___ waitnum -= 1 else: curtime = data[i][0] return total / n ''' 读取2组器件的数据,分别存入列表data1和data2中。2个列表的每个元素包含3个数据项,分别对应器件 的送达时间、检测时长和优先级。data1和data2中的数据已分别按送达时间升序排列,代码略 读取优先级等级个数存入m,代码略 ''' data = merge(data1, data2) print(proc(data, m))