专题16 数组课件-2025-2026学年高考信息技术总复习

2025-09-04
| 28页
| 267人阅读
| 0人下载
普通

资源信息

学段 高中
学科 信息技术
教材版本 高中信息技术浙教版选修1 数据与数据结构
年级 高三
章节 2.1 数组
类型 课件
知识点 数组的概念,数组的特性,数组的基本操作
使用场景 高考复习-一轮复习
学年 2026-2027
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 PPTX
文件大小 695 KB
发布时间 2025-09-04
更新时间 2025-09-04
作者 匿名
品牌系列 -
审核时间 2025-09-04
下载链接 https://m.zxxk.com/soft/53754320.html
价格 1.00储值(1储值=1元)
来源 学科网

摘要:

该高中信息技术高考复习课件聚焦“数组”专题,覆盖数组概念与特性、一维及二维数组基本操作、Python列表模拟实现等核心考点,对接高考评价体系中信息意识与计算思维要求,明确静态数组存储特性、动态数组操作(插入/删除)、二维数组访问等高频考点分布,归纳出概念辨析、操作步骤、综合应用等常考题型,构建系统复习框架。 课件亮点在于“真题导向+素养融合”策略,如以2024浙江选考数组插入题为例,拆解元素移动三步法,培养计算思维;通过二维数组加密程序(例7)训练数字化学习与创新能力。特设易错点警示(如二维数组浅拷贝错误创建)及解题模板,助力学生掌握操作逻辑,教师可依托真题案例精准突破考点,提升复习效率。

内容正文:

专题 16 数组 1 知识梳理 归纳提升 题型考法 考点1 数组的概念与特性 1.数组的概念 (1)数组是由____________的变量构成的一个序列,内存中的存储方式为顺序存储。 (2)数组使用一个标识符命名,并用编号区分数组内的各个变量,这个 特殊的标识符被称为____________,编号称为下标或索引。 (3)数组名和下标组成的各个变量称为数组的分量,也称为数组元素。 相同类型 数组名 知识梳理 归纳提升 题型考法 (4)常用的数组有一维数组和二维数组。 ①一维数组:表示具有线性特征的数据序列,只需要一个下标来 表示数据元素在该序列中的位置。 ②二维数组:表示二维空间内既有纵向联系又有横向联系的一批 数据,需要两个下标来表示元素的行、列位置信息。 知识梳理 归纳提升 题型考法 2.数组的特性 (1)数组元素的数据类型相同。 (2)通过数组名和下标对数组元素的值进行访问。 (3)存储空间____________。 ①即使数组中的某些数据元素已经删除,但其占用的空间会继续 保留。 ②数组适用于数据规模可预估且在处理过程中保持稳定的问题。 具有这种特点的数组称为“静态数组”。 ③静态数组对应的最大元素数量在数组定义时就已经确定,在程 序运行期间不会发生改变。 固定不变 知识梳理 归纳提升 题型考法 考点2 一维数组的基本操作 1.数组的创建 (1)在系统内存中划分一块连续区域,用来保存数组所含的所有数据 元素。 (2)在 Python 中使用_______来模拟数组,列表的索引可以视为数组的下标。 2.数组元素的访问 通过数组名和下标直接访问数组元素。 3.数组元素的插入 (1)找到需要插入的位置。 (2)将该位置及其之后所有的数据向后移动一个位置。 (3)将新元素插入目标位置,即修改该位置的元素值为新数据。 列表 知识梳理 归纳提升 题型考法 4.数组元素的删除 (1)查找需要删除的元素。 (2)将被删除元素位置后的所有元素依次前移一个位置,即实现删除 元素功能。 (3)数组长度减一。 知识梳理 归纳提升 题型考法 考点3 二维数组的基本操作 1.二维数组的创建(m 行 n 列的二维数组) (1)可用方式:直接生成或用列表生成式的方法实现。 ①直接生成:a=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]。 ②列表生成式 :a=[[0 for i in range(n)]for j in range(m)]。 ③快速生成一行,然后用列表生成式生成二维数组:a=[[0]*n for i in range(m)]。 知识梳理 归纳提升 题型考法 (2)不可用方式:一维数组*行数。这种方式会导致当某一行数据被修 改时,其他行的数据也同时会被修改,不利于数据处理的独立性。 如以下两种是错误的创建方式: ①快速生成一行,然后由这一行快速生成若干行:a=[[0]*n]*m。 ②列表生成式生成一行,然后快速生成若干行:a=[[0 for i in range(n)]]*m。 (3)总结:第一步可以用任意一种方式生成一个一维数组(这一步没 有方法限制);第二步由这个一维数组用列表生成式的方法生成 二维数组(这一步不能使用“*”号的浅拷贝方法)。 知识梳理 归纳提升 题型考法 2.二维数组的访问 (1)访问方式:数组名[行下标] [列下标]。注意:不可能有“数组名[列 下标] [行下标]”这样的访问方式。 (2)以元素 a[i][j]为例,访问其周围的元素。 知识梳理 归纳提升 题型考法 判断正误,正确的画“√”,错误的画“×”。 1. 数组在内存中的存储方式是连续的,且大小固定。 (  ) 2. 二维数组的邻接元素(如 a[i][j]的上、下、左、右元素)访问时无须考虑边界条件。 (  ) 3.数组的插入操作需要先移动元素腾出空间,再插入新数据,这一过程的时间复杂度为 O(1)。(  ) 4. 删除数组元素时,只需将被删除元素的位置置为 None,无须移动其他元素。 (  ) √ × × × 知识梳理 归纳提升 题型考法 (1)数组的创建。 a=[0]*3 #a=[None,None,None] #创建一个长度为 3 的空数组,None 表示无元素,也可以用 0 占位表示数组为空 (2)数组元素的访问。 a=[1,2,3] print(a[2]) #访问数组 a 中下标为 2 的元素,输出结果为 3 知识梳理 题型考法 归纳提升 (3)数组元素的插入。 #在数组 a 中插入元素 4,保持数组升序 #None 表示未被利用的数组存储空间 a=[1,3,5,7,None,None] #首先确定元素 4 插入的位置,元素 5 和 7 应向后移动一位,4 插入到原来 5 所在的位置 a[4]=a[3] #元素 7 后移 a[3]=a[2] #元素 5 后移 a[2]=4 #插入新元素 4 #最终数组 a 的值为[1,3,4,5,7,None],长度加 1,存储空间不变 知识梳理 题型考法 归纳提升 (4)数组元素的删除。 #在该数组中删除元素 3 #None 表示未被利用的数组存储空间 a=[1,2,3,4,5,None,None] #首先确定被删除元素 3 所在的位置,3 被删除后,元素 4 和 5 应前移一位 a[2]=a[3] #元素 4 前移 a[3]=a[4] #元素 5 前移 a[4]=a[5] #剩余为空位 #最终数组 a 的值为[1,2,4,5,None,None,None],长度减 1,存储空间不变 知识梳理 题型考法 归纳提升 (1)数组的创建。 a=[] #创建一个空数组,长度为 0 (2)数组元素的访问。 a=[1,2,3] print(a[1]) #访问数组 a 中下标为 1 的元素,输出结果为 2 (3)数组元素的插入。 #动态数组的存储空间可随着数组元素的操作而变化 #在数组 a 中插入元素 6,保持数组升序 a=[1,3,5,7] a.insert(3,6) #在数组 a 中下标为 3 的位置处插入元素 6 #最终数组 a 的值为[1,3,5,6,7],数组长度及占用的存储空间加 1 知识梳理 题型考法 归纳提升 (4)数组元素的删除。 #在数组 a 中删除元素 4 a=[1,2,3,4,5] a.pop(3) #删除数组 a 中下标为 3 的数据元素 4 #最终数组 a 的值为[1,2,3,5],数组长度及占用的存储空间减 1 (5)列表模拟实现的动态数组,其数组元素的添加、删除等操作由相应的函数实现。 知识梳理 题型考法 归纳提升 考向 一 数组的概念 例 1 一维数组 a(下标从 0 开始)中的元素值依次为 2~100 之间的偶数,则数组元素 a[k]的值为(  ) A.k B.k+1 C.2*k+1 D.2*k+2 D 例 1 D 一维数组 a的值依次为 a[0]=2、a[1]=4、a[2]=6……通过分析可知当下标为 k时,其值为 2*k+2或 2*(k+1)。 √ 知识梳理 归纳提升 题型考法 考向 二 数组的 Python 实现 例 2 [2025浙江9+1联盟]有如下Python程序段: import random a=[7,10,5,7,5,6,2,9] t=0 k=random.randint(1,len(a)-1) for i in range(len(a)-1,k,-1): if a[i]>=a[i-2]: a[i],a[i-2]=a[i-2],a[i] t+=1 执行该程序段后,变量 t的值有 (  ) A.1 种 B.2 种 C.3 种 D.4 种 D 例 2 D 已知 k 是[1,7]范围内的整数,for 循环遍历数 组a,当a[i]>=a[i-2]时,将其进行交换,变量t的值累加1。所以变量 t 为数据交换的次数,当 k 为 1、2、3 时,t的值是 3;当 k为 4时,t的值是 2;当 k为 5、6时,t的值是1;当k为7时,t的值是0。故变量t的值有4种。 √ 知识梳理 归纳提升 题型考法 例 3 [2024 浙江选考]数组元素 a[0]至 a[n-1]依次存放着 n 个数据,现需要将元素 a[n-1]插入在下标为 x(0≤x<n-1)的位置,例如:n 为 5,数组 a为 [0,3,4,6,7],x 为 2,插入操作后 a 为[0,3,7,4,6]。实现该功能的程序段如下,方框中应填入的正确代码为 (  ) temp=a[n-1] for i in range(n-2,x-1,-1): a[x]=temp A.a[i+1]=a[i] B.a[i-1]=a[i] C.a[i]=a[i+1] D.a[i]=a[i-1] A 例 3 A 从给定的代码中,数组的元素在插入操作中 会向后移动一位。例如,把最后一个元素(a[n-1])插入到下标为 x 的位置,那么原本在 a[x]的元素值会赋给 a[x+1],原本在 a[x+1]的元素值会赋给 a[x+2],以此类推。故方框处需要将 a[x]及其后面的所有元素都向后移动一位,即将a[i]的值赋给a[i+1]。 √ 知识梳理 归纳提升 题型考法 例 4 [2025山海协作联盟]有如下Python程序段: from random import randint a=[0]*6;flag=True;i=0 while i<6: x=randint(10,100) if not flag or x<50: a[i]=x flag=not flag i+=1 执行该程序段后,列表 a 的值可能是 (  ) A.[34,73,8,98,10,65] B.[89,53,18,35,20,58] C.[12,86,29,45,16,61] D.[38,28,11,94,63,77] C 例 4 C while 循环一共执行 6 次,在每次循环中,产生一个[10,100]范围内的随机整数 x,若 flag 的值为 False 或 x小于 50,则将 a[i]赋值为 x,接着将 flag 取反,i 的值递增1,继续下一轮循环。选项 A,a[2]为 8,不在取值范围内。选项 B,a[0]的值一定小于 50,故不可能。选项 D,根据程序可知,第四轮循环执行完后,flag 的值为 True,所以 a[4]的值一定小于 50,故不可能。 √ 知识梳理 归纳提升 题型考法 例 5 [2025 浙江 A9 协作体]用数组模拟区间合并:数组 d 中存放 n 个区间的起点和终点,例如 d=[1,5,2,3,3,8,10,12],其中第一个区间为[1,5],第二个区间为[2,3]……且区间已按起点升序排列,对这 n 个区间进行合并操作并输出最终结果。例如[1,5]和[2,3]的合并结果为[1,5],对剩余数据继续进行合并,最终输出合并结果为[1,8]和[10,12]。实现上述功能的 Python 程序如下,划线处应填入的正确代码为 (  ) lt,rt=0,1 for i in range(2,len(d),2): if    ①   : if d[i+1]>d[rt]: rt=i+1 else: print(d[lt],d[rt]) #输出区间 lt=   ②    rt=lt+1 print(d[lt],d[rt]) A.①d[i]>=d[rt] ②i B.①d[i]>=d[lt] ②i+1 C.①d[i]<=d[rt] ②i D.①d[i]<=d[lt] ②i+1 C 例 5 C 变量 i 的取值为 2,4,6,若 d[i]<=d[rt]且 d[i+1]>d[rt],则对这两个区间进行合并,区间终点更新为 i+1;若d[i]>d[rt],则不能合并,输出区间,lt更新为 i,rt更新为 lt+1。 √ 知识梳理 归纳提升 题型考法 考向 三 二维数组 例 6 有如下 Python 程序段: a=[[1,3,6,9],[2,4,7,5],[5,2,3,8]] b=[1];n=len(a) for i in range(n): for j in range(n+1): if i<j and a[i][j] not in b: b.append(a[i][j]) 执行该程序段后,数组 b 中的元素是 (  ) A.[1,3,6,9,7,5,8]     B.[3,6,9,7,5,8] C.[1,3,6,9,2,4,7,5,8] D.[1,3,6,9,4,7,5,8] A 例 6 A 该程序段的功能是将二维数组 a 中行下标 i 小于列下标 j 的元素加入数组 b 中,且数组 b 中的元素不重复。故数组 b 中的元素为[1,3,6,9,7,5,8]。 √ 知识梳理 归纳提升 题型考法 例 7 [2025 丽水联考]某加密程序的功能如下:输入原文,输出加密后的密文。原文信息仅包含大写字母,个数不超过 n*n(n 为密钥矩阵规模),加密过程如下: ●每个字母得到一个编码值和一个位置值。编码值为该字母在 26 个字母中的位置,例如"A"的编码值为 1,"H"的编码值为 8;位置值为该字母在原文中的位置,例如"HAPPY"中"H"的位置值为 1,"A"的位置值为 2。原文"HAPPY"的编码值及位置值如图 a 所示。 ●将原文的编码值和位置值依次存入二维数组 b中。例如,原文"HAPPY"生成的数组 b 为[[8,1],[1,2],[16,3],[16,4],[25,5]]。 ●随机生成一个密钥不重复的矩阵(密钥范围在1~n*n 之间)。例如 n=3,随机生成的密钥矩阵如图 b 所示。 知识梳理 归纳提升 题型考法 ●加密值=编码值+位置密钥值,其中位置密钥值是在密钥矩阵中按箭头方向(蛇形走位)根据位置值取值。例如"Y"在原文中的位置为 5,其位置密钥值为 6,加密值为 25+6=31。 原 文"HAPPY"的加密值如图 c 所示。 ●将所有加密值和位置值按顺序排列,得到密文。 例如"HAPPY"的密文为[10,1,6,2,23,3,17,4,31,5]。 知识梳理 归纳提升 题型考法 (1)假设随机的密钥矩阵如图 b 所示,若原文为"BC",则加密后的密文是       。 (2)实现加密算法的 Python 程序如下,程序运行界面如图 d所示,请在划线处填入合适的代码。 [4,1,8,2] 知识梳理 归纳提升 题型考法 def myjz(x): #获取位置值为 x 的位置密钥值 row=(x-1)//n;col=(x-1)%n if row%2==1: col=   ①    return a[row][col] import random p=input("请输入明文:") #数组 b 存储原文的编码值及位置值 b=[[0 for j in range(2)] for i in range(len(p))] for i in range(len(p)): for j in range(2): if j==0:    ②    else: b[i][j]=i+1 n=int(input("请输入密钥矩阵规模 n:")) flag=[False]*(n*n+1) a=[[0 for i in range(n)] for j in range(n)] i=0 n-col-1 '''生成 1~n*n 范围内的不重复密钥矩阵,存入 二维数组 a 中''' while i<n: j=0 while j<n: a[i][j]=random.randint(1,n*n) if flag[a[i][j]]==False:    ③    j+=1 i+=1 print("生成的密钥矩阵为:") for i in range(n): print(a[i]) mw=[];jmz=0 for i in range(len(p)): #生成密文 mw    ④    mw.append(jmz);mw.append(i+1) print("生成的密文为:") print(mw) b[i][j]=ord(p[i])-64 flag[a[i][j]]=True jmz=b[i][0]+myjz(i+1) 知识梳理 归纳提升 题型考法 例 7 (1)[4,1,8,2] (2)①n-col-1 ②b[i][j]=ord(p[i])-64 ③flag[a[i][j]]=True ④jmz=b[i][0]+myjz(i+1) (1)"B"的编码值为 2,位置值为 1,位置密钥值为 2,加密值为 2+2=4;"C"的编码值为 3,位置值为 2,位置密钥值为 5,加 密 值 为 3+5=8,故 加 密 后 的 密 文 是 [4, 1, 8, 2]。(2)①若是奇数行,则取值应从后往前,故填入代码为 n_x0002_co-1。②在数组 b 中,第一位是编码值,第二位是位置值,代码“j==0”表明要存储编码值,故填入代码为 b[i][j]=ord(p[i])-64。③flag 用来标记数字是否已经生成过,若之前没生成过,则把标记置为真,故填入代码为 flag[a[i][j]]=True。④已知加密值=编码值+位置密钥值,故填入代码为 jmz=b[i][0]+myjz(i+1)。 知识梳理 归纳提升 题型考法 THANK YOU $$

资源预览图

专题16 数组课件-2025-2026学年高考信息技术总复习
1
专题16 数组课件-2025-2026学年高考信息技术总复习
2
专题16 数组课件-2025-2026学年高考信息技术总复习
3
专题16 数组课件-2025-2026学年高考信息技术总复习
4
专题16 数组课件-2025-2026学年高考信息技术总复习
5
专题16 数组课件-2025-2026学年高考信息技术总复习
6
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。