内容正文:
专题03 算法与问题解决
目 录
第一部分 明晰学考要求·精准复习
第二部分 基础知识梳理·全面提升
第三部分 考点精讲精练·对点突破
考点01 计算机解决问题的方法
考点02 算法的概念
考点03 算法的特征
考点04 算法的描述方法
考点05 算法的基本控制结构
考点06 解析法、穷举法、迭代法、递归法、二分法等常见的算法
第四部分 实战能力训练·满分必刷
专题
考试内容要求
对应学业质量水平
算法与问题解决
1.熟悉计算机解决问题的过程。
2.知道算法的概念和特征。
3.运用恰当的方式描述算法。
4.知道算法的基本控制结构。
5.理解解析法、穷举法、迭代法、递归法、二分法等常见的算法。
1.从生活实例出发,概述算法的概念与特征,运用恰当的描述方法和控制结构表示简单算法。
2.依据解决问题的需要,采用流程图的方式描述算法设计和表示简单算法。
一、解决问题的过程
(1)计算机解决问题的过程: 、 、 、 。
分析问题:就是找出解决问题的 。
设计算法和编写程序:就是将待处理的信息用计算机 ,成为计算机能处理的程序。
调试运行:就是使程序能 运行,从而解决问题。
【注意】分析问题也被称为抽象建模。
【归纳】计算机解决问题需要明确要解决的问题是什么,包括问题的输入、输出以及预期结果。在解决问题的过程中分析性能,找出瓶颈,优化以提高效率。随着需求变化或技术发展,对程序进行必要的维护和更新。
二、算法的概念和特征
(1)算法:算法是解决问题的 和 ,解决问题的过程就是实现算法的过程。
计算机解决问题时,必须明确告诉它要处理的 和每一步的 。
(2)算法的特征
1.有穷性:算法必须能在执行 之后终止。
2.确切性:算法中的每一次运算都有 ,无二义性,计算结果唯一。
3.输入项:一个算法有 或 输入。
4.输出项:算法一定 。任何算法不能“无功而返”。
5.可行性:算法在有限时间内完成,运算必须是 的。
【注意】算法必然是有限步骤的,有确定的定义,可以实现的,有输出。
【归纳】算法是一种通过观察特定实例或例子来推断出一般性规律或结论的逻辑推理方法。它通常用于数学、科学和哲学等领域,以发现潜在的模式或原理。归纳推理分为两种主要类型:简单归纳和数学归纳。简单归纳是基于有限的观察来推广结论,而数学归纳法是一种更为严格的推理方式,通常用于证明数学命题对所有自然数都成立。
三、描述算法的描述
(1)自然语言:符合表达的习惯,容易理解,通常是理解算法的第一步。但在表述的过程中,容易产生 ,导致表示的意义不严格。
(2)流程图:算法的 表示方法,描述起来形象、直观、更容易理解。
名称
符号
意义
起止框
表示一个算法的 和 。
框
表示从外部输入数据或从计算机内部输出数据
框
表示操作的内容。
框
满足条件,执行“是”路径;不满足条件,执行“否”路径。
流程线
指向算法运行的方向。
连接符
○
表示流程图的接续。
(3)伪代码:用 自然语言和计算机语言之间的 (包括数学符号)来描述算法。
【注意】三种用法各有优缺点,注意清晰、准确和结构性,避免模糊不清的表述产生的歧义。
【归纳】从直观上来看,流程图用图形化方式展示算法的流程,便于理解算法的逻辑结构。
四、算法的基本控制结构
算法设计三种基本结构是: 结构、 (选择)结构、 结构。
(1)顺序结构:算法中的各个步骤按照 的 依次执行。
(2)分支结构(选择结构):在分支结构中,算法在执行时首先进行条件判断,根据条件 决定执行哪个分支。在分支结构中, 有一个分支被执行,其他的分支则被忽略。
图1 单分支 图2 双分支 图3 多分支
(3)循环结构:在循环结构中,在条件控制下,某些操作步骤需要 (循环),在不满足重复处理的条件时,循环 ,循环有次数循环和条件循环两种。
条件循环 次数循环
while 条件: for i in range(1,11)/序列名:
循环体 循环体
(4)循环处理:在计算机程序中,通过特定的语句或操作使得正在执行的循环退出再执行下一次循环或使得循环体提前结束,不再继续执行后续的迭代。常见方法包括 和 语句。
【归纳】三种结构在实际应用中,相互结合,根据需要选择并配合使用。
【注意】循环的注意事项主要在循环次数的确定和循环条件的迭代,一是防止循环次数不够,二是防止产生死循环。
五、常见的算法
(1)解析法:在计算机科学中,解析法可以用于算法设计、数值分析和符号计算等领域,通过 直接计算出问题的精确或近似解。
解析法解决问题通的步骤如下:
1.明确问题:首先需要清楚地定义问题是什么,包括问题的条件和所求的目标。
2.建立模型:根据问题条件和目标,建立 或 。可能是方程式、不等式、函数关系等。
3.分析模型:对建立的模型进行分析,找出解决问题的关键因素和变量之间的关系。
4.求解模型:运用数学工具和方法,如代数运算、微积分、几何分析等,求解模型中的未知数或变量。
5.验证解:得到解后,需要验证解是否满足原问题的所有条件,并检查解的合理性和可行性。
6.提出结论:将数学解转化为实际问题的解答,并给出清晰的解释和结论。
【注意】将数学解析式转换成用程序能识别的表达式。
(2)穷举法:又称穷举搜索法或暴力搜索法,是一种解决问题的算法策略,它通过尝试 来找到问题的解。
穷举法解决问题的步骤如下:
1.明确问题:首先需要清楚地定义问题,了解问题的条件和目标。
2.确定范围:确定需要穷举的范围,包括可能的解的集合。
3.列举所有可能的解:根据确定的范围,列出所有可能的解。
4.检查每个解:逐一检查每个可能的解,判断其是否满足问题的条件。
5.选择满足条件的解:从所有可能的解中,选择满足问题条件的解。
6.验证解的有效性:对选出的解进行验证,确保其确实能够解决原问题。
7.得出结论:根据验证结果,得出最终的结论。如果找到满足条件的解,则问题得到解决;如果没有找到,则可能需要重新审视问题定义或穷举范围。
【注意】重点是穷举范围的合理性和判断满足的条件设定。
(3)迭代法:在迭代过程中,通常从一个初始猜测值开始,然后按照一定的 反复计算,直到满足某个预定的 要求或达到最大迭代 。迭代法广泛应用于求解线性与非线性方程、方程组、优化问题等领域。
迭代法解决问题的步骤如下:
1.确定问题的初始解。
2.选择一个迭代规则或公式。
3.应用迭代规则于当前解,得到新的解。
4.检查新解是否满足停止准则,例如是否足够接近真实解或达到预定的迭代次数。
5.如果未满足停止准则,将新解作为当前解,返回步骤3继续迭代。
6.如果满足停止准则,停止迭代,当前解即为问题的近似解。
【注意】迭代法的关键点包括:合适的迭代公式和合理的迭代终止条件。
(4)递归法:它将问题 更小的子问题,直到达到一个简单到可以直接解决的基本情况。然后,通过 这些子问题的解来构建原问题的解。
递归法解决问题的步骤如下:
1.确定递归的基准情形,即最简单的问题实例,可以直接解决而不需要进一步递归。
2.确定递归的规则,即如何将问题分解为更小的子问题,并且这些子问题与原问题具有相同的结构。
【注意】确保递归能够终止,即每次递归调用都应朝着基准情形前进,避免无限递归。递归还需要注意递归数量不宜过高。
(5)二分法:是一种在 中查找特定元素的高效算法。它通过将序列分成两半,比较中间元素与目标值的大小,然后根据比较结果决定是继续在左半部分查找还是右半部分查找,从而逐步缩小搜索范围,直到找到目标元素或确定元素不存在为止。
二分法解决问题(升序序列)的步骤如下:
1.首先确定区间的上下界。
2.计算区间中点的值。
3.判断中点值与目标值的关系,如果中点值等于目标值,则找到解;如果中点值大于目标值,则在左半区间继续搜索;如果中点值小于目标值,则在右半区间继续搜索。
4.根据步骤3的结论,重新确定区间的上下界和计算中点的值,并执行步骤3。
5.直到找到目标值或者区间缩小到无法继续分割为止。
【注意】①确保数组是有序的,二分法才能正确工作。②计算中间位置时要防止整数溢出。③注意边界条件,确保不会出现无限循环或数组越界的情况。
练
考点01 计算机解决问题的方法
【典型例题1】
(2023-江苏)下列选项不属于计算机解决问题一般过程的是( )
A.测试设备 B.设计算法 C.编写程序 D.调试程序
【典型例题2】
(2023-江苏)在利用计算机编写程序解决问题时,首先应该做的是( )
A.编写程序 B.分析问题 C.设计算法 D.运行程序
· 对点专攻
1.在计算机解决问题的过程中,往往需要重复多次运行程序代码来检测是否有语法错误和能否达到预期的目的。这一过程是( )
A. 分析问题 B. 设计算法 C. 调试运行 D. 编写程序
2.在计算机解决问题的过程中,将设计好的算法通过某种计算机语言描述出来的过程被称为( )
A. 分析问题 B. 设计算法 C. 编写程序 D. 调试运行
考点02 算法的概念
【典型例题1】
(2024-全国)以下关于算法的叙述,正确的是( )
A.算法用于描述求解问题的方法 B.算法可以被计算机直接执行
C.算法就是指一段程序代码 D.算法不会影响程序的执行效率
【典型例题2】
(2023-河北)下列关于算法的描述,不正确的有( )
A.广义地讲,“算法”指的是解决问题或完成任务的系列步骤
B.算法有多种不同的描述方式
C.不能用算法描述“输出所有素数”是因为这不符合算法特征中的“确定性”
D.通过算法让计算机解决问题时,数据、运算及控制转移成为算法的要素
· 对点专攻
1.以下对算法叙述,错误的是( )
A. 算法结果不唯一 B. 实现算法的语言可以是多样的
C. 算法具有确定性 D. 解决同一问题的算法可以有多种
2.下列关于算法的描述错误的是( )
A. 用自然语言描述算法就是使用人们能读懂的简短语句对算法的步骤进行描述
B. 能够使所描述的算法步骤清晰简洁、直观易读的是用流程图的方法
C. 最不容易产生二义性的是使用自然语言描述算法
D. 用伪代码描述算法是没有固定、严格的语法规则,只要定义合理,没有矛盾即可
考点03 算法的特征
【典型例题1】
(2023-贵州)“洗衣机的洗衣流程”情境问题,洗衣机模拟人洗衣的过程,自动执行洗衣程序,节省了大量的人力,这主要归功于由算法控制的机器设备。算法指在有限步骤内解决问题所使用的方法,从下图2的“洗涤算法”中,可以看出算法具有的特征是( )
A.无穷性 B.单一性 C.确定性 D.繁琐性
【典型例题2】
(2024-全国)算法每个步骤的运算都有明确定义,且计算结果是唯一的。这体现算法的特征是( )。
A.可读性 B.可行性 C.确定性 D.有穷性
· 对点专攻
1.算法的特征有( )。
A.确定性及可行性 B.有穷性 C.有零个或多个输入 D.有一个或多个输出
2.根据算法的特征,下图描述的算法有错,错误的主要原因是( )。
A.不符合有穷性 B.不符合可行性 C.不符合确定性 D.没有数据输入
考点04 算法的描述方法
【典型例题1】
(2023-贵州)算法是为解决一类特定问题而采取的确定的、有限的步骤。下面关于算法的描述方法中,不正确的是( )
A.用自然语言描述算法易于理解 B.用流程图来描述算法结构清晰
C.用伪代码来描述算法没有严格的书写格式 D.用思维导图来描述算法比较容易书写
【典型例题2】
(2023-贵州)“洗衣机的洗衣流程”情境问题,洗衣机模拟人洗衣的过程,自动执行洗衣程序,节省了大量的人力,这主要归功于由算法控制的机器设备。算法的描述方法主要有( )
①自然语言 ②结构图 ③流程图 ④伪代码
A.①②③ B.①③④ C.②③④ D.①②④
【典型例题3】
(2024-江苏)某“猜数字”游戏玩法如下:输入猜想的数字,如果猜对则输出成功信息,否则提示猜错后继续输入直到猜对为止。能用于此算法的流程图是( )
A. B.C. D.
· 对点专攻
1.下列关于算法的描述错误的是( )
A. 用自然语言描述算法就是使用人们能读懂的简短语句对算法的步骤进行描述
B. 能够使所描述的算法步骤清晰简洁、直观易读的是用流程图的方法
C. 最不容易产生二义性的是使用自然语言描述算法
D. 用伪代码描述算法是没有固定、严格的语法规则,只要定义合理,没有矛盾即可
2.农夫带羊过河;农夫返回;农夫带狼过河;农夫带羊返回;农夫带蔬菜过河;农夫返回;农夫带羊过河。这是对经典的“农夫过河”问题算法的描述。该描述方法属于( )
A. 自然语言 B. 流程图 C. 伪代码 D. PAD图
考点05 算法的基本控制结构
【典型例题1】
(2023-内蒙古)算法的基本控制结构有( )
A.分支结构 B.综合结构 C.循环结构 D.顺序结构
(2023-上海)党的二十大报告提出加快建设农业强国,到2035年基本实现农业现代化的目标,为实现农业现代化擘画出了清晰的时间表和路线图。如今,随着人工智能、物联网、大数据、5G等信息技术的发展,我国部分区域已经进入了农业4.0的初探阶段。平台中的“农作物检测功能”部分算法描述如流程图所示,其主要使用的算法基本控制结构有( )
A.循环结构、分支结构 B.分支结构、顺序结构 C.循环结构、顺序结构
· 对点专攻
1.下面流程图描述的是程序基本控制结构中的( )
A. 顺序结构 B. 选择结构 C. 循环结构 D. 分支结构
2.理论上已经证明,有了如下哪些基本控制结构,就可以编写任何复杂的计算机程序( )
A. 转子(程序),返回,处理 B. 输入,输出,处理
C. I/O,转移,循环 D. 顺序,选择,循环
考点06 解析法、穷举法、迭代法、递归法、二分法等常见的算法
【典型例题1】
(2023-河南)如果一个四位数恰好等于它各位上数字的4次方之和,则这个数称为“玫瑰花”数。例如1634就是一个玫瑰花数:。如果要求算出所有的玫瑰花数,下列算法最合适的是( )
A.解析法 B.排序法 C.枚举法 D.迭代法
(2024-江苏)斐波那契数列也叫兔子繁殖数列,小明编写了下列代码求第74个月能繁殖多少对兔子,他使用的算法是( )
f1=f2=1
for i in range(3,75):
f1,f2=f2,f1+f2
print('兔子总对数为:',f2)
A.迭代法 B.枚举法 C.二分法 D.解析法
· 对点专攻
1.编程输出1到100之间所有的偶数,下列算法最合适的是( )
A.穷举法 B.冒泡排序法 C.二分查找法 D.插入排序法
2.已知f(1)=1,f(2)=2,当n>=3时,f(n)=f(n-1)+f(n-2)。现在编程求f(100)的值,以下最合适的算法是( )。
A.解析法 B.穷举法 C.递归法 D.顺序查找法
1、用计算机解决问题的过程中,将程序输入到计算机进行检查、调试和运行,得到正确的结果。这一环节是( )
A. 设计算法 B. 分析问题 C. 编写程序 D. 调试运行程序
2、下列关于用计算机解决问题的过程,表述有误的是( )
A. 可以在一定程度上提高问题解决的效率
B. 可以让计算机按照程序执行指令
C. 可以使用已有程序,也可以根据需要自己编写程序
D. 在问题求解的过程中,一旦程序报错就需要从头开始编写程序
3、在用计算机解决问题的过程中,寻找求解的方法和确定具体的求解步骤属于( )
A. 分析问题 B. 设计算法 C. 编写程序 D. 调试运行
4、设计算法时,以下哪个不是重要的考虑因素( )
A. 算法的时间复杂度 B. 算法的空间复杂度 C. 算法的颜色编码 D. 算法的可扩展性
5、关于算法的特征描述错误的是( )
A. 一个算法可以没有输入 B. 一个算法可以没有输出
C. 算法的每个步骤都具有确定的含义,没有歧义 D. 算法的步骤是有限的
6、某银行为保障用户帐户安全使用了以下算法,在用户登录帐户时需要输入正确的密码,若正确将会进入系统;否则会限制用户尝试输入密码的次数,若超过限定输入次数3次,将会作锁卡处理。以下对于算法的特征描述正确的是( )
A. 因为不同的人可能输入密码的次数不同,所以该算法不符合有穷性
B. 密码输入错误次数统计是现实中可以完成的,这体现了可行性的特征
C. 用户登录帐户时可能输入错误密码,这说明算法没有确定性
D. 输入正确的密码将会进入系统,这说明算法可以没有输出
7、观察如下的算法,下列对于该算法的特征表述错误的是( )
①t=0;
②x=1;
③y=1;
④z=1;
⑤如果满足6x+5y+4z=50,则购买的方案数加1(即=t+1),并输出这种购买方案(即输出t、x、y、z的值)。
⑥z=z+1;
⑦如果z<=12则转⑤,否则继续
⑧y=y+1;
⑨如果y<=10则转④,否则继续
⑩x=x+1;
⑪如果x<=8则转③,否则维续
⑫结束。
A. 算法必须有一个或多个数据输入
B. 算法中就输出了t、x、y、z的值,说明算法必须至少要有一个输出
C. 算法中如z=z+1等步骤,体现了算法的确定性
D. 算法中对x、y和z的取值范围做了限定,当x的值大于8时程序结束,体现了算法有穷性
8、下图是小李同学设计的算法流程图,根据算法的特征,请指出其中存在的问题是( )
A. 该算法没有数据输入 B. 该算法没有数据输出
C. 该算法不符合有穷性特征 D. 该算法不符合确定性特征
9、当今世界已经被发现或创造的经典算法,如中国的秦九韶算法、辗转相除法、更相减损术数不胜数,下面有关算法的描述,不正确的是( )
A. 算法可以没有输出,必须有输入
B. 解决同一个问题,采用的算法可以不同
C. 为解决问题的设计的算法应具备可行性
D. 算法需要在有限步内解决问题
10、步骤①输入圆的半径;步骤②求圆的面积;步骤③输出圆的面积。以上算法的描述方法属于( )
A. 自然语言描述法 B. 流程图描述法 C. 伪代码描述法 D. 简码描述法
11、下列关于算法的基本控制结构的说法,不正确的是( )
A. 顺序结构按序依次执行程序语句 B. 分支结构也称为选择结构
C. 循环结构内语句被重复执行的次数一定是已知的 D. 分支结构中某条执行路径中的语句可以不被执行
12、递归算法是一种( )的算法。
A. 非线性 B. 迭代 C. 自我调用 D. 无法预测
13、小华玩猜价格游戏,已知价格的范围在 1 元到 200 元之间。他第一次猜 100 元,太低;第二次猜 150元,太高;第三次猜 125 元,又太低;……,小明在猜价格时采用的方法是( )
A. 顺序查找 B. 随机查找 C. 对分查找 D. 排序查找
14、递归算法可以用三个字来概括,但不包括下列选项中的( )
A. 解 B. 分 C. 治 D. 合
15、以下对算法思想和效率描述中,错误的是( )
A.枚举法是依据问题的已知条件,确定答案的大致范围,在此范围内列举出它所有可能出现的情况
B.解析算法是通过找出解决问题的前提条件与结果之间的关系表达式,并计算表达式来实现问题的求解
C.在设计算法时,要有零个或多个输入,同时也必须要有零个或多个输出
D.设计算法要求每一个步骤都能够有效地执行,并且得到确定的结果
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
专题03 算法与问题解决
目 录
第一部分 明晰学考要求·精准复习
第二部分 基础知识梳理·全面提升
第三部分 考点精讲精练·对点突破
考点01 计算机解决问题的方法
考点02 算法的概念
考点03 算法的特征
考点04 算法的描述方法
考点05 算法的基本控制结构
考点06 解析法、穷举法、迭代法、递归法、二分法等常见的算法
第四部分 实战能力训练·满分必刷
专题
考试内容要求
对应学业质量水平
算法与问题解决
1.熟悉计算机解决问题的过程。
2.知道算法的概念和特征。
3.运用恰当的方式描述算法。
4.知道算法的基本控制结构。
5.理解解析法、穷举法、迭代法、递归法、二分法等常见的算法。
1.从生活实例出发,概述算法的概念与特征,运用恰当的描述方法和控制结构表示简单算法。
2.依据解决问题的需要,采用流程图的方式描述算法设计和表示简单算法。
一、解决问题的过程
(1)计算机解决问题的过程:分析问题、设计算法、编写程序、调试运行。
分析问题:就是找出解决问题的方法和步骤。
设计算法和编写程序:就是将待处理的信息用计算机识别的方式,成为计算机能处理的程序。
调试运行:就是使程序能无误运行,从而解决问题。
【注意】分析问题也被称为抽象建模。
【归纳】计算机解决问题需要明确要解决的问题是什么,包括问题的输入、输出以及预期结果。在解决问题的过程中分析性能,找出瓶颈,优化以提高效率。随着需求变化或技术发展,对程序进行必要的维护和更新。
二、算法的概念和特征
(1)算法:算法是解决问题的方法和步骤,解决问题的过程就是实现算法的过程。
计算机解决问题时,必须明确告诉它要处理的具体对象和每一步的准确处理过程。
(2)算法的特征
1.有穷性:算法必须能在执行有限步骤之后终止。
2.确切性:算法中的每一次运算都有明确的定义,无二义性,计算结果唯一。
3.输入项:一个算法有0个或多个输入。
4.输出项:算法一定要有输出。任何算法不能“无功而返”。
5.可行性:算法在有限时间内完成,运算必须是可以实现的。
【注意】算法必然是有限步骤的,有确定的定义,可以实现的,有输出。
【归纳】算法是一种通过观察特定实例或例子来推断出一般性规律或结论的逻辑推理方法。它通常用于数学、科学和哲学等领域,以发现潜在的模式或原理。归纳推理分为两种主要类型:简单归纳和数学归纳。简单归纳是基于有限的观察来推广结论,而数学归纳法是一种更为严格的推理方式,通常用于证明数学命题对所有自然数都成立。
三、描述算法的描述
(1)自然语言:符合表达的习惯,容易理解,通常是理解算法的第一步。但在表述的过程中,容易产生歧义,导致表示的意义不严格。
(2)流程图:算法的图形化表示方法,描述起来形象、直观、更容易理解。
名称
符号
意义
起止框
表示一个算法的开始和结束。
输入或输出框
表示从外部输入数据或从计算机内部输出数据
处理框
表示操作的内容。
判断框
满足条件,执行“是”路径;不满足条件,执行“否”路径。
流程线
指向算法运行的方向。
连接符
○
表示流程图的接续。
(3)伪代码:用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。
【注意】三种用法各有优缺点,注意清晰、准确和结构性,避免模糊不清的表述产生的歧义。
【归纳】从直观上来看,流程图用图形化方式展示算法的流程,便于理解算法的逻辑结构。
四、算法的基本控制结构
算法设计三种基本结构是:顺序结构、分支(选择)结构、循环结构。
(1)顺序结构:算法中的各个步骤按照自上而下的先后顺序依次执行。
(2)分支结构(选择结构):在分支结构中,算法在执行时首先进行条件判断,根据条件判断的结果决定执行哪个分支。在分支结构中,必定有一个分支被执行,其他的分支则被忽略。
图1 单分支 图2 双分支 图3 多分支
(3)循环结构:在循环结构中,在条件控制下,某些操作步骤需要重复执行(循环),在不满足重复处理的条件时,循环结束,循环有次数循环和条件循环两种。
条件循环 次数循环
while 条件: for i in range(1,11)/序列名:
循环体 循环体
(4)循环处理:在计算机程序中,通过特定的语句或操作使得正在执行的循环退出再执行下一次循环或使得循环体提前结束,不再继续执行后续的迭代。常见方法包括continue和break语句。
【归纳】三种结构在实际应用中,相互结合,根据需要选择并配合使用。
【注意】循环的注意事项主要在循环次数的确定和循环条件的迭代,一是防止循环次数不够,二是防止产生死循环。
五、常见的算法
(1)解析法:在计算机科学中,解析法可以用于算法设计、数值分析和符号计算等领域,通过数学公式直接计算出问题的精确或近似解。
解析法解决问题通的步骤如下:
1.明确问题:首先需要清楚地定义问题是什么,包括问题的条件和所求的目标。
2.建立模型:根据问题条件和目标,建立数学模型或逻辑模型。可能是方程式、不等式、函数关系等。
3.分析模型:对建立的模型进行分析,找出解决问题的关键因素和变量之间的关系。
4.求解模型:运用数学工具和方法,如代数运算、微积分、几何分析等,求解模型中的未知数或变量。
5.验证解:得到解后,需要验证解是否满足原问题的所有条件,并检查解的合理性和可行性。
6.提出结论:将数学解转化为实际问题的解答,并给出清晰的解释和结论。
【注意】将数学解析式转换成用程序能识别的表达式。
(2)穷举法:又称穷举搜索法或暴力搜索法,是一种解决问题的算法策略,它通过尝试所有可能的选项来找到问题的解。
穷举法解决问题的步骤如下:
1.明确问题:首先需要清楚地定义问题,了解问题的条件和目标。
2.确定范围:确定需要穷举的范围,包括可能的解的集合。
3.列举所有可能的解:根据确定的范围,列出所有可能的解。
4.检查每个解:逐一检查每个可能的解,判断其是否满足问题的条件。
5.选择满足条件的解:从所有可能的解中,选择满足问题条件的解。
6.验证解的有效性:对选出的解进行验证,确保其确实能够解决原问题。
7.得出结论:根据验证结果,得出最终的结论。如果找到满足条件的解,则问题得到解决;如果没有找到,则可能需要重新审视问题定义或穷举范围。
【注意】重点是穷举范围的合理性和判断满足的条件设定。
(3)迭代法:在迭代过程中,通常从一个初始猜测值开始,然后按照一定的迭代公式反复计算,直到满足某个预定的精度要求或达到最大迭代次数。迭代法广泛应用于求解线性与非线性方程、方程组、优化问题等领域。
迭代法解决问题的步骤如下:
1.确定问题的初始解。
2.选择一个迭代规则或公式。
3.应用迭代规则于当前解,得到新的解。
4.检查新解是否满足停止准则,例如是否足够接近真实解或达到预定的迭代次数。
5.如果未满足停止准则,将新解作为当前解,返回步骤3继续迭代。
6.如果满足停止准则,停止迭代,当前解即为问题的近似解。
【注意】迭代法的关键点包括:合适的迭代公式和合理的迭代终止条件。
(4)递归法:它将问题分解为更小的子问题,直到达到一个简单到可以直接解决的基本情况。然后,通过组合这些子问题的解来构建原问题的解。
递归法解决问题的步骤如下:
1.确定递归的基准情形,即最简单的问题实例,可以直接解决而不需要进一步递归。
2.确定递归的规则,即如何将问题分解为更小的子问题,并且这些子问题与原问题具有相同的结构。
【注意】确保递归能够终止,即每次递归调用都应朝着基准情形前进,避免无限递归。递归还需要注意递归数量不宜过高。
(5)二分法:是一种在有序序列中查找特定元素的高效算法。它通过将序列分成两半,比较中间元素与目标值的大小,然后根据比较结果决定是继续在左半部分查找还是右半部分查找,从而逐步缩小搜索范围,直到找到目标元素或确定元素不存在为止。
二分法解决问题(升序序列)的步骤如下:
1.首先确定区间的上下界。
2.计算区间中点的值。
3.判断中点值与目标值的关系,如果中点值等于目标值,则找到解;如果中点值大于目标值,则在左半区间继续搜索;如果中点值小于目标值,则在右半区间继续搜索。
4.根据步骤3的结论,重新确定区间的上下界和计算中点的值,并执行步骤3。
5.直到找到目标值或者区间缩小到无法继续分割为止。
【注意】①确保数组是有序的,二分法才能正确工作。②计算中间位置时要防止整数溢出。③注意边界条件,确保不会出现无限循环或数组越界的情况。
练
考点01 计算机解决问题的方法
【典型例题1】
(2023-江苏)下列选项不属于计算机解决问题一般过程的是( )
A.测试设备 B.设计算法 C.编写程序 D.调试程序
【答案】A
【解题技巧】计算机解决问题的过程是:分析问题→设计算法→编写程序→调试运行程序。
【解析】本题考查计算机解决问题过程相关内容。计算机解决问题的过程是:分析问题→设计算法→编写程序→调试运行程序,BCD属于计算机解决问题的过程,A选项不属于,故本题答案是A选项。
【典型例题2】
(2023-江苏)在利用计算机编写程序解决问题时,首先应该做的是( )
A.编写程序 B.分析问题 C.设计算法 D.运行程序
【答案】B
【解题技巧】首先对问题的分析或者建模。
【解析】本题考查计算机解决问题的步骤。计算机解决问题的基本过程一般包括以下几个步骤:分析问题、设计算法、编写程序和调试程序。在利用计算机编写程序解决问题时,首先应该做的是分析问题。故选:B。
· 对点专攻
1.在计算机解决问题的过程中,往往需要重复多次运行程序代码来检测是否有语法错误和能否达到预期的目的。这一过程是( )
A. 分析问题 B. 设计算法 C. 调试运行 D. 编写程序
【答案】C
【解析】本题考查计算机解决问题的步骤。重复多次运行程序代码来检测是否有语法错误和能否达到预期的目的属于调试运行,故答案为C选项。
2.在计算机解决问题的过程中,将设计好的算法通过某种计算机语言描述出来的过程被称为( )
A. 分析问题 B. 设计算法 C. 编写程序 D. 调试运行
【答案】C
【解析】本题主要考查计算机解决问题的步骤。计算机解决问题的一般步骤是:分析问题→设计算法→编写程序→调试运行。将设计好的算法通过某种计算机语言描述出来的过程被称为编写程序,故本题选C选项。
考点02 算法的概念
【典型例题1】
(2024-全国)以下关于算法的叙述,正确的是( )
A.算法用于描述求解问题的方法 B.算法可以被计算机直接执行
C.算法就是指一段程序代码 D.算法不会影响程序的执行效率
【答案】A。
【解题技巧】算法就是描述问题解决的方法和步骤。
【解析】本题考查算法及特征相关内容。算法是指为解决某个特定问题而采取的方法和步骤,A选项说法正确。B选项,算法转换为程序设计语言后才可以被计算机执行,选项说法错误。C选项,算法不是程序代码,选项说法错误。D选项,算法的优劣会影响程序的执行效率,选项说法错误。故本题答案是A选项。
【典型例题2】
(2023-河北)下列关于算法的描述,不正确的有( )
A.广义地讲,“算法”指的是解决问题或完成任务的系列步骤
B.算法有多种不同的描述方式
C.不能用算法描述“输出所有素数”是因为这不符合算法特征中的“确定性”
D.通过算法让计算机解决问题时,数据、运算及控制转移成为算法的要素
【答案】C
【解题技巧】所有的匹配的特性应是有穷性。
【解析】本题主要考查算法的描述。广义地讲,“算法”指的是解决问题或完成任务的系列步骤;算法有多种不同的描述方式;不能用算法描述“输出所有素数”是因为这不符合算法特征中的“有穷性”;通过算法让计算机解决问题时,数据、运算及控制转移成为算法的要素,故本题选C选项。
· 对点专攻
1.以下对算法叙述,错误的是( )
A. 算法结果不唯一 B. 实现算法的语言可以是多样的
C. 算法具有确定性 D. 解决同一问题的算法可以有多种
【答案】A
【解析】本题考查的是算法相关知识。算法结果唯一,实现算法的语言可以是多样的,算法具有确定性,解决同一问题的算法可以有多种。故本题应选A。
2.下列关于算法的描述错误的是( )
A. 用自然语言描述算法就是使用人们能读懂的简短语句对算法的步骤进行描述
B. 能够使所描述的算法步骤清晰简洁、直观易读的是用流程图的方法
C. 最不容易产生二义性的是使用自然语言描述算法
D. 用伪代码描述算法是没有固定、严格的语法规则,只要定义合理,没有矛盾即可
【答案】C
【解析】本题主要考查算法的描述。自然语言通俗易懂,但在语义上容易产生歧义;流程图直观形象,逻辑清楚,适用于非常简单的算法描述。故本题应选C。
考点03 算法的特征
【典型例题1】
(2023-贵州)“洗衣机的洗衣流程”情境问题,洗衣机模拟人洗衣的过程,自动执行洗衣程序,节省了大量的人力,这主要归功于由算法控制的机器设备。算法指在有限步骤内解决问题所使用的方法,从下图2的“洗涤算法”中,可以看出算法具有的特征是( )
A.无穷性 B.单一性 C.确定性 D.繁琐性
【答案】C
【解题技巧】要求确定明确。
【解析】本题考查的是算法特征。一个算法应该具有以下五个重要的特征:1、有穷性:一个算法必须保证执行有限步之后结束;2、确切性:算法的每一步骤必须有确切的定义;3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果,没有输出的算法是毫无意义的;5、可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。从图中可知,算法具有确定性。故本题应选C。
【典型例题2】
(2024-全国)算法每个步骤的运算都有明确定义,且计算结果是唯一的。这体现算法的特征是( )。
A.可读性 B.可行性 C.确定性 D.有穷性
【答案】C
【解题技巧】题干中的明确定义。
【解析】本题考查的是算法特征。一个算法应该具有以下五个重要的特征:1、有穷性:一个算法必须保证执行有限步之后结束;2、确切性:算法的每一步骤必须有确切的定义;3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果,没有输出的算法是毫无意义的;5、可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。算法每个步骤的运算都有明确定义,且计算结果是唯一的,可知,算法具有确定性。故本题应选C。
· 对点专攻
1.算法的特征有( )。
A.确定性及可行性 B.有穷性 C.有零个或多个输入 D.有一个或多个输出
【答案】ABCD
【解析】本题考查算法的特征。算法的特征有:有穷性、确定性、有零个或多个输入、有一个或多个输出、可行性。故选:ABCD。
2.根据算法的特征,下图描述的算法有错,错误的主要原因是( )。
A.不符合有穷性 B.不符合可行性 C.不符合确定性 D.没有数据输入
【答案】B
【解析】本题主要考查算法的执行。a=-2,无法输出a的算术平方根,因为根号下的数必须大于等于0,错误的主要原因是不符合可行性,故本题选B选项。
考点04 算法的描述方法
【典型例题1】
(2023-贵州)算法是为解决一类特定问题而采取的确定的、有限的步骤。下面关于算法的描述方法中,不正确的是( )
A.用自然语言描述算法易于理解 B.用流程图来描述算法结构清晰
C.用伪代码来描述算法没有严格的书写格式 D.用思维导图来描述算法比较容易书写
【答案】D
【解题技巧】本题考查算法描述的相关内容。描述算法的方法中没有思维导图。
【解析】本题考查算法描述相关内容。常用的算法描述方法有:自然语言、伪代码、算法流程图和程序设计语言,ABC选项正确,D选项错误。故本题答案是D选项。
【典型例题2】
(2023-贵州)“洗衣机的洗衣流程”情境问题,洗衣机模拟人洗衣的过程,自动执行洗衣程序,节省了大量的人力,这主要归功于由算法控制的机器设备。算法的描述方法主要有( )
①自然语言 ②结构图 ③流程图 ④伪代码
A.①②③ B.①③④ C.②③④ D.①②④
【答案】B
【解题技巧】结构图不属于算法的描述。
【解析】本题考查的是算法的描述。算法的描述方法主要有自然语言、伪代码和流程图,故选项B正确。
【典型例题3】
(2024-江苏)某“猜数字”游戏玩法如下:输入猜想的数字,如果猜对则输出成功信息,否则提示猜错后继续输入直到猜对为止。能用于此算法的流程图是( )
A. B.C. D.
【答案】D
【解题技巧】必有回流,此外是双分支。
【解析】本题考查流程图。在这个游戏中,玩家需要不断输入猜测的数字,直到猜对为止。给出的流程图中,选项D展示了一个循环结构,其中包含了一个条件判断,如果猜测的数字与正确数字相等,则输出成功信息,否则提示猜错并继续循环直到猜对为止。故答案为:D。
· 对点专攻
1.下列关于算法的描述错误的是( )
A. 用自然语言描述算法就是使用人们能读懂的简短语句对算法的步骤进行描述
B. 能够使所描述的算法步骤清晰简洁、直观易读的是用流程图的方法
C. 最不容易产生二义性的是使用自然语言描述算法
D. 用伪代码描述算法是没有固定、严格的语法规则,只要定义合理,没有矛盾即可
【答案】C
【解析】本题主要考查算法的描述。自然语言通俗易懂,但在语义上容易产生歧义;流程图直观形象,逻辑清楚,适用于非常简单的算法描述。故本题应选C。
2.农夫带羊过河;农夫返回;农夫带狼过河;农夫带羊返回;农夫带蔬菜过河;农夫返回;农夫带羊过河。这是对经典的“农夫过河”问题算法的描述。该描述方法属于( )
A. 自然语言 B. 流程图 C. 伪代码 D. PAD图
【答案】A
【解析】本题主要考查算法的描述方法。常见的算法描述方法有:自然语言、流程图、伪代码。自然语言就是用人们日常所用的语言,如汉语、英语等来描述算法。题干中的“农夫过河”问题算法的描述属于自然语言。故选A。
考点05 算法的基本控制结构
【典型例题1】
(2023-内蒙古)算法的基本控制结构有( )
A.分支结构 B.综合结构 C.循环结构 D.顺序结构
【答案】ACD
【解题技巧】顺序、选择和循环。
【解析】本题考查算法基本结构。算法的基本结构有:顺序、选择(分支)、循环结构。顺序结构:程序中的各个操作是按照它们在源代码中的排列顺序依次执行的;选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程;循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。故选:ACD。
(2023-上海)党的二十大报告提出加快建设农业强国,到2035年基本实现农业现代化的目标,为实现农业现代化擘画出了清晰的时间表和路线图。如今,随着人工智能、物联网、大数据、5G等信息技术的发展,我国部分区域已经进入了农业4.0的初探阶段。平台中的“农作物检测功能”部分算法描述如流程图所示,其主要使用的算法基本控制结构有( )
A.循环结构、分支结构 B.分支结构、顺序结构 C.循环结构、顺序结构
【答案】B
【解题技巧】流程图中的流程线没有回流,故没有循环结构。
【解析】本题主要考查算法控制结构。由图可知,主要使用的算法基本控制结构有分支结构和顺序结构,故本题选B选项。
· 对点专攻
1.下面流程图描述的是程序基本控制结构中的( )
A. 顺序结构 B. 选择结构 C. 循环结构 D. 分支结构
【答案】C
【解析】本题考查算法基本结构的相关内容。有菱形,有回归到判断的箭头,故是循环结构,选C。
2.理论上已经证明,有了如下哪些基本控制结构,就可以编写任何复杂的计算机程序( )
A. 转子(程序),返回,处理 B. 输入,输出,处理
C. I/O,转移,循环 D. 顺序,选择,循环
【答案】D
【解析】本题考查算法基本结构的相关内容。程序的三种结构:顺序、选择和循环,故选D。
考点06 解析法、穷举法、迭代法、递归法、二分法等常见的算法
【典型例题1】
(2023-河南)如果一个四位数恰好等于它各位上数字的4次方之和,则这个数称为“玫瑰花”数。例如1634就是一个玫瑰花数:。如果要求算出所有的玫瑰花数,下列算法最合适的是( )
A.解析法 B.排序法 C.枚举法 D.迭代法
【答案】C
【解题技巧】依次检测所有的四位数。
【解析】本题考查算法相关内容。枚举算法是指在算法中采用搜索的方法,把各种可能的情况都考虑到,并对所得的结果逐一进行判断,过滤掉那些不符合要求的结果,保留那些符合要求的结果。解析算法是指能够找出表示问题的前提条件和结果之间的关系的数学表达式,并通过表达式的计算来实现问题的求解。排序法是将一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。迭代法是一类利用递推公式或循环算法通过构造序列来求问题近似解的方法。分析题意可知,要算出所有的玫瑰花数,需要对每个数据进行判断,枚举法可以实现该算法,故本题答案是C选项。
(2024-江苏)斐波那契数列也叫兔子繁殖数列,小明编写了下列代码求第74个月能繁殖多少对兔子,他使用的算法是( )
f1=f2=1
for i in range(3,75):
f1,f2=f2,f1+f2
print('兔子总对数为:',f2)
A.迭代法 B.枚举法 C.二分法 D.解析法
【答案】A
【解题技巧】f1,f2=f2,f1+f2,这个是一个迭代公式
【解析】本题考查算法相关内容。迭代算法是一类利用递推公式或循环算法通过构造序列来求问题近似解的方法。枚举算法是指在算法中采用搜索的方法,把各种可能的情况都考虑到,并对所得的结果逐一进行判断,过滤掉那些不符合要求的结果,保留那些符合要求的结果。二分法是一种数学方法,也称为二分查找或折半查找,它是一种在有序数组中查找特定元素的算法,这种方法从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果要查找的元素小于中间元素,则在数组的前半部分继续搜索;如果要查找的元素大于中间元素,则在数组的后半部分继续搜索;通过不断缩小搜索范围,最终可以找到要查找的元素。解析算法是指能够找出表示问题的前提条件和结果之间的关系的数学表达式,并通过表达式的计算来实现问题的求解。计算斐波那契数列的算法属于迭代法。故本题答案是A选项。
· 对点专攻
1.编程输出1到100之间所有的偶数,下列算法最合适的是( )
A.穷举法 B.冒泡排序法 C.二分查找法 D.插入排序法
【答案】A
【解析】本题考查算法相关内容。穷举法是指在算法中采用搜索的方法,把各种可能的情况都考虑到,并对所得的结果逐一进行判断,过滤掉那些不符合要求的结果,保留那些符合要求的结果。冒泡算法是通过对待排序的序列从前向后依次比较相邻元素的值,如果发现逆序则交换。二分查找法是一种在有序数组中查找某一特定元素的搜索算法。插入排序法的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。分析题意,穷举法可以解决该问题。故本题答案是A选项。
2.已知f(1)=1,f(2)=2,当n>=3时,f(n)=f(n-1)+f(n-2)。现在编程求f(100)的值,以下最合适的算法是( )。
A.解析法 B.穷举法 C.递归法 D.顺序查找法
【答案】C
【解析】本题考查常用算法。由(n)=f(n-l)+f(n-2)知,要计算f(100)的值需要调用f(99)和f(98)的值,而计算f(99)又需要调用f(98)和f(97),………,这种思想是递归算法的思想,选项C正确。
1、用计算机解决问题的过程中,将程序输入到计算机进行检查、调试和运行,得到正确的结果。这一环节是( )
A. 设计算法 B. 分析问题 C. 编写程序 D. 调试运行程序
【答案】D
【解析】本题主要考查计算机解决问题的一般过程。计算机解决问题的一般过程是:分析问题→设计算法→编写程序→调试运行程序。将程序输入到计算机进行检查、调试和运行,得到正确的结果。这一环节是调试运行程序,故本题选D选项。
2、下列关于用计算机解决问题的过程,表述有误的是( )
A. 可以在一定程度上提高问题解决的效率
B. 可以让计算机按照程序执行指令
C. 可以使用已有程序,也可以根据需要自己编写程序
D. 在问题求解的过程中,一旦程序报错就需要从头开始编写程序
【答案】D
【解析】本题主要考查计算机解决问题。在问题求解的过程中,一旦程序报错不需要从头开始编写程序,应进行调试程序,找到错误的地方并进行修改,故本题选D选项。
3、在用计算机解决问题的过程中,寻找求解的方法和确定具体的求解步骤属于( )
A. 分析问题 B. 设计算法 C. 编写程序 D. 调试运行
【答案】B
【解析】本题考查的是计算机解决问题一般过程。计算机解决问题一般步骤:(1)分析问题(2)设计算法,根据分析,找出解决问题的方法和步骤。(3)编写程序,选择一种程序设计语言来编写程序,实现算法。(4)调试运行(5)检测结果,对程序功能进行检测。寻找求解的方法和确定具体的求解步骤属于设计算法,故应选B。
4、设计算法时,以下哪个不是重要的考虑因素( )
A. 算法的时间复杂度 B. 算法的空间复杂度 C. 算法的颜色编码 D. 算法的可扩展性
【答案】C
【解析】本题考查算法效率的相关内容。应该考虑算法的时间复杂度、空间复杂度和可扩展性,故选C。
5、关于算法的特征描述错误的是( )
A. 一个算法可以没有输入 B. 一个算法可以没有输出
C. 算法的每个步骤都具有确定的含义,没有歧义 D. 算法的步骤是有限的
【答案】B
【解析】本题考查算法特征的相关内容。算法可以没有输入;每个步骤有确定的含义;步骤是有限的;必须有输出,故B错误。
6、某银行为保障用户帐户安全使用了以下算法,在用户登录帐户时需要输入正确的密码,若正确将会进入系统;否则会限制用户尝试输入密码的次数,若超过限定输入次数3次,将会作锁卡处理。以下对于算法的特征描述正确的是( )
A. 因为不同的人可能输入密码的次数不同,所以该算法不符合有穷性
B. 密码输入错误次数统计是现实中可以完成的,这体现了可行性的特征
C. 用户登录帐户时可能输入错误密码,这说明算法没有确定性
D. 输入正确的密码将会进入系统,这说明算法可以没有输出
【答案】B
【解析】本题主要考查算法的描述。若超过限定输入次数3次,将会作锁卡处理,故该算法符合有穷性、确定性;密码输入错误次数统计是现实中可以完成的,这体现了可行性的特征;输入正确的密码将会进入系统,说明该算法有输出,故本题选B选项。
7、观察如下的算法,下列对于该算法的特征表述错误的是( )
①t=0;
②x=1;
③y=1;
④z=1;
⑤如果满足6x+5y+4z=50,则购买的方案数加1(即=t+1),并输出这种购买方案(即输出t、x、y、z的值)。
⑥z=z+1;
⑦如果z<=12则转⑤,否则继续
⑧y=y+1;
⑨如果y<=10则转④,否则继续
⑩x=x+1;
⑪如果x<=8则转③,否则维续
⑫结束。
A. 算法必须有一个或多个数据输入
B. 算法中就输出了t、x、y、z的值,说明算法必须至少要有一个输出
C. 算法中如z=z+1等步骤,体现了算法的确定性
D. 算法中对x、y和z的取值范围做了限定,当x的值大于8时程序结束,体现了算法有穷性
【答案】A
【解析】本题考查算法描述的相关内容。错误的是A,算法可以没有输入。比如题干中就没有输入环节。
8、下图是小李同学设计的算法流程图,根据算法的特征,请指出其中存在的问题是( )
A. 该算法没有数据输入 B. 该算法没有数据输出
C. 该算法不符合有穷性特征 D. 该算法不符合确定性特征
【答案】B
【解析】本题考查算法相关内容。结合据算法特性,分析该流程图,发现该流程图通过赋值使得s、i获得初值并参与相关处理,但结果并没有输出。故本题答案是B选项。
9、当今世界已经被发现或创造的经典算法,如中国的秦九韶算法、辗转相除法、更相减损术数不胜数,下面有关算法的描述,不正确的是( )
A. 算法可以没有输出,必须有输入
B. 解决同一个问题,采用的算法可以不同
C. 为解决问题的设计的算法应具备可行性
D. 算法需要在有限步内解决问题
【答案】A
【解析】本题考查算法特征的相关内容。算法可以没有输入,必须有输出。故A错误。
10、步骤①输入圆的半径;步骤②求圆的面积;步骤③输出圆的面积。以上算法的描述方法属于( )
A. 自然语言描述法 B. 流程图描述法 C. 伪代码描述法 D. 简码描述法
【答案】A
【解析】本题考查算法描述的相关内容。自然语言描述法,故选A。
11、下列关于算法的基本控制结构的说法,不正确的是( )
A. 顺序结构按序依次执行程序语句 B. 分支结构也称为选择结构
C. 循环结构内语句被重复执行的次数一定是已知的 D. 分支结构中某条执行路径中的语句可以不被执行
【答案】C
【解析】本题考查算法基本结构的相关内容。循环有次数循环(已知次数)和条件循环(不定次数)两种,故C错误。
12、递归算法是一种( )的算法。
A. 非线性 B. 迭代 C. 自我调用 D. 无法预测
【答案】C
【解析】本题考查的是递归算法。递归是一种通过函数直接或间接调用自身来解决问题的方法。它通常将一个大问题分解为与原问题相似的较小问题,直到达到可以直接解决的基本情况(或称为递归出口),然后再逐级返回,逐步解决整个问题。递归的核心思想是“自己调用自己”。故选C。
13、小华玩猜价格游戏,已知价格的范围在 1 元到 200 元之间。他第一次猜 100 元,太低;第二次猜 150元,太高;第三次猜 125 元,又太低;……,小明在猜价格时采用的方法是( )
A. 顺序查找 B. 随机查找 C. 对分查找 D. 排序查找
【答案】C
【解析】本题考查基本算法的相关内容。每次都是猜范围的中间值,故是对分查找,选C。
14、递归算法可以用三个字来概括,但不包括下列选项中的( )
A. 解 B. 分 C. 治 D. 合
【答案】A
【解析】本题主要考查递归算法。递归算法即在程序中不断反复调用自身来达到求解问题的方法。此处的重点是调用自身,这就要求待解决的问题能够分解为相同问题的一个子问题,每个子问题分别解决,这样通过多次调用,将所有的子问题合在一起就可以完成求解。递归算法可以用三个字来概括,即分、治、合,故本题选A选项。
15、以下对算法思想和效率描述中,错误的是( )
A.枚举法是依据问题的已知条件,确定答案的大致范围,在此范围内列举出它所有可能出现的情况
B.解析算法是通过找出解决问题的前提条件与结果之间的关系表达式,并计算表达式来实现问题的求解
C.在设计算法时,要有零个或多个输入,同时也必须要有零个或多个输出
D.设计算法要求每一个步骤都能够有效地执行,并且得到确定的结果
【答案】C
【解析】本题考查算法相关内容。算法是指为解决某个特定问题而采取的方法和步骤。算法的特性:有效性、确定性、可行性、有零个或多个输入、有一个或多个输出。A选项,枚举算法通过列举问题所有可能的解,并逐一检查每个解是否满足问题的条件,选项说法正确。B选项,解析算法是通过数学公式或逻辑推理来直接计算或推导问题的解,选项说法正确。C选项,在设计算法时,要有零个或多个输入,同时也必须要有一个或多个输出,选项说法错误。D选项,设计算法要求每一个步骤都能够有效地执行,并且得到确定的结果,这符合算法特征,选项说法正确。故本题答案是C选项。
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$