浙江省温州市环大罗山联盟2021-2022学年高二下学期信息技术期中联考试卷
试卷更新日期:2022-05-27 类型:期中考试
一、选择题(本大题共12小题,每小题2分,共24分。)
-
1. 下列有关“无人超市”的说法,正确的是( )A、系统通过入口处刷脸获得的特征值属于个人一般信息 B、零购物码和出门二维码使用后失效,体现了信息的时效性 C、系统自动对用户数据进行加密是为了提高数据的完整性 D、存储在系统数据库中的海量用户信息属于大数据2. 下列对“无人超市”信息系统的功能描述,不正确的是( )A、录制用户付款视频和离开时的影像属于信息系统的收集功能 B、识别到注册用户立刻开门属于信息系统的传输功能 C、使用POS机自助付款属于信息系统的存储功能 D、打印小票、出门二维码属于信息系统的输出功能3. 2022年的北京冬奥会,我国取得了历史最好成绩,人工智能技术也以科技手段助运动员们一臂之力。研究团队利用基于深度学习原理的人工智能技术,建立神经网络模型,实现对动作视频中人体关节点的计算机自动识别,进而建立起适用于竞技体育和一般生物力学研究的计算机系统——无反光点人体运动自动捕捉人工智能系统。目前该系统已应用在国家速度滑冰和越野滑雪项目的训练中,获得超过8000人次的赛时动作技术数据,使机器深度学习越发“得心应手”,对于滑冰与滑雪运动员的动作捕捉与技术分析,既能精准到具体细节,又能快速反馈分析结果。(1)、根据以上描述,下列说法不正确的是( )A、随着获取的动作数据逐渐增加,该技术对于数据的反馈会更有效 B、该技术主要体现动作与结果的关系,说明大数据更注重事物之间的相关性 C、该技术捕捉到的每一个数据都来自于真实数据,体现了大数据价值密度高的特点 D、能根据动作自动捕捉进行分析,并快速反馈分析结果,体现了大数据速度快的特点(2)、根据以上描述,人工智能技术助力运动员主要基于以下哪种方法( )A、符号主义 B、联结主义 C、行为主义 D、建构主义4. 从文字输入、语音识别、图像识别到“刷指纹”、“刷脸”,人类信息的输入模式在发生革命性的变化。请回答下面小题。(1)、下列有关信息编码的说法,不正确的是( )A、自然界中的文字、图像、语音等属于模拟信号 B、虽然人类信息的输入模式不同,但在计算机中存储一定使用二进制编码 C、输入一段相同的文字,可以采用不同的输入码 D、语音输入时,使用者声音越大,此条语音的容量越大(2)、下列关于“信息输入模式变革”的说法,正确的是( )A、信息系统硬件的发展促进了信息输入模式的变化 B、“刷指纹”、“刷脸”只适用于移动终端设备 C、不同的信息输入模式利用了相同的传感器 D、任意一种输入模式都必须在联网的状态下使用5. 下列说法正确的是( )A、此算法中包含2个分支结构 B、循环结束时变量i的值为30 C、判断语句“i≤30”将被执行30次 D、执行该流程图后,输出的值为26. 虚线框处可以合并为一个条件表达式,下列表达式中符合该条件的是( )A、i//3==0 or i//5!=0 B、i%3==0 or i%5!=0 C、i//3==0 and i//5!=0 D、i%3==0 and i%5!=07. 已知x="苹果, 50",y=["苹果",50],z={"苹果":50},下列python表达式的值为True,正确的是( )A、x[-4::-1]==y[0] B、x[3:5]==y[1] C、y[1] in z D、z[y[0]]==508. 某些数据中存在“数字山峰”,例如数据“21432748”中存在“1432”、“274”两座“数字山峰”(必须包含上坡与下坡),下面程序用于求数据中“数字山峰”的数量:
num=input("请输入数字串:");c=0
for i in range(1,len(num)):
if and f==False:
f=True
elif and f==True:
c=c+1
f=False
print("有",c,"座数字山峰")
方框(1)(2)(3)的代码由以下部分组成:
①f=True ②f=False ③num[i-1]>num[i] ④num[i-1]<num[i]
下列选项中代码顺序正确的是( )
A、①③④ B、①④③ C、②③④ D、②④③9. 有如下python程序段:n="p4y2t3h1o9n4";p=""
for i in n:
if "0"<=i<="9":
if p=="":
p+=i
elif i>=p[-1]:
p+=i
elif i<p[0]:
p=i
执行该程序段后,则p的值是( )
A、"239" B、"14" C、"19" D、"4"10. 有如下python程序段:from random import randint
n=input("请输入一串数字:")
k=randint(0,len(n)) #randint用于随机生成[0,len(n)]之间的整数
for i in range(k):
for j in range(len(n)-1):
if n[j]>n[j+1]:
break
else:
n=n[:len(n)-1]
continue #continue跳过当前循环的剩余语句,直接进行下一轮循环
n=n[:j]+n[j+1:]
执行该程序段后,输入“1529”,则变量n可能是( )
A、"9" B、"12" C、"152" D、"1259"二、非选择题(本大题共4小题,其中第11小题6分,第12小题6分,第13小题7分,第14小题7分,共26分)
-
11. 小墩和小融打乒乓球,利用Micro:bit主板的LED阵列实时显示比分情况(如图1所示,2个方框分别表示小墩和小融比分区,每个亮点表示1分),并在BXYPythonEditor软件的串口中实时输出对局输赢情况(如图2所示)。
操作步骤:小墩得1分,按下Micro:bit主板的按钮A,左侧比分区亮点加1;小融得1分,按下按钮B,右侧比分区亮点加1。一局比赛初始比分为0:0,每一局中先达到10分的选手可以赢得该局。
(1)、实现上述功能的程序代码如下,请在划线处填入合适的代码:from microbit import * def bf(x,y):
#在 led 板上显示比分情况,代码略
m=0:n=0 #m表示小墩得分,n表示小融得分
while True:
if button_a.is_pressed(): #若按钮A被按下,则小墩得1分
m+=1
elif button_b.is_pressed(): #若按钮B被按下,则小融得1分
n+=1
if:
if m>n:
print("第", i, "局:小墩赢,比分:", m, ":" ,n)
else:
print("第", i, "局:小融赢,比分:", m, ":", n)
i+=1; m, n=0,0
bf(m,n)
sleep(200) #设置程序运行间隔为200毫秒
(2)、根据上述程序,下列比分情况不可能出现的是 。A、 B、 C、 D、12. 小张同学为了更好地了解冬奥会,从网上收集了历届冬奥会各个项目比赛信息,收集到的部分数据如图1所示:图 1
图 2
为分析数据,小张编写了如下程序:
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
plt.rcParams['font.sans-serif']=['SimHei'] #使图形中的中文标签正常显示df=pd.read_csv("dongao.csv")
#删除所有未获得奖牌的记录,并将奖牌列中的"G"修改为"金牌","S"修改为"银牌","B"修改为"铜牌"
jp={'G':'金牌','S':'银牌','B':'铜牌'}
for i in df.index:
if ① :
df=df.drop(i)
else:
df.at[i,'奖牌']=jp[df.at[i,'奖牌']]
#对输入国家每届的奖牌数进行统计,并制作相应图表,如图2所示:nt=input("请输入国家名称:")
df1=df[df['国家']==nt]
df3=pd.DataFrame(df2) #将分组后的数据生成新的二维结构,索引为“届次”,列标题为“奖牌”
x=df3.index
y= ②
plt.title(nt+"历年冬奥会奖牌趋势图") plt. ③ (x,y)
plt.show()
(1)、在划线处填上合适的代码。① ② ③
(2)、为了最后能显示某国历届冬奥会奖牌变化,需在加框处添加的语句为 (多选)A、df2=df1.groupby('奖牌')df2=df1.届次.count()
B、df2=df1.groupby('届次')df2=df2['奖牌'].count()
C、df2=df1.groupby('奖牌')['届次'].count( ) D、df2=df1.groupby('届次').奖牌.count( )13. 某网站对信息进行加密解密,选择页面“index.html”如图1,加密页面“jia.html”如图2,解密页面“jie.html”如图3。在选择页面点击相应按钮,选择加密或解密。图 1
图 2
图 3
选择加密时,在明文文本框中输入明文,点击“加密”按钮,网页显示密文与对应的密钥。加密规则为打乱明文对应的索引作为密钥,再利用该索引逐个取明文字符连接成密文,例如:明文为“信息技术”,若被打乱的索引为[2,0,1,3],则密文为“技信息术”,密钥为“2,0,1,3”
选择解密时,在密文文本框中输入密文,密钥文本框输入密钥,点击“解密”按钮,网页显示明文。
(1)、该网络应用属于架构。(单选,填字母:A .B/S 架构,B .C/S 架构)(2)、若待解密文本为“自息爱信也我己爱”,密钥为“2, 7, 1, 6, 4, 0, 3, 5”,则解密结果是。(3)、实现该功能的 python 程序如下,请在划线处填入合适的代码:from flask import render_template,request,Flask
import random
app=Flask(name) #创建应用实例@app.route('/') #选择页面路由def index():
return render_template('') #加密功能代码略,以下为解密代码:
@app.route('/jiemi1/',methods=["GET","POST"]) def jiemi1():
wb=request.form["wb"] #变量 wb 存储密文,变量 keyo 存储密钥keyo=request.form["key"] #利用 request 获取网页文本框内容,返回示例:“2,0,1,3”
keyn=list(map(int,keyo.split(","))) #将字符串 keyo 转换为数值列表,示例:[2,0,1,3]
result=""
for i in range(len(keyn)):
for j in range(len(keyn)):
if:
break
result+=wb[j]
return render_template("jie.html",WB=wb,KEY=keyo,RESULT=result) if_name_=="_main_":
14. 决策树是一种通过树形结构进行分类的人工智能预测模型,如根据图1所示“气象特点与游客是否来游乐场的关系”绘制的图2所示的决策树树形结构:图 1
图 2
通过了解当天的是否有风、天气、温度和湿度这4个节点参数即可预测当天是否有人来游乐场。不同的节点划分顺序可以绘制不同的决策树,为了选出最优的节点划分顺序,需要采用“信息熵”与“信息增益”指标。
信息熵,又称香农熵,被用来度量信息量的大小,信息熵越大表示信息量越大;
信息增益,表示样本经某节点划分后的信息熵变化大小。我们绘制决策树时应当逐次选择信息增益最大的节点作为当前节点。
对于有n个信息的样本D,记第k个信息发生的概率为??,信息熵计算公式为E(D)=− ∑? ?????2(??)
例如游乐场14个样本中“去”(9个)、“不去”(5个),则信息熵
若样本按“是否有风”节点划分,“是”(6个,其中3个去,3个不去)信息熵=
“否”(8个,其中6个去,2个不去)信息熵= =0.811;经过此节点划分后的信息增益=原始信息熵−按此节点划分后样本信息熵比例和 。
(1)、根据上述描述与题图1,则“天气”节点中的“多云”信息熵是 。(2)、实现求首次划分节点的程序如下,请在划线处填入合适的代码:def cal(lst): #计算样本 lst 的信息熵
x,y,z=0,len(lst),0 #x表示该样本信息熵,y表示该样本数量,z表示某信息发生的概率
num={}
for i in lst:
if i not in num:
num[i]+=1
for k in num:
z=num[k]/y #计算该信息发生的概率
x-=z*log(z,2) #根据公式计算信息熵,log(b,a)等价于 logab
return x def check(x,y):
#根据节点x,对样本 y 进行划分,返回示例:{'否': [1, 1, 0, 0, 1, 1, 1, 1], '是': [1, 1, 0, 1, 0, 0]},代码略
dic={'是否有风': ['否', '否', '否', '否', '否', '否', '否', '否', '是', '是', '是', '
是', '是', '是'],
'天气': ['多云', '多云', '晴', '晴', '晴', '雨', '雨', '雨', '多云', '多云', '晴', '晴', '雨', '雨'],
'温度': [28, 27, 29, 22, 21, 21, 20, 24, 18, 22, 26, 24, 18, 21], '湿度': [78, 75, 85, 90, 68, 96, 80, 80, 65, 90, 88, 63, 70, 80],
'是否前往': [1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0]} xm=list(dic.keys())
entropy=cal(dic[xm[-1]]) #调用函数计算样本原始信息熵 entropy #计算各节点信息增益
m=0;p=""
col=xm[:-1] #“是否前往”是结果项,不参与计算
for i in col:
size=len(dic[i]);entropy_1=0
zyb= #调用函数对样本 dic 按照当前节点进行划分
for j in zyb: #根据划分情况逐个求子样本信息熵并按比例累加
entropy_1+=len(zyb[j])/size*cal(zyb[j])
zy=entropy-entropy_1
print(i,"的信息增益:",zy)
if zy>m: #计算最大信息增益与信息增益最大的节点
m=zy
print("信息增益最大的节点:",p)