内容正文:
第4单元 计算与问题解决
一、选择题
1.人们利用计算机解决问题的基本过程为( )
①设计算法 ②编写程序 ③分析问题 ④调试运行程序
A.①②③④ B.③①②④ C.①②④③ D.④①②③
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.5 3 B.3 5 C.2 5 D.1 3
4.下列关于算法的说法正确的是( )
A.可以用枚举算法解决“找出所有的素数”问题。
B.在屏幕上输出“helloworld!”,这个任务不需要用算法解决
C.“鸡兔同笼”问题,用解析算法和枚举算法都可以解决
D.算法必须要有输入,如“鸡兔同笼”问题必须输入头和脚的数量
5.某算法的部分流程图如图所示,执行该流程后输出结果为( )
A.1,-2,5 B.1,3,5 C.-1,5,10 D.1,5,9
6.用流程图描述算法时,矩形框表示的是( )
A.输入/输出 B.判断 C.处理 D.开始/结束
7.某算法的部分流程图如图所示,下列表达该流程图的程序段中,不正确的是( )
A. B. C. D.
8.某算法的部分流程图如图所示,若t的值为9,列表a的值为[1,2,4,5,6,7,9,10], n=8,执行这部分流程后,输出k的值和i的值分别为( )
A.2 3 B.3 3 C.2 2 D.3 2
9.某算法的部分流程图如图所示,若n的值为6,数组元素a[0]至a[n-1]依次存放2,0,1,0,0,1。执行这部分流程后,输出f的值为( )
A.1 B.2 C.3 D.4
10.流程图是算法的一种图形化表示方法,其中菱形框表示( )
A.开始/结束 B.处理 C.输入/输出 D.判断
11.用于求变量s值的算法如下:
①变量s的初值是0,变量n的初值是1;②若变量n的值大于100,则转到步骤⑤;
③;④n的值增加1,转到步骤②;⑤输出s的值;⑥结束。
下列数学表达式中,其计算结果与上述算法执行后变量s的值相等的是( )
A. B.
C. D.
12.“输出所有正奇数”不符合下列算法特征中的( )
A.有穷性 B.可行性 C.确定性 D.时效性
13.下列关于算法的特征描述不正确的是( )
A.有穷性:算法必须在有限步之内结束 B.确定性:算法的每一步必须确切的定义
C.输入:算法必须至少有一个输入 D.输出:算法必须至少有一个输出
14.在求一元二次方程实数根的算法中,若方程不存在实数根,则输出“方程无实数根”,否则输出该方程的根。这一要求主要体现了算法特征中的( )
A.输出项 B.有穷性 C.输入项 D.可行性
15.下列关于算法的叙述,正确的是( )
A.有穷性是算法的基本特征之一 B.解决一个问题的算法只有一种
C.可行性不属于算法基本特征 D.算法对程序设计没有任何作用
16.流程图中表示判断的是( )
A.矩形框 B.平行四边形 C.圆形框 D.菱形框
二、填空题
17.在非数值计算中, 算法常用于求解具有最优子结构特性的问题。
18.在软件开发中, 是确保软件满足用户需求的过程。
19.如图所示算法,有一数列:1、2、2、4、8、32、256…求这个数列的第n(n>=3)项,则空白横线处用a、b、c组成一个表达式,应填 。
20.若输入n的值为4,流程图描述的算法执行结果是 。
21.描述算法可以有多种方法,比如可以使用自然语言或 进行描述。
三、判断题
22.算法只能用自然语言来描述。( )
23.计算机无法解决“打印所有偶数”的问题,其主要原因是解决该问题的算法违背了算法特征中的有穷性。( )
24.算法是解决问题的方法,它必须在有限步骤内完成,并且结果必须是确定的。 ( )
25.算法在程序设计中可有可无,它不会影响程序设计的效率。( )
26.在计算机中算法执行的每一步都有确定的含义,不会出现二义性。( )
四、操作题
27.【算法探究】以下是一个用于计算求解1+1/2+1/3+1/4+1/5+......+1/99的算法流程图,请你分析此流程图算法后,修改编号①~⑤的内容,完成求解1*1/2*2/3*3/4*4/5*......*99/100的算法。
①
②
③
④
⑤
28.以下流程图是一个算法的描述,该算法是对A、B值进行判断,如果A不大于B,则A与B的值互换,最后输出A,B的值。
(1)根据题目中对算法的描述,则流程图中①处填写 。
(2)如果用Python语言实现“A、B的值互换”,则应该写为 。
(3)如果用Python语言实现“输出A,B的值”,则应该写为 。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题考查算法。
首先,③分析问题是解决问题的第一步。在着手解决任何问题之前,我们都需要先理解问题的本质、要求以及可能涉及的范围和条件。这是确定后续步骤和解决方案的基础。接下来,①设计算法。在理解了问题之后,我们需要设计一种或多种算法来解决问题。算法是解决问题的详细步骤或方法,它规定了解决问题的操作顺序和规则。然后,②编写程序。设计好算法之后,我们需要将这些算法用计算机能够理解的语言(即编程语言)编写成程序。程序是算法的具体实现,它告诉计算机如何按照我们的设计去执行操作。最后,④调试运行程序。程序编写完成后,我们需要对其进行调试,以确保它能够按照预期的方式运行并解决问题。调试过程中可能会发现程序中的错误或不足,需要进行修改和优化。调试完成后,我们就可以运行程序并得到结果了。故正确答案为:选项B。
2.A
【详解】本题考查算法分析。
a初始化为1,i初始化为0。a=a+i,即当前项的值a是前一项加上i,每次循环累加a到s,i=i+1。当i>=10停止循环。即累加前10项。故正确答案为:选项A。
3.B
【详解】本题考查流程图。程序运行过程如下。因此,最终输出k的值为3,a的值为5。故答案为:B。
k
a
1
1
2
3
3
5
4.C
【详解】本题考查算法。
A可以用枚举算法解决“找出所有的素数”问题。
这个说法不正确。虽然枚举算法可以用于找出一定范围内的所有素数(即尝试每一个数,并检查它是否是素数),但这种方法在数字范围很大时效率极低。对于“找出所有的素数”这一问题,实际上不存在一个具体的“所有”,因为素数是无穷的。因此,更常见的做法是指定一个范围,然后在这个范围内找出所有的素数。
B在屏幕上输出“helloworld!”,这个任务不需要用算法解决。
这个说法是错误的。算法是解决问题的一系列明确步骤,无论问题多么简单,只要涉及到执行一系列操作以达到某个目的,就需要算法。在这个例子中,输出“helloworld!”到屏幕也涉及到一系列的操作(如定位输出设备、发送字符串等),这些操作需要按照一定的顺序执行,因此也需要算法。
C “鸡兔同笼”问题,用解析算法和枚举算法都可以解决。
这个说法是正确的。“鸡兔同笼”问题是一个经典的数学问题,它可以通过建立数学方程(即解析算法)来求解,也可以通过枚举所有可能的鸡和兔的数量,然后找到满足条件的解(即枚举算法)来求解。
D算法必须要有输入,如“鸡兔同笼”问题必须输入头和脚的数量。
这个说法不正确。算法确实经常需要输入,但并不是所有算法都必须有输入。有些算法可能是自包含的,不需要外部输入就能执行。对于“鸡兔同笼”问题,如果我们已经知道了头和脚的具体数量,那么这些数量就是算法的输入。但如果我们是在讨论一个更一般化的算法,比如一个用于解决任意“鸡兔同笼”问题的算法,那么它确实需要输入头和脚的数量。但“算法必须要有输入”这一说法过于绝对,因此不正确。
故正确答案为:选项C。
5.C
【详解】本题考查流程图。程序运行过程如下。因此,程序的输出结果为-1,5,10。故答案为:C。
f
s
t
1
0
1
-1
1
2
1
-1
3
-1
2
4
1
-2
5
-1
3
6
1
-3
7
-1
4
8
1
-4
9
-1
5
10
6.C
【详解】本题考查流程图。在流程图中,矩形框通常表示处理或执行的步骤。处理步骤包括各种操作、计算、函数调用等。故答案为:C。
7.C
【详解】本题考查算法流程图相关内容。分析流程图,其功能是依据身高判断购票优惠。对比四个选项,ABD选项均可以得出正确结论。C选项,if与elif存在逻辑错误:以h=1.6为例,h>=1.2成立,则s="购半票",但结论与流程图不相符,选项错误。故本题答案是C选项。
8.A
【详解】本题考查流程图。由下方流程图可知,结束之后k的值为2,i的值为3。
i
j
k
s
0
7
0
11
0
6
0
10
0
5
0
8
1
5
0
9
2
4
1
10
2
3
1
9
3
2
2
结束
9.B
【详解】本题考查算法流程图相关内容。分析流程图,其运行过程,具体如下:
(1)i=1,i<6成立,执行循环体:a[i-1]>a[i]成立,k=k+1=1,i=i+1=2;
(2)i=2,i<6成立,执行循环体:a[i-1]>a[i]不成立,a[i-1]<a[i]成立,f=f+k=1,k=0,i=i+1=3;
(3)i=3,i<6成立,执行循环体:a[i-1]>a[i]成立,k=k+1=1,i=i+1=4;
(4)i=4,i<6成立,执行循环体:a[i-1]>a[i]不成立,a[i-1]<a[i]不成立,i=i+1=5;
(5)i=5,i<6成立,执行循环体:a[i-1]>a[i]不成立,a[i-1]<a[i]成立,f=f+k=2,k=0,i=i+1=6;
(6)i=6,i<6不成立,输出f,即:2。
故本题答案是B选项。
10.D
【详解】本题考查的是流程图。流程图中菱形是条件判断框,平行四边形是数据输入/输出框,圆角矩形是开始/结束框,矩形是数据处理框。故选D。
11.B
【详解】本题主要考查算法及其实现。分析算法可知,该程序变量n的范围是从人1到100,当n是奇数时执行s=s+n,当n是偶数时,执行s=s-n,即奇数位相加,偶数位相减,故1-2+3-4+·-100计算结果与上述算法执行后变量s的值相等,故本题选B选项。
12.A
【详解】
本题考查算法特征相关内容。算法的特征有:有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出。“输出所有正奇数”正奇数有无穷多个,违反了有穷性。故本题答案是A选项。
13.C
【详解】本题考查算法的特征。算法的特征有:有穷性、确定性、有零个或多个输入、有一个或多个输出、可行性。
1、有穷性:一个算法必须保证执行有限步之后结束;
2、确定性:算法的每一步骤必须有确切的定义;
3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;
4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
5、可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
故选:C。
14.A
【详解】本题考查算法特征相关内容。算法具有五个基本特征:输入、输出、有穷性、确定性和可行性。若方程不存在实数根,则输出“方程无实数根”,否则输出该方程的根。这一要求主要体现了算法特征中的输出性,故本题答案是A选项。
15.A
【详解】本题考查的是算法相关知识。解决一个问题的算法有多种;可行性属于算法基本特征;算法是程序设计的依据。故本题应选A。
【点睛】
16.D
【详解】本题考查流程图。“输入/输出框”用平行四边形表示;“判断框”用菱形表示;“开始/结束框”用圆角矩形表示;“处理框”用矩形表示。故答案为D选项。
17.动态规划
【详解】本题考查动态规划算法。动态规划是一种用于解决具有最优子结构特性问题的算法技术。最优子结构特性意味着一个问题的最优解可以通过其子问题的最优解来构建。动态规划通过将问题分解为更小的子问题,逐步解决这些子问题,并将其结果存储起来以避免重复计算,从而提高算法的效率。
18.需求分析
【详解】本题考查软件开发的描述。需求分析是软件开发过程中确保软件满足用户需求的关键步骤。通过需求分析,开发团队可以明确用户的需求和期望,从而设计和开发出符合用户需求的软件系统。
19.c=a∗b
【详解】本题考查的是流程图识读。观察数列:1、2、2、4、8、32、256…,可知an=an-2*an-1(n>=3),故空白横线处应填:c=a∗b。
20.256
【详解】本题考查程序分析。
该程序功能是求出输入的数n的n次方。输入的数为:4,则结果为:4*4*4*4=256。故正确答案为:256。
21.伪代码
【详解】本题考查算法描述。伪代码是一种非特定的程序设计语言的、用于描述算法逻辑但不依赖具体编程语言的描述方法。故答案为伪代码。
22.错误
【详解】本题考查算法。算法可以用多种方式来描述,常见的有自然语言、流程图、程序设计语言等。自然语言描述较为通俗易懂,但可能存在模糊和歧义;流程图直观清晰,能更形象地展示算法的流程和逻辑;程序设计语言则可以直接实现算法。故说法错误。
23.正确
【详解】本题考查算法特征相关内容。算法具有有穷性、确切性、输入项(0个或多个输入)、输出项(1个或多个输出)、可行性五个重要特征。“打印所有偶数”是无穷的,所以计算机无法解决“打印所有偶数”,是违背了“有穷性”的原则。故本题答案是:正确。
24.正确
【详解】本题考查算法。算法是解决问题的方法,必须在有限步骤内完成,并且结果必须是确定的。故正确答案为正确。
25.错误
【详解】本题考查算法相关内容。算法就是用计算机求解某一问题的方法是能被机械地执行的动作或指令的有穷集合。算法是程序的灵魂,它独立于任何一种程序设计语言,一个算法可以用多种程序设计语言来实现。良好的算法设计,不仅可以提高程序的执行效率,起到事半功倍的效果,而且可以以算法设计为基础,通过寻求不同问题存在的相互联系,从计算机角度对不同问题的共性进行算法设计,实现程序编写的举一反三。算法设计是整个程序设计的核心。故本题答案是:错误。
26.正确
【详解】本题考查算法特征相关内容。算法的五大特征:有穷性、确定性、能行性(可行性)、有0个或多个输入、有一个或多个输出。每一步都有确切的含义,不会出现二义性,这体现了算法的确定性。故本题答案是:正确。
27. 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向后迭代(与原算法相同)。
28. A<=B C=A A=B B=C 或者 C=B B=A A=C 或 A,B=B,A(如果使用第三个变量的方法,则第三个变量不限制变量名称为C,满足条件即可,例如:T=A A=B B=T) print(A,B) 或 print(‘A、B变量的值分别为’,A,B)(不限制输出样式,能正确输出A和B的值即可)。
【详解】本题考查的是流程图识读。
(1)如果A不大于B,则A与B的值互换,故①处填写A<=B。
(2)A、B的值互换,可以引入三个变量进行交换:C=A A=B B=C 或者 C=B B=A A=C ;也可以直接赋值交换:A,B=B,A。
(3)Python输出函数是print( ),如果用Python语言实现“输出A,B的值”,则应该写为:print(A,B) 或 print(‘A、B变量的值分别为’,A,B)(不限制输出样式,能正确输出A和B的值即可)。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$