第03讲 函数与算法 (专项训练)(浙江专用)2027年高考信息技术一轮复习讲练测

2026-09-23
| 2份
| 15页
| 19人阅读
| 0人下载

内容正文:

第03讲 函数与算法 目录 01 课标达标练 题型01 考查自定义函数、参数传递、模块导入 题型02 考查解析算法思想与代码理解 题型03 考查枚举算法思想与程序框架 题型04 考查迭代、递归调用结果推演 02 核心突破练 03 真题溯源练 01 考查自定义函数、参数传递、模块导入【★选考高频】 考纲对标:理解自定义函数 def、return;区分形参与实参;理解可变、不可变对象的参数传递效果;掌握常用模块导入语法。选择题高频,非选择题函数填空偶有考查。 1.【结合校园成绩统计考查函数与参数传递】编写 Python 自定义函数处理班级学生分数,下面关于 Python 函数与参数传递说法正确的是() A. 函数内部定义的局部变量,可以直接在函数外部读取使用 B. 传入列表作为实参,函数内对列表整体重新赋值`lst=[1,2,3]`,会修改外部原始列表 C. 不可变对象(int、字符串)作为实参,函数内对形参重新赋值,不会改变外部实参 D.`from math import *`是最推荐的模块导入写法,不会造成命名冲突 2. 有如下 Python 程序段: def func(x, lst): x = x + 5 lst.append(x) a = 10 b = [1,2,3] func(a, b) print(a, b) 程序运行输出结果为() A.10 [1, 2, 3, 15] B.15 [1, 2, 3, 15] C.10 [1, 2, 3] D.15 [1, 2, 3] 02 考查解析算法思想与代码理解 考纲对标:理解解析算法思想,能将数学关系式转化为程序代码;多嵌套在大题中,极少单独出选择题。 3. 【运动物理计算,解析算法】已知自由落体下落距离公式:h=g,g取9.8。下面解析算法函数实现正确的是() 03 考查枚举算法思想与程序框架【★选考高频】 考纲对标:理解枚举算法基本思想,掌握枚举三要素(枚举对象、枚举范围、判断条件)。选考非选择题高频考点,常考 range 边界易错点。 4. 下面关于枚举算法的描述,错误的是() A. 枚举算法需要确定枚举对象、枚举范围、判断条件三要素 B. 枚举算法需要遍历所有候选解,不重不漏,再通过条件筛选正确解 C. 枚举算法适合问题存在直接数学求解公式,可以直接计算得到结果的场景 D. 枚举算法常使用 for 循环实现枚举范围,if 语句作为筛选条件 5.【枚举算法代码阅读】下面程序功能是找出 150 之间所有 7 的倍数,空白处依次填写() res = [] for i in range(1, ____): if __________: res.append(i) print(res) A.50 i//7 ==0 B.51 i%7 ==0 C.50 i%7 ==0 D.51 i//7 ==0 04 考查迭代、递归调用结果推演【★选考高频 ★难点】 考纲对标:区分迭代与递归;理解递归终止条件;能够手工推演简单递归程序运行结果。浙江选考选择题必考难点,重点考察调用栈 “后进先出” 执行流程。 6. 阅读如下递归程序段: def f(n): if n <= 2: return n return f(n-1)+f(n-2) print(f(4)) 程序运行输出结果为() A.4 B.5 C.6 D.7 7. 阅读递归程序: def dfs(n): print(n,end=" ") if n>=4: return dfs(n+1) print(n,end=" ") dfs(2) 程序输出结果是() A.2 3 4 3 2 B.2 3 4 2 3 C.2 3 3 4 2 D.2 3 4 1. 【新情境:图书馆图书编号校验・参数 + 函数综合】★(2024 浙江宁波高三模拟改编)有如下 Python 程序段: def check(x, arr): x = x * 2 arr[0] = arr[0] + x num = 10 book = [5, 16, 23] check(num, book) print(num, book[0]) 运行后输出结果为() A.10 25 B.20 25 C.10 15 D.20 15 2. 【解析 + 枚举混合填空改编】 找出区间 [10,100] 内,满足 y=-3x+2的结果大于 500 的整数 x,补全下面枚举框架。 ans=[] for x in range(10, ____): y = ________________ if y>500: ans.append(x) print(ans) (1) 第一空:________ (2) 第二空:________ 3. 【递归调用栈追踪】★ def calc(n): if n == 0: return 0 print(n,end=",") t = calc(n1) return t + n s=calc(3) print(" s=",s) 该程序打印输出为() A.3,2,1, s=6 B.1,2,3, s=6 C.3,2,1, s=3 D.3,2,1,0, s=6 1.(改编 2024 浙江 6 月选考)关于 Python 函数参数传递,下列说法正确的是() A. Python 严格分为值传递和引用传递两种模式 B. 列表传入函数,只要在函数内部执行 append,外部原列表发生改变 C. 字符串作为实参传入函数,函数内形参执行s=s+"a"会修改外部字符串 D. 函数中 return 可以返回多个值,但必须使用列表包裹 2.(2025 浙江 1 月选考・递归)★阅读程序: def fun(n): if n>5: return 0 return n + fun(n+2) print(fun(1)) 程序输出结果是() A.9 B.12 C.15 D.7 3.(选考真题・2023 年浙江 1 月信息技术选考 第 10 题) 定义如下函数: def f(n): if n < 3: return n return f(n‑1)+f(n‑3) 执行语句 `v = f(5)`,函数`f`被调用的次数是() A.1 B.5 C.7 D.15 4. (选考真题・2024 年浙江 6 月信息技术选考 第 11 题) 有如下 Python 程序段: for i in range(0, len(a)-1, 2): if i > 0 and a[i] < a[i‑1]: a[i], a[i‑1] = a[i‑1], a[i] if a[i] < a[i+1]: a[i], a[i+1] = a[i+1], a[i] 列表 a 共有 6 个元素,运行该程序段后,a 可能的值是() A.[2,9,8,6,9,3] B.[9,9,8,6,3,2] C.[9,3,6,2,8,9] D.[6,3,9,2,9,8] 学科网(北京)股份有限公司1 / 17 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 第03讲 函数与算法 目录 01 课标达标练 题型01 考查自定义函数、参数传递、模块导入 题型02 考查解析算法思想与代码理解 题型03 考查枚举算法思想与程序框架 题型04 考查迭代、递归调用结果推演 02 核心突破练 03 真题溯源练 01 考查自定义函数、参数传递、模块导入【★选考高频】 考纲对标:理解自定义函数 def、return;区分形参与实参;理解可变、不可变对象的参数传递效果;掌握常用模块导入语法。选择题高频,非选择题函数填空偶有考查。 1.【结合校园成绩统计考查函数与参数传递】编写 Python 自定义函数处理班级学生分数,下面关于 Python 函数与参数传递说法正确的是() A. 函数内部定义的局部变量,可以直接在函数外部读取使用 B. 传入列表作为实参,函数内对列表整体重新赋值`lst=[1,2,3]`,会修改外部原始列表 C. 不可变对象(int、字符串)作为实参,函数内对形参重新赋值,不会改变外部实参 D.`from math import *`是最推荐的模块导入写法,不会造成命名冲突 【答案】C 【解析】 A 错误:函数内部局部变量,外部无法直接访问; B 错误:对列表形参整体重新赋值,只是形参指向新对象,不会改变外部原列表;只有修改列表内部元素才会同步变化; C 正确:int、str 等不可变对象,函数内形参赋值仅改变局部,外部实参不受影响; D 错误:`from xxx import *`容易引发命名冲突,不推荐日常编写使用。 2. 有如下 Python 程序段: def func(x, lst): x = x + 5 lst.append(x) a = 10 b = [1,2,3] func(a, b) print(a, b) 程序运行输出结果为() A.10 [1, 2, 3, 15] B.15 [1, 2, 3, 15] C.10 [1, 2, 3] D.15 [1, 2, 3] 【答案】A 【解析】 变量 a 是 int 不可变对象,函数内修改形参 x,外部 a 不变仍然为 10; b 是列表可变对象,append()修改内部元素,列表增加 15,输出10 [1, 2, 3, 15]。 02 考查解析算法思想与代码理解 考纲对标:理解解析算法思想,能将数学关系式转化为程序代码;多嵌套在大题中,极少单独出选择题。 3. 【运动物理计算,解析算法】已知自由落体下落距离公式:h=g,g取9.8。下面解析算法函数实现正确的是() 【答案】B 【解析】解析算法核心是将数学公式直接翻译为代码。 A. 变量 g 未定义; B. 正确,设置默认参数 g=9.8,公式书写正确,return 返回计算结果; C. 没有传入 t,g、t 均未定义; D. 语法错误,print 与 return 不能写在一起。 03 考查枚举算法思想与程序框架【★选考高频】 考纲对标:理解枚举算法基本思想,掌握枚举三要素(枚举对象、枚举范围、判断条件)。选考非选择题高频考点,常考 range 边界易错点。 4. 下面关于枚举算法的描述,错误的是() A. 枚举算法需要确定枚举对象、枚举范围、判断条件三要素 B. 枚举算法需要遍历所有候选解,不重不漏,再通过条件筛选正确解 C. 枚举算法适合问题存在直接数学求解公式,可以直接计算得到结果的场景 D. 枚举算法常使用 for 循环实现枚举范围,if 语句作为筛选条件 【答案】C 【解析】C 描述的是解析算法;枚举算法没有直接计算公式,依靠逐个尝试候选解筛选答案。 5.【枚举算法代码阅读】下面程序功能是找出 150 之间所有 7 的倍数,空白处依次填写() res = [] for i in range(1, ____): if __________: res.append(i) print(res) A.50 i//7 ==0 B.51 i%7 ==0 C.50 i%7 ==0 D.51 i//7 ==0 【答案】B 【解析】range 左闭右开,要包含 50,终止写 51;判断 7 的倍数使用取模运算i%7==0。 04 考查迭代、递归调用结果推演【★选考高频 ★难点】 考纲对标:区分迭代与递归;理解递归终止条件;能够手工推演简单递归程序运行结果。浙江选考选择题必考难点,重点考察调用栈 “后进先出” 执行流程。 6. 阅读如下递归程序段: def f(n): if n <= 2: return n return f(n-1)+f(n-2) print(f(4)) 程序运行输出结果为() A.4 B.5 C.6 D.7 【答案】B 【解析】 f (4)=f (3)+f (2) f (3)=f (2)+f (1) 基线条件:f (2)=2,f (1)=1 回代:f (3)=2+1=3; f (4)=3+2 =5。 7. 阅读递归程序: def dfs(n): print(n,end=" ") if n>=4: return dfs(n+1) print(n,end=" ") dfs(2) 程序输出结果是() A.2 3 4 3 2 B.2 3 4 2 3 C.2 3 3 4 2 D.2 3 4 【答案】A 【解析】调用顺序 dfs (2) → dfs (3) → dfs (4) dfs (4) 打印 4,满足 n>=4 return;回到 dfs (3) 打印 3;回到 dfs (2) 打印 2。输出:2 3 4 3 2。 1. 【新情境:图书馆图书编号校验・参数 + 函数综合】★(2024 浙江宁波高三模拟改编)有如下 Python 程序段: def check(x, arr): x = x * 2 arr[0] = arr[0] + x num = 10 book = [5, 16, 23] check(num, book) print(num, book[0]) 运行后输出结果为() A.10 25 B.20 25 C.10 15 D.20 15 【答案】A 【解析】num 是 int 不可变对象,函数内修改形参 x,外部 num 不变依旧等于 10;book 为列表可变对象,修改内部 arr [0],`arr[0]=5+20=25`,输出`10 25`。 2. 【解析 + 枚举混合填空改编】 找出区间 [10,100] 内,满足 y=-3x+2的结果大于 500 的整数 x,补全下面枚举框架。 ans=[] for x in range(10, ____): y = ________________ if y>500: ans.append(x) print(ans) (1) 第一空:________ (2) 第二空:________ 【参考答案】(1)101;(2)x**2 - 3*x + 2 【解析】range 右端点不包含,要取到 100,写 101;解析算法把数学公式转为 Python 表达式。 3. 【递归调用栈追踪】★ def calc(n): if n == 0: return 0 print(n,end=",") t = calc(n1) return t + n s=calc(3) print(" s=",s) 该程序打印输出为() A.3,2,1, s=6 B.1,2,3, s=6 C.3,2,1, s=3 D.3,2,1,0, s=6 【答案】A 【解析】 调用顺序 calc (3) 打印 3 → calc (2) 打印 2 → calc (1) 打印 1 → calc (0) return0 回代:calc (1)=0+1=1;calc (2)=1+2=3;calc (3)=3+3=6。屏幕输出3,2,1,换行后s=6。 1.(改编 2024 浙江 6 月选考)关于 Python 函数参数传递,下列说法正确的是() A. Python 严格分为值传递和引用传递两种模式 B. 列表传入函数,只要在函数内部执行 append,外部原列表发生改变 C. 字符串作为实参传入函数,函数内形参执行s=s+"a"会修改外部字符串 D. 函数中 return 可以返回多个值,但必须使用列表包裹 【答案】B 【解析】 A 错误,Python 是对象引用传递,没有严格区分值 / 引用传递; B 正确,append 修改列表内部元素,外部原列表同步变化; C 错误,字符串不可变,形参拼接不会改变外部实参; D 错误,return 可以直接返回多值,逗号分隔,不需要列表包裹。 2.(2025 浙江 1 月选考・递归)★阅读程序: def fun(n): if n>5: return 0 return n + fun(n+2) print(fun(1)) 程序输出结果是() A.9 B.12 C.15 D.7 【答案】A 【解析要点】 基线条件 n>5 返回 0;调用链:fun (1)→fun (3)→fun (5)→fun (7)=0 回代计算:fun (5)=5+0=5;fun (3)=3+5=8;fun (1)=1+8=9。答案 A。 3.(选考真题・2023 年浙江 1 月信息技术选考 第 10 题) 定义如下函数: def f(n): if n < 3: return n return f(n‑1)+f(n‑3) 执行语句 `v = f(5)`,函数`f`被调用的次数是() A.1 B.5 C.7 D.15 【参考答案】C 【解析】 本题考查递归函数调用次数统计。 f (5) 调用 →f (4)、f (2) f (4) 调用 →f (3)、f (1) f (3) 调用 →f (2)、f (0) f (2) 直接返回;f (1) 直接返回;f (0) 直接返回。 统计调用:f (5)、f (4)、f (3)、f (2)、f (1)、f (2)、f (0),合计 7 次 4. (选考真题・2024 年浙江 6 月信息技术选考 第 11 题) 有如下 Python 程序段: for i in range(0, len(a)-1, 2): if i > 0 and a[i] < a[i‑1]: a[i], a[i‑1] = a[i‑1], a[i] if a[i] < a[i+1]: a[i], a[i+1] = a[i+1], a[i] 列表 a 共有 6 个元素,运行该程序段后,a 可能的值是() A.[2,9,8,6,9,3] B.[9,9,8,6,3,2] C.[9,3,6,2,8,9] D.[6,3,9,2,9,8] 【答案】D 【解析】 循环 i 取 0、2、4。 i=0:只和右侧 i+1 交换,保证 a [0]>a [1]; i=2:先和 i‑1 比较交换,再和 i+1 比较交换,保证 a [2] 大于左右邻居; i=4:先和 i‑1 比较交换,再和 i+1 比较交换,保证 a [4] 大于左右邻居。 最终满足 a [0]>a [1],a [2]>a [1]、a [2]>a [3],a [4]>a [3]、a [4]>a [5],只有 D 选项符合该特征。 学科网(北京)股份有限公司1 / 17 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第03讲 函数与算法 (专项训练)(浙江专用)2027年高考信息技术一轮复习讲练测
1
第03讲 函数与算法 (专项训练)(浙江专用)2027年高考信息技术一轮复习讲练测
2
第03讲 函数与算法 (专项训练)(浙江专用)2027年高考信息技术一轮复习讲练测
3
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。