内容正文:
2.2 算法的概念及描述
一、选择题
1.以下哪个算法不是基于贪心策略?( )
A.Kruskal算法 B.Prim算法 C.Dijkstra算法 D.Floyd算法
2.流程图描述的算法功能是( )
A.求1+2+4+7+11+…前10项的和 B.求1+2+4+7+11+…前9项的和
C.求1+2+3+4+5+…前10项的和 D.求1+2+3+4+5+…前9项的和
3.如下四个流程图中,存在两个以上分支结构但不属于分支结构嵌套的是( )
A.A B.B C.C D.D
4.如图所示算法,分别输入学生成绩score和等级grade:57和“C”,70和“C+”时,输出结果分别是( )
A.57、70 B.“请努力”、“请努力” C.57、“请努力” D.“请努力”、70
5.如图所示算法,对列表a执行操作,运行结果是( )
A.1 B.7 C.10 D.13
6.某算法部分流程图如右图所示。执行这部分流程,输入s、i、k的值分别为0、0、1,输出s的值是( )
A.-2 B.-1 C.0 D.1
7.某Python解决问题的算法流程图如图所示,执行这部分流程,输出a的值是( )
A.25 B.15 C.5 D.0
8.某小区开通了刷脸进门方式:其算法中验证对象是否正确的代码如下所示,则以下流程图与内容匹配的是( )
刷脸结果:识别为1,否则为其他
if (face==1):
print("面部识别成功,门已开")
else:
print("面部识别错误,无法开门")
A. B. C. D.
9.以下流程图用于表示分支结构的是( )
A. B. C. D.
10.计算 s=0+2+4+…+100 的部分流程图如图所示
下列不能正确计算s的是( )
A. B. C. D.
11.某玩家和计算机进行石头剪刀布游戏,规则为剪刀胜布,石头胜剪刀,布胜石头,相同则平局,胜局多者赢。用g表示玩家,c表示计算机,数字 0 表示石头,1表示剪刀,2表示布。若玩家依次输入数字“0,1,2,0,1”,结果为玩家赢,则计算机依次产生的数字可能是( )
A.1,1,2,2,0 B.2,0,0,1,2
C.1,2,1,2,1 D.0,0,0,2,1
12.智能时代,算法已经广泛应用于各领域。例如,楼宇电梯通常按照一定的算法响应用户请求,合理停靠到相应的楼层。下列关于算法的表述中不恰当的是( )
A.一个算法可以有0个或多个输出
B.算法的每个步骤都具有确定的含义,没有歧义
C.我们能够利用算法思想解决实际问题,提高学习和生活效率
D.了解算法的基本设计方法可以帮助我们了解身边数字化工具的特征
13.下列关于算法的基本控制结构的说法,不正确的是( )
A.顺序结构按序依次执行程序语句
B.分支结构也称为选择结构
C.循环结构内语句被重复执行的次数一定是已知的
D.分支结构中某条执行路径中的语句可以不被执行
14.某算法的流程图如图所示。执行这部分流程,当输入t的值为8时,则最后输出n的值是( )
A.2 B.3 C.4 D.5
15.“洗衣机的洗衣流程”情境问题,洗衣机模拟人洗衣的过程,自动执行洗衣程序,节省了大量的人力,这主要归功于由算法控制的机器设备。算法指在有限步骤内解决问题所使用的方法,从下图2的“洗涤算法”中,可以看出算法具有的特征是( )
图1 图2
A.无穷性 B.单一性 C.确定性 D.繁琐性
16.某算法的部分流程图如题图所示。执行这部分流程,若输入s的值为“qiantang”,则输出的c、i值分别为( )
A."a",2 B."a",3 C."a",5 D."t",4
17.在用“更相减损术”求最大公约数的过程中,输入的是两个正整数。这说明算法具有( )
A.有输入 B.有输出 C.有穷性 D.确定性
二、填空题
18.小明想编写程序实现以下功能:输入正整数n,并计算1到n的累加值,即1+2+…+n。程序流程图如图所示
请根据题意,补全流程图的① 和② 处。
19.如图所示算法,输出结果是 。
20.若输入n的值为4,流程图描述的算法执行结果是 。
21.在《数据与计算》中,算法的三种基本控制结构包括顺序结构、选择结构和循环结构,其中循环结构允许算法重复执行特定任务,直到满足某个 条件。
22.以下流程图的运行结果是 。
23.为了更好地了解某地的水质情况,科研人员采集了该地各监测点当天的水质数据。数据中包含了各监测点的水质类别、水温(℃)、pH、溶解氧(mg/L)、高锰酸盐指数(mg/L)。通过数字化学习,小申了解到水质类别从高到低分为1-5类,级别最高(质量最好)为1,级别最低(质量最差)为5。小申采集了某监测点的水质数据,部分数据如表所示。小申设计了一个算法,统计水质类别为1的天数。请选择合适的框图,将其拖至右侧流程图的虚线框内,将算法设计完整。
日期
水质类别
pH
溶解氧
高锰酸盐指数
2021/1/1
3
7.54
5.39
4.5
2021/1/2
3
7.47
6.42
4.85
2021/1/3
2
7.8
6.52
1.52
2021/1/4
1
6.5
8.24
1.36
2021/1/5
3
7.56
5.21
4.74
2021/1/6
2
7.27
7.08
1.03
2021/1/7
2
6.87
6.87
1.03
2021/1/8
2
6.59
6.59
1.94
2021/1/9
1
7.76
7.76
3.36
① ②
三、判断题
24.在用乘车卡乘车时,当卡内余额不足,系统会给出提示信息,请乘客投币。在对这一过程设计算法时,必须要用到算法的选择结构。( )
25.计算机算法的三个基本控制结构是顺序结构、选择结构和循环结构,它们可以解决所有算法问题。( )
26.一个算法至少有一个输入项。( )
27.算法的三种基本控制结构是分支结构、循环结构和模块结构。( )
28.解决同样一个问题,算法不管怎样设计,写出的程序运行出结果的时间效率都是一样的。( )
四、操作题
29.【算法探究】以下是一个用于计算求解1+1/2+1/3+1/4+1/5+......+1/99的算法流程图,请你分析此流程图算法后,修改编号①~⑤的内容,完成求解1*1/2*2/3*3/4*4/5*......*99/100的算法。
①
②
③
④
⑤
30.某班纪律管理中规定,每周个人积分基本分为60分,一周内违纪次数未超过四次,在本周的个人积分中减3分,违纪次数在四次及四次以上时,则在本周的个人积分中减10分。如图所示是该班违纪扣分的算法流程图(X表示违纪次数,Y表示个人积分),请根据要求回答问题。
(1)请根据题目中的算法描述,在流程图中①、②、③处填写正确的Python表达式或语句,完善算法。
(2)若某同学本周违纪4次,那么应该按流程中的哪一条语句来计算他本周的个人积分?
(3)此流程图中的主要算法结构是什么?
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.D
【详解】本题考查算法的描述。Kruskal算法、Prim算法和Dijkstra算法都是基于贪心策略的算法。Kruskal算法用于求解最小生成树,Prim算法也是用于求解最小生成树,而Dijkstra算法用于求解单源最短路径问题。Floyd算法则是用于求解所有顶点对之间的最短路径问题,它采用的是动态规划的策略,而不是贪心策略。故选D。
2.A
【详解】本题考查算法分析。
a初始化为1,i初始化为0。a=a+i,即当前项的值a是前一项加上i,每次循环累加a到s,i=i+1。当i>=10停止循环。即累加前10项。故正确答案为:选项A。
3.C
【详解】本题考查算法流程图相关内容。A选项,循环结构中嵌套一个分支结构;B选项,存在两个分支结构且属于分支结构嵌套;C选项,存在两个以上分支结构但不属于分支结构嵌套;D选项,存在两个分支结构且属于分支结构嵌套。故本题答案是C选项。
4.D
【详解】本题考查算法流程图相关内容。分析流程图,学生成绩score和等级grade:57和“C”,判断条件成立,执行输出“请努力”操作;学生成绩score和等级grade:70和“C+”,判断条件不成立,执行输出成绩score操作,即:70。故本题答案是D选项。
5.B
【详解】本题考查流程图。程序运行过程如下。最终s的值为8-1=7。故答案为:B。
k
i
a
0
-3
a[-3]=1
1
-2
a[-2]=2
2
-1
a[-1]=3
3
0
a[0]=5
4
1
a[1]=6
5
2
a[2]=7
6
3
a[3]=8
7
4
a[4]=9
6.C
【详解】本题考查程序分析。每次循环t*k累加上次运行的s。故运行结果如下:
初始化s= 0
i= 0 k= 1 t= 0 s= 0
i= 2 k= -1 t= 2 s= -2
i= 4 k= 1 t= 1 s= -1
i= 6 k= -1 t= 0 s= -1
i= 8 k= 1 t= 2 s= 1
i= 10 k= -1 t= 1 s= 0
输出s的最后结果为0。
故正确答案为:选项C。
7.C
【详解】本题考查Python程序。程序运行过程如下,由此可知,程序最终输出a的值为5。故答案为:C。
a
b
c
45
25
20
25
20
5
20
5
15
15
5
10
10
5
5
5
5
0
8.B
【详解】本题考查Python分支结构及流程图的应用。菱形是条件判断框,平行四边形是数据输入/输出框,圆角矩形是开始/结束框,矩形是数据处理框。故选B。
9.B
【详解】本题考查算法流程图。选项依次是顺序结构、分支结构、循环结构、循环结构。故选B。
10.D
【详解】本题考查算法流程图相关内容。题目要求计算0-100内偶数和,ABC选项均可以实现题目要求。D选项,分析该流程图,其循环过程是计算1-100内的所有数之和,循环结束后将结果s除以2,不是0-100内偶数和,不符合题目要求。故本题答案是D选项。
11.B
【详解】本题考查算法设计相关内容。由剪刀布游戏规则可知,游戏输赢情况如图所示:。若玩家依次输入数字“0,1,2,0,1”,计算机产生的数字若为A选项(1,1,2,2,0),则玩家1赢,2输,2平,结果为玩家输。若为B选项(2,0,0,1,2),则玩家3赢,2输,结果为玩家赢。若为C选项(1,2,1,2,1),则玩家2赢,2输,1平,结果为平。若为D选项(0,0,0,2,1),则玩家1赢,2输,2平,结果为玩家输。四个选项中,只有B选项,才可以使玩家赢。故本题答案是B选项。
12.A
【详解】本题考查算法相关内容。算法的特性有:有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出。A选项说法错误。BCD选项说法正确。故本题答案是A选项。
13.C
【详解】本题考查算法相关内容。算法有三种基本控制机构:顺序结构、分支结构、循环结构。顺序结构按序依次执行程序语句;分支结构也称为选择结构,分支结构中某条执行路径中的语句可以不被执行;循环结构内语句被重复执行的次数可以是已知的,也可以是未知的,只要符合有穷性即可。故本题答案为C选项。
14.B
【详解】本题考查算法流程图相关内容。分析流程图可知,当输入t值为8时,t==1不成立,第一次进入循环:t为偶数成立,执行t=t//2,t值为4,执行n=n+1,n值为1;此时,t值为4,t==1不成立,第二次进入循环:t为偶数成立,执行t=t//2,t值为2,执行n=n+1,n值为2;此时,t值为2,t==1不成立,第三次进入循环:t为偶数成立,执行t=t//2,t值为1,执行n=n+1,n值为3;此时,t值为1,t==1成立,不再进入循环,输出n的值,即3。故本题答案是B选项。
15.C
【详解】本题考查的是算法特征。一个算法应该具有以下五个重要的特征:1、有穷性:一个算法必须保证执行有限步之后结束;2、确切性:算法的每一步骤必须有确切的定义;3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果,没有输出的算法是毫无意义的;5、可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。从图中可知,算法具有确定性。故本题应选C。
16.B
【详解】本题考查算法描述相关内容。分析流程图可知,该结构为循环结构,初始状态,c='q',i=1,n=8。判断循环条件i<n且c>s[1](即'i'),成立,第一次进入循环执行:c=s[1]='i';i=i+1=2;判断循环条件i<n且c>s[2](即'a'),成立,第二次进入循环执行:c=s[2]='a';i=i+1=3;判断循环条件,i<n成立,但c='a'不大于s[3](即'n'),不成立,循环结束。此时,i=3,c='a'。故本题答案是B选项。
17.A
【详解】本题主要考查算法的特征。在用“更相减损术”求最大公约数的过程中,输入的是两个正整数。这说明算法具有输入性,故本题选A选项。
18. s=0 s=s+i
【详解】本题考查算法设计。①计算1到n的累加值,初始化累加和变量s=0。②累加遍历出的值i到s,故s=s+i。
19.4
【详解】本题考查算法分析。
该算法功能:初始化i=10,s=32。依次s累减i值,i值每次更新,i=i-2,循环判断条件直到i值小于等于2时,停止循环,输出s。即s=32-10-8-6-4=4。故正确答案为:4。
20.256
【详解】本题考查程序分析。
该程序功能是求出输入的数n的n次方。输入的数为:4,则结果为:4*4*4*4=256。故正确答案为:256。
21.终止
【详解】本题考查算法结构。在《数据与计算》中,算法的三种基本控制结构被清晰地阐述为顺序结构、选择结构和循环结构。其中,循环结构作为其中的一种,允许算法根据一定的条件重复执行特定任务。
定义:循环结构是指算法中需要重复执行某个或某些操作直到满足特定条件才终止的一种控制结构。
重复性:循环结构中的代码块会按照指定的次数或条件进行重复执行。
条件性:循环结构中的重复执行不是无限的,它依赖于一个或多个条件,当这些条件满足时,循环才会终止。
高效性:当需要处理大量重复数据时,循环结构可以显著提高算法的执行效率。
故正确答案填写终止。
22.24,40
【详解】本题考查算法流程图相关内容。分析流程图可知,该流程图描述的是顺序结构,执行顺序:(1)a1=8,a2=16(a1、a2获得初值);(2)a1=a1+a2=8+16=24,a1值为24;(3)a2=a1+a2=24+16=40,a2的值为40。故本题答案是:24,40。
23.
【详解】本题考查的是流程图识读。依次读取水质类别数据,如果还有未读取的数据,则继续读取下一个数据,对读取的数据进行判断,如果水质类别为1,则计数cnt加1。故①为: ②为:
24.正确
【详解】本题考查的是算法结构。选择结构会依据条件选择其中一个分支执行。在用乘车卡乘车时,当卡内余额不足,系统会给出提示信息,请乘客投币。在对这一过程设计算法时,必须要用到算法的选择结构。说法正确。
25.正确
【详解】本题考查算法结构。顺序结构、选择结构和循环结构是算法的三个基本控制结构。故正确答案为正确。
26.错误
【详解】本题考查的知识点是算法的特征。算法作为能确实解决某个问题的策略,具有五个方面的重要特征:(1)有穷性。(2)确定性。(3)数据输入。一个算法必须有零个或多个数据输入,以刻画运算对象的初始情况。(4)数据输出。一个算法有一个或多个数据输出,以反映对输入数据加工后的结果,没有输出的算法是毫无意义的。(5)可行性。一个算法可以没有输入项。故答案为错误。
27.错误
【详解】本题主要考查算法的基本结构。算法的三种基本结构是:顺序结构、分支结构和循环结构,故表述错误。
28.错误
【详解】本题考查算法的描述。解决同样一个问题,算法不一样,写出的程序运行出结果的时间效率也是不一样的,故表述错误。
29. s=1 n=1 n<=99 s=s*n/(n+1) n=n+1
【详解】本题考查算法。
(1)原算法是计算连续分数相加,修改后是计算连续分数相乘。所以①处应初始化为1(原来为0),故修改为s=1。
(2)②处将n初始化为1(与原算法相同)。
(3)③处条件是n小于等于99(与原算法相同)。
(4)④处应改为s乘上n除以(n+1)赋值给s,以实现连续分数相乘的计算,故修改为s=s*n/(n+1)。
(5)⑤处n加1向后迭代(与原算法相同)。
30.(1)①Y=60,②X>=4,③Y=Y-3
(2)Y=Y-10
(3)选择结构
【详解】本题考查的是算法的描述。
(1)①处,开始初始化个人积分基本分为60分,故此处为Y=60;接着对违纪次数进行判断,如果违纪次数在四次及四次以上时,则在本周的个人积分中减10分,否则在本周的个人积分中减3分,故②处为:X>=4,③处为:Y=Y-3
(2)如果违纪次数在四次及四次以上时,则在本周的个人积分中减10分,故执行Y=Y-10语句。
(3)对不同违纪次数,选择不同的个人积分计算方法,故该流程图中的主要算法结构是选择结构(分支结构)。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$