2023年1月浙江省选考科目考试
信息技术参考答案
第一部分:选择题
题号
2
3
5
6
9
10
11
12
13
答案
B
D
C
B
A
B
B
C
A
8
第二部分:非选择题
l4.(1)①dengdi(int(df.得分[i])或dengdi(int(df["得分"][i])
2分
(2)AB
(2分,选对一个得1分,多选不得分)
(3)②index=list(dd.keys ()或index=["A","B","c”,"D","E"](2分)
③df2.班级,df2.人数或df2["班级"],df2["人数](2分)
15.(1)①⑤④③②
(2分)
(2)C
(1分)
(3)①http:/60.191.134.21:8080/
(2分)
②data.db
(1分)
③/input(1分)GET(1分)
16.(1)A(2分)
(2)Dsingcolor [area]=color
(2分)
②area-=1或area=area-1(2分)
③len(city)
(2分)2023 年 1 月浙江省选考科目考试
技术试题
信息技术 (共 50 分)
一、选择题(本大题共 12小题,每小题 2分,共 24 分。在每小题给出的四个选项中,只有一个符合
题目要求)
阅读下列材料,请回答第 1~3题。
2022 卡塔尔世界杯将首次正式使用半自动越位识别(SAOT)系统。该系统使用 12 个专用摄像头
来跟踪每名球员的 29 个数据点位,以此计算每一个球员的确切位置。同时,世界杯还使用了传感器足
球,球内放置有惯性测量单元 (IMU) 传感器,其以每秒 500 次的频率将足球数据发送到视频操作室,
从而可以非常精确地检测踢球点。该系统可为视频裁判快速提供自动越位警报,当视频裁判与现场裁
判确认越位后,系统将生成 3D 动画,以最佳视角将越位画面在赛场大屏上进行播放。
1.关于半自动越位识别(SAOT)系统,下列说法正确的是( )
A.该系统属于符号主义人工智能 B.该系统使用的摄像头属于输入设备
C.该系统生成的 3D动画属于模拟数据 D.该系统使用的网络属于局域网
2.关于该系统中相关的足球数据,下列说法正确的是( )
A.足球数据是已经产生的不可改变的数据,属于静态数据
B.视频裁判根据足球数据分析越位产生的原因告诫运动员避免越位再次发生
C.系统根据足球数据生成 3D 动画,这使用了 VR 技术
D.IMU 以每秒 500 频次将足球数据传到视频操作室,这说明大数据产生的速度非常快
3.下列做法不利于该信息系统安全的是( )
A.将系统生成的 3D动画在互联网上发布
B.对系统中的视频裁判开放所有权限以便他们能观察到所有数据
C.给每一位视频操作室人员分配一个绑定的“人脸识别”帐号
D.系统后台管理员注销某位“提前透露世界杯比赛结果”的内部操作人员帐号
4.使用 UltraEdit 软件观察某字符串内码如第 4 题图所示:
第 4 题图
下列说法正确的是( )
A.该字符串中所有的 ASCII 码占用了 10个字节的空间
B.将字符“1”的内码与字符“a”内码进行异域运算后可得到字符“n”的内码
C.由“1”的内码是 31H,可得“10”的内码是 3AH
D.由图可知,计算机内部使用的是十六进制编码
5.某声音文件经过 MP3 格式压缩后的属性如第 5 题图所示:
1/8
第 5 题图
以下说法不正确的是( )
A.将选中部分声音进行“裁剪”操作后,声音的总时间将被减少到 2秒
B.该声音文件的大小约为 315KB
C.若未压缩前该文件小大为 1.35MB,则该声音的量化位数为 16 位
D.将该文件还原为 WAVE 格式,可得到无损的原文件
6.下列 Python 表达式运算后,结果不为“C”是( )
A. ord("A"+2) B. chr(ord("B")+1) C. "China"[0:1] D. {1:"B",2:"C"}[2]
7.某排序算法排序过程如第 7题图所示,由图可知,该算法的时间复杂度为( )
第 7 题图
A. O(n) 2 n B. O(n ) C. O(log2n) D. O(2 )
8.已知单向链表的节点类的 Python 代码定义如下:
Class LinkNode:
Def __init__(self,data_,next_=None):
self.data=data_
self.next=next_
链表结构如第 8题图所示,已知原链表各节点值分别为“上->山->打->老->虎”。
第 8 题图
已知 pre,p和 r分别指向3个连续的节点,现在想要调整链表中某些节点的顺序,编写了如下的Python
代码段:
pre.next=r
p.next=r.next
r.next=p
则程序执行后,该链表的结构可以表示为( )
2/8
A. 上->山->打->老->虎 B. 上->山->老->打->虎
C. 山->上->打->老->虎 D. 山->上->老->打->虎
9.使用列表生成式创建数组的 Python 代码如下:
a=[i*i for i in range(10) if i%2==0]
则执行语句 print(sum(a[1:-1]))后输出的结果为( )
A. 20 B. 52 C. 56 D. 116
10.有如下 Python 程序段:
code="0123456789ABCDEF"
RGB=(255,96,128)
ans="#"
for c in RGB:
t=[]
for i in range(2):
t.append(code[c%16])
c//=16
ans+=''.join(t[::-1])
print(ans)
执行程序后,输出的结果为( )
A. #FF607E B. #FF6080 C. #8060FF D. #6E60FF
11.一颗二叉树的前序遍历是“知心几见曾来往”,中序遍历是“往来几曾见知心”,则以下说法正确的
是( )
A. 这颗树的叶子结点比非叶子结果多 1 B. 这是一颗完全二叉树
C. 其后序遍历为“往来曾见几心知” D. 这颗树有 3层
12.用 > 表示进栈操作,< 表示出栈操作,若元素进栈的顺序为“+ / * \ %”,出栈顺序为“+ \ * %
/”,则由 > 和 < 表示的操作串是
A.><>>><<><< B.><>><><<>< C.>>>><<><<< D.><>>>><<<<
x
13.用二分查找的方法求不等式 2 +3x-4<=n(n>=0)的最大正整数解,编写的程序如下:
n=int(input("请输入 n:"))
L,R=1,n+1
while Lx=(L+R+1)//2
if 2**x+3*x-4<=n:
①
else:
②
print(f"方程 2^x+3*x-4<={n}的最大正整数解为:",R)
要使程序实现上述功能,则缺失的代码是( )
A.①L=x+1 ②R=x-1
B.①L=x ②R=x-1
C.①R=x-1 ②L=x+1
3/8
二、非选择题(本大题共 3 小题,第 14 题 8 分,第 15 题 8 分,第 16 题 8 分,共 24 分)
14.某校高二年级2022年 12月的物理学考模拟考试成绩如14题图a所示,等级赋分标准如图b所示。
编写 Python 程序,统计各班的等第人数并进行可视化。
14 题图 b
14 题图 a
(1)主程序。读取 xls数据文件,简化班级名称,并按赋分标准填入等第数据(如第 14 题图 c)。请
在程序划线处填入合适的代码。
import pandas as pd
import matplotlib as plt
df=pd.read_excel("xkmn.xls")
df.insert(5,"等第","") #在数据表最后位置插入一列
df.drop(["准考证号","自定义考号"],axis=1,inplace=True) #删除数据表前二列数据
def dengdi(fs): #根据等第赋分标准获取相应等第
if fs>=76:d="A"
elif fs>=56:d="B"
elif fs>=41:d="C"
elif fs>=22:d="D"
else:d="E"
return d
4/8
for i in df.index:
if df.得分[i]=="未扫描":
#删除缺考考生数据
else:
df.班级[i]=df.班级[i][-2:]
df.等第[i]= ① #调用赋分函数填入相应等第数据
#相应成绩查询系统代码略
(2)程序加框处的语句实现数据整理,删除缺考的考生,以下选项中可以实现的有 (多选)。
A.df=df.drop(i)
B.df.drop(i,inplace=True)
C.del df[i]
D.df.pop(i)
(3)根据结定班级,分析该班的等第数据并可视化,可视化结果如第 14 题图 d所示。请在程序划线
处填入合适的代码。
bj=input("请输入班级号(1~6):")+ "班"
df1=df[df.班级==bj]
print(df1)
dd={"A":"A","B":"B","C":"C","D":"D","E":"E"}
for i in dd: #统计各等第相应的人数
dd[i]=list(df1.等第).count(i)
dd=list(dd.values()) #获取字典中各等级的值并转换为列表
df2=pd.DataFrame(dd,columns=["人数"], ② )
plt.title(f"高二{bj}学考等第分布情况图")
plt.xlabel("等级")
plt.ylabel("人数")
plt.bar( ③ )
plt.show()
15.小明打算搭建一个教室温度报警控制系统,使用 Microbit 开发板自带的温度传感器获取的温度
数据经 IOT 模块发送到服务器。系统结构如第 15题图所示。
第 15 题图
5/8
(1)要搭建“教室温度报警控制系统”需要做一些前期准备,以下都是前期准备要完成的步骤:
①需求分析②详细设计③概要设计④开发模式选择⑤可行性分析
其正确的顺序是 (填序号)。
(2)根据信息系统的功能要求,图中①处的设备名称是 (单选,填字母:A交换机/
B.温度传感器/C.智能终端)
(3)服务器端程序采用 Flask Web 框架编写, 网站的功能页面规划如下表所示:
序号 访问地址 功能说明
1 / 显示历史温度列表
2 /input &temp=26 提交温度数据,并返回提示
3 /fenxi 分析统计温度数据
… … …
实现上述系统的服务器端程序部分代码如下:
import sqlite3
import datetime
from flask import Flask,render_template, request
DATABASE = 'data.db'
app = Flask(__name__)
@app.route("/")
#视图函数代码略
@app.route(" ⑴ ",methods=[' ⑵ ']) #提交数据功能页面的路由
def input_data():
value = float(request.args.get('temp'))
nowtime = datetime.datetime.now()
nowtime = nowtime.strftime('%Y-%m-%d %H:%M:%S')
db = sqlite3.connect(DATABASE)
cur = db.cursor()
cur.execute("INSERT INTO tempdata(value,updatetime)
VALUES(%f,'%s')" %(value,nowtime))
mit()
cur.close()
db.close()
if 16< value < 25:
return "当前温度适宜"
elif value <= 16:
return '当前温度较低'
elif value >= 25:
return '当前温度较高'
if __name__ == "__main__":
app.run(host="60.91.134.21", port=8080,debug=True)
6/8
①由以上代码可知访问主页的地址是 。
②阅读代码可知提交的数据保存在 文件中。
③要实现表中的功能,⑴处路由为 ,⑵处的请求方式为 (填:GET 或 POST)
16.地图染色问题可以根据四色定理来解决。所谓四色定理,就是指可以用不多于四种的颜色对地图
着色,使相邻的行政区域不重色,因此我们可以用四色定理的结论,用回溯算法对一幅给定的地图染
色。
算法的基本思想是:从第(1)号行政区域开始染色,每个区域逐次用颜色 1#、2#、3#、4#进行试
探,若当前所取的颜色与周围已染色的行政区域不重色,则用栈记下该区域的颜色序号,否则依次用
下一颜色进行试探;若出现用 1#到 4#颜色均与相邻区域的颜色重色,则需退栈回溯,修改当前栈顶的
颜色序号,再进行试探。直到所有行政区域都已分配合适的颜色。
某县行政地图第 16题图所示:
第 16 题图
(1)若邻接矩阵 adjamat=[[0,1,1,1,1],[1,0,1,1,0],[1,1,0,1,1],[1,1,1,0,1],[1,0,1,1,0]],
则下列涂色方案中可行的是 (单选,填字母)
A.1->1,2->2,3->3,4->4,5->2
B.1->1,2->2,3->3,4->1,5->2
C.1->1,2->2,3->3,4->2,5->4
(2)实现上述功能的 Python 程序如下,请在划线处填入合适的代码。
def mapcolor(adjamat): #自定义填色函数部分
signcolor=[0]*N
color = 1
signcolor[0] = 1
area = 1
while area < N:
while color <= 4:
if area >= N:
break
k = 0
7/8
# 以下代码判断区域是否重色
while (k < area) and (signcolor[k] * adjamat[area][k] != color):
k += 1
if (k < area):
color += 1
else:
① #给该区域上色
area += 1
color = 1
if color > 4: # 没有找到合适的颜色,需要进行回溯
②
color = signcolor[area] + 1
return signcolor
#主程序部分
city = {1: '海游街道', 2: '海润街道', 3: '沙柳街道', 4: '亭旁镇', 5: '珠岙镇', 6: '横渡
镇', 7: '蛇蟠乡', 8: '健跳镇', 9: '花桥镇', 10: '浦坝港镇'}
N = ③
colordict = {1: '红色', 2: '橙色', 3: '黄色', 4: '青色'}
adjamat = [[0 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0]
[1 , 0 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , 0]
[1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0]
[1 , 1 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 0]
[1 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0]
[0 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 1]
[0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0]
[0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0]
[0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1]
[0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 0]]
signcolor1 = mapcolor(adjamat)
print(signcolor1)
# zip 函数可以将多个序列,如列表、元组、字典、集合压缩成一个对象。
for key1,key2 in zip(city,signcolor1): #将相对应的区域与地图颜色输出
print(city[key1] + ":" + colordict[key2])
8/8