内容正文:
3.2 算法及其描述
一、选择题
1.如下图所示,是求平均值的算法,其描述方法是( )
①输入a、b、c的值
②计算y=(a+b+c)/3
③输出y的值
A.流程图 B.伪代码 C.自然语言 D.高级语言
2.欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数。其解决问题的算法步骤如下:
① 输入a, b。
② 以a除以b,令所得的余数为 r。
③ b赋值给a,r赋值给b。
④ 若r不等于0,转步骤② ;否则继续步骤⑤ 。
⑤ 输出 a。
把以上自然语言描述的算法用流程图表示,流程图中菱形框中应填入的是( )
A.r==0? B.a==0? C.r!=0? D.a!=0?
3.计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( )等5个特性
A.可执行性、可移植性和可扩充性 B.可执行性、有穷性和确定性
C.确定性、有穷性和稳定性 D.易读性、稳定性和确定性
4.算法的重要特征不包括( )
A.唯一性 B.确定性 C.可行性 D.有穷性
5.下列关于算法和算法特征的说法,正确的是( )
A.算法必须要有输入
B.“求所有自然数的和”不能用算法进行描述
C.可行性是指算法的每一个步骤理论上可行,并不要求实际操作可行
D.很多问题的计算结果是无解的,因此算法可以有 0 个或多个输出
6.流程图的符号中,平行四边形框是( )
A.判断框 B.起止框 C.输入/输出框 D.处理框
7.下列对算法描述方法的表述正确的是( )
A.算法只能用自然语言来描述
B.算法只能用流程图来表示
C.描述算法可以有多种方法
D.用流程图描述算法,通常是我们理解算法的第一步
8.下列关于算法特征的描述,不正确的是( )
A.算法中对于每一个步骤的描述不一定是确定的
B.算法的处理步骤必须是有限的
C.算法的输入值可以直接输入,也可以包含在算法中
D.算法必须至少有一个输出
9.根据胡卓同学绘制的男生身体质量指数对应等级的算法流程图回答问题:
根据本题描述,用变量h表示身高值,变量w表示体重值,下列关于BMI的python表达式正确的是( )
A.BMI=w/h**2 B.BMI=w/h*2 C.BMI=w//h*2 D.BMI=w//2h
10.某算法的部分流程图如图所示,执行部分流程图,若输入X的值为﹣5,则输出结果为( )
A.2 B.4 C.5 D.25
11.某算法的部分流程图如图所示。执行这部分流程,若输入 k 的值为“newyear”,则输出的 s值为( )
A.“ywn” B.“nwy” C.“eear” D.“raee”
12.对于一个问题的解决方法可以有多种描述,如图这种比较常用的一种算法描述是( )
A.伪代码 B.自然语言 C.流程图 D.机器语言
13.某算法的部分流程图如图所示。执行这部分流程,若输入a的值依次为1,3,4,2,3,-1,则输出s的值是( )
A.8 B.13 C.14 D.16
14.某算法的部分流程图如图所示。执行这部分流程,输入n 的值为 2048,则输出s的值是( )
A.2 B.6 C.10 D.14
15.某算法的部分流程图如下图所示,执行这部分流程,则输出的 f1,f2的值分别是( )
A.2,4 B.4,8 C.8,32 D.32,256
16.某算法的部分流程图如第 5 题图所示,执行这部分流程图,依次输入 3,2,1,变量 i,s 的值 分别是
A.10,1 B.7,2 C.10,2 D.13,3
17.若执行a= (-1)^0.5,则该执行步骤违反了算法的_________。
A.有穷性 B.确定性 C.可行性 D.有0个或多个输入
18.用于求变量s的算法如下:
①变量s的初值为0,变量t的初值为1,变量i的初值为1
②若变量i的值大于10,则转到步骤⑤
③t←t*i,s←s+1/t
④i的值增加1,转到步骤2
⑤输出s的值
⑥结束
下列数学表达式中,其计算结果与上述算法执行后变量s的值相等的是( )
A.1+2+3+……+10
B.1×2×3×……×10
C.1+1/2!+1/3!+……+1/10!(阶乘运算5!=5×4×3×2×1)
D.1+1/2+1/3+……+1/10
二、填空题
19.深度优先搜索算法的时间复杂度是 。
20.在解析算法时,我们通常需要关注算法的 、正确性和效率。
21.在算法中,用于从函数中返回值的语句是 。
22.依次输入8、7、9,以下流程图的算法执行结果是 。
\
23.算法有顺序结构、选择结构和循环结构三种基本控制结构,以下流程图①是 结构,②是 结构。
三、判断题
24.用自然语言描述算法的优点是通俗易懂,但当算法中含有较多的分支或者循环时,自然语言不易清晰表示出来,容易造成理解歧义。( )
25.自然语言表示算法时,可能会出现歧义。( )
26.使用伪代码表示算法时,可以省略一些不必要的细节。( )
27.任何一个算法必须包含顺序结构、选择结构和循环结构。( )
28.算法的优劣可以用空间复杂度与时间复杂度来衡量。( )
四、操作题
29.“枚举算法”又称为“穷举法”,其基本思想是:一一列举出所有可能的解,并验证每个可能的解是否是真正的解,若是,就采纳,否则,就抛弃。
小明利用枚举算法解决“百元买百鸡”问题。用100元钱买100只鸡,公鸡,母鸡,小鸡都要有。公鸡5元1只,母鸡3元1只,小鸡1元3只。请问公鸡,母鸡,小鸡各应该买多少只?
假设公鸡有X只,母鸡有Y只,小鸡有Z只。
以下Python程序段实现了“百元买百鸡”的功能,请补全①②③处代码。
c = 0
for x in ① :
for y in range(1,33):
z = 100-x-y
if ② :
print("公鸡:",x,"母鸡:",y,"小鸡:",z)
③
print("共有买法",c,"种")
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题考查算法描述相关内容。算法的描述方法有:流程图、N-S图、自然语言、伪代码等。如图所示,采用的描述方法是自然语言。故本题答案是C选项。
2.A
【详解】本题考查算法流程图相关内容。分析算法描述,由“若r不等于0,转步骤② ;否则继续步骤⑤ ”知,菱形框处缺少判断条件,若条件不成立,则转步骤②,所以此处应填写:r==0?。故本题答案是A选项。
3.B
【详解】本题考查算法特性相关内容。一个算法应该具有以下五个重要的特征:(1)有穷性,算法的有穷性是指算法必须能在执行有限个步骤之后终止;(2)确定性,算法的每一步骤必须有确切的定义;(3)输入项,一个算法有0个或多个输入,以刻画运算对象的初始情况;(4)输出项,一个算法有一个或多个输出,以反映对输入数据加工后的结果;(5)可行性,算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。故本题答案是B选项。
4.A
【详解】本题考查算法的特征。。算法的重要特征包括:有穷性、可行性、确定性、输入项、输出项。故选A。
5.B
【详解】本题考查算法的特征。一个算法应该具有以下五个重要的特征:1、有穷性: 一个算法必须保证执行有限步之后结束;2、确切性:算法的每一步骤必须有确切的定义;3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定义了初始条件;4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;5、可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。“求所有自然数的和”不满足算法的有穷性,因此不能用算法进行描述,故选B。
6.C
【详解】本题考查的是流程图相关知识。在流程图的符号中,圆角矩形是起止框,矩形是处理框,平行四边形是输入/输出框,菱形是判断框。故选C。
7.C
【详解】本题考查算法的描述。描述算法的方法有:自然语言、流程图和伪代码等。故选C。
8.A
【详解】本题主要考查算法的特征。一个算法应该具有以下五个重要的特征:1、有穷性: 一个算法必须保证执行有限步之后结束;2、确切性:算法的每一步骤必须有确切的定义;3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定义了初始条件;4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;5、可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。故本题选A选项。
9.A
【详解】本题主要考查算法流程图。根据本题描述,用变量h表示身高值,变量w表示体重值,BMI的python表达式是BMI=w/h**2或BMI=w/(h*h),故本题选A选项。
10.B
【详解】本题考查的是流程图的识读。若输入X的值为﹣5,绝对值X大于3成立,执行绝对值X-3=2,2的绝对值大于2不成立,执行y=2*2=4。故本题应选B。
11.A
【详解】本题主要考查算法流程图执行。本算法中提取字符串k中各字符依次赋值给c,t初值为字符a,判断c是否大于等于t,若是,则将c累加至字符串s中,并将c赋值给t,整体实现了将字符串k中依次增大的字符输出的效果,因此A选项正确。
【点睛】
12.C
【详解】本题考查的是算法的描述。自然语言:自然语言通常是指一种自然地随文化演化的语言。流程图:使用图形表示算法思路的一种方法。伪代码:一种算法描述语言。使用伪代码的目的是使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java等)实现。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。机器语言:一种指令集的体系。这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。故本题应选C。
13.D
【详解】本题考查阅读流程图的能力。阅读流程图,循环体内,变量s累加变量m的值,共5次。其中如果变量a>m,m就要更新为a的值,若输入a的值依次为1,3,4,2,3,-1,最终s的值是1+3+4+4+4=16。选D。
14.A
【详解】本题考查的是流程图识读。阅读流程图,可知该流程图功能是输入的n,将每位上的数字从低位到高位开始依次进行加、减、加……求和后输出。输入n的值为2048,则s=8-4+0-2=2。故选A。
15.C
【详解】本题考查的是流程图识读。阅读程序可知,初始f1=1,f2=2,循环中将f2更新f1*f2,f1更新f2,为当f1*f2>=10时,输出f1和f2。1*2=2,;2*2=4;2*4=8;4*8=32,更新f1为8,f2为32。故选C。
16.A
【详解】本题主要考查算法流程图。s=0,i=1,第一遍循环,满足i<10,输入a=3,s=s+i mod 3\a=0+1 mod 3\3=0(mod取余,“\”优先级大于mod),i=i+3=4;第二遍循环,满足i<10,输入a=2,s=s+i mod 3\a=0+4 mod 3\2=0,i=i+3=7;第三遍循环,满足i<10,输入a=1,s=s+i mod 3\a=0+7 mod 3\1=1,i=i+3=10;第四遍循环,不满足i<10,退出循环,输出i=10,s=1,故本题选A选项。
17.C
【详解】本题考查的是算法的特征。算法的五大特征:有穷性、确定性、能行性(可行性)、有 0 个或多个输入、有一个或多个输出。a= (-1)^0.5,-1是负数,根据数学知识,可知不能为负数,故违反了算法的可行性,应选C。
18.C
【详解】本题主要考查算法及其实现。分析算法可知,该程序变量i的范围是从1到10,t是计算i的阶乘,s是计算i的阶乘倒数之和,即:1+1/2!+1/3!+……+1/10!。故本题答案是C选项。
19.O(V+E)
【详解】本题考查算法。
对于无向图,深度优先搜索的时间复杂度为O(V+E),其中V表示顶点数,E表示边数。故正确答案为:O(V+E)。
20.可读性
【详解】本题考查算法。解析算法时,除了正确性和效率,还需要关注算法的可读性,即代码是否易于理解。故答案为:可读性。
21.return语句
【详解】本题考查算法。在算法的函数定义中,return语句用于将特定的值或计算结果从函数内部传递回函数的调用处,从而实现函数的功能输出。通过return语句,可以结束函数的执行并将指定的值返回给调用者,以便在程序的其他部分进行进一步的处理和使用。故答案为:return语句。
22.9
【详解】本题考查的是流程图识读。依次输入8、7、9,7>8不成立,9>8成立,执行a、c变量交换,交换后a=9。
【点睛】
23. 顺序 选择(分支)
【详解】本题考查的是算法结构。①是从上至下执行,属于顺序结构,②是根据条件选择A或B执行,属于选择结构。
24.正确
【详解】本题主要考查算法的描述。用自然语言描述算法的优点是通俗易懂,但当算法中含有较多的分支或者循环时,自然语言不易清晰表示出来,容易造成理解歧义,表述正确。
25.正确
【详解】本题考查算法的表示。自然语言具有丰富性和灵活性,但也正因如此,在表达算法时可能由于词汇的多义性、语法结构的多样性以及表述的模糊性而产生歧义。不同的人对同一段自然语言描述的算法可能会有不同的理解。故说法正确。
26.正确
【详解】本题考查伪代码。伪代码的目的是清晰地呈现算法的核心逻辑和主要步骤,而非追求完全详细和精确到编程语言的级别。因此,在不影响理解算法本质和流程的前提下,可以省略一些在特定编程语言中才需要关注的非关键细节。这样能更突出算法的重点和关键部分,使读者更容易把握算法的整体思路。故说法正确。
27.错误
【详解】本题考查算法结构相关内容。算法基本结构有三种:顺序结构、选择结构、循环结构。一个算法一定含有顺序结构,可能会由顺序结构、条件结构、循环结构构成。故本题答案是:错误
28.正确
【详解】本题考查的是算法相关知识。算法的优劣可以用空间复杂度与时间复杂度来衡量。说法正确。
29. range(1,20) 5*x+3*y+z/3 == 100 c = c+1
【详解】本题考查的是python编程。X代表的是公鸡,公鸡5元一只,所以此处的range函数为range(1,20),左闭右开区间。if条件是满足三种鸡的总价格为100元的条件,故答案为5*x+3*y+z/3 == 100,注意这里是一个判断条件,用==表示。c代表的是有几种购买方案,当if条件满足时,即满足一种方案,执行方案数加1,c=c+1。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$