资源简介 绝密★考试结束前2022 学年第二学期浙江精诚联盟适应性联考高三技术学科 试题本试卷分两部分,第一部分信息技术,第二部分通用技术。满分 100分,考试时间90分钟。第一部分 信息技术(共 50分)一、选择题(本大题共 12 小题,每小题 2 分,共 24 分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)阅读下列材料,回答 1至 2题。微软亚洲研究院视觉计算组曾在 ImageNet 计算机视觉识别挑战赛中取得了 96.43%的图像识别正确率而一举夺冠。这得益于它前期对海量已分好类的图像大数据中所蕴含的特征模式的深度学习。该深度学习模型如图所示。1.结合材料,下列关于信息、知识等的说法正确的是( )A.图中狗和猫等分类图像都是信息B.96.43%是数据,即使脱离材料中给出的语境,我们可以获知其中的信息C.人类知道左侧照片中是猫和狗,这是知识的体现D.即使大部分输入数据的分类、特征信息不准确,深度学习结果也不会有偏差2.结合材料,下列关于人工智能的说法正确的是( )A.该技术用已知的数据定义来推导出其他图像数据定义,是符号主义实现方法B.增大该系统前期输入的训练量,可以完全消除该系统图像识别的错误率C.该技术需要人工参与输入已分类的图像信息,属于混合增强型人工智能D.人工智能改善了人类生活,促进了经济发展,也带来了社会问题3.下列四个选项中所描述的数从数值上比较,最大的是( )A.5位十六进制数能表示的最大值B.20位二进制能表示的不同数的个数C.存储 10000个 ASCII码所需字节数D.存储图像大小为 100×100 像素的黑白两色位图所需的字节数4.随着信息技术的发展,信息安全保护也越来越重要,采取下列措施无助于信息安全的是( )A.数据可视化 B.异地容灾 C.USB Key认证 D.非对称密码5.下列关于信息系统的说法,正确的是( )A.信息系统的硬件包括看得见、摸得着的设备和可以操作的应用程序高三信息技术学科 第1页 共 8 页B.移动终端的存储器是整个设备的控制中枢系统和逻辑控制中心C.信息系统中的传感技术负责对外部世界的控制D.搭建信息系统主要包括硬件搭建和软件模块选择或编写两方面6.关于网络组成与构建,下列说法不.正.确.的是( )A.为主机动态分配 IP 地址的服务器是 DHCP 服务器B.局域网要接入互联网,需要调制解调器(Modem)和路由器(Router)等设备C.网络由传输介质、网络互联设备、网络软件和网络协议组成D.访问网站 http://www.,必须通过三层协议:网际协议、传输控制协议和应用程序协议7.某算法流程图如下图所示,已知 randint(0,10)函数可以产生闭区间[0,10]内的随机整数,执行完该流程图后,输出结果可能是( )第 7题图A.6 6 6 6 6 B.10 12 16 18 22 C.0 2 4 5 8 D.12 8 10 16 208.有如下 Python程序段:a = b = ""k = 0s = input().strip()for i in range(len(s)):if '0' <= s[i] <= '9':k += 1else:b = s[i-k:i]if a < b:a = b高三信息技术学科 第2页 共 8 页k = 0print(a)运行后若输入“3.803.93.520.888”(不包括引号),则输出是( )A.803 B.93 C.520 D.8889.判断某序列 是否是入栈序列 =[1,2,3,4,5]的出栈序列,程序如下:a = [1, 2, 3, 4, 5]b = list(map(int, input().split())) 输入示例:stack = [] 2 3 5 4 1i = j = 0 输出示例:while i < len(a): [2,3,5,4,1]是[1,2,3,4,5]的出栈序列stack.append( ① )i += 1while len(stack) > 0 and ② :stack.pop()j += 1if len(stack) == 0 and i == j == len(a):print(b, '是', a, '的出栈序列')else:print(b, '不是', a, '的出栈序列')划线处应填写的语句是( )A.① a[i] ② stack[-1] == a[j] B.① a[i] ② stack[-1] == b[j]C.① b[i] ② stack[-1] == b[i] D.① b[i] ② stack[-1] == a[j]10.某表达式树如下图所示,下列说法错.误.的是( )A.该表达式树是一棵二叉树,树的度是 2,高度是 5B.该树的叶子节点数比度为 2 的节点数多 1 个C.若采用完全二叉树数组从 0 号位开始存储,则节点 存储在 6号位D.该表达式树的前序遍历序列是× +/ 11.有如下 Python程序段,运行后程序的输出结果是( )a = [[3,1], [2,2], [3,3], [3,4], [17,5], [2,6], [3,-1]]p = head = 0while p != -1: 第10题图q = pwhile q != -1:t = qq = a[q][1]if q != -1 and a[q][0] == a[p][0]:a[t][1] = a[q][1]q = tp = a[p][1]p = headwhile p != -1:高三信息技术学科 第3页 共 8 页print(a[p][0], end=' ')p = a[p][1]A.3 2 17 B.3 2 17 2 C.3 2 17 2 3 D.1712.有如下 Python程序段:q = [1, 2, 3, 4, 5, 6, 7, 8, 9]f, r = 0, 8n = int(input())while r < n:cur = q[f]f = f + 1m = cur % 10if m == 0:q.append(cur * 10 + m)q.append(cur * 10 + m + 1)r += 2elif m == 9:q.append(cur * 10 + m - 1)q.append(cur * 10 + m)r += 2else:q.append(cur * 10 + m - 1)q.append(cur * 10 + m)q.append(cur * 10 + m + 1)r += 3对于该程序,下列说法正确的是( )A.q[12]的值是 20B.若程序输入 的值等于 21,则列表 q中的元素个数是 22个C.对列表任一元素 q[i](9 ≤ ≤ ),其个、十、百、千……等相邻位上的数值相差都不超过 1D.q中元素值递增,且任意相邻两个元素 q[i]和 q[i+1](0 ≤ < ),它们数值相差不会超过 1二、非选择题(本大共 3小题,其中第 13小题 8分,第 14小题 9分,第 15小题 9分,共 26分)13.小范参加“科学玩家”绿色植物生态缸制作比赛,为此他搭建了 “生态缸温度控制系统”。系统可以采集生态缸的气温,通过 Wi-Fi传输到服务器并存储到数据库,当气温过高或过低时通过执行器控制温控设备为生态缸维持合适的气温。请回答以下问题。第13题图高三信息技术学科 第4页 共 8 页(1)系统架构简图如上所示,图中①处连接的设备是 (选填:服务器 / 智能终端 /路由器 / 防火墙)。(2)生态缸采集并发送气温数据的部分程序代码如下所示:from microbit import *; import Obloq# uart串口配置和初始化,并用 Obloq连接 Wi-Fi,准备发送数据,代码略while True:value = pin0.read_analog() # 获取 1号温度传感器数据,注意这是模拟值t = round(value * 330 / 1024, 1) # 将模拟值转换成摄氏温度值errno, resp = Obloq.get( ② , 10000) # 向服务器发送数据# 根据服务器反馈信息控制执行器进行温控,代码略sleep(1000 * 5)若某一时刻传感器获取到的温度值是 27℃,它向服务器发送数据时使用的 URL是http://192.168.113.5/data id=1&v=27,请将划线处②的语句补充完整。(3)服务器端采用 Flask框架搭建,其部分程序如下:import sqlite3; from flask import Flask, request, render_templateapp = Flask(__name__)@app.route('/')def index():# 连接并读取数据库,获取传感器编号为 1的所有气温值,用变量 result 保存,代码略tmp = result[-1][2] # 获取最后一条记录中的气温值,保存在变量 tmp中return tmp@app.route('/data', methods=['GET', 'POST'])def add():# 获取智能终端传输的传感器编号 id和气温 v的值,并插入到相应数据表中,# 最后根据数据库中存储的气温临界值向智能终端发送反馈信息,代码略if __name__ == '__main__':app.run(host="192.168.113.5", port="80")在 add()视图函数中,需要将数据插入到数据表中,其操作语句如下:sql = "Insert Into sensorlog (sensorid, sensorvalue) values ('%s', '%s')" % (id, v)① cur = db.cursor() ② mit()③ db = sqlite3.connect("temp.db") ④ cur.execute(sql)cur.close(); db.close()那么其中①~④条语句正确的顺序是: 。(4)在上述程序的 index()视图函数中,加框处语句试图用 view.html模板渲染网页内容,并将 tmp的值传递给网页模板变量 temperature,但语句有误,正确的应该是 (单选,填字母)A.return temperatureB.return render_template('view.html', temperature)C.return render_template('view.html', tmp = temperature)D.return render_template('view.html', temperature = tmp)14.小林收集了各地市各年份检测的 PM2.5浓度值保存于 Excel文件“PM2.5.xlsx”中,部分数据如图 a所示。小林使用 Python进行数据分析,请回答以下问题。高三信息技术学科 第5页 共 8 页第 14 题 图 a 第 14 题 图 b(1)小林先将同一个地区的数据输出到各自独立的 Excel文件中,部分结果如图 b所示,实现程序如下所示:import pandas as pdimport matplotlib.pyplot as pltdf = pd.read_excel("PM2.5.xlsx")# cities保存所有地区名称,这里仅演示部分数据cities = ["安吉县", "淳安县", "慈溪市", "杭州市", "湖州市"]for city in cities:dfc = ①dfc.to_excel(city + ".xlsx", index=False) # 输出文件结果示例如图 b所示那么划线部分语句可以是 (注:全部选对的得 2分,选对但不全的得 1分,不选或有选错的得 0分)A.df[df["地区名称"] == city] B.df[df["地区名称"]] == cityC.df[df.地区名称 == city] D.df[df."地区名称"]] == city(2)对于图 a所示的原始数据,小林要进行数据整理:删除“地区编码”、“指标名称”、“计量单位”等对后面统计无用的数据列,请将划线处②的语句补充完整。df = pd.read_excel("PM2.5.xlsx")# 删除“地区编码”、“指标名称”、“计量单位”数据列df = df.drop(["指标名称", "地区编码", "计量单位"], axis= ② )# 同一个地市取 PM2.5浓度最高的值dfg = ③# 按 PM2.5的值升序排序dfg = dfg.sort_values("PM2.5", ascending=True)# 输出排序后的最后五行结果print(dfg.tail())(3)对于整理后的数据,在同一个地市中取历次 PM2.5 浓度检测值最高的值,最后按 PM2.5升序排序数据,输出结果如图 c所示,则第③空应填写的语句是 (单选,填字母)A.df.groupby("PM2.5").max() B.df.groupby.地区名称.max()C.df.sort_values("PM2.5").max() D.df.groupby("地区名称").max()高三信息技术学科 第6页 共 8 页PM2.5 年份 时间地区名称江山市 63 2022 1 月德清县 63 2022 1 月长兴县 63 2022 1 月杭州市 63 2022 1 月绍兴市 68 2022 1 月第 14 题图 c 第 14 题图 d(4)将排序后的数据分别取 PM2.5检测值最高和最低的五行数据合并成新的 DataFrame对象后绘制成柱形图如图 d所示。请将程序补充完整。df2 = pd.concat([dfg.head(5), dfg.tail(5)]) # 合并两个对象成为新的 DataFrame对象plt.rcParams['font.sans-serif']=['KaiTi','SimHei','FangSong'] # 设置图表字体plt.figure(figsize=(8,4))plt.title("部分县市 PM2.5 浓度对比")plt.xlabel("PM2.5浓度值")plt.bar( ④ , df2["PM2.5"], color="orange")for i in range(len(df2)):x = df2.index[i]y = ⑤# text()方法可以绘制数据标签,语法:text(横坐标,纵坐标,显示内容)plt.text(x, y, '%d' % y)15.贪吃蛇在 × (1 ≤ ≤ 10)的方阵中游走,它可以往上下左右四个方向游走,当穿越方阵的边界时还可以从该边界的对立面继续进入方阵。初始时你可以任意安排贪吃蛇的起点位置,并且选择一个方向一直走 步。方阵中“.”表示空位置,数字表示可以吃的食物,每吃到一个数字时,这个数字便会附着到贪吃蛇的尾部,同时方阵中该数字会消失。问:在某个时刻,贪吃蛇身上会不会出现我们想要的某个整数;若有,会有多少个数会小于该整数。例如,在右侧5 × 5的方阵中可以产生[1, 3, 4, 12, 21, 234, 243, 324, . . . . .342, 423, 432]共 11个数。其中数“234”的产生过程可以是:选择第 4行 . . . . .第 2 列为起点,第一步吃掉 2,接着往右走三步吃掉 3,再往右走一步穿越到 . 1 . . .对面的 4,吃掉它成为“234”,共五步。其中“1234”或“123”等整数是 4 2 . . 3不可能出现的。 . . . . .请回答以下问题。(1)输入方阵保存至数组 ,然后将贪吃蛇所有可能吃到的所有数字组合保存到数组 中,请补充完该算法程序。dx = [0, 1, 0, -1] # 模拟贪吃蛇往四个方向游走时行号变化的数组dy = [1, 0, -1, 0] # 列号变化数组n = int(input()) # 方阵的大小a, b = [], []for i in range(n):s = input().strip().split() #方阵中的一行数据,“.”号和数字字符都以空格分隔高三信息技术学科 第7页 共 8 页a.append(s)def calc(i, j, p):x, y, res = i, j, 0if '0' <= a[x][y] <= '9':res = int(a[x][y])for i in range(n-1):x = ① # 产生新的行号y = # 产生新的列号(与行号类似),代码略if '0' <= a[x][y] <= '9':res = res * 10 + int(a[x][y])return resfor i in range(n):for j in range(n):for k in range(4):num = ②if num > 0:b.append(num)print(b) # 输出所有可能能产生的整数(可能会产生重复的整数)(2)若数组 a= [['.', '1', '.'], ['.', '2', '3'], ['.', '.', '.']],上述程序处理完后 数组中 (选填:存在 / 不存在)整数 2。(3)对 数组中的所有整数进行升序排序,输入待查找的数据,输出小于等于该数字的数有多少个。请补充完该算法程序。bn = len(b) b = [1, 12, 23, 23, 23, 35, 35,for i in range(bn-1): 146]for j in range( ③ ): 输入输出示例:if b[j] > b[j+1]: 请输入待查找的整数:23b[j], b[j+1] = b[j+1], b[j] 小于等于 23 的数共有 5 个key = int(input("请输入待查找的整数:"))i, j = 0, bn-1 请输入待查找的整数:31while i <= j: 小于等于 31 的数共有 5 个m = (i + j) // 2if ④ :i = m + 1else:j = m - 1print("小于等于", key, "的数共有", i, "个")高三信息技术学科 第8页 共 8 页2022 学年第二学期浙江精诚联盟适应性联考高三信息技术部分参考答案与解析一、选择题(本大题共 12小题,每小题 2分,共 24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)1 2 3 4 5 6 7 8 9 10 11 12C D B A D C A B B D A C二、非选择题(本大题共 3小题,其中第 13小题 8分,第 14小题 9分,第 15 小题 9分,共 26分)13.(1)智能终端 (2分)(2)"data id=1&v=" + str(t) (2分)(3) ③①④② (2分)(4)D (2分)14.(1)AC (2分)(2)1 (1分)(3)D (2分)(4)df2.index (2分)df2["PM2.5"][i] (2分)或 df2.at[df2.index[i],"PM2.5"]15. (1)①(x + dx[p] + n) % n (2分)或 (x + dx[p]) % n或 其他等价表达式② calc(i, j, k) (2分)(2)不存在 (1分)(3)③ bn-i-1 或 bn-2,i-1,-1 (2分)④ b[m] <= key (2分)高三信息技术 参考答案 第1页 共 6 页高三信息技术答案解析部分1. 答案:C解析: 考查数据、信息与知识的含义与关系。选项 A:分类图像是信息的载体,图像所表示的含义才是信息;选项 B:96.43%是数据,脱离语境将失去其意义;选项 D:基于大数据深度学习的人工智能模型需要由准确的学习语料,个别由误差的数据虽不至于影响结果,但是大部分错误数据必然影响结果。2. 答案:D解析:考查人工智能的实现方法和应用领域。材料中已告知该模型是通过“海量已分好类的图像大数据中所蕴含的特征模式的深度学习”实现的人工智能,因此它是由数据驱动的联结主义人工智能实现方法。已知的数据都是学习语料而不是推导的前提,选项 A有误;增大深度学习的训练数据可以提高后期识别准确率,但无法完全效率错误,选项 B不正确;选项 C 中前期训练数据的准备需要人工完成,但是其后期对图像的识别这一智能技术无需人工参与,不是混合增强型人工智能。3. 答案:B解析:考查进位制、ASCII码、编码等知识。选项 A和选项 B,5位十六进制相当于 20位二进制数,20 位二进制能表示的最大值是220 1 = (210)2 1 ≈ (1000)2 1,而 20 位二进制能表示不同的数的个数是220 ≈ (1000)2,数值上比选项 A大。选项 C,一个 ASCII码占用 1个字节,10000个 ASCII 码的占 10000 个字节,数值上比选项 A小。选项 D,100×100 像素的黑白两色位图,其存储容量的字节数是100 × 100 × 1/8 = 1250,数值上比选项 C要小。因此答案为 B。4. 答案:A解析:考查数据、信息的安全与保护知识。数据安全包括磁盘阵列、数据备份、异地容灾等保护存储介质的安全手段和数据加密、数据校验等提高数据本身安全手段。还可以通过身份认证技术(包括用户名+口令、生物特征认证、USB Key 认证技术)和访问控制技术提高信息的安全。因此,选项 B、C、D皆正确。选项 A中“数据可视化”是数据的另一种更易直观化的数据呈现方式,几乎无助于信息安全。5. 答案:D解析:考查信息系统支撑技术及搭建知识。A项错误,信息系统硬件是看得见摸得着的设备,而应用程序一般指软件。B项错误,和计算机一样,中央处理器是移动终端的控制中枢系统和逻辑控制中心。C项错误,信息系统的传感技术负责将采集到的外部世界的数据输入到信息系统,而控制技术负责对外部世界的控制。正确答案为 D。6. 答案:C解析:考查网络组成与构建相关知识。选项 C:网络由计算机系统、数据通信系统、网络软件和网络协议组成。7. 答案:A解析:考查流程图的阅读与理解。分析流程图知: 数的范围是[0,20]内的偶数,选项 B出现了22,选项 C出现奇数 5,都可以排除。当 是偶数时直接输出 的值,当 时奇数时 保存了前一个 的值,当前 的值比 的值大才有可能输出,否则 的值不变,且也不输出。因此奇数位是递增(或非递减)的偶数,偶数位只需偶数即可。选项 D中 10的值比 12小,也不可能。8. 答案:B高三信息技术 参考答案 第2页 共 6 页1. a = b = "" 解析:考查 Python 程序的理解。由循环中第 6 行代码2. k = 0知,变量 k 统计了数字字符的个数,因此第 8行变量 b3. s = input().strip()4. for i in range(len(s)): 保存了点号间的整个数字字符串,而后第 9行进行字符5. if '0' <= s[i] <= '9': 串大小比较,将更大的字符串 b保存与变量 a中,因此6. k += 1 本题是将字符串中最大的数字字符串输出。要注意的7. else:8. b = s[i-k:i] 是,数字字符串比较与整数比较有差别,因此最大的是9. if a < b: 93。另外,本题还容易犯错的一个地方是最后数字字符10. a = b 串 888并不会参与比较。11. k = 012. print(a)9. 答案:B1. a = [1, 2, 3, 4, 5] 解析:考查栈的操作与程序实现。2. b = list(map(int, input().split()))由第 6行的添加操作和第 9行的删3. stack = []4. i = j = 0 除操作可以判断 stack用于存储栈5. while i < len(a): 元素。因此可以通过将 a元素不断6. stack.append( ① ) 入栈,看能否形成和 b一样的出栈7. i += 18. while len(stack) > 0 and ② : 序列。第①空应该让 a中的元素入9. stack.pop() 栈,填写 a[i]。而出栈时,需要判10. j += 1 定栈顶元素是否和 b序列中当前元11. if len(stack) == 0 and i == j == len(a):12. 素是否一致,一致才能出栈,尽可 print(b, '是', a, '的出栈序列')13. else:14. print(b, '不是', a, '的出栈序列')能形成与 b一样的序列,因此答案选择 B。10. 答案:D解析:考查树与二叉树相关知识。树的度是最大的节点的度,树的高度是节点最大的层数,选项A正确;在任意一棵二叉树中都有 0 = 2 + 1的性质,即叶子节点数等于度为 2的节点数多一个;非完全二叉树若用完全二叉树保存时需将树补成完全二叉树,即第三层需补全 节点的两个孩子节点,此时节点 存储在第 6 号位置上,选项 C也正确。选项 D错误,该表达式树的前序遍历序列是× +/ ,对节点“ ”而言先于其子节点 。11. 答案:A1. a = [[3,1], [2,2], [3,3], [3,4], [17,5], 解析:考查链表的操作。由第 3行[2,6], [3,-1]]和第 5行的代码可知 p对应完成循2. p = head = 03. while p != -1: 环,q对应内层循环。从第 8行开4. q = p 始的 if语句块可以看出:当 a[q]5. while q != -1: 节点上的值与 a[p]节点上的值相6. t = q7. q = a[q][1] 同时,q指针往后移一位。这是典8. if q != -1 and a[q][0] == a[p][0]: 型的去重操作,将与 p指针所指示9. a[t][1] = a[q][1] 的节点值相同的 a[q]节点10. q = t11. p = a[p][1]删除。指针 t的作用是维护了去重后链表最后一个节点的位置。因此答案是 A,链表中的所有节点应该是不重复的。最后输出的就是链表的所有非重复节点。高三信息技术 参考答案 第3页 共 6 页12. 答案:C解析:考查队列的应用。本题用队列维护了各个产生的数据。阅读程序知,f 为队首指针,r 为队尾指针。将队首元素取出后,取队首元素的个位数(即语句 m=cur%10),然后将与个位数 m相差±1 范围内的两个或三个数连接到 cur 后面,产生新的数并入队。每次至少有两个元素入队,至多有三个元素入队。对于选项 A,模拟出队列的前 13 个数:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 21]可知,q[12]=21而不是 20。对于选项 B,也可以用模拟法:当 r=20时循环入队的有三个元素,因此跳出循环时 r=23,队列 q 中共有 24 个元素。对于选项 D:q 中元素初始有序,之后每取一个队首元素时都已递增的方式加入元素,因此所有元素也是有序的。另外,不是每个相邻元素都是相差为 1,如 1取出后加入的值时 10、11和 12,接下来加入的时由 2生成的数,分别时 21、22、23,其中 12 和 21 相差不为 1。选项 C 正确,q 的每个元素都由前一位数相差±1 的值加入,因此相邻位上的每个数值也就相差 1。13. 答案:(1)智能终端(2)"data id=1&v=" + str(t)(3) ③①④②(4)D解析:考查信息系统的搭建相关知识。(1)从架构图看,①空处的设备连接了传感器和执行器,因此应该选择智能终端。(2)智能终端发送数据使用 Obloq.get()函数其格式是网站的路由加数据参数。由于发送 URL是 http://192.168.113.5/data id=1&v=27,因此 Obloq.get()函数的参数便是“/”后面部分字符串,答案格式是“data id=1&v=27”,但程序用传感器获取的温度值由变量 t 保存,因此 27这个常数应该由变量 t代替,因此答案是“"data id=1&v=" + str(t)”。(3)操纵数据库的语句顺序是:导入 sqlite3 模块,建立数据库连接,建立读写游标,读写数据库,关闭游标与关闭数据库。此处只涉及了中间三步,即建立数据库、建立读写游标、读取数据库,答案为③①④②。(4)render_template()函数的第一个参数是网页模板文件名,后面的参数都是网页模板中的参数与数据传递,数据传递方式与赋值一致——将现有的变量或值传递给网页模板中的变量,只需分清视图函数中的变量和网页模板中的变量,便可得到答案 D。14.答案(1)AC(2)1(3)D(4)df2.index(5)df2["PM2.5"][i]解析:考查 pandas数据处理相关知识。(1)由题意可知,程序需要将“地区名称”符合条件的数据行筛选出来输出的独立 Excel文件,而数据筛选的格式是 df[条件],其中“条件”部分是关于数据列的一个关系表达式,答案是 A和 C,没有 BD这样的使用格式。(2)pandas 处理数据函数中即可以处理行也可以处理列,drop()就是如此,参数 axis=1 表示处理列,即删除指定的列。(3)同一个地市中取PM2.5浓度值最高的数据行可以用分组函数groupby()和求最大值函数max()实现,其中 groupby()函数的参数是地区名称,答案是 C。选项 A的分组依据不对——它会将 PM2.5高三信息技术 参考答案 第4页 共 6 页值相同的数据行分到同一组中,而不是按地区分组。选项 B的函数格式不对。选项 C是按 PM2.5先升序排序,然后求所有数据中的最大值,此时 PM2.5 最大值只有一个数据,无法求出各个地市的最大值。(4)plt.bar()函数绘制柱形图需要两个参数:x轴数据和 y轴数据(每个 x对应的纵轴数据),由题中图 c和图 d可知,横坐标是各个地区的名称,而由于数据框 df2是分组后的结果,地区名称列已经成为了索引列,因此第④空答案应该填写 df2.index。对于第⑤空,由程序和标签的效果图可知 df2.index[i]取出了每行数据的横坐标值,类似的,对应的纵坐标值是df2["PM2.5"][i]。15. 答案:(1)①(x + dx[p] + n) % n② calc(i, j, k)(2)不存在(3)③ bn-i-1 或 bn-2,i-1,-1④ b[m] <= key解析:1. dx = [0, 1, 0, -1] # 模拟贪吃蛇往四个方向游走时行号变化的数组2. dy = [1, 0, -1, 0] # 列号变化数组3. n = int(input()) # 方阵的大小4. a, b = [], []5. for i in range(n):6. s = input().strip().split() # 方阵中的一行数据,“.”号和数字字符都以空格分隔7. a.append(s)8.9. def calc(i, j, p):10. x, y, res = i, j, 011. if '0' <= a[x][y] <= '9':12. res = int(a[x][y])13. for i in range(n-1):14. x = ① # 产生新的行号15. y = # 产生新的列号(与行号类似),代码略16. if '0' <= a[x][y] <= '9':17. res = res * 10 + int(a[x][y])18. return res19.20. for i in range(n):21. for j in range(n):22. for k in range(4):23. num = ②24. if num > 0:25. b.append(num)26. print(b) # 输出所有可能能产生的整数(可能会产生重复的整数)(1)第 5 行所在的 for 循环实现了将 n行字符逐行输入并保存至数组 a 的过程,由此也可以看出数组 a 是二维数组,那么第 20行 i和 j的循环是遍历整个二维数组。第 22行 k的循环又是什么呢?注意到数组 b保存了所有可能产生的数组组合,而 b中的元素是满足 num>0时才插入,因此 num是贪吃蛇游走时产生的数字,这个数字的形成是贪吃蛇游走的结果。阅读第 9行函数 calc(),其返回值是 res,由第 12行代码可知,res 的初始值是 a[i][j],即函数的初始参数值,接着第 13 行是 n-1 次的循环,由此可以判断参数 i、j是行号和列号,参数 p 是上下左右四个方向值的其中一个。所以第①空时根据方向值 p产生新的行号和列号,若当高三信息技术 参考答案 第5页 共 6 页前行号是 i,方向是 p,新行号是 i+dx[p],这个值若超过最大行号则变为第一行,. 1 .因此答案是(x + dx[p] + n) % n。加 n是为了防止 x+dx[p]出现负值。第②空是. 2 3调用该函数,k表示的是四个方向,答案是 calc(i, j, k)。. . .(2)绘制 a的二维数组形式如图所示,从 2所在位置出发,上下左右无论哪个方向都会遇到其他数字,因此不存在单独的整数 2.1. bn = len(b)2. for i in range(bn-1):3. for j in range( ③ ):4. if b[j] > b[j+1]:5. b[j], b[j+1] = b[j+1], b[j]6.7. key = int(input("请输入待查找的整数:"))8. i, j = 0, bn-19. while i <= j:10. m = (i + j) // 211. if ④ :12. i = m + 113. else:14. j = m - 115. print("小于等于", key, "的数共有", i, "个")(3)考查了数据排序和二分查找算法。题目要求 b 数组中的数升序排序,第 4 行代码中的比较和交换的元素是当前位与后面位元素的比较,因此 j 可以从前往后循环,答案是 0 到 bn-i-1;也可以从后往前循环,答案是 bn-2到 i-1,且步长是-1。对于第④空,由于数据是升序排序的,当第 11 行条件成立时,i 指针往后移一位,否则 j 前移一位,由此可以初步确定第④空需要填写“小于号”,即 b[m]看,小于等于 key的元素共 i 个,也就是说最后一个可能等于 key 的元素的位置是 i-1,即 j。因此,结合第 9行循环结束的条件 i<=j 可以得到结论:“等于号”需要在 if 分支中,只有这样才能让 i 所指向最后一个可能相等的元素的后一个位置(或大于 key 的元素的位置),而 j 指向最后一个可能相等的元素(或小于 key的元素)。因此第④空的答案是 b[m]<=key。高三信息技术 参考答案 第6页 共 6 页 展开更多...... 收起↑ 资源列表 23.05 精诚联盟-信息技术卷.pdf 信息技术解析.pdf