第10课生活和算法
一、选择题
1.下列关于描述算法的叙述中,正确的是( )
A.用自然语言描述算法不容易产生歧义
B.对于同一个问题,可以使用不同算法
C.使用流程图无法描述循环算法
D.用伪代码描述算法就是用某种程序设计语言来编写代码
2.图形符号“ ”在算法描述流程图中表示( )
A.算法的开始或结束 B.输入/输出操作
C.处理或运算的功能 D.判断条件是否满足需求
3.某旅游景点门票全票价格为 60 元,购买儿童票的算法流程图如图所示。
现有下列身高的六位儿童:
①1.1 米 ②1.2 米 ③1.3 米 ④1.4 米 ⑤1.5 米 ⑥1.6 米
购买该景点门票的总费用为( )
A.120 元 B.150 元 C.180 元 D.210 元
4.用智能电饭煲烧饭时,当锅底的温度传感器每隔一定时间(比如200亳秒)将温度数据传送到微处理器,一旦发现温度达到103℃,微处理器就会控制继电器释放触点,让电饭煲停止烧饭,转入低温保温模式。某个时刻智能电饭煲工作的算法流程图,如图所示,该流程图所采用的算法控制结构是( )
A.顺序、分支 B.分支、循环 C.顺序、循环 D.顺序、分支、循环
5.大型超市为了提高结账收银的效率,引入“超市自动收银系统”,其结账子系统具体的算法设计如下:
①输出结算清单和总金额sum
②将价格price进行累加并存储到sum
③若按结算键,则转到①,否则转到⑤
④输出商品的价格price及当前应付金额sum
⑤通过扫码仪扫描条形码,输入商品编码code
⑥在数据库中找出code对应的商品名称name和价格price
能够实现自动结账算法的正确顺序是( )
A.⑤④③⑥②① B.⑤⑥②④③① C.⑤③⑥②④① D.⑤③②①④⑥
6.下列关于算法与算法特征的说法,错误的是( )
A.算法是解决问题或完成任务的一系列步骤
B.算法在执行时,必须输入至少一个数据
C.计算“斐波那契数列的前m个元素的过程”符合有穷性的特征
D.用“辗转相除法”计算正整数m和n的最大公约数的方法分步骤具体描述就是算法
7.某食品连锁店5位顾客贵宾消费卡的积分依次为900、512、613、700、810,若采用选择排序算法对其进行从小到大排序,如下表,第二趟的排序结果是( )。
原始数据 900 512 613 700 810
第一趟 512 900 613 700 810
第二趟
第三趟 512 613 700 900 810
第四趟 512 613 700 810 900
A.512 613 700 900 810
B.512 810 613 900 700
C.512 900 613 700 810
D.512 613 900 700 810
8.计算某篮球队上场队员平均年龄的部分算法如图所示,其中:c用来记录已输入球员的人数,sum存储球员年龄的和,d存储键盘输入的球员年龄值,若输入d为0程序结束。则空白处①②③应该填入的是( )
A.sum←sum+d c=c+1 sum/c B.sum←sum+c d=d+1 sum/c
C.d=d+1 sum←sum+c sum/(c-1) D.c=c+1 sum←sum+d sum/(c-1)
9.采用选择排序算法进行两趟后的数据序列为“2,3,8,4,9”,则原始序列不可能为( )
A.2,4,8,3,9 B.9,2,8,4,3 C.3,9,8,4,2 D.8,4,9,2,3
10.下列有关算法的与程序的关系叙述中正确的是( )
A.算法是对程序的描述 B.算法决定程序 ,是程序设计的核心
C.算法是唯一的,程序可以多种 D.程序决定算法,是算法设计的核心
11.现有18枚硬币,18枚硬币中有一个是伪造的,并且那个伪造的硬币比真的硬币要轻。有一台用来比较两组硬币重量的仪器,使用递归及分治法设计一个算法,找出那枚伪造的硬币。阅读下列程序代码。
def check3(a,right,left):
b=(left-right+1)//3
if right==left:
index=right+1
return index
elif right+1==left:
if a[right] < a[left]:
index=right+1
return index
else:
index=left+1
return index
else:
if sum(a[right:right+b]) == sum(a[right+b:right+2*b]):
return check3(a,right+2*b,left)
elif sum(a[right:right+b]) > sum(a[right+b:right+2*b]):
return check3(a,right+b,right+2*b-1)
else:
return check3(a,right,right+b-1)
a = [1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1]
index1=0
right0 = 0
index1= check3(a,right0,len(a))
print("你要找的假币在第",index1,"个位置")
input("运行完毕,请按回车键退出...")
假设列表a中,0表示伪造的硬币,下列说法正确的是( )
A.此程序递归部分为三分法递归查找伪造的硬币
B.sum(a[right:right+b])==sum(a[right+b:right+2*b])表示第二组的重量与第三组重量相同
C.此程序递归部分为二分法递归查找伪造的硬币
D.以上都不对
12.二分查找又叫折半查找,该方法主要将数列有序排列,采用跳跃式的方式查找数据。二分搜索算法是利用( )实现的算法
A.分治法 B.动态规划 C.贪心法 D.回溯法
13.一个正确的算法因该具有5个特性,除输入项、输出项特性外,另外3个特性是( )
A.确切性、可行性、有穷性 B.易读性、确切性、有效性
C.有穷性、稳定性、确切性 D.可行性、易读性、有穷性
14.二分查找算法是利用( )实现的算法。
A.分治策略 B.迭代法 C.贪心法 D.回溯法
15.下列适合使用枚举算法解决的是( )。
A.判断2021年是否为闰年 B.计算两个电阻的并联值
C.计算本次数学考试班级平均分 D.找出100以内所有的素数
16.采用冒泡排序算法对某数据序列进行排序,第一轮排序后的结果是“2,8,6,3,5,7,9”,则第二轮排序需要交换的次数为( )
A.4 次或 2 次 B.4 次或 3 次 C.3 次或 1 次 D.2 次或 1 次
二、填空题
17.在《几何原本》一书中,古代数学家欧几里得提出了“辗转相除法”,利用这个方法可以求出任意两个正整数的最大公约数。具体步骤如下:
(1)输入两个正整数m和n
(2)以m除以n,得到余数r
(3)若r=0,则输出n的值,算法结束;否则执行步骤(4)
(4)令m←n,n←x,并返回步骤(2)
其算法可用以下流程图来描述:
请补充完成流程图___________(填写正确答案字母)
A. B. C. D.
0
18.用智能电饭煲烧饭时,在微处理器的控制下,当饭烧熟时,智能电饭煲会自动停止高热烧饭,转为低热保温。这是因为锅底的温度传感器每隔一定时间(比如200毫秒)会将温度数据传送给微处理器,如果温度低于103℃,则继续高热烧板,一旦发现温度达到103℃(包含103℃,此时锅中水被蒸发完),微处理器就会控制继电器释放触点,让电饭煲停止烧饭,转入低热保温模式。根据以上描述回答下列问题:
(1)右图所示的流程图描述了某个时刻智能电饭煲根据输入的温度数据进行判断、处理的算法,则在流程图中①标记处应该填写_______。
(2)在这个系统中温度传感器所起的作用是________。
19.小强想要了解各省女排队员的平均年龄,为此设计算法,部分流程图如图所示。请将流程图①②处补充完整。①(_____) ②(_____)
参考答案
1.B
【详解】
本题主要考查算法描述。用自然语言描述算法容易产生歧义;对于同一个问题,可以使用不同算法;使用流程图可以描述循环算法;用代码描述算法就是用某种程序设计语言来编写代码;伪代码(Pseudocode)是一种非正式的,类似于英语结构的,用于描述模块结构图的语言,故本题选B选项。
2.C
【详解】
本题主要考查算法流程图。菱形是条件判断框,平行四边形是数据输入/输出框,圆角矩形是开始/结束框,矩形是数据处理框,故本题选C选项。
3.C
【详解】
本题主要考查算法流程图的执行。分析流程图可知,身高h<1.2米,免票,1.2<=h<=1.5半价票,h>1.5全票,故购买该景点门票的总费用为0+30+30+30+30+60=180元,故本题选C选项。
4.C
【详解】
本题主要考查算法流程图。由图可知,该流程图所采用的算法控制结构是顺序、循环,循环条件是x是否大于等于103摄氏度,故本题选C选项。
5.B
【详解】
本题主要考查信息系统的应用。实现自动结账算法的正确顺序是:首先通过扫码仪扫描条形码,输入商品编码code;在数据库中找出code对应的商品名称name和价格price;将价格price进行累加并存储到sum;输出商品的价格price及当前应付金额sum;若按结算键,则转到①,否则转到⑤;输出结算清单和总金额sum,故本题选B选项。
6.B
【详解】
本题主要考查算法与算法特征。算法是解决问题或完成任务的一系列步骤;算法在执行时,可以没有输入,但必须有输出;计算“斐波那契数列的前m个元素的过程”符合有穷性的特征;用“辗转相除法”计算正整数m和n的最大公约数的方法分步骤具体描述就是算法,故本题选B选项。
7.D
【详解】
本题主要考查冒泡排序算法。第一趟是比较900和512,第二趟比较900和613,并交换顺序实现升序排序,故第二趟的排序结果是512 613 900 700 810,故本题选D选项。
8.D
【详解】
本题考查的是算法的流程图描述。计算已输入球员的人数c(初始值为1),每输入一次c←c+1;计算球员年龄的和sum,d用来存储从键盘输入的球员年龄值,每次运算sum←sum +d;前两步计算之间并不相关,因此①②的位置可以互换。③平均年龄=球员年龄的和sum/已输入球员的人数c,由于c的初始值为1,即判断之后的步骤是为了得到下一次循环的c值,当循环结束,没有下一次循环时,c比正常值多了1。因此sum/(c - 1)。综上所述,本题正确答案为D。
9.D
【详解】
本题主要考查选择排序算法。选择排序算法:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾,以此类推,直到全部待排序的数据元素的个数为零。由题干进行两趟后的数据序列可知进行的是升序排序。选项A、B、C进行两趟后的数据序列为“2,3,8,4,9”,选项D进行两趟后的数据序列为“2,3,9,8,4”,故本题选D选项。
10.B
【详解】
本题主要考查算法的描述。算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。算法决定程序 ,是程序设计的核心,算法不是唯一的,故本题选B选项。
11.A
【详解】
本题主要考查递归及分治算法。分析程序可知, b=(left-right+1)//3,此程序递归部分为三分法递归查找伪造的硬币;sum(a[right:right+b])==sum(a[right+b:right+2*b])表示第一组的重量与第二组重量相同,故本题选A选项。
12.B
【详解】
本题主要考查二分查找算法。动态规划算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法。二分搜索算法根据搜索值会动态规划缩小搜索范围,故本题选B选项。
13.A
【详解】
本题主要考查算法的特征。一个正确的算法因该具有5个特性,除输入项、输出项特性外,另外3个特性是确切性、可行性、有穷性,故本题选A选项。
14.A
【详解】
本题主要考查二分查找算法。分治策略的典型应用就是二分查找,也叫折半查找。算法的思想就是对一个有序的数组查找,搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半,故本题选A选项。
15.D
【详解】
本题主要考查枚举算法。找出100以内所有的素数可以通过循环结构枚举所有的可能来求解,故本题选D选项。
16.A
【详解】
本题主要考查冒泡排序算法。由第一轮的排序结果可知是升序排序,第二轮如果从左边开始比较,则8需要依次与6、3、5、7进行交换,交换次数是4次;第二轮如果从右边开始比较,则3和6需要交换一次,8和3需要交换一次,交换次数是2次,故本题选A选项。
17.C
【详解】
本题主要考查算法流程图的执行。分析题干,首先输入两个正整数m和n,对应与流程图中的平行四边形框;其次是以m除以n,得到余数r,应该对应的是矩形处理框,接着是用菱形判断框判断r的值是否为0,故本题选C选项。
18.x<103℃ 输入锅底当前的温度值x
【详解】
本题考查的是流程图相关知识。(1)依据题干“一旦发现温度达到103℃(包含103℃,此时锅中水被蒸发完),微处理器就会控制继电器释放触点,让电饭煲停止烧饭,转入低热保温模式。”,故①标记处应该填写x<103℃。(2)在这个系统中温度传感器所起的作用是:输入锅底当前的温度值x。
19.①i←i+1 ②ave←sum/(i-1)
【详解】
本题主要考查算法流程图。分析流程图可知,一共n个球员,变量y是球员年龄,当y不等于0且i小于等于n时,循环将y加到sum中,用变量i控制球员个数,故①填i←i+1;不满足循环条件时,输出平均年龄,最后一次循环条件不满足,即球员人数是i-1,故②填ave=ave←sum/(i-1)。