内容正文:
第一节 算法与算法描述
一、选择题
1.有27个小球,外观一模一样,其中有一个异常小球重1.5g,其他小球重1g。有一个只能分清轻重的天平,请问利用天平一定能保证找出那个重1.5g的小球最少需要称的次数是( )
A.2 B.3 C.4 D.5
2.在评估算法性能时,我们通常关注哪些指标( )
A.时间复杂度和空间复杂度 B.算法的可读性
C.算法的颜色编码 D.算法的执行环境
3.以下关于算法特征的表述中,正确的是( )
A.输入:算法在执行时,有可能需要从外界获取数据,因此一个算法中必须有输入操作
B.输出:算法的目的是解决问题,问题的结果应以一定的方式输出,因此算法必须有输出
C.算法可以用无限个步骤来实现
D.设计的算法可以和文字一样存在不确定的结果
4.流程图描述的算法功能是( )
A.求输入的20个数的和 B.求输入的20个数中正数的和
C.求输入的20个数中正数的个数 D.求输入的20个数的平均值
5.以下选项中算法功能对应的流程图是( )
图1 图2 图3 图4
A.图3:求任意两个数的商 B.图4:求一个数与自然数的商
C.图1:求1+2+3+4+…+100的和 D.图2:求x的绝对值
6.使用流程图描述算法时,图形的功能是( )
A.开始或结束 B.变量赋值 C.条件判断 D.变量输出
7.算法的“有穷性”是指( )
A.解决问题的用时越少越好
B.算法执行的任何计算都是有效的
C.算法的运算必须是可以实现的
D.算法执行有限步后必须能结束
8.在分析问题时,以下哪个步骤不是必要的( )
A.确定问题的输入和输出 B.确定问题的约束条件 C.确定问题的解决方案 D.确定问题的背景信息
9.流程图符号,菱形的名称是( )
A.判断框 B.处理框 C.输入/输出框 D.起止框
10.某算法的部分流程图如图所示,执行这部分后,下列说法不正确的是( )
A.a的值为9
B.b的值为19
C.循环条件b<=13?共执行了5次
D.当第3次执行循环条件b<=13?时,b的值为13
11.“算法首先必须是正确的,即对于任意一组输入,包括合理的输入与不合理的输入,总能得到预期的输出”属于评价算法的( )
A.可读性 B.高效性 C.可行性 D.正确性
12.某算法的部分流程图如图所示,以下说法正确的是( )
A.该流程执行后,变量k的值是1 B.该流程执行后,变量a的值是32
C.该流程执行后,变量s的值是6 D.该流程执行后,“a<16?”共执行了3次
13.某算法的部分流程图如图所示。执行这部分流程,若输入a的值为1672,则输出c的值为( )
A.88 B.16 C.2761 D.1672
14.算法是指( )
A.数学的计算公式
B.问题的精确描述
C.解决问题的方法和精确步骤
D.程序设计语言的语句序列
15.已知 nums 列表中含有 5 个不相同的数字,该流程图的输出结果可能是( )
A.1 B.111 C.011 D.001
16.若输入 16 和 12,输出结果是( )。
A.0 B.1 C.4 D.12
17.算法是解决问题的方法,以下不属于算法的描述方法的是( )
A.自然语言 B.流程图 C.结构图 D.伪代码
18.下列选项中哪个是算法的描述方法?( )
A.顺序法 B.流程图描述法 C.枚举法 D.列表法
19.某班级有n位学生,按学号(1到n)从小到大排队,每排m人,即第1排1~m,第2排m+1~2m,……,结合图示,则i(1≤i≤n)号同学位于( )
A.第r+1排,第c+1个 B.第c+1排,第r+1个 C.第r+1排,第c个 D.第c+1排,第r个
20.在解决问题的第一步中,我们主要关注的是( )
A.找到问题的解决方案 B.确定问题的具体内容和要求
C.设计出一个高效的算法 D.编写出完整的程序代码
21.在下方流程图中依次输入x的值为3、2、1、-1,最后一次该算法的输出结果n和s分别为( )
A.3,1 B.5,2 C.6,3 D.0,0
22.下列关于算法的叙述,正确的是( )
A.解题的步骤一定是无穷的 B.算法是解决问题的方法和步骤
C.算法可以没有输出项 D.算法是一定需要输入项
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题考查算法分析。
本题考查的是找次品问题的求解。
已知有27个小球,其中有一个异常小球重1.5g,其他小球重1g。
那么可以把27个小球分成三组,每组9个。
第一次称重:选择两组各9个的小球进行称重。
情况A:如果两边平衡,则说明这18个小球都是正常的,异常的小球一定在未被称重的那组9个里。
第二次称重:从未称重的9个小球中分成三组,每组3个,任选两组进行称重。
如果两边平衡,说明异常的小球在第三组(3个的组);
如果不平衡,说明异常的小球在较重的那一组。
第三次称重:从上面确定的那组3个小球中任选两个进行称重。
如果两边平衡,说明异常的小球是未被称重的那一个;
如果不平衡,较重的那一个就是异常的小球。
情况B:如果两边不平衡,则说明异常的小球一定在较重的9个里。
第二次称重:把这9个小球分成三组,每组3个,任选两组进行称重。
如果两边平衡,说明异常的小球在第三组(3个的组);
如果不平衡,说明异常的小球在较重的那一组。
第三次称重:从上面确定的那组3个小球中任选两个进行称重。
如果两边平衡,说明异常的小球是未被称重的那一个;
如果不平衡,较重的那一个就是异常的小球。
综上,利用天平一定能保证找出那个重1.5g的小球最少需要称3次。
故正确答案为:选项B。
2.A
【详解】本题考查算法相关内容。评估算法性能时,我们主要关注的是算法执行所需的时间和空间资源,即时间复杂度和空间复杂度。故本题答案是A选项。
3.B
【详解】本题考查算法。
输入:算法在执行时,有可能需要从外界获取数据,因此一个算法中必须有输入操作。在某些情况下,算法可以不需要显式的外部输入。故选项A错误。
算法可以用无限个步骤来实现:这个说法是错误的。算法的一个重要特性是有限性,即算法必须在有限步骤内完成。如果算法需要无限个步骤来执行,那么它就不是一个有效的算法。
设计的算法可以和文字一样存在不确定的结果:这个说法同样是错误的。算法是确定性的,给定相同的输入,算法应总是产生相同的输出。与文字或自然语言不同,算法不包含歧义或不确定性的表达。
故正确答案为:选项B。
4.C
【详解】本题考查算法分析。
k=1,k<=20控制输入20个数,当x>0时,即为正数时,累加x到s。统计i个数变量加1。最后输出i。故正确答案为:选项C。
5.C
【详解】本题考查流程图。A选项错误,求任意两个数的商首先需要判断除数是否为0,流程图中缺少该步骤;B选项错误,求一个数与自然数的商,该自然数并未给出;C选项正确,通过(首项+末项)×项数÷2来计算1到100的和。D选项错误,该流程图没有输出。故答案为:C。
6.C
【详解】本题主要考查算法流程图。菱形是条件判断框,平行四边形是数据输入/输出框,圆角矩形是开始/结束框,矩形是数据处理框(用于变量的计算与赋值)。故选C。
7.D
【详解】本题考查算法的特征。算法的有穷性是指一个算法必须保证执行有限步之后结束。故选D。
8.C
【详解】本题考查计算机解决问题的步骤。
在分析问题时,以下步骤的评估中,“确定问题的解决方案”通常不是最初分析阶段的一个必要步骤,而是分析过程的结果或后续行动的一部分。
* 确定问题的输入和输出:这是非常必要的,因为它帮助明确了问题的起始条件和期望的结果。
* 确定问题的约束条件:这也是一个关键步骤,因为它限定了解决问题的可行范围。
* 确定问题的背景信息:了解问题的背景对于全面、准确地理解问题至关重要。
而“确定问题的解决方案”通常是在分析了问题的输入、输出、约束条件和背景信息之后,通过逻辑推理、创造性思维或经验知识得出的。这个步骤是分析过程的产物,而不是分析过程本身的一个必要步骤。
因此,不是必要的步骤是“确定问题的解决方案”。故选C。
9.A
【详解】本题考查的是流程图相关知识。菱形是条件判断框,平行四边形是数据输入/输出框,圆角矩形是开始/结束框,矩形是数据处理框,故本题选A选项。
【点睛】
10.D
【详解】本题考查的是流程图。
第i次
1
2
3
4
5
a
1
3
5
7
9
b
0
1
7
13
19
第3次执行循环条件b<=13?时,b的值为7。故选项D正确。
11.D
【详解】本题考查的是算法评价。算法正确性是对任意一个合法的输入经过有限步执行之后算法应给出正确的结果。算法正确性证明包括两个方面:①证明关于输入与输出之关系的命题是正确的;②证明算法中的公式及计算方法是正确的。“算法首先必须是正确的,即对于任意一组输入,包括合理的输入与不合理的输入,总能得到预期的输出”属于评价算法的正确性。故本题应选D。
12.C
【详解】本题考查的是流程图识读。s=0,k=1,a=2,第一次循环,满足a<16,执行s=s+k*a=2,k=-k=-1,a=2*a=4;第二次循环,满足a<16,执行s=s+k*a=-2,k=-k=1,a=2*a=8;第三次循环,满足a<16,执行s=s+k*a=6,k=-k=-1,a=2*a=16;第四次循环,不满足a<16,循环结束。该流程执行后,变量k的值是-1,变量a的值是16,变量s的值是6,该流程完整执行后,“a<16?”共执行了4次,故本题选C选项。
13.A
【详解】本题考查流程图。循环结构中,%是求余数的作用,//是整除的作用。第一次循环,b=72,c=c+b=72,第二次循环,b=16,c=c+b=88,第三次循环,不满足判断条件,循环结束,最终c的值为88。故选A。
14.C
【详解】本题考查的是算法的描述。算法是利用计算机解决问题的处理步骤,简而言之,算法就是解决问题的步骤,故本题选C选项。
15.D
【详解】本题考查流程图。初始时low为0,high为列表长度减1。在循环中,通过计算中间索引mid,比较nums[mid]与nums[high]的大小。如果nums[mid]<nums[high],则将high更新为mid,并在res中添加“0”;否则将low更新为mid+1,并添加“1”。由于nums中含有5个不相同数字,在进行二分查找过程中,根据数字大小关系会不断更新low和high,从而导致res中形成不同的“0”和“1”组合,所以输出结果可能是各种由“0”和“1”组成的字符串。若nums=[2,1,3,5,4],则程序输出res的值为001。故答案为:D。
16.C
【详解】本题考查的是流程图识读。阅读流程图可知,这是采用辗转相除法求最大公约数。16 和 12的最大公约数是4,故本题应选C。
17.C
【详解】本题考查算法的描述方法。常见的算法描述方法有:自然语言、流程图、伪代码。结构图不属于算法描述方法,故选C。
18.B
【详解】本题考查算法相关内容。算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。算法的描述有流程图、N-S图、自然语言、伪代码和程序设计语言。故本题答案是B选项。
19.C
【详解】本题考查流程图。由程序可知,初始化r=0,若i>m成立,此时r=r+1,i=i-m;反之,则结束循环。又因为r的初始值为0,因此r+1表示其排数,而c表示在该排中第几个。故答案为:C。
20.B
【详解】本题考查计算机解决问题的步骤。在分析问题的阶段,我们主要任务是明确问题的定义、范围和约束条件。故答案为:B。
21.C
【详解】本题考查Python程序设计相关内容。
x输入3,3>0,执行s=0+3=3,n=0+1=1。
x输入2,2>0,执行s=3+2=5,n=1+1=2。
x输入1,1>0,执行s=5+1=6,n=2+1=3。
x输入-1,-1<0,则满足条件,输出n和s的值:6,3。
故本题答案是C选项。
22.B
【详解】本题考查的是算法的描述及特征。解题的步骤一定是有限的;算法就是解决问题的方法和步骤;算法至少要有一个输出项;算法是可以没有输入项。故选B。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$