内容正文:
2.2 算法的概念及描述
一、选择题
1.下列选项中关于算法的描述正确的是( )
A.解决具体问题的算法具有唯一性 B.可以通过算法求解所有自然数的和
C.算法的步骤必须是有限的 D.算法的步骤必须是可逆的
2.下列Python程序所表示的算法,违反的算法特点是( )
i = 10
while i <= 20:
print(i * 9)
A.可行性 B.至少有一个数据输出
C.确定性 D.有穷性
3.在穷举法中,哪个方法不适用于求解组合优化问题?( )
A.模拟退火算法 B.遗传算法 C.梯度下降法 D.分支定界法
4.一个正确的算法因该具有5个特性,除输入项、输出项特性外,另外3个特性是( )
A.确切性、可行性、有穷性 B.易读性、确切性、有效性
C.有穷性、稳定性、确切性 D.可行性、易读性、有穷性
5.下列问题不能用算法描述的是( )
A.已知a、b、c的值,求一元二次方程ax2+bx+c=0(a≠0)的实数根
B.计算某个班级语文成绩的平均分
C.列出方程y=2x+1的所有实数解
D.根据圆的半径求圆的面积和周长
6.某算法的部分流程图如图所示,执行这部分流程后,下列说法正确的是( )
A.输出的 a,b 值分别为 5,11
B.输出的 a,b 值分别为 5,14
C.条件 b<10 被判断了 6 次
D.语句 b←3*a-1 被执行了 4 次
7.以下流程图描述的算法执行结果是( )
A.1 B.2 C.3 D.6
8.下图是把华氏温度转换为摄氏温度的算法,这种描述算法的方式是( )
A.自然语言 B.流程图
C.伪代码 D.高级语言
9.某算法的部分流程图如下图所示,流程执行结束后,下列描述正确的是( )
A.“n≤9?"共执行了4次 B.这是一个选择结构的流程结构
C.m的值为9,n的值为13 D.m的值为7,n的值为9
10.假设有30颗糖果,两人轮流取糖果,每次可以取1至2颗,拿到最后一颗糖果的人获胜。如果你想获胜,你一定要选择后取。具体做法是:若对手取i颗(i为1或2),那么自己取( )颗糖果,此做法必然确保获胜。( )
A.3-i B.4-i C.i D.1
11.算法的空间复杂度是指( )。
A.算法程序的长度 B.算法程序中的指令条数
C.算法程序所占的存储空间 D.算法执行过程中所需要的存储空间
12.某算法的部分流程如图所示,执行这部分流程,若输入s为“10sh23ab”,则输出t的值是( )
A.0 B.2 C.3 D.6
13.如下图所示,该流程图不符合算法特征中的( )
A.有穷性 B.确定性 C.有0个或多个输入 D.有1个或多个输出
二、填空题
14.在穷举法中, 法是一种有效的减少搜索空间的方法。
15.写出算法执行结果
16.枚举算法与其他搜索算法相比,其优点是 。
17.在伪代码中, 用于表示程序的开始和结束。
18.流程图是用辗转相除的方法求输入的两个自然数的最大公约数算法。例如输入6、4,用6/4余2,4/2余0,则6和4的最大公约数是2。流程图中划线处部分应填 。
19.算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。某一个算法的描述如下:
①输入两个数A,B;
②如果A大于B,则将A的值赋给C,B的值赋给A,C的值赋给B;
③如果A不大于B,则A、B的值保持不变;
④输出A,B;
⑤结束
(1)以上算法的描述属于哪一种: ;
(2)以上算法第④步用Python语言实现,可以写为: ;
(3)如果A的值是5,B的值是3,则执行完算法后,A的值是: 。
三、判断题
20.伪代码比自然语言描述算法更加直观和易于理解。( )
21.算法的三种基本控制结构是分支结构、循环结构和模块结构。( )
22.在用乘车卡乘车时,当卡内余额不足,系统会给出提示信息,请乘客投币。在对这一过程设计算法时,必须要用到算法的选择结构。( )
23.用自然语言来描述算法,比用流程图来描述算法更清晰、简洁。( )
24.衡量算法的优劣往往从时间复杂度和空间复杂度两个维度考虑。( )
四、操作题
25.有一分数序列: 以下的程序求出这个数列的前20项之和。请参考流程图,将以下程序补充完整。
a=2.0
b=1.0
s=_①_
for n in range(②):
s=_③_
t=a
a=a+b
b=t
请分析任务,完成以下问题:
(1)程序中①处应填写
(2)程序中②处应填写
(3)程序中③处应填写 。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题考查算法描述相关内容。一个算法应该具有以下五个重要的特征:(1)有穷性,一个算法必须在执行完有穷步后再结束,且有时间限制;(2)确定性,算法的操作事由规定的,含义和执行方法都是非常明确的;(3)可行性,所有操作都可实现;(4)输入,一个算法有多个或者零个输入;(5)输出,一个算法有1个或多个输出,没有输出的算法无意义。分析4个选项,ABD选项错误,C选项正确。故本题答案是C选项。
2.D
【详解】本题主要考查算法的特征。分析程序可知,程序会陷入死循环,违反的算法的有穷性特征,故本题选D选项。
3.C
【详解】本题考查算法相关内容。在穷举法中,梯度下降法不适用于求解组合优化问题。梯度下降法主要用于求解连续优化问题,通过沿着目标函数的负梯度方向逐步迭代来寻找最优解。而模拟退火算法、遗传算法和分支定界法在一定程度上都可以用于求解组合优化问题。故本题答案是C选项。
4.A
【详解】本题主要考查算法的特征。一个正确的算法因该具有5个特性,除输入项、输出项特性外,另外3个特性是确切性、可行性、有穷性,故本题选A选项。
5.C
【详解】本题考查算法的描述。算法是在有限步骤内解决某一问题所使用的方法。算法的描述可以是自然语言、流程图、伪代码等。算法的五大特征:有穷性、确定性、能行性(可行性)、有 0 个或多个输入、有一个或多个输出。方程y=2x+1的所有实数解有无数个,违背了算法的有穷性。故答案为:C。
6.A
【详解】本题主要考查算法流程图的执行。a=1,b=0,第一次循环 ,满足b<10,a mod 2=1,a=a+1=2;第二次循环,满足b<10,a mod 2=0,b=3*a-1=5,a=a+1=3;第三次循环,满足b<10,a mod 2=1,a=a+1=4;第四次循环,满足b<10,a mod 2=0,b=3*a-1=11,a=a+1=5;第五次循环,不满足b<10,输出a,b的值分别为5,11。执行这部分流程后,条件 b<10 被判断了 5 次,语句b←3*a-1 被执行了 2 次,故本题选A选项。
7.D
【详解】本题考查流程图。分析流程图可知,初始状态下,x=1。顺序执行:(1)x=x+2=1+2=3;(2)x=x+3=3+3=6;输出x=6。故答案为D选项。
8.B
【详解】本题考查的是算法描述。用自然语言描述算法,就是用人们日常所用的语言,如汉语、英语等来描述算法;用流程图描述算法是用程序框图来描述算法的一中表示方法;用伪代码描述就是用介于自然语言和计算机语言之间的文字和符号来描述算法。图中是利用流程图来描述算法。故应选B。
9.C
【详解】本题考查的是流程图识读。依据流程图可知,执行过程如下:
n<=9?
n
m
初始
0
1
第一次循环
成立
1
3
第二次循环
成立
5
5
第三次循环
成立
9
7
第四次循环
成立
13
9
第五次
不成立
故流程执行结束后,m的值为9,n的值为13,“n≤9?"共执行了5次,这是一个循环结构的流程结构。本题应选C。
10.A
【详解】本题考查的是算法相关知识。30÷(1+2)=10组,故保证和对手取的糖果数和为3就可以顺利取得最后一颗糖果。故本题应选A。
11.D
【详解】本题考查的是算法相关知识。算法的空间复杂度是指算法执行过程中所需要的存储空间。故本题应选D。
12.C
【详解】本题主要考查算法流程图的执行。i=1,s=“10sh23ab”,c=mid(s,i,1),当c是数字时,执行t=t*10+val(c),否则执行t=int(sqr(t)),当i=1时,t=1;当i=2时,t=1*10+0=10;当i=3时,t=int(sqr(t))=3;当i=4时,t=int(sqr(t))=1;当i=5时,t=1*10+2=12;当i=6时,t=12*10+3=123;当i=7时,t=int(sqr(t))=11;当i=8时,t=int(sqr(t))=3,故执行这部分流程,输出t的值是3,故本题选C选项。
13.A
【详解】本题考查算法相关内容。通过观察流程图可知,初始状态:n=1;当n<10时重复执行:s=s+n;n=n-1操作。由于n=n-1的执行,使得n的值越来越小,n<10永久成立,所以该循环为死循环,不满足算法的有穷性特征。故本题答案是A选项。
14.剪枝
【详解】本题考查算法相关内容。剪枝法是一种优化搜索算法的技术,旨在减少搜索空间,提高搜索效率。它通过在搜索过程中剪掉那些不必要继续搜索的分支,从而减少了搜索的时间和空间复杂度。剪枝法的核心在于通过合理的判断条件来剪掉不必要的搜索分支,以减少搜索时间和空间消耗。这种技术适用于多种算法场景,如回溯法、深度优先搜索和博弈树等问题中。故本题答案是:剪枝。
15.firstbreak
【详解】本题主要考查算法流程图的执行。字符串比较大小,是逐个字符进行比较。a="break",b="first",a<b,输出b+a="firstbreak"。
16.简单易懂,适用于解空间较小或容易枚举的问题
【详解】本题考查枚举算法。枚举算法的优点在于其逻辑直接、简单易懂。对于解空间较小或者容易枚举的问题,能够通过直接列举所有可能的情况来找到答案。不需要复杂的数学推导或对问题的深入分析,实现起来较为容易。相比其他搜索算法,如一些需要复杂策略和优化的算法,枚举算法的概念和实现过程更为直观,容易被理解和掌握。例如,在一个有限的数字集合中查找特定数字,使用枚举算法可以快速实现。故答案为:简单易懂,适用于解空间较小或容易枚举的问题。
17.begin和end
【详解】本题考查的是算法的描述。在伪代码中,begin和end用于表示程序的开始和结束。
18.r=0?
【详解】本题考查的是流程图相关知识。辗转相除法,它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。故划线处部分应填:r=0?。
19. 自然语言描述 print(A,B) 3
【详解】本题主要考查算法及其实现。①以上算法的描述属于自然语言描述。②算法第④步用Python语言实现,可以写为print(A,B)(用输出函数print())。③如果A大于B,则将A的值赋给C,B的值赋给A,C的值赋给B,即实现A与B的交换,A的值是5,B的值是3,故执行完算法后,A的值是3。
20.正确
【详解】本题考查伪代码。伪代码可以明确地定义算法的步骤、变量、数据类型和流程控制结构,这使得读者能够更准确地理解算法的工作原理。此外,伪代码还可以直接转换为编程代码,这对于算法的实现和测试非常有帮助。我们需要根据实际需要选择合适的描述方式。在需要精确、无歧义地描述算法时,伪代码可能更加直观和易于理解,故正确。
21.错误
【详解】本题主要考查算法的基本结构。算法的三种基本结构是:顺序结构、分支结构和循环结构,故表述错误。
22.正确
【详解】本题考查的是算法结构。选择结构会依据条件选择其中一个分支执行。在用乘车卡乘车时,当卡内余额不足,系统会给出提示信息,请乘客投币。在对这一过程设计算法时,必须要用到算法的选择结构。说法正确。
23.错
【详解】本题考查的是算法描述。流程图是一种传统的算法表示法,它用一些图框来代表各种不同性质的操作,用流程线来指示算法的执行方向。由于它直观形象,易于理解,所以应用广泛,特别是在语言发展的早期阶段,只有通过流程图才能简明地表述算法。故题干中的说法是错误的。
24.正确
【详解】本题考查的是算法。衡量算法的优劣往往从时间复杂度和空间复杂度两个维度考虑,题干中的说法正确。
25. 0 1,21 s+a/b
【详解】本题主要考查算法流程图及Python程序实现。①变量s的初值是0.0,故此处填0.0。②range(start, stop, [step]),start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)。变量n的初值是1,循环条件是n<21,故此处填1,21。③由流程图可知,此处填s+a/b。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$