内容正文:
舟山市2023学年第二学期期末检测
高二技术试题卷
考生须知:
本试题卷分两部分,即:第一部分信息技术(50分),第二部分通用技术(50分)。全卷共16页,第一部分信息技术1至8页,第二部分通用技术9至16页。满分100分,考试时间90分钟。
答题前,考生务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸上,并按规定用笔将所有试题的答案涂、写在答题纸上,答案写在本试题卷上无效。
选择题的答案须用2B铅笔将答题纸上对应题目的答案标号涂黑,如要改动,须将原填涂处用橡皮擦擦净。非选择题的答案须用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可使用2B铅笔,确定后须用黑色字迹的签字笔或钢笔描黑。
信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分,每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)
1. 下列关于数据与信息的说法,正确的是( )
A. 数字就是数据,是数据唯一的表现形式 B. 只有数字化的信息才可以加工处理
C. 同一信息只能依附于同一载体 D. 信息是数据经过分析、解释后产生的意义
2. 下列关于大数据和大数据处理说法正确的是( )
A. 大数据蕴含着巨大的价值,价值密度高
B. 相比数据之间的相关性,大数据处理更关注背后的因果关系
C. 车载导航系统一般以流计算方式处理交通大数据,为用户提供更好的导航服务
D. 由于大数据数据体量大,所以大数据处理的是抽样数据
3. 下列有关人工智能的说法不正确的是( )
A. 人工智能从诞生之日起,其发展并不是一帆风顺的
B. 利用神经网络解决分类问题主要应用了联结主义人工智能研究方法
C. “沃森”的智能能力从游戏领域移植到医疗领域体现了跨领域人工智能
D. 人工智能的发展导致部分工作岗位被取代,我们应设法限制其发展
4. 某学校使用的智慧接送系统功能如下:管理员将车牌号和孩子数据绑定到对应的家长手机,家长手机上安装智慧接送系统app,通过口令登录系统。家长车辆在规定时间范围内通过车牌识别系统进入地下车库停车位,在等待阶段,家长可以实时查看接送状态信息。孩子放学时,通过人脸识别系统进入接送平台,同时家长手机app收到孩子放学的通知信息,家长开车进入接送通道,孩子再次刷脸,闸机开启,接送工作顺利完成。下列关于该智慧接送系统的说法,不正确的是( )
A. 该信息系统的硬件包括服务器、智能手机和闸机等
B. 该信息系统的用户包括系统管理员、家长和孩子等
C. 孩子和车牌号数据存储在家长手机中,家长手机一旦丢失,需要重新绑定相关数据
D. 网络信号差的地方,家长手机无法查看接送信息,说明该信息系统对外部环境有依赖性
5. 某学校使用的智慧接送系统功能如下:管理员将车牌号和孩子数据绑定到对应的家长手机,家长手机上安装智慧接送系统app,通过口令登录系统。家长车辆在规定时间范围内通过车牌识别系统进入地下车库停车位,在等待阶段,家长可以实时查看接送状态信息。孩子放学时,通过人脸识别系统进入接送平台,同时家长手机app收到孩子放学的通知信息,家长开车进入接送通道,孩子再次刷脸,闸机开启,接送工作顺利完成。关于该信息系统涉及到的网络,下列说法不正确的是( )
A. 服务器负责数据处理和网络控制,是构成网络的主要资源
B. 家长手机需要与服务器处在同一局域网才能接收到孩子放学信息
C. 该信息系统的顺利运行需要TCP/IP协议的支持
D. 智能手机与服务器采用了无线通信技术
6. 某学校使用的智慧接送系统功能如下:管理员将车牌号和孩子数据绑定到对应的家长手机,家长手机上安装智慧接送系统app,通过口令登录系统。家长车辆在规定时间范围内通过车牌识别系统进入地下车库停车位,在等待阶段,家长可以实时查看接送状态信息。孩子放学时,通过人脸识别系统进入接送平台,同时家长手机app收到孩子放学的通知信息,家长开车进入接送通道,孩子再次刷脸,闸机开启,接送工作顺利完成。关于该信息系统的安全性,下列做法合理的是( )
A. 家长将孩子的接送动态信息分享给家庭成员
B. 为方便管理,为不同身份的用户设置相同的访问权限
C. 放学高峰时段,关闭防火墙以降低系统负荷
D. 为防止家长忘记登录口令,口令在数据库中以明文形式存储,方便管理员查看
7. 某算法的部分流程图如图所示。
执行这部分流程图,输出为( )
A. 13 B. 14 C. 15 D. 16
8. 下列python表达式的值与其它三项不同的是( )
A. "10">"9" B. 2 not in{"two":2} C. "hero"[:2]=="He" D. [1,2]==[2,1]
9. 已知一维数组a存储了n个元素(a[0]∼a[n-1]),当前数组长度大于n,要求在索引位置p插入元素key,并保持元素相对位置不变,实现上述功能的python程序段如下:
#生成数组a,代码略
key=int(input("请输入插入元素值:"))
p=int("input("请输入插入元素位置:"))
for i in range(A ):
B
a[p]=key
有下列语句:
①p,n;②n-1,p-1,-1;③a[i+1]=a[i];④a[i]=a[i-1]
则程序A、B处代码分别是( )
A. ①③ B. ①④ C. ②③ D. ②④
10. 判断字符串s是否是回文字符串(从左向右读和从右向左读一样的字符串称为回文字符串),若是则返回True,否则返回False,为了实现该功能,以下函数不可行的是( )
A.
def hw4(s):
for i in range(len(s)//2):
if s [i] !=s[len(s)-1-i]:
return False
else:
return True
B.
def hw2(s):
for i in range(len(s)//2):
if s [i] !=s[len(s)-1-i]:
return False
return True
C.
def hw3(s):
for i in range(len(s)//2):
if s [i] !=s[len(s)-1-i]:
return False
else:
return True
D.
def hw1(s):
L,R=0,len(s)-1
while L<R:
if s[L] !=s[R]:
return False
L,R=L+1,R-1
return True
A. A B. B C. C D. D
11. 有如下Python程序段:
matrix=[[11,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4]]
k=int(input())
tot=0
for i in range(4):
for j in range(4):
if i+j=k:
tot+=matrix[i][j]
print(tot)
若输入2,则输出为( )
A. 12 B. 10 C. 8 D. 6
12. 有如下python程序段:
def decrypt(c,k):
t=ord(c)-k
if t<97:
t+=26
return chr(t)
miwen=input("请输入密文:")
key=input("请输入密钥:")
pos=0
mingwen=""
for i in miwen:
if"a"<=i<="z":
d=ord(key[pos])-97#"a"的ASCII码为97
mingwen=decrypt(i,d)+mingwen
pos=("pos"+1)%len(key)
else:
mingwen=i+mingwen
print(mingwen)
执行该程序段后,若输入的密文为:5pvbzmg5,密钥为:abc,则输出的内容是( )
A. puzzle B. 5elzzup5 C. 5puzzle5 D. elzzup
二、非选择题(本大题共3小题,第13小题8分,第14小题9分,第15小题9分,共26分)
13. 某校高二10个班级参加了某协作体组织的期中考试,考试成绩保存在“score.xlsx”文件中,部分数据如下图所示:
图1
小王同学用Python程序及pandas模块对高二期中成绩进行分析,输出总分前10名和各学科单科王(需要考虑并列名次,见图2),并用matplotlib绘制各班级总分平均分柱形图(图3):
图2
图3
实现上述功能的python代码如下:
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #设置显示中文字体
df=pd.read_excel("score.xlsx")
df.总分=
kms=df.columns[3:]
for km in kms:
df_sort=df.sort_values(①____,ascending=False)
df_sort=df_sort.reset_index() # 重置索引,使索引重新有序
if km=="总分":
t=10
else:
t=1
for i in range(t,len(df_sort)):
if df_sort.at[i,km] !=df_sort.at[i-1,km:]
②____
break
else:
bottom=len(df_sort)
if km="总分":
print(f"{km}前10名:",df_sort[:bottom].姓名.values)
else:
print(f"{km}单科王:",df_sort[:bottom].姓名.values)
df_g=df.groupby("班级").mean()
x=df_gindex
y=③____
plt.bar(x,y,label="各班总分平均分")
plt.④____ #显示图例
plt.show()
请回答下列问题:
(1)方框处代码需要计算每个同学10个科目的总分。为实现该功能,方框处代码可选择下列选项中的____。(单选,填字母:A.df.sum(axis=1)/B.df.sum(axis=0))
(2)请完善划线①、②、③、④处的代码
14. 小明做了一个“室内温度监测系统”的实验,传感器采集的数据由智能终端通过IoT模块发送至Web服务器;实时采集室内的温度数据,并上传至服务器中;根据阈值控制LED灯的开关,起到警示作用。
请回答下列问题:
(1)该信息系统采用的架构为____(选填:B/S或C/S)模式。
(2)该系统中,虚线框处智能终端与执行器及传感器之间的数据传输____(多选,填字母:)
A.只能由智能终端到执行器/ B.只能由执行器到智能终端/ C.既可以由智能终端到执行器也可以由执行器端到智能终端/ D.只能由智能终端到传感器/ E.只能由传感器到智能终端/ F.既可以由智能终端到传感器也可以由传感器端到智能终端)。
已知该监测系统智能终端每5秒采样一次,使用BXY软件给终端编写数据采集、传输程序,实现把温度数据上传到Web服务器,智能终端部分代码如下:
from microbit import*
#IoT模块连接路由器代码略
while True:
temp=round((pin0.read_analog()*330/1024) #获取温度数据
errnoresp=Obloq.get("input?id=1&val="+str(temp),10000)
if errno=200:
display.scroll(str(resp))
if resp= '1 ':
pin14.write_digital(1)
else:
pin14.write_digital(0)
else:
display.scroll("err")
①____ #设置采集间隔时间
服务器端的程序部分代码如下:
# 导入Flask框架模块及其他相关模块,代码略
# 指定数据库位置,代码略
@app.route('/ ')
def hello():
# 从数据库读取温度值数据,并返回页面,代码略
@app.route("/input",methods=[ 'POST ', 'GET '])
def add_data():
if request.method=="②____ ":(选填:POST/GET)
sid=int("request.args.get('id '))")
value=float(request.args.get('val '))
else:
sid=int(request.form.get('id '))
value=float(request.form.get('val '))
#写入数据库,代码略
If 20<value<25:
return '0 '
else:
return '1 '
if _name_== '_main_ ':
app.run(host=192.168.9.3,port=8080,debug=True)
(3)请在划线处填入合适的代码。
(4)从代码中可以看出,连接执行器引脚是____
(5)结合代码,若某时刻温度数值是28,则传输数据时使用的URL是http://____
15. 某学习英语的APP不仅能查询单词的读音及词义,还能指导用户背诵单词,这其中用户单词库的积累是一个重要的环节。单词库中英文单词的排序是按照英文字母的先后顺序排列,比如alive排在axis的前面。我们查询英文单词库时会先找到该单词的首字母所在位置,然后根据后续字母的顺序去查找所需单词的位置及词义。小朱尝试编写了一个简易的查字典程序,输入单词进行词义查询:若该单词在词库中,则输出单词的词义;若不在词库中,则将该单词及词义添加到词库中,添加完成后,要求同一字母开头的单词仍然有序。
小朱使用链表结构来存储单词库。单词库的链表结构如下表所示,已收录部分单词在库中。查找单词“cursor”时,先根据单词的首字母确定head指向列表索引2,根据指针域,后续依次访问列表索引31,29,在索引29处找到该单词,而“cursor”所在节点的指针域为-1,说明该单词当前是以c开头的最后一个单词。查找单词“boy”,该单词不在单词库中,将该单词及对应词义添加到单词库中。
列表索引
单词
简要词义
指针域
0
a
a开头单词
28
1
b
b开头单词
27
2
C
c开头单词
31
…
…
…
25
Z
z开头单词
-1
26
alive
活着的
50
27
binary
二进制
30
28
add
添加,加
26
20
cursor
光标,游标
-1
30
byte
字节
-1
31
cache
高速缓存
29
⋯
…
…
50
axis
轴
-1
…
…
…
…
(1)根据以上表格,当前单词库中包含____个以“a”开头的单词(要求单词长度>1)。
(2)以下代码实现了上述功能,完成代码填空。
def search_word(word,head): #在以head为头指针的链表中查找单词word
pre=head;cur=data[pre][2]
while cur!=-1:
if word=data[cur][0]:
return True,cur
elif word>data[cur][0]:
pre=①____
cur=data[cur][2]
else:
return False,pre
return False,pre
def print_link():#遍历所有链表,输出单词及词义
for i in range(26):
p=i
while ②____
print(data[p][0]+""+data[p][1],"end"="")
p=data[p][2]
print() #换行
#主程序
data=[]
#生成当前单词库data,代码略
word=input("请输入一个单词(均为小写且长度大于1):")
flag,pos=search_word(③____)
if flag==True:
print(data[pos][1])
else:
print("没找到该单词")
s=input("请输入单词词义:")
data.append([word,s,data[pos][2]])
data[pos][2]= ④____
print_link()
第1页/共1页
学科网(北京)股份有限公司
$$
舟山市2023学年第二学期期末检测
高二技术试题卷
考生须知:
本试题卷分两部分,即:第一部分信息技术(50分),第二部分通用技术(50分)。全卷共16页,第一部分信息技术1至8页,第二部分通用技术9至16页。满分100分,考试时间90分钟。
答题前,考生务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸上,并按规定用笔将所有试题的答案涂、写在答题纸上,答案写在本试题卷上无效。
选择题的答案须用2B铅笔将答题纸上对应题目的答案标号涂黑,如要改动,须将原填涂处用橡皮擦擦净。非选择题的答案须用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可使用2B铅笔,确定后须用黑色字迹的签字笔或钢笔描黑。
信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分,每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)
1. 下列关于数据与信息的说法,正确的是( )
A. 数字就是数据,是数据唯一的表现形式 B. 只有数字化的信息才可以加工处理
C. 同一信息只能依附于同一载体 D. 信息是数据经过分析、解释后产生的意义
【答案】D
【解析】
【详解】本题考查数据与信息。数字只是数据的一种表现形式,而非唯一形式,A选项错误;非数字化的信息也可以加工处理,B选项错误;同一信息可以依附于不同载体,C选项错误;信息是数据经过分析、解释后产生的意义,D选项正确。故答案为:D。
2. 下列关于大数据和大数据处理说法正确的是( )
A. 大数据蕴含着巨大的价值,价值密度高
B. 相比数据之间的相关性,大数据处理更关注背后的因果关系
C. 车载导航系统一般以流计算方式处理交通大数据,为用户提供更好的导航服务
D. 由于大数据数据体量大,所以大数据处理的是抽样数据
【答案】C
【解析】
【详解】本题考查大数据。大数据虽然价值巨大,但价值密度低,A选项错误;大数据处理更关注数据之间的相关性而非背后的因果关系,B选项错误;车载导航系统一般以流计算方式处理交通大数据,为用户提供更好的导航服务,C选项正确;大数据处理的是全体数据而非抽样数据,D选项错误。故答案为:C。
3. 下列有关人工智能的说法不正确的是( )
A. 人工智能从诞生之日起,其发展并不是一帆风顺的
B. 利用神经网络解决分类问题主要应用了联结主义人工智能研究方法
C. “沃森”的智能能力从游戏领域移植到医疗领域体现了跨领域人工智能
D. 人工智能的发展导致部分工作岗位被取代,我们应设法限制其发展
【答案】D
【解析】
【详解】本题考查人工智能。虽然人工智能的发展确实会取代部分工作岗位,但应通过调整和转型适应新的就业形态,而不是限制人工智能的发展。人工智能的发展带来了技术进步和生产效率的提升,应积极应对其带来的挑战,而不是限制其发展。故答案为:D。
4. 某学校使用的智慧接送系统功能如下:管理员将车牌号和孩子数据绑定到对应的家长手机,家长手机上安装智慧接送系统app,通过口令登录系统。家长车辆在规定时间范围内通过车牌识别系统进入地下车库停车位,在等待阶段,家长可以实时查看接送状态信息。孩子放学时,通过人脸识别系统进入接送平台,同时家长手机app收到孩子放学的通知信息,家长开车进入接送通道,孩子再次刷脸,闸机开启,接送工作顺利完成。下列关于该智慧接送系统的说法,不正确的是( )
A. 该信息系统的硬件包括服务器、智能手机和闸机等
B. 该信息系统的用户包括系统管理员、家长和孩子等
C. 孩子和车牌号数据存储在家长手机中,家长手机一旦丢失,需要重新绑定相关数据
D. 网络信号差的地方,家长手机无法查看接送信息,说明该信息系统对外部环境有依赖性
【答案】C
【解析】
【详解】本题考查信息系统。因为孩子和车牌号的数据应该存储在服务器中,家长手机只是用于访问这些数据。因此,即使手机丢失,数据不会丢失,只需在新手机上重新登录即可。故答案为:C。
5. 某学校使用的智慧接送系统功能如下:管理员将车牌号和孩子数据绑定到对应的家长手机,家长手机上安装智慧接送系统app,通过口令登录系统。家长车辆在规定时间范围内通过车牌识别系统进入地下车库停车位,在等待阶段,家长可以实时查看接送状态信息。孩子放学时,通过人脸识别系统进入接送平台,同时家长手机app收到孩子放学的通知信息,家长开车进入接送通道,孩子再次刷脸,闸机开启,接送工作顺利完成。关于该信息系统涉及到的网络,下列说法不正确的是( )
A. 服务器负责数据处理和网络控制,是构成网络的主要资源
B. 家长手机需要与服务器处在同一局域网才能接收到孩子放学信息
C. 该信息系统的顺利运行需要TCP/IP协议的支持
D. 智能手机与服务器采用了无线通信技术
【答案】B
【解析】
【详解】本题考查网络在信息系统中的应用。智慧接送系统使用的是互联网技术,家长手机只需连接到互联网,而不需要和服务器在同一局域网内。故答案为:B。
6. 某学校使用的智慧接送系统功能如下:管理员将车牌号和孩子数据绑定到对应的家长手机,家长手机上安装智慧接送系统app,通过口令登录系统。家长车辆在规定时间范围内通过车牌识别系统进入地下车库停车位,在等待阶段,家长可以实时查看接送状态信息。孩子放学时,通过人脸识别系统进入接送平台,同时家长手机app收到孩子放学的通知信息,家长开车进入接送通道,孩子再次刷脸,闸机开启,接送工作顺利完成。关于该信息系统的安全性,下列做法合理的是( )
A. 家长将孩子的接送动态信息分享给家庭成员
B. 为方便管理,为不同身份的用户设置相同的访问权限
C. 放学高峰时段,关闭防火墙以降低系统负荷
D. 为防止家长忘记登录口令,口令在数据库中以明文形式存储,方便管理员查看
【答案】A
【解析】
【详解】本题考查信息系统安全。家长将孩子的接送动态信息分享给家庭成员,只要确保分享对象可靠,这种做法在一定程度上是合理的,A选项正确;为不同身份的用户设置相同的访问权限可能导致安全风险,B选项错误;放学高峰时段关闭防火墙会降低系统安全性,C选项错误;口令在数据库中以明文形式存储容易导致口令泄露,D选项错误。故答案为:A。
7. 某算法的部分流程图如图所示。
执行这部分流程图,输出为( )
A. 13 B. 14 C. 15 D. 16
【答案】A
【解析】
【详解】本题考查流程图。观察流程图可知,c统计为1~20之间2的倍数与3的倍数。由此可知,1~20之间2的倍数与3的倍数有2,3,4,6,8,9,10,12,14,15,16,18,20,共计13个。因此,最终c的值为13。故答案为:A。
8. 下列python表达式的值与其它三项不同的是( )
A. "10">"9" B. 2 not in{"two":2} C. "hero"[:2]=="He" D. [1,2]==[2,1]
【答案】B
【解析】
【详解】本题考查表达式。A选项,字符串"10"和"9"比较大小,是按照字符的ASCII码值比较,"1"的ASCII码值小于"9",所以"10"<"9",表达式的值为False。B选项,2不在{"two":2}这个字典中,所以表达式的值为True。C选项,"hero"[:2]是"he","he"不等于"He",表达式的值为False。D选项,[1,2]不等于[2,1],表达式的值为False。故答案为:B。
9. 已知一维数组a存储了n个元素(a[0]∼a[n-1]),当前数组长度大于n,要求在索引位置p插入元素key,并保持元素相对位置不变,实现上述功能的python程序段如下:
#生成数组a,代码略
key=int(input("请输入插入元素值:"))
p=int("input("请输入插入元素位置:"))
for i in range(A ):
B
a[p]=key
有下列语句:
①p,n;②n-1,p-1,-1;③a[i+1]=a[i];④a[i]=a[i-1]
则程序A、B处代码分别是( )
A. ①③ B. ①④ C. ②③ D. ②④
【答案】C
【解析】
【详解】本题考查Python程序。在插入元素时,需要从数组末尾开始,将元素逐个向后移动,为要插入的元素腾出位置。A处应是循环的范围,即从最后一个元素到要插入位置的前一个元素,所以是②n-1,p-1,-1。B处是在循环中进行元素后移的操作,即把当前位置的元素赋值给下一个位置,所以是③a[i+1]=a[i]。故答案为:C。
10. 判断字符串s是否是回文字符串(从左向右读和从右向左读一样的字符串称为回文字符串),若是则返回True,否则返回False,为了实现该功能,以下函数不可行的是( )
A.
def hw4(s):
for i in range(len(s)//2):
if s [i] !=s[len(s)-1-i]:
return False
else:
return True
B.
def hw2(s):
for i in range(len(s)//2):
if s [i] !=s[len(s)-1-i]:
return False
return True
C.
def hw3(s):
for i in range(len(s)//2):
if s [i] !=s[len(s)-1-i]:
return False
else:
return True
D.
def hw1(s):
L,R=0,len(s)-1
while L<R:
if s[L] !=s[R]:
return False
L,R=L+1,R-1
return True
A A B. B C. C D. D
【答案】A
【解析】
【详解】本题考查Python程序。A选项中,在第一次比较字符后,无论是否相等,都直接返回了结果,没有完成对整个字符串前半部分和后半部分的完整比较,所以不可行。故答案为:A。
11. 有如下Python程序段:
matrix=[[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4]]
k=int(input())
tot=0
for i in range(4):
for j in range(4):
if i+j=k:
tot+=matrix[i][j]
print(tot)
若输入2,则输出为( )
A. 12 B. 10 C. 8 D. 6
【答案】D
【解析】
【详解】本题考查Python程序。程序的功能是计算二维列表matrix中满足条件i+j=k的元素之和,其中k是用户输入的整数。解析如下:给定二维列表matrix,每个子列表都包含相同的四个整数。用户输入一个整数k。初始化变量tot为0,用于累加满足条件的元素之和。使用嵌套循环遍历matrix的每个元素:外层循环i控制行索引。内层循环j控制列索引。判断条件i+j==k,如果成立,则将matrix[i][j]的值加到tot中。最后输出变量tot的值,即满足条件i+j=k的元素之和。若输入2,根据题目的计算,满足条件的元素有(0,2),(1,1),(2,0),它们分别对应的值是1,2,3,因此最终的输出是1+2+3=6。故答案为:D。
12. 有如下python程序段:
def decrypt(c,k):
t=ord(c)-k
if t<97:
t+=26
return chr(t)
miwen=input("请输入密文:")
key=input("请输入密钥:")
pos=0
mingwen=""
for i in miwen:
if"a"<=i<="z":
d=ord(key[pos])-97#"a"的ASCII码为97
mingwen=decrypt(i,d)+mingwen
pos=("pos"+1)%len(key)
else:
mingwen=i+mingwen
print(mingwen)
执行该程序段后,若输入的密文为:5pvbzmg5,密钥为:abc,则输出的内容是( )
A. puzzle B. 5elzzup5 C. 5puzzle5 D. elzzup
【答案】B
【解析】
【详解】本题考查Python程序。程序段的作用是对输入的密文进行解密,规则是:对于密文中的每个字符,如果是小写字母,则使用密钥中的相应字符计算偏移量,进行解密操作;如果不是小写字母,则直接添加到明文中。解密过程如下:用户输入密文5pvbzmg5和密钥abc。初始化变量pos为0,用于记录当前密钥字符的位置,初始化变量mingwen为空字符串,用于存储解密后的明文。遍历密文中的每个字符:如果是小写字母,根据密钥中的相应字符计算偏移量,调用解密函数进行解密,并更新明文字符串和密钥位置。如果不是小写字母,直接添加到明文中。根据上述过程,可知最终输出的内容为:5elzzup5。故答案为:B。
二、非选择题(本大题共3小题,第13小题8分,第14小题9分,第15小题9分,共26分)
13. 某校高二10个班级参加了某协作体组织的期中考试,考试成绩保存在“score.xlsx”文件中,部分数据如下图所示:
图1
小王同学用Python程序及pandas模块对高二期中成绩进行分析,输出总分前10名和各学科单科王(需要考虑并列名次,见图2),并用matplotlib绘制各班级总分平均分柱形图(图3):
图2
图3
实现上述功能的python代码如下:
import pandas as pd
import matplotlib.pyplot as plt
pltrcParams["font.sans-serif"]=["SimHei"] #设置显示中文字体
df=pd.read_excel("score.xlsx")
df.总分=
kms=df.columns[3:]
for km in kms:
df_sort=df.sort_values(①____,ascending=False)
df_sort=df_sort.reset_index() # 重置索引,使索引重新有序
if km=="总分":
t=10
else:
t=1
for i in range(t,len(df_sort)):
if df_sort.at[i,km] !=df_sort.at[i-1,km:]
②____
break
else:
bottom=len(df_sort)
if km="总分":
print(f"{km}前10名:",df_sort[:bottom].姓名.values)
else:
print(f"{km}单科王:",df_sort[:bottom].姓名.values)
df_g=df.groupby("班级").mean()
x=df_g.index
y=③____
plt.bar(x,y,label="各班总分平均分")
plt.④____ #显示图例
plt.show()
请回答下列问题:
(1)方框处代码需要计算每个同学10个科目的总分。为实现该功能,方框处代码可选择下列选项中的____。(单选,填字母:A.df.sum(axis=1)/B.df.sum(axis=0))
(2)请完善划线①、②、③、④处的代码
【答案】(1)A
(2)①km ②bottom=i ③df_g.总分或df_g["总分"] ④legend()
【解析】
【详解】本题考查Python综合应用。
(1)df.sum(axis=1)计算的是DataFrame每行的和,适用于求每个同学的总分;而df.sum(axis=0)计算的是每列的和,适用于求每科的总分。故答案为:A。
(2)此处需要按照各科成绩或总分排序,因此选择km,代表当前科目的列名。故答案为:km。此处需要在发现不再并列名次时,更新bottom的值以表示有效排名范围的终止索引。故答案为:bottom=i。需要获取各班级总分的平均值,df_g是按班级分组后的平均值DataFrame,df_g["总分"]取出总分列的平均值。故答案为:df_g.总分或df_g["总分"]。legend()函数用于显示图例标签。故答案为:legend()。
14. 小明做了一个“室内温度监测系统”实验,传感器采集的数据由智能终端通过IoT模块发送至Web服务器;实时采集室内的温度数据,并上传至服务器中;根据阈值控制LED灯的开关,起到警示作用。
请回答下列问题:
(1)该信息系统采用的架构为____(选填:B/S或C/S)模式。
(2)该系统中,虚线框处智能终端与执行器及传感器之间的数据传输____(多选,填字母:)
A.只能由智能终端到执行器/ B.只能由执行器到智能终端/ C.既可以由智能终端到执行器也可以由执行器端到智能终端/ D.只能由智能终端到传感器/ E.只能由传感器到智能终端/ F.既可以由智能终端到传感器也可以由传感器端到智能终端)。
已知该监测系统智能终端每5秒采样一次,使用BXY软件给终端编写数据采集、传输程序,实现把温度数据上传到Web服务器,智能终端部分代码如下:
from microbit import*
#IoT模块连接路由器代码略
while True:
temp=round((pin0.read_analog()*330/1024) #获取温度数据
errno,resp=Obloq.get("input?id=1&val="+str(temp),10000)
if errno=200:
display.scroll(str(resp))
if resp= '1 ':
pin14.write_digital(1)
else:
pin14.write_digital(0)
else:
display.scroll("err")
①____ #设置采集间隔时间
服务器端的程序部分代码如下:
# 导入Flask框架模块及其他相关模块,代码略
# 指定数据库位置,代码略
@app.route('/ ')
def hello():
# 从数据库读取温度值数据,并返回页面,代码略
@app.route("/input",methods=[ 'POST ', 'GET '])
def add_data():
if request.method=="②____ ":(选填:POST/GET)
sid=int("request.args.get('id '))")
value=float(request.args.get('val '))
else:
sid=int(request.form.get('id '))
value=float(request.form.get('val '))
#写入数据库,代码略
If 20<value<25:
return '0 '
else:
return '1 '
if _name_== '_main_ ':
app.run(host=192.168.9.3,port=8080,debug=True)
(3)请在划线处填入合适的代码。
(4)从代码中可以看出,连接执行器的引脚是____
(5)结合代码,若某时刻温度数值是28,则传输数据时使用的URL是http://____
【答案】 ①. B/S ②. AE ③. sleep(5000) ④. GET ⑤. pin14或p14 ⑥. 192.168.9.3:8080/input?id=1&val=28
【解析】
【详解】本题考查信息系统。
(1)该信息系统采用的架构为 B/S 模式,因为用户通过 Web 浏览器访问服务器获取信息和服务。故答案为:B/S。
(2)智能终端与执行器及传感器之间数据传输,只能由智能终端到执行器,只能由传感器到智能终端。故答案为:AE。
(3)要设置采集间隔时间为5秒,5秒 = 5000毫秒,所以使用 sleep(5000)。故答案为:sleep(5000)。在智能终端发送数据的代码中,使用的是Obloq.get()方法来发送请求,因此智能终端向服务器发送数据时使用的是GET方法。故答案为:GET。
(4)从代码pin14.write_digital(1)和pin14.write_digital(0)可以看出,连接执行器的引脚是pin14。故答案为:pin14或p14。
(5)某时刻温度数值是 28,传输数据时使用的URL格式为http://服务器IP地址:端口号/input?id=1&val=温度值,所以是http://192.168.9.3:8080/input?id=1&val=28。故答案为:192.168.9.3:8080/input?id=1&val=28。
15. 某学习英语的APP不仅能查询单词的读音及词义,还能指导用户背诵单词,这其中用户单词库的积累是一个重要的环节。单词库中英文单词的排序是按照英文字母的先后顺序排列,比如alive排在axis的前面。我们查询英文单词库时会先找到该单词的首字母所在位置,然后根据后续字母的顺序去查找所需单词的位置及词义。小朱尝试编写了一个简易的查字典程序,输入单词进行词义查询:若该单词在词库中,则输出单词的词义;若不在词库中,则将该单词及词义添加到词库中,添加完成后,要求同一字母开头的单词仍然有序。
小朱使用链表结构来存储单词库。单词库的链表结构如下表所示,已收录部分单词在库中。查找单词“cursor”时,先根据单词的首字母确定head指向列表索引2,根据指针域,后续依次访问列表索引31,29,在索引29处找到该单词,而“cursor”所在节点的指针域为-1,说明该单词当前是以c开头的最后一个单词。查找单词“boy”,该单词不在单词库中,将该单词及对应词义添加到单词库中。
列表索引
单词
简要词义
指针域
0
a
a开头单词
28
1
b
b开头单词
27
2
C
c开头单词
31
…
…
…
25
Z
z开头单词
-1
26
alive
活着的
50
27
binary
二进制
30
28
add
添加,加
26
20
cursor
光标,游标
-1
30
byte
字节
-1
31
cache
高速缓存
29
⋯
…
…
50
axis
轴
-1
…
…
…
…
(1)根据以上表格,当前单词库中包含____个以“a”开头的单词(要求单词长度>1)。
(2)以下代码实现了上述功能,完成代码填空。
def search_word(word,head): #在以head为头指针的链表中查找单词word
pre=head;cur=data[pre][2]
while cur!=-1:
if word=data[cur][0]:
return True,cur
elif word>data[cur][0]:
pre=①____
cur=data[cur][2]
else:
return False,pre
return False,pre
def print_link():#遍历所有链表,输出单词及词义
for i in range(26):
p=i
while ②____
print(data[p][0]+""+data[p][1],"end"="")
p=data[p][2]
print() #换行
#主程序
data=[]
#生成当前单词库data,代码略
word=input("请输入一个单词(均为小写且长度大于1):")
flag,pos=search_word(③____)
if flag==True:
print(data[pos][1])
else:
print("没找到该单词")
s=input("请输入单词词义:")
data.append([word,s,data[pos][2]])
data[pos][2]= ④____
print_link()
【答案】 ①. 3 ②. cur ③. p!=-1 ④. word,ord(word[0])-97 ⑤. len(data)-1
【解析】
【详解】本题考查Python综合应用。
(1)已知head指针指向的列表索引0是'a',其指针域指向28(add),而28的指针域指向26(alive),alive的指针域指向50(axis),axis的指针域为-1,说明它是最后一个以'a'开头的单词。排除单字母单词,包含add、alive和axis这三个单词。故答案为:3。
(2)当前节点cur的单词大于word时,更新pre为cur,继续查找下一个节点。故答案为:cur。在遍历单词链表时,检查p是否为-1,即是否到达链表末尾。故答案为:p!=-1。这里需要将单词的首字母转换成对应的索引位置,这样可以根据单词的首字母确定在data数组中对应的链表的头指针位置。这个头指针位置是search_word函数的head参数,用于确定从哪个位置开始查找单词。故答案为:word,ord(word[0])-97。新添加的单词放入单词库后,更新前一个节点的指针域指向新节点的位置。故答案为:len(data)-1。
第1页/共1页
学科网(北京)股份有限公司
$$