-
1、小明开发了一个团队阅卷系统,具体阅卷规则如下:
①共有n道题,n道题依次进入阅卷序列中,为了保证试题批阅的准确性,每道题都需要两次批改,第一次批改完成的试题会加入到阅卷序列尾部,直至两次批改完成;
②若第一次批改和第二次批改分数相差2分及以上,则该题需要第三次批改,该题重新加入到目前阅卷序列尾部,第三次批改与第二次批改分数继续比较,以此列推;反之表示该题评分完成
③阅卷序列ans中的数据由字母与数字构成,字母表示阅卷教师编号,数字代表分数,如A7代表阅卷教师A批改分数为7分
④为了保证教师阅卷严宽尺度一致,每一位教师具备一次回评功能,当输入A-1时表示A教师进行回评,按照阅卷先后顺序,先回评的是A教师最后阅到的试题;当输入A-2时退出回评序列,继续批阅回评前的后一道试题。-1到-2序列中间不会出现其他教师的批改记录。
⑤回评过程中若此教师发现本人此题批阅记录因重评被遗弃,或已经评分完成,则此次记录无效阅卷过程与示例数据如下:
(1)、若已知 n=5,阅卷序列 ans 为['C2', 'B5', 'C8', 'B3', 'A6', 'B-1', 'B5', 'B4', 'B-2','B3', 'A5', 'C5', 'B7', 'A5', 'A6', 'A6'],则阅卷完成后第四题的分数为。(2)、若已知n=3,小明在设计程序之前,为了尽可能保证能测试上述阅卷规则是否都已经完成,设计了几组测试数据,则下述测试数据中最合适的是( )(单选,填字母)A、['B4', 'B6', 'B8', 'A3', 'C6', 'B5', 'B6'] B、['B4', 'B6', 'B4', 'A3', 'C6', 'B5'] C、['B4', 'B6', 'B8', 'B-1', 'B6', 'B-2', 'A3', 'C6', 'B5', 'B6'] D、['B4', 'B6', 'B8', 'A4', 'B-1', 'B6', 'B3', 'B3', 'B-2', 'A3', 'C6'](3)、实现评分结果输出的 Python 程序如下,请在划线处填写合适代码。#读取试题数量n,并将阅卷序列存入变量ans,代码略
a=[[i,"","",i+1]
for i in range(0,n)]okinfo=[0]*n
a[n-1][3]=0
pre,head=n-1,0
flag=True
pas=[ ]
pashead = {"A":-1,"B":-1,"C":-1}
print("ans:",ans)
p=0
while ok<n:
if ans[p][1]!="-":
if flag:
if okinfo[head]==1:
head=a[head][3]
continue
a[head][2]+=ans[p][0]
if len(a[head][2])==1:
a[head][1]=ans[p][1:]
else:
if abs(int(a[head][1][-1])-int(ans[p][1]))<=1:
okinfo[head]=1
ok+=1
else:
pre=head
a[head][1]+=ans[p][1]
pas.append([head,len(a[head][1]),pashead[ans[p][0]]])
pashead[ans[p][0]]=len(pas)-1
print("第"+str(head+1)+"题:",ans[p][1],"阅卷老师",ans[p][0])
head=a[head][3]
else: #缩进与 if flag 对齐
top=pashead[ans[p][0]]
num=pas[top][0]
if okinfo[num]!=1 and (len(a[num][1])-pas[top][1])<=1: #若有必要修改
if len(a[num][1])!=1:
#修改 a[num][1]的批改记录,代码略
if abs(int(a[num][1][-1])-int(a[num][1][-2]))<=1:
ok+=1
else:
a[num][1]=ans[p][1]
print("第"+str(num+1)+"题:",ans[p][1],"阅卷老师",ans[p][0])
pashead[ans[p][0]]=pas[pashead[ans[p][0]]][2]
elif ans[p][1:]=="-2":
flag=True
elif ans[p][1:]=="-1":
flag=False
p+=1
#输出结果(代码略)
-
2、为研究某项疾病与年龄的关系,某医院对以前的诊断记录进行整理和分析,整理部分数据如图a所示。(1)、观察图a所示数据,发现年龄列数据格式不一致,为了便于数据分析,下列操作合适的是( )(单选,填字母)。A、删除“年龄”列数据 B、将“年龄”列含有中文字的记录删除 C、将“年龄”列数据转为文本类型 D、将“年龄”列含有中文字的记录修改为只包含数字的年龄(2)、将数据整理好后,为了统计0-18、19-35、36-60、61以上(含61)四个年龄段的某疾病患病人数占该疾病总患病人数的比例,并绘制如图b所示图表,编写如下Python程序,请在划线处填入合适代码。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('data.xlsx')
tp = input('请输入疾病类型:')
df1 = # 筛选 tp 疾病的数据
count = [0] * 4
for i in range(len(df1)):
age = df.at[i, "年龄"]
if:
count[0] += 1
elif age <= 35:
count[1] += 1
elif age <= 60:
count[2] += 1
else:
count[3] += 1
x = ['0-18', '19-35', '36-60', '61 以上']
y = []
for i in range(4):
y.append
plt.bar(x, y) # 显示不同年龄段患该病的人数百分比
# 设置图表其他参数,代码略
plt.show()
(3)、观察图b,“疾病A”患病比例最大的年龄段为。(4)、若想获取61岁及以上的人群中,患病率最高的10种疾病,编写如下程序。def get_head10(df, age):
return df.疾病.head(10)
print(get_head10(df, 61))
上述程序段中方框处可选代码为:
①df = df.sort_values("年龄", ascending=False)
②df = df[df.年龄 >= age]
③df = df.groupby("疾病", as_index=False).count()
则加框处应填代码的顺序依次为( )(单选,填字母)
A、①②③ B、①③② C、②①③ D、②③① -
3、小明父母每天要到离家较远处去上班,为了让父母能方便了解家中年迈的爷爷奶奶的生活情况,他采购了几个某品牌的监控摄像头,利用家里的无线网络,搭建了一个“家用监控摄像系统”,其硬件连接如图所示,请回答下列问题:(1)、他购买的监控摄像头能在监控画面中出现物体移动或明暗变化时,自动拍照和录像,并将照片和录像存储在监控摄像头自带的存储卡里或者上传到网络上这家公司的系统服务器中,但有权限的使用者只能用手机下载该公司的专用 APP 进行管理和查看录像,据此可知,该“家用监控摄像系统”的实现架构是( )(单选,填字母)。A、客户端/服务器 架构 B、浏览器/服务器 架构(2)、“带无线功能的路由器”上的有线接口有LAN口、WAN口2种,小明在连接硬件时,应该把“光调制解调器”和“家用台机”的网线分别接在( )(单选,填字母)。A、LAN口、LAN口 B、LAN口、WAN口 C、WAN口、LAN口 D、WAN口、WAN口(3)、该品牌监控摄像头有“人摔倒”检测功能,启用后,一旦监控摄像头拍摄到家中有人在走动时摔倒,就会立即向管理员手机发送报警信号,争取宝贵的抢救时间。假如用move==True表示有东西移动,fall==True表示东西摔倒(旋转一定角度),man==True表示红外检测到移动的是人体,则能实现上述场景的代码是( )(多选,填字母)。A、if man:
if move or fall:
print("有人摔倒")
B、if man:if move and fall:
print("有人摔倒")
C、if man:if move:
if fall:
print("有人摔倒")
D、if man and move and fall:print("有人摔倒")
(4)、系统使用了一段时间后,他父母说在单位用手机上网正常,但看不到之前能看到的客厅摄像头的实时监控画面(其他摄像头是否正常没说),小明检查了家里电脑(有线连接在路由器上)能正常上网,摄像头供电也正常,则可能出现的原因是(写两个)(5)、该品牌监控摄像头后台用SQLite数据库对上传的照片和录像进行存储管理,用Python语言可以编程实现查询“photo.db”数据库文件的“jia”表中的所有数据,并赋值到tmp变量中进行后续处理。现有下列语句命令:①conn = sqlite3.connect("photo.db")
②cur = conn.cursor()
③tmp=cur.fetchall()
④import sqlite3
⑤conn.close()
⑥cur.close()
⑦cur.execute("SELECT * FROM jia")
要实现上述功能,上述语句执行的先后顺序是。
-
4、某二分查找算法的Python程序如下:
import random
key=random.randint(0,4)*2+5
n=10;ans=0
a=[4,5,5,8,9,11,11,13,15,17]
i=0;j=n-1
while i<=j:
m=(i+j)//2
if a[m]<=key:
i=m+1
else:
j=m-1
ans+=a[m]
print(ans)
程序运行后,输出ans的值不可能是( )
A、19 B、27 C、37 D、44 -
5、小红走楼梯时每次走1个台阶或2个台阶,问小红走n个台阶时,有多少种不同的走法。实现上述功能的Python代码如下:
def up(n):
if n<2:
return 1
else:
return up(n-1)+up(n-2)
n=int(input("请输入楼梯台阶数:"))
way=up(n)
print(way)
程序运行后,输入楼梯台阶数有6个,程序输出的结果是( )
A、8 B、13 C、21 D、26 -
6、某 Python 程序如下:
a=[3,8,6,2,3]
for i in range(len(a)-1,-1,-1):
if a[i]%2==0:
for j in range(i):
if a[j]>a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
print(a)
程序运行后,输出的结果是( )
A、[2,6,8,3,3] B、[3,3,2,6,8] C、[2,3,6,8,3] D、[2,3,3,6,8] -
7、使用 Python 自带的队列模块 queue 可以更便捷地实现队列的操作,代码如下:
import queue
q=queue.Queue(5)
q.put("A")
#字符 A 入队
q.put("B")
q.put("C")
已知 get 函数可以按照队列特性出队,若要使字符“C”从队列 q 中出队,正确的方法是( )
A、直接使用语句 q.get("C") B、直接使用语句 q.get() C、使用两次语句 q.get() D、使用三次语句 q.get() -
8、如图所示二叉树的前序遍历序列是( )A、A-B-C-D-E-G-H-F-I B、A-B-D-E-G-H-C-F-I C、D-B-E-G-H-A-C-F-I D、B-D-G-H-E-A-F-I-C
-
9、某算法的部分流程图如图所示。执行这部分流程,若输入n的值为100,则输出s的值为( )A、14 B、15 C、100 D、116
-
10、下列关于信息系统的说法正确的是( )A、网络学习平台(如慕课网)通过网络进行学习,对外部环境没有依赖性 B、信息系统测试包括软件测试、硬件测试、网络测试和使用人员测试 C、“自媒体”无条件享有通信自由权、信息传播自由权、信息选择权 D、信息系统是指由硬件软件设施、通信网络、数据和用户构成的人机交互系统
-
11、阅读下列材料,回答问题。
随着物联网的广泛应用,越来越多的智能家电进入了普通家庭,其中的家用监控摄像头对有老人和小孩的家庭就非常有用。在家庭中安装了家用监控摄像头后,将其与家中已经接入因特网的无线网络相连并进行相关设置,就能在任意可上因特网的地方,通过手机上的专用 APP 或电脑浏览器实时查看家中的情况。当画面发生变化时,摄像头能自动拍摄照片和录像,保存在自带的存储卡中或上传到服务器中保存。管理员能通过共享查看权限,让家庭中其他成员查看监控情况。摄像头自带拾音器和喇叭,能让查看者与家中人员进行实时通话。某品牌家用监控摄像头的工作原理示意图如图所示。
(1)、下列有关“家用监控摄像系统”的说法不正确的是( )A、如图所示的“家用监控摄像系统”是一个信息系统,管理者也是其中组成部分 B、图中的监控摄像头是硬件,既是输入设备也是输出设备,既是传感器也是执行器 C、搭建该监控系统时决定选择什么品牌的监控摄像头属于概要设计阶段 D、监控摄像头自动拍摄的照片和录像都是数据(2)、下列有关信息系统的安全说法正确的是( )A、存储在网络上的监控录像有密码保护,也可能产生泄漏而被不法分子利用 B、其他家庭成员是可信任的,登录系统查看监控时不需要进行身份认证 C、黑客能破解系统防护而进入监控系统,这是因为系统有漏洞,不属于违法行为 D、该系统只供设备的管理者及其信任的家人使用,没有安全隐患(3)、下列有关网络的说法不正确的是( )A、监控摄像头接入到家中的局域网时,不需要给摄像头分配 IP 地址 B、摄像头将采集的视频数据通过网络传输到服务器,体现了网络的数据通信功能 C、网络由计算机系统、数据通信系统以及网络软件和网络协议三个部分组成 D、通过开启手机热点,可以将移动通信网络信号转换为 WiFi 信号供其他设备上网 -
12、下列关于人工智能的说法,正确的是( )A、AlphaGo从围棋跨界到电力控制领域属于混合增强智能 B、达·芬奇外科手术机器人与人类医生共同完成外科手术属于跨领域人工智能 C、强化学习是以符号主义表达与推理的人工智能学习方法 D、联结主义通过模仿人类大脑中神经元之间的复杂交互来进行认知推理
-
13、下列关于数据与信息的说法,不正确的是( )A、数据是对客观事物的符号表示 B、对数据进行加工处理有利于发掘其中蕴含的价值 C、信息可以脱离它所反应的事物被存储、保存和传播 D、信息的加工和处理必须使用计算机才能完成
-
14、某工厂收到了n个产品的订单,这n个产品分别在A、B两个车间加工,并且必须先在A车间加工后才可以送到B车间加工。为了使得总加工时间最短,我们可以将这n个产品分为两类,第一类在A车间加工时长少于在B车间加工时长,第二类在A车间加工时长不少于在B车间加工时长。第一类应将在A车间花费时间少的产品排在前面,第二类应将在B车间花费时间少的产品排在后面,然后先处理所有第一类产品,再处理第二类产品。可以证明,这样排序后所有产品加工完成花费的总时间最少。例如有4种产品,它们在A车间加工时长分别为3、5、8、4,在B车间加工时长分别为6、1、2、7,产品分类、排序、合并、计算时长的过程如图所示,最后得出总时长为21。(每个产品在B车间开始加工需同时满足它在A车间加工完并且B车间已加工完上一个产品这两个条件)
编写程序模拟工厂对这n个产品的处理过程,计算总加工时间。请回答下列问题:
(1)、由题意可知, 若 3 种产品在 A 车间加工时长分别为 5、7、3,B 车间加工时长分别为6、1、2,则总加工时长为。(2)、小华先编写了如下将第一类产品排序的函数:def sort1(a,b): #参数 a、b 的元素分别表示每个产品在A、B车间的加工时长。
n=len(a)
for i in range(n-1):
for j in
:
if a[j]>a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
b[j],b[j+1]=b[j+1],b[j]
加框处可以填写的代码有______ (多选)
A、range(n-1-i) B、range(n-1,i,-1) C、range(i,n-1) D、range(n-2,i-1,-1)(3)、小强编写了如下将第二类产品排序的函数:def sort2(a,b): #参数 a、b 的元素分别表示每个产品在 A、B 车间的加工时长。
n=len(a)
for i in range(1,n):
k1,k2=a[i],b[i]
j=i-1
while ① :
a[j+1],b[j+1]=a[j],b[j]
j-=1
a[j+1],b[j+1]=k1,k2
①此程序时间复杂度为 ② 。(单选, 填字母)
A. O(1) B.O(n) C.O(n2 ) D.O(nlog2 n)
②请在划线处填入合适的代码。
① ②
(4)、小张结合前两位同学的程序, 计算产品加工总时长。请在划线处填入合适的代码。读取n个产品在A、B两车间加工的时间,根据题目要求分为两类,第一类产品在A、B两车间加工的时间分别存储在列表a1和列表b1中,并通过sort1()函数排序,第二类产品在A、B两车间加工的时间分别存储在列表a2和列表b2中,并通过sort2()函数排序, 代码略
a=a1+a2
b=b1+b2
n=len(a)
k,t=0,0 #k 为 A 加工时间,t 为 B 加工时间
for i in range(n):
k+=a[i]
if :
t=k
print("总加工时长最短为:",t)
-
15、全国文明城市(区),简称文明城市,是指在全面建设小康社会中市民整体素质和城市文明程度较高的城市。小明收集并整理了从第1届到第6届文明城市的名单数据,存储在“wmcs.xlsx”文件中,部分界面如图a所示。
文明城市的名单构成:
Ⅰ.在没有复查环节的年份:当年评比通过的城市(表中“复查”项为空)+之前入选的城市(顺延,表中不体现)
Ⅱ.在有复查环节的年份:当年评比通过的城市(表中“复查”项为空)+之前已入选的城市复查通过(表中“复查”项为“通过”)
其中第2、5、6届有复查环节。以“宁波”为例,第1届评比通过,第2届复查通过,第3届第4届顺延(表中无宁波的数据),第5届复查通过,第6届复查通过。
图a
(1)、为了统计分析连续六次入选的全国文明城市(区),编写了 Python 程序,输出结果如图 b,请在划线处填入合适的代码。import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #解决图表中的中文显示问题 df=pd.read_excel ('wmcs.xlsx')
df1=df[df['届次']=='第 1 届']
lst=list(df1['地区'])
for i in range(2,7):
#将“地区”列数据转换为列表, 存入 lst
dfg=df[df['届次']=='第'++'届']
tmp=[]
if dfg['复查'].!=0: #只须处理复查的年份
for j in lst:
if j not in list():
tmp.append(j)
for num in tmp:
lst.remove(num)
#tmp 追加一个元素 j
#lst 删除一个元素num
print('连续六次入选全国文明城市(区)为:')
for i in lst:
print(i,end=';')
输出结果:
图b
(2)、第6届全国文明城市(区)共有133个,复查确认保留荣誉称号的前5届全国文明城市有151个,为了统计出入选第6届全国文明城市(区)数量前10的省份(直辖市或自治区)并绘制垂直柱形图(如图c),部分Python程序如下,请在划线处填写合适的代码。df=df[df['届次']=='第 6 届']
dsg=df.groupby('省份').地区.count() #此操作将使'省份'成为 dsg 的索引 dsg=dsg.sort_values(ascending=False) #对各省的地区数量进行降序排列 dsg=dsg.
plt.bar ( ) # 绘制垂直柱形图
plt.title('入选第 6 届全国文明城市(区)数量前 10 的省份(直辖市或自治区)') plt.
图 c
(3)、为实现第(2)题功能,则加框处的语句最合适的是( ) (单选,填字母)A、dsg.省份,dsg.地区 B、dsg.index,dsg.地区 C、dsg.index,dsg.values D、dsg.省份,dsg.values -
16、小王为解决智能家居项目中的灯光控制问题搭建了一套智能照明系统,该系统成功实现了灯光的亮度自动调节,并增加了亮度记忆功能。该系统的结构示意图如图所示,具体设计过程如下:
Ⅰ.用传感器实时监测室内光线亮度数据并由智能终端经IoT模块上传到Web服务器;
Ⅱ.Web服务器端程序采用FlaskWeb框架开发,通过终端浏览器可查看实时灯光信息和历史灯光信息;
Ⅲ.监测室内光线低于设定值,启动亮度记忆功能打开灯光,并随着光线与设定值之间的波动,执行器会按照控制信号完成灯光亮度的调整。
(1)、小王需要为“智能照明系统”中虚线框内的 4 个对象进行标注,这 4 个对象所对应 的具体内容有①光线传感器②micro:bit 板③灯④室内光线。请结合功能需求,给图中的传感器、控制器、执行器以及受控对象分别选择合理的对应内容 (单选,填字母)。A、①②④③ B、①③②④ C、①②③④ D、①③④②(2)、①该信息系统的控制是 (单选,填字母:A .开环控制 / B .闭环控制)。②该系统采用的架构模式是 (单选, 填字母: A .B/S 架构 / B .C/S 架构)。
(3)、在智能终端用代码 err,resp=Obloq.get("input?id=1&val="+str(light),10000)来 实时传送所需数据,服务器端接收到数据并存储,Web服务器端的部分代码如下。若要查看最近10条光线记录,在浏览器应输入的网址是。Web 服务器端的部分代码:
#导入所需模块,代码略
app=Flask(__name__)
@app.route("/")
def index():
#网页显示当前传感器数据, 并显示最近 10 条光线记录,代码略 @app.route("/input",methods=["GET","POST"])
def add_data():
#读取终端最近一次的光线数据并保存到数据库文件,代码略
if __name__ =="__main__":
app.run ("10.40.160.49",port=8080)
(4)、该系统在连续正常工作几个星期后,某一天小王忽然发现数据库中该天的灯光亮度数据一直显示在8:36这个时间而不再更新,可能的原因是。 -
17、有如下 Python 程序段:
import random
q=[1]*12;head=0;tail=1;s=0
k=random.randint(1,5)
while k>0:
q[tail]=q[head]*2
tail+=1
q[tail]=q[head]*2+1
tail+=1;head+=1;k-=1
while head<tail:
s+=q[head]
head+=1
执行该程序段后,s 的值不可能的是( )
A、7 B、22 C、35 D、51 -
18、使用Python 程序在链表 a 中删除一个数据 data,代码如下:
import random
a=[[87,1],[93,3],[97,5],[95,2],[80,0],[98,-1]]
head=4
x=random.randint(0,len(a)-1) #randint(a,b)返回[a,b]区间内的一个随机整数
data= ①
q=head
while q!=-1:
if ② :
if q==head:
head=a[q][1]
else:
a[p][1]=a[q][1]
break
else:
③
q=a[q][1]
则划线处的代码为( )
②data==a[q][0]
②data!=a[q][0]
②data==a[q][0]
②data!=a[q][0]
③p=q
③p=head
③p=q
③q=head
A、①a[0][x] B、①a[0][x] C、①a[x][0] D、①a[x][0] -
19、运行下列 Python 程序段,输出结果是( )
def trans(n):
if n <= 1:
return str(n)
else:
return trans(n // 2) + str(n % 2)
print(trans(13))
A、1101 B、1011 C、13 D、31 -
20、有一棵二叉树,如图所示,下列说法正确的是( )A、此二叉树是完全二叉树 B、此二叉树的深度是 3 C、此二叉树的中序遍历为 H-D-B-E-A-C-F D、此二叉树用一维数组表示为
['A ', 'B ', ' ', 'C ',
'D ', 'E ', ' ', 'F ', ' ', 'H ']