浙江省宁波市金兰教育合作组织2022-2023学年高二下学期信息技术4月期中试卷
试卷更新日期:2023-05-19 类型:期中考试
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)
-
1. 关于数据、信息与知识,下列说法错误的是( )A、数据是信息的载体,单纯的数据没有意义 B、信息经过人为的解读和经验充实可以转化成知识 C、计算机只能处理数字化后的信息 D、不同的人接受同样的信息后,所构建的知识是相同的2. 下列研究领域中,不属于人工智能范畴的是( )A、机器学习 B、专家系统 C、编译原理 D、人工神经网络3. 阅读以下材料,回答问题。
宁波公共自行车是宁波市推出的公共自行车服务,用于解决公共交通中的“最后一公里”问题。 市民可通过具有租车功能的甬城通卡借还公共自行车。租车时,在公共自行车锁止器的刷卡区域刷 卡,听到“滴”声后,锁止器打开,市民就能轻松取车。
另外还推出了宁波公共自行车app,市民通过该app加手机验证码就可以安全租赁公共自行车,免去办卡等辅助的手续,更好的保障个人信息安全,并且提供宁波公共自行车网点信息查询,以及相关资讯服务。
(1)、关于宁波公共自行车系统,下列说法正确的是( )A、该系统是一个人机交互系统,是一个工作系统 B、市民通过甬城通卡借还自行车时,无需通信网络的支持 C、借还自行车的市民是该系统的用户,但网点维护人员不是 D、租赁公共自行车的手机验证码是该系统的软件(2)、关于该系统中的数据,下列说法正确的是( )A、租赁公共自行车的数据保存在甬城通卡或者市民手机中 B、甬城通卡是一种无源电子标签,刷卡时会向读卡器发送数据 C、刷卡系统采用了RFID 技术,在数据采集过程中,没有使用传输介质 D、该系统中的数据不含个人敏感信息,信息存储和传输时无需加密(3)、为了提升信息安全,下列做法正确的是( )A、用户可以安装从互联网上搜索到的任意一个“宁波公共自行车 app” B、为了使通信更安全,应删除手机端的通信协议 C、对安装的“宁波公共自行车 app”开启所有的应用权限 D、宁波公共自行车系统应安装防火墙以阻挡外部攻击,保护内部资源的安全4. 某算法的流程图如图所示,执行该流程,输入x的值为整数26,则输出s的结果是( )A、11010 B、10011 C、01011 D、110015. Python 表达式 119%8*10+210//10 的计算结果是( )A、91 B、59 C、60 D、196. 已知字典 d={'名称': 'orange', '数量': 7, '售价': 6.7, '利润': 6.78} ,则下列 Python 表达式中值最大的是( )A、len(d['名称']) B、d['数量'] C、round(d['利润'],1) D、int(d['售价'])7. 有如下 Python 程序段:s='HAPPY2023'
s=s[3:]+s[1:3]
print(s)
则输出 s 的结果是( )
A、PY2023AP B、HAPY2023 C、PY2023HA D、HAPP20238. 某加密程序如下,已知输入的明文是:2023-03-09,运行结束后,输出的密文为mingwen=input("请输入明文:")
miwen=""
for i in mingwen:
if "0"<=i<="9" :
miwen += str((int(i)+3)%10)
else:
miwen += i
print(miwen)( )
A、5356-36-12 B、5356-36-32 C、2016-16-12 D、535636329. 某 Python 程序如下:def isprime(x) :
for i in range(2,x) :
if x % i == 0 :
return False
return True
prime = []
for m in range(2,19):
if isprime(m) :
prime.append(m) #将 m 追加到列表 prime 中
print(len(prime))
程序运行后,输出的结果是( )
A、5 B、6 C、7 D、810. 有如下 Python 程序段:s = input("请输入一串字符串:")
f = True
for i in range(len(s)//2) :
if s[i] != s[len(s)-i-1] :
f = False
break
print(f)
若执行该程序后,输出的结果是“True”,则输入的字符串可能是( )
A、"onion" B、"hello" C、"278" D、"111"二、非选择题(本大题共3小题,8+9+9,共26分)
-
11. 小明模拟搭建了“室内烟雾实时监控系统”,实现如下功能:
⑴利用micro:bit结合烟雾传感器对室内烟雾浓度进行监测。
⑵通过串口采集传感器的数据变化,实时传输到Web服务器并保存到数据库中,以便后续进行分析。
⑶使用者可对监测系统进行相关的设置,限定室内烟雾浓度的临界值。一旦指标高于所限定的临界值,系统将自动发出警报并开启水泵浇水。
系统通过智能终端每隔1分钟采集一次室内环境烟雾浓度数据。其架构示意图如图所示:
智能终端的部分程序代码如下:
#设置连接服务器参数并与智能终端建立无线连接,代码略
while True:
① = pin0.read_analog()
errno,resp = Obloq.get("input?id=1&val="+str(fog),10000)
if errno == 200:
display.scroll(resp)
if resp == '1':
pin8.write_digital(1) #打开蜂鸣器发出警报
pin16.write_digital(1) #打开继电器开启水泵浇水
else:
pin8.write_digital(0) #关闭蜂鸣器
pin16.write_digital(0) #关闭继电器
else:
display.show (str(errno))
② #设置数据采集间隔时间
服务器端部分程序代码如下:
from flask import Flask, request
import sqlite3
DATABASE ='tdata.db'
app = Flask(__name__)
@app.route("/")
def index():
#代码略
@app.route("/input",methods=["GET"])
def mytest():
#获取传感器 id 值和环境烟雾浓度值并存储在数据库中
#烟雾浓度超过最大值返回“1” ,否则返回“0”,代码略
if __name__ == '__main__':
app.run (host="192.168.1.8",port=8080,debug=True)
(1)、根据室内烟雾实时监控系统的功能要求和相关代码,下列说法正确的是_____ (多选,填 字母)。A、该系统采用B/S 开发模式 B、蜂鸣器连接在pin8 引脚,烟雾传感器连接在 pin16 引脚 C、该系统的数据存储在数据库文件“tdata.db”中 D、为提高开发效率,无需进行网络测试(2)、请在程序划线处填入合适代码。①②
(3)、若某时刻的烟雾浓度值是25,根据已知的地址和端口号,则传输数据时使用的URL是___ (单选,填字母)。A、http://192.168.1.8/input?id=1&val=25 B、http://192.168.1.8:8080/input?val=25 C、http://192.168.1.8:8080/input?id=1&val=25 D、http://192.168.1.8/input?val=25(4)、服务器端接收传感器数据的路由对应的视图函数名为。12. 小王通过扫描仪获取到技术周考的学生信息技术单选题答题信息,记录了学生每个小题的答题选项,如图a所示:图 a
为了统计分析出每一小题的答题情况,小王编写了Python 程序,请回答下列问题:
(1)、分析学生每个小题的 A,B,C,D 选项的占比,代码如下:import pandas as pd 第 1 小题
import matplotlib.pyplot as plt A: 2.22 %
plt.rcParams[("font.sans-serif")]= ["KaiTi"] B: 6.67 %
df=pd.read_excel ("ITdata.xlsx") C: 80.0 %
stunum=len(df) D: 8.89 %
for i in range(1,13): 第 2 小题
print("第"+str(i)+"小题") A: 0.0 %
for k in "ABCD" : B: 80.0 %
t
print(k+":",round(len(t)/stunum*100,2),"%")
该程序段运行结果的部分界面如图b 所示。
图 b
画线处填入的代码为 (单选,填字母)
A、df["单选"+str(i)]==k B、df[df["单选"+str(i)]==k] C、df[["单选"+str(i)]==k] D、df[df["单选"+str(i)]]==k(2)、计算出全班学生的各小题得分并统计各小题平均分,绘制出线形图(如图c所示),部分Python程序如下,请在划线处填入合适的代码。图 c
sans="CBCABCABDABD"
qnum=list(df.columns)
for i in df.index :
=
#本次单选题的标准答案
for j in range(2,14):
if df.at[i,qnum[j]]== :
r=2 else:
r=0
#回答正确得 2 分
#回答不正确得 0 分
df.at [i,qnum[j]]=r
aver= []
for j in qnum[2:]: #统计各单选题的平均分
aver.append( )
plt. (qnum[2:],aver,label="平均分")
plt.legend()
plt.show ()
(3)、由图b 可知,12 道选择题中难度最低的是“单选”。13. 小强学习过大数据的“分治”思想后,对经“分治”处理后的数据合并产生了兴趣。他设计了一个算法,对两个升序列表a、b中的数据(均为正整数)进行合并,合并后的数据仍保持升序。(1)、为了生成长度为num 的升序列表x,小强写了如下代码。import random
def mk(num) :
x= [0]*num #创建列表 x= [0,0,……,0],其中 0 的个数是 num
x[0]=random.randint(5,10) #randint(a,b)返回[a,b]区间内的一个随机整数
for i in range(1,num) :
return x
m=n=5
a=mk(m)
b=mk(n)
print("原始数据序列 a 为:",a)
print("原始数据序列 b 为:",b)
①使用语句 a= mk(5)调用函数,加框处语句的执行次数是 (填写阿拉伯数字) 。
②执行上述代码后,关于输出的列表a、b 中的数据,下列说法正确的是 (单选,填字母: A .相同 / B .不相同 / C .可能相同)
(2)、为了描述方便,假设两个列表中的元素个数m=n=5,其初始状态如下:b[0]
b[1]
b[2]
b[3]
b[4]
10
11
15
16
17
为了使合并后的数据保存在列表a 中,现对列表 a 扩充 n 个元素“-1”,扩充后状态如下:
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
a[7]
a[8]
a[9]
7
9
10
14
19
-1
-1
-1
-1
-1
变量i赋值为0,指向列表b的首数据,变量p赋值为0,指向列表a的首数据,变量tot指向列表a的最后一个有效数据(如图所示) 。
合并的具体算法如下:
Ⅰ.如果 a [p]= – 1 ,则直接将 b[i]存储到 a [p]中,同时 tot 值增加 1;
Ⅱ.如果 a [p]>b[i] ,则整体将 a [p] ,… ,a [tot]向右移动一个位置,然后将 b[i]存储到空出的位置, 同时 tot 值增加 1。
Ⅲ. p 值增加 1;
小强编写的合并代码如下,请在划线处填入合适代码。
#将列表a 的数据个数存入m,列表b 的数据个数存入 n,代码略
#对列表 a 扩充 n 个-1,代码略
p=0
tot=
i=0
while : #将列表b 中元素 b[i]逐个插入到列表 a 中
if a[p]==-1 :
a[p]=b[i]
tot+=1
i+=1
elif a[p]>b[i] :
for j in range(tot,p-1,-1): #整体将 a[p], … ,a[tot]向右移动一个位置
a[j+1]=a[j]
tot+=1
i+=1
p+=1
print("合并后的数据序列为:",a)