资源简介 2022学年第二学期杭州市高三年级教学质量检测技术试题卷第一部分 信息技术解析(50分)一、选择题(本大题共 12 小题,每小题 2 分,共 24 分,每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分。)1.下列关于数据和信息的说法,正确的是A.乘坐火车时不需要提供纸质火车票,说明信息可以不依赖于载体B.考古发现可以让我们了解过去的文化,说明信息不会随着时间的推移而变化C.结绳记事中通过“大事大结,小事小结”来记录不同的事件,其中绳结是信息D.“一百个人心中有一百个哈姆雷特”,说明不同的人对同一信息会建构出不同知识【答案】D【解析】本题考查信息与信息特征的相关知识。A选项.根据信息特征的描述,信息必须依附于一定的载体,不存在没有载体的信息,A选项错误;B选项中考古发现以前的文化,说明的是信息可以脱离它所反应的事物被保存,并不是不会随着时间的推移而改变,B选项错误;C选项中的绳结属于数据,并不是信息,故答案选 D。2.下列关于人工智能的说法,正确的是A.电商平台人工客服和机器客服合作解答问题,属于跨领域人工智能应用B.基于深度学习的人工智能,一般会构造包含若干层的神经网络C.专家系统是基于数据驱动的人工智能方法D.人工智能技术推动了人类社会进步,不可能威胁人类安全【答案】B【解析】本题考查人工智能的相关知识。A选项题目中描述了人工客服和机器客服合作解决问题,属于混合增强型人工智能,A选项错误;C选项专家系统属于以符号主义表达与推理为代表的人工智能,C选项错误;D选项人工智能可能威胁人类安全。故答案选 B3.下列关于数据处理与应用的说法,正确的是A.大数据一般具有数据量大、处理速度慢、数据类型多、价值密度高的特征B.所有的文本数据处理都依次经过数据分析、特征提取、分词和结果呈现四个步骤C.数据可视化是将数据以图形图像等形式表示,直观呈现数据中所蕴含的信息D.在数据处理过程中,数据的质量不会影响数据分析的结果【答案】C【解析】本题考查大数据、数据处理的相关知识。A选项大数据特征是速度快,不仅是产生速度快处理速度也快,A选项错误;B选项文本处理结果过程包括分词、特征提取、数据分析、结果呈现四个步骤,B选项错误;D选项数据处理中,数据本身的质量直接会高三技术试题卷 第 1页 共 14 页影响到最后的分析结果,故答案选 C阅读下列材料,回答第 4题至第 6题。某中学使用“智能门禁系统”,师生进出校园可使用人脸、校园卡或身份证进行识别。该系统使用 AI摄像头识别人脸,RFID技术获取校园卡、身份证等电子标签数据,并将采集到的数据存储到Web服务器的数据库,家长可使用手机客户端登录该系统,随时随地查看学生进出校园的情况。其中服务器的主要配置为:CPU 内存 硬盘 操作系统八核 2.3GHz 16GB 4TB Windows4.下列关于该信息系统组成与功能描述,正确的是A.使用该系统需要网络的支撑 B.该系统最大存储数据量为 16GBC.该“智能门禁系统”属于系统软件 D.Web服务器中的数据库属于系统的硬件【答案】A【解析】本题考查网络信息系统的相关知识。B选项该系统最大存储容量为 4TB,B选项错误;C选项该“智能门禁系统”属于应用软件,C选项错误;D选项数据库属于系统的软件部分,故答案选 A。5.下列操作中会对系统造成安全隐患的是A.捡到校园卡及时归还失主 B.为新用户设置同一登录密码C.为服务器及时更新系统补丁 D.采集的数据经加密后存储到数据库中【答案】B【解析】本题考查网络信息安全的相关知识。B选项为新用户设置同一登录密码,容易造成信息的泄漏和数据安全受到威胁等一系列信息安全问题。6.下列关于该信息系统中的数据说法,不.正.确.的是A.家长通过登录系统了解学生进出校园的情况属于系统数据的查询B.通过 AI摄像头采集人脸数据属于该系统的数据输入C.数据只有存储到数据库中才能进行处理D.该系统关闭后客户端将无法正常查看系统数据【答案】C【解析】本题考查信息系统中的数据。ABD均正确,C选项说法错误,数据库中的数据可以方便查询和共享及调用,但并非只有数据库中的数据才能被处理。7.某算法的部分流程图如图所示,执行这部分流程,若输入 x的值依次为 1,2,3,4,5,-1,则输出 s的值是A.3 B.7 C.13 D.15【答案】C高三技术试题卷 第 2页 共 14 页【解析】本题考查算法的表示流程图相关知识。根据题意列出表格:x k s1 0 -12 1 13 0 44 1 85 0 13-18.已知一棵二叉树有 13个节点,树中度为 1的节点数为 2,则该树度为 2的节点数为A.4 B.5 C.6 D.11【答案】B【解析】本题考查二叉树相关知识。根据二叉树的性质,n0=n2+1 n=n0+n1+n2,可以推出 n2=59.有 1个栈,从栈顶到栈底依次为元素 a、b、c,并且已知元素 d已入栈并出栈,则这四个元素的入栈顺序可能为A.a,b,c,d B.b,d,c,a C.c,d,b,a D.d,a,b,c【答案】C【解析】本题考查栈的相关知识。根据题意可知,入栈顺序可能是 dcba cdba cbad,所以选 C。10.定义如下递归函数,计算正整数 n的每位数字之和,例如 n=123,函数返回值为 6。def f(n):x = (1)if x == 0:return nelse:y = (2)return (3)上述程序段中方框处可选代码为:①n % 10 ②n // 10 ③y + f(x) ④y + f(n - 1)则(1)(2)(3)处代码依次为A.①②③ B.①②④ C.②①③ D.②①④【答案】C【解析】本题考查递归代码的分析与理解能力。高三技术试题卷 第 3页 共 14 页计算正整数n的每位数字之和,可以得出其递归公式:f(n)=f(n//10)+n%10,当n<10时递归结束。结合题目给出的代码,依次分别是(1)n//10、(2)n%10、(3)y+f(x),正确答案是C。题目代码写的比较细碎,④y + f(n - 1)首先可以排除,根据③y + f(x),可以分析得出y=n%10,x=n//1011.有如下 Python程序段:import randoma = [2,3,5,8,10,10,10,17,19,20]key = random.randint(1,30) # 随机生成[1,30]之间的整数i,j = 0,9while i <= j:m = (i + j) // 2if a[m] > key:j = m - 1else:i = m + 1print(j)执行该程序段,下列说法正确的是A.若 key的值为 10,则输出的值为 3B.若输出的值为 8,则 key的值一定为 19C.对于任意 key值,语句“m = (i + j) // 2”最少执行 1次D.对于任意 key值,语句“m = (i + j) // 2”最多执行 3次【答案】B【解析】本题考查二分查找,其中主要考查利用二分查找边界。二分关键代码中,没有提前终止循环的语句。列表 a的元素个数是 10个,介于 7-15之间,查找次数最少 3次,最多 4次。m = (i + j) // 2语句对应的其实就是查找次数,所以选项 C、D均错误。这段代码是二分中的边界查找。根据条件 if a[m] > key,当 key=10时,i=7,j=6,选项 A错误;j=8,i=9,对应的元素分别是 19,20,19=这种题目基本都可以迅速得到正确答案:j i<=key >key12.有如下 Python程序段:import randomq = [0] * 5head = tail = 0for i in range(5):if random.randint(0,1)== 0:q[tail] = random.randint(1,9)tail += 1elif head != tail and q[tail - 1] < q[head]:q[tail] = q[head]head += 1高三技术试题卷 第 4页 共 14 页tail += 1执行该程序段后,q的值不.可.能.是A.[0, 0, 0, 0, 0] B.[5, 4, 3, 2, 1]C.[5, 8, 3, 0, 0] D.[0, 5, 6, 0, 0]【答案】D【解析】本题数组构成的顺序队列的基本操作。掌握了队列的基本规律,利用排除法,当随机数均为1,没有任何元素入队,还是初识值,就是选项A;当随机数均为0,有恰好是5、4、3、2、1入队,可以得到选项B;选项D的第一个元素是初值0,只要有元素(1-9)入队,就不可能的,错误。下面分析一下选项C,根据代码分析,队列不为空且队尾元素比对头元素小,就要将对头元素调整到队尾。5-8-3好像不可能,但是3如果是循环最后一次时入队的元素,还没有调整的机会。二、非选择题(本大题共 3 题,其中第 13 题 8分,第 14 题 9分,第 15 题 9 分,共 26 分)13.小强搭建家庭灯光、温度监控系统,该系统使用传感器采集光线、温度等数据由智能终端经过 IoT模块发送到Web服务器。服务器端程序采用 Flask Web框架编写,实现监控灯光与空调等功能。系统结构示意图如第 13题图 a所示。请回答下列问题:第 13题图 a(1)完善该系统结构图。若第 13题图 a中○A ○B ○C 处的设备由以下三部分组成:①Web服务器;②智能终端;③IoT模块,则○A ○B ○C 处的设备依次为 (填数字编号)。(2)小强使用智能终端上传采集的温度数值(范围为[0,1023]之间的整数),服务器接收到上传温度数值 t后,将其转换为摄氏度 d(转换公式为:t÷1024×3000÷10.24,保留 2位小数)保存到数据库中数据类型为实型的 tem字段中。服务器端部分 Python代码如下,请在划线处填入合适的代码。#导入各模块代码略@app.route("/s")def index( ):#数据库连接等代码略id=request.args.get("id") #接收智能终端上传的传感器编号t=int(request.args.get("t")) #接收智能终端上传的温度数值d=s="insert into da(id,tem) values ('"+id+"',"+str(d)+ ")"cur.execute(s) #将数据保存到数据库中#数据库其它操作代码略return "ok"高三技术试题卷 第 5页 共 14 页if __name__ == "__main__":app.run(host="192.168.0.1",port=8080)(3)结合上述代码,若上传编号 id为 1,温度数值 t为 72时,则能正确提交数据到服务器的 URL为(单选,填字母)。A.http://192.168.0.1.8080/index id=1&t=72B.http://192.168.0.1/8080:s id=1&t=72C.http://192.168.0.1:8080/index id=1&t=72D.http://192.168.0.1:8080/s id=1&t=72(4)为提升该系统Web服务器的性能,从硬件角度着手,除了增加内存容量外,还可以在哪些方面加以改进,请简要说明改进方案 。(注:回答两项,一项正确得 1分)【答案】(1)231(2)round(t/1024*3000/10.24.2) 或 int(t/1024*3000/10.24*100+0.5)/100(3)D(4)更换更高型号的 CPU、增加硬盘容量等【解析】本题考查信息系统的搭建及相关知识。(1)数据上传到服务器的数据库,○A 处为与数据库直接连接,应为 web服务器;智能终端直接连接传感器,并过 IOT模块连接 wifi,○C 处应为智能终端,而○B 处为 IoT模块。故填:213。(2)从题干中可知,转换公式为:d=t÷1024×3000÷10.24,保留 2位小数,故填: round(t/1024*3000/10.24.2)(3)从 app.run(host="192.168.0.1",port=8080),可以看出 ip地址为192.168.0.1,端口为8080,而@app.route("/s")可以看出路由为”/s”, 则若上传编号 id 为 1,温度数值 t 为 72 时,正确提交数据到服务器的 URL 为http://192.168.0.1:8080/s id=1&t=72(4)影响计算机性能的是综合指标,主要有 CPU型号、硬盘容量、内存容量等,故要想提升该系统Web服务器的性能,可以更换更高型号的 CPU、增加硬盘容量等。14.小天收集了浙江省某年各地市年龄段数据,保存在“T14.xlsx”文件中,如第 14题图 a所示。为统计分析各地市不同年龄段人口占比,编写 Python程序,输出结果如第 14题图 b所示。第 14题图 a 第 14题图 b请回答下列问题:(1)为统计分析各地市不同年龄段人口占本地市人口比例,编写 Python代码如下,划线处①应填入的代码为 (单选,填字母),划线处②应填入的代码为 。A.df.groupby("地市",as_index=False).count()B.df.groupby("地市",as_index=False).sum()C.df.groupby("地市",as_index=True).mean()import pandas as pd高三技术试题卷 第 6页 共 14 页import matplotlib.pyplot as pltdf = pd.read_excel("T14.xlsx")df1 = ① # 计算各地市不同年龄段的人数print ("地 市 17岁以下 18-34岁 35-59岁 60岁及以上")#“df1.values.tolist()”实现将 df1转换为二维列表。列表中每个元素包含 5个数#据项,分别对应地市名称和该地市 4个年龄段人数总计,如['丽水市', 501421, ...]df2=df1.values.tolist()x,y = [],[]for area in df2:for c in range(len(area)):if c == 0:x.append(area[0])print(area[0], end=" ")else: 第 14题图 csm = sum(area[1:]) #sum函数实现对序列求和t= ②print('%.2f' %(t), end="% ") #按设置格式输出if c == 4:y.append(t)print()plt.title("浙江省各地市 60岁以上人数占本地市总人口比例", fontsize=24)plt.bar(x, y) #绘制 60岁及以上人数占本地市总人口比例柱形图#设置绘图参数,显示如第 14题图 c所示,代码略。(2)由第 14题图 c可知,60岁及以上人数占本地市人口比例超过 25%的地市有 个。(3)小天编写 mygroupby函数模拟实现上述分类汇总功能,计算各地市不同年龄段的人数,结果以列表形式返回。函数代码如下,请在划线处填入合适的代码。#df1为二维列表,列表中每个元素包含 6个数据项,内容如第 14题图 a所示;函数返回值 dfs格式同题(1)二维列表 df2def mygroupby(df1):dfs=[] #创建一个空列表 dfsfor row in df1:①if n>0:for j in range(n):if row[0]==dfs[j][0]:breakif n==0 or row[0] != dfs[j][0]:dfs.append([row[0],0,0,0,0])j=nfor k in range(2,len(row)):②return dfs【答案】高三技术试题卷 第 7页 共 14 页(1) ①B (2分)②area[c]/sm*100 (2分)(2) 5 (1分)(3) ①n=len(dfs) (2分)②dfs[j][k-1]=dfs[j][k-1]+row[k] (2分)【解析】本题考查 pandas数据处理和二维数组的应用。(1)本空计算各地市不同年龄段的人数,应采取分组求和的方式,即 df.groupby("地市",as_index=False).sum()df2是一个二维数组,area是 df2的一个元素,通过 c能访问 area中的一个数据项。area包含 5个数据项,分别为对应地市名称和该地市 4个年龄段人数总计。sm 是该地市总人口数量,t需要计算一个年龄段人口占比,area[c]访问该年龄段人数总计。可知 t可以通过 area[c]/sm*100 计算得到(2)观察图 c可以看出,60岁及以上人数占本地市人口比例超过 25%的地市有嘉兴、宁波、湖州、绍兴、舟山,共 5个。(3)df1是一个二维数组,row是 df1的一个元素,包含 6个数据项,分别为对应地市名称、辖区名称和该辖区 4个年龄段人数。由后续两段 if 语句可知,本空是对 n 的计算,而 n 是 dfs 中已有元素个数,可通过求长度得到,即n=len(dfs)dfs[j][k-1]=dfs[j][k-1]+row[k]或 dfs[j][k-1]+=row[k]if n>0: 查找当前读取到的元素 area 的地市是否已for j in range(n): 存在于 dfs中,如果存在,找到该地市在 dfsif row[0]==dfs[j][0]: 中的索引位置 jbreakif n==0 or row[0] != dfs[j][0]: 如果没有找到,在 dfs中新增一条关于该地dfs.append([row[0],0,0,0,0]) 市的记录,各年龄段人数初始化为 0j=nfor k in range(2,len(row)): 在 dfs[j]的对应位置累加当前读取到的记录② row中对应年龄段的人数15.为分析数据中各元素的变化情况,进行如下定义:若在数组 d中满足 d[a]< ... d[i+1]>...>d[b],则从下标 a到下标 b区间的数据称为一个波峰,下标 a到 b的距离即为一个波峰的长度(长度≥3)。例如:数组 d元素为“78,46,50,37,5,42,6,6,23”,存在 2个波峰,分别是从 d[1]到 d[4]和 d[4]到 d[6],波峰长度分别为 4和 3。编写程序分析数据,找出所有波峰,按波峰长度降序排序(若波峰长度相同,则按开始下标升序),并输出波峰长度和开始到结束元素下标;若不存在,则输出“不存在波峰”,运行结果如图所示。第 15题图请回答下列问题:(1)根据题意,若数组 d元素“23,14,35,31,13,20,3,40,10,10,9”,则最长的波峰长度为 。(2)执行该程序,若数组 d元素为“2,1,1,2”,则○A 处 while语句中循环体的执行次数是 。(3)实现上述功能的程序代码如下,请在划线处填入合适的代码。高三技术试题卷 第 8页 共 14 页#读取待处理数据,保存在数组 d中,并显示输出,代码略mt,i,n=[],1,len(d)while iwhile ii+=1st=i-1while id[i-1]:i+=1if ① :continue #跳出本轮循环,然后继续进行下一轮循环while ii+=1ln=i-stif len(mt)==0:mt.append([ln,st,-1]) #为 mt追加一个列表元素head=0;q=headelse:p=headwhile p!=-1 and ② :q=pp=mt[p][2]if p==head:mt.append([ln,st,head])head=len(mt)-1else:mt.append([ln,st,p])③if len(mt)==0:print("不存在波峰")else:print("输出结果(长度:开始下标~结束下标):")p=headwhile p!=-1:print(mt[p][0],":",mt[p][1]," ~",mt[p][0]+mt[p][1]-1)p=mt[p][2](4)使用以下代码替换加框处代码,可以减少链表 mt遍历次数的是 (单选,填字母)。A. if mt[q][0]>ln: B. if mt[q][0]p=mt[q][2] p =mt[q][2]else: else:p=head p=head【答案】(1)4 (1分)(2)2或 2次 (1分)高三技术试题卷 第 9页 共 14 页(3) ① i==n or d[i]==d[i-1]或等价表达式 (2分)②(lnmt[p][1]) (2分)若条件少括号,不得分③mt[q][2]=len(mt)-1 (2分)(4)A (1分)【解析一】本题考查链表应用和插入排序的算法实现。(1)波峰先上升后下降,最长波峰为“14,35,31,13”,长度为 4。(2)查找上升波段开始位置,当 i为 1时进入循环,累加 1次,当 i为 3时结束循环,找到开始位置为 2。(3)①无效上升段的条件。当条件 i下降段;当条件 d[i]件。当找到一个波峰,记录波峰的长度 ln 和起点 st,并将这些信息写入链表中,并采用插入排序对后面的波峰进行插入排序,按波峰长度降序排序(若波峰长度相同,则按开始下标升序),遍历链表,当前节点为 p,若需插入的波峰长度小于当前节点的长度或者长度相等,但起点 st大于当前节点,则继续向后查找。③将插入节点链入链表中。找到插入位置后,在当前节点 q前插入,因此需将该节点的前驱指向该节点。(4)变量 q记录了上一次插入点的前驱,由于链表是非升序的,若 mt[q][0] > ln则 mt[head][0] > ln 一定成立,从 head到 q部分结点的遍历是不必要的,因此可以直接从 q结点的后继开始。【解析二】本题的原型是基础的连续子序列问题。“波峰”、“波谷”这一描述并不新颖,在历年的高考和地方联考中经常出现,容易在考场上产生“亲切”,也降低了对题意理解的难度。本题要求输出排序后的“波峰”数据,其算法设计为:通过对数组子序列的遍历寻找下一个波峰,并插入到有序链表中。这两部分都是课堂里重点讲授的内容。第(1)小题根据题意模拟,最长波峰为“14,35,31,13“,长度为 4。易错点是错把”3,40,10,10,9“作为答案。题干中明确了组成波峰的数据是连续且不重复的,所以此处的 10 不符合要求,当然这也与第(3)题中的代码填空相关。第(2)小题既可以带入全局理解代码功能,也可以就该数据进行数据模拟,很容易得到答案 2,其功能为“删除连续子序列中前导的连续重复元素“。第(3)小题程序填空可以将代码分为两部分:子序列“波峰“查找和波峰的链表插入。在第(2)题中已经分析了代码#A处的功能是删除前导的重复元素,循环结束后(排除 i == n)满足:d[i – 1] < d[i]则此时 st = i – 1则标记了当前可能的“波峰“的起始位置:i – 1。在接下来的循环中遍历了连续递增的全部元素。即循环结束后(排除 i == n)满足:d[i] <= d[i - 1]在代码①处,设置条件直接进入下一次循环,即不再寻找波峰的递减部分。只有两种可能的情况:一是元素已经遍历完,二是出现重复元素时不属于波峰。即代码①的答案为:i == n or d[i] == d[i – 1]。代码②处是对波峰数据的有序链表插入,波峰结点的结构为[长度, 起点, 指针]。当指针 p非空时,访问 p所指向的结点的数据域“长度“:mt[p][0],若 mt[p][0] > ln or (mt[p][0] == ln and st > mt[p][1])则继续遍历,其中 or后面的条件源于题干中的描述”若波峰长度相同则按开始下标升序“。又由于答案是代码②所在的逻辑运算的一部分,用 and连接,所以必须加上括号,答案为:(mt[p][0] > ln or (mt[p][0] == ln and st > mt[p][1]))当然笔者认为,由于下标遍历的方向是从小到大,那么后面出现的波峰的起点一定大于已出现和记录的波峰,在波峰长度相等时无需判断起始位置。因此答案 mt[p][0] >= ln也正确(未知是否作为评分细则,仅供参考)。高三技术试题卷 第 10页 共 14 页代码③处是经典的链表插入,在②处的循环结束后,mt[p][0] < ln,则长度为 ln的新结点作为 p指针所在结点的前驱插入,即新结点的后继为 p,q的后继为新结点。因此答案为:mt[q][2] = len(mt) – 1第(4)小题是尝试优化,减少插入时对插入点的查找次数。变量 q记录了上一次插入点的前驱,由于链表是非升序的,若 mt[q][0] > ln 则 mt[head][0] > ln一定成立,从 head到 q部分结点的遍历是不必要的,因此可以直接从 q结点的后继开始。高三技术试题卷 第 11页 共 14 页 展开更多...... 收起↑ 资源预览