- 3.66 MB
- 2021-06-16 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
专题59 算法与程序框图
1.了解算法的含义,了解算法的思想;
2.理解程序框图的三种基本逻辑结构:顺序、条件、循环;
3.了解程序框图,了解工序流程图(即统筹图);
4.能绘制简单实际问题的流程图,了解流程图在解决实际问题中的作用;
5.了解结构图,会运用结构图梳理已学过的知识,整理收集到的资料信息.
1.算法的定义
算法通常是指按照一定规则解决某一类问题的明确和有限的步骤.
2.程序框图
(1)程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形.
(2)基本的程序框有终端框(起止框)、输入、输出框、处理框(执行框)、判断框.
3.三种基本逻辑结构
名称
内容
顺序结构
条件结构
循环结构
定义
由若干个按先后顺序执行的步骤组成,这是任何一个算法都离不开的基本结构
算法的流程根据条件是否成立而选择执行不同的流向的结构形式
从某处开始,按照一定的条件反复执行某些步骤的情况,反复执行的步骤称为循环体
程序框图
4.基本算法语句
(1)输入、输出、赋值语句的格式与功能
语句
一般格式
功能
输入语句
INPUT“提示内容”;变量
输入信息
输出语句
PRINT“提示内容”;表达式
输出常量、变量的值和系统信息
赋值语句
变量=表达式
将表达式的值赋给变量
(2)条件语句的格式及框图
①IF-THEN格式
②IF-THEN-ELSE格式
(3)循环语句的格式及框图.
①UNTIL语句
②WHILE语句
高频考点一 程序框图的执行问题
【例1】(2016·全国Ⅱ卷)中国古代有计算多项式值的秦九韶算法,
如图是实现该算法的程序框图.执行该程序框图,若输入的x=2,n=2,依次输入的a为2,2,5,则输出的s=( )
A.7 B.12 C.17 D.34
【举一反三】(1)当m=7,n=3时,执行如图所示的程序框图,输出的S值为( )
A.7 B.42 C.210 D.840
(2)若某程序框图如图所示,当输入50时,则该程序运行后输出的结果是________.
解析 (1)程序框图的执行过程如下:
m=7,n=3,k=m=7,S=1,
m-n+1=5;
k=7>5,S=1×7=7,k=7-1=6;
k=6>5,S=7×6=42,k=6-1=5;
k=5,S=42×5=210,k=5-1=4;
k=4<5,跳出循环,输出S=210.
故选C.
【规律方法】执行循环结构首先要分清是先执行循环体,再判断条件,还是先判断条件,再执行循环体.其次注意控制循环的变量是什么,何时退出循环.最后要清楚循环体内的程序是什么,是如何变化的.
【变式探究】 (1)某程序框图如图所示,若该程序运行后输出的结果不大于37,则输入的整数i的最大值为( )
A.3 B.4 C.5 D.6
(2)阅读如图所示的程序框图,若输入的k=10,则该算法的功能是( )
A.计算数列{2n-1}的前10项和
B.计算数列{2n-1}的前9项和
C.计算数列{2n-1}的前10项和
D.计算数列{2n-1}的前9项和
解析 (1)经过第一次循环得到S=2,n=1;经过第二次循环得到S=5,n=2;经过第三次循环得到S=10,n=3;经过第四次循环得到S=19,n=4;经过第五次循环得到S=36,n=5;经过第六次循环得到S=69,n=6,∵输出的结果不大于37,∴i的最大值为5,故选C.
(2)由程序框图可知:S=0,i=1;S=1+2×0=1=20,i=2;S=1+2×1=1+2=20+21,i=3;S=1+2×3=20+21+22,i=4;……,观察得到对应数列的通项公式为an=2n-1.k=10时,i>10时输出,说明是求前10项的和.
答案 (1)C (2)A
高频考点二 程序框图的补全问题
【例2】(2016·全国Ⅰ卷)执行右边的程序框图,如果输入的x=0,y=1,n=1,则输出x,y的值满足( )
A.y=2x B.y=3x
C.y=4x D.y=5x
解析 输入x=0,y=1,n=1,
运行第一次,x=0,y=1,不满足x2+y2≥36;
运行第二次,x=,y=2,不满足x2+y2≥36;
运行第三次,x=,y=6,满足x2+y2≥36,
输出x=,y=6.
由于点在直线y=4x上,则x,y的值满足y=4x.
答案 C
【举一反三】执行如图所示的程序框图,若输出k的值为6,则判断框内可填入的条件是( )
A.s>
B.s>
C.s>
D.s>
解析 程序框图的执行过程如下:s=1,k=9;s=,k=8;s=×=,k=7;s=×=,k=6,循环结束.故可填入的条件为s>.故选C.
答案 C
【规律方法】解答这类题目时,一定要理解悟透各种框图的作用,才能得到正确的结果,特别要注意对问题的转化,问题与框图的表示的相互转化.
【变式探究】某程序框图如图所示,判断框内为“k≥n?”,n为正整数,若输出的S=26,则判断框内的n=________.
高频考点三 基本算法语句
【例3】 根据下图算法语句,当输入x为60时,输出y的值为( )
INPUT x
IF x<=50 THEN
y=0.5*x
ELSE
y=25+0.6*(x-50)
END IF
PRINT y
A.25 B.30 C.31 D.61
解析 通过阅读理解知,算法语句是一个分段函数y=f(x)=
∴y=f(60)=25+0.6×(60-50)=31.
答案 C
【变式探究】解决算法语句有三个步骤:首先通读全部语句,把它翻译成数学问题;其次领悟该语句的功能;最后根据语句的功能运行程序,解决问题.
运行如下所示的程序,当输入a,b分别为2,3时,最后输出的m的值为________.
a=input(“a=”);
b=input(“b=”);
if a>b
m=a;
else
m=b;
end
print(%io(2),m);
解析 ∵a=2,b=3,∴a<b,应把b值赋给m,
∴m的值为3.
答案 3
1.【2016高考新课标2文数】中国古代有计算多项式值得秦九韶算法,右图是实现该算法的程序框图.执行该程序框图,若输入的a为2,2,5,则输出的s=( )
(A)7 (B)12 (C)17 (D)34
【答案】C
【解析】由题意,,输入,则
,循环;输入,则,循环;输入,,结束循环.故输出的,选C.
【考点】 程序框图,直到型循环结构
2. 【2016高考新课标1文数】执行右面的程序框图,如果输入的n=1,则输出的值满足( )
(A)
(B)
(C)
(D)
【答案】C
【考点】程序框图与算法案例
3. [2016高考新课标Ⅲ文数]执行下图的程序框图,如果输入的,那么输出的( )
A.3 B.4 C.5 D.6
【答案】B
【解析】第一次循环,得;第二次循环,得,;第三次循环,得;第四次循环,得,退出循环,输出,故选B.
【考点】循环结构的程序框图
4.【2016高考天津文数】阅读右边的程序框图,运行相应的程序,则输出的值为_______.
【答案】4
【解析】
第一次循环:;第二次循环:;第三次循环:;结束循环,输出
【考点】循环结构流程图
5.【2016高考北京文数】执行如图所示的程序框图,输出的s值为( )
A.8 B.9 C.27 D.36
【答案】B
【解析】分析程序框图可知,程序的功能等价于输出,故选B.
6.【2016高考四川文科】秦九韶是我国南宋时期的数学家,普州(现四川省安岳县)人,他在所著的《数书九章》中提出的多项式求值的秦九韶算法,至今仍是比较先进的算法.如图所示的程序框图给出了利用秦九韶算法求多项式值的一个实例,若输入n,x的值分别为3,2,则输出v的值为( )
A.35 B.20 C.18 D.9
【答案】C
【解析】程序运行如下:
结束循环,输出,故选C.
【考点】程序与框图,秦九韶算法
7.【2016高考山东文数】执行右边的程序框图,若输入n的值为3,则输出的S的值为_______.
【答案】1
【解析】按程序运行的过程,运行一遍程序:,,循环,,循环,,退出循环,输出的值为1.
【考点】程序框图
1.【2015高考新课标1,文9】执行右面的程序框图,如果输入的,则输出的( )
(A) (B) (C) (D)
【答案】C
【解析】
执行第1次,t=0.01,S=1,n=0,m==0.5,S=S-m=0.5,=0.25,n=1,S=0.5>t=0.01,是,循环,
执行第2次,S=S-m =0.25,=0.125,n=2,S=0.25>t=0.01,是,循环,
执行第3次,S=S-m =0.125,=0.0625,n=3,S=0.125>t=0.01,是,循环,
执行第4次,S=S-m=0.0625,=0.03125,n=4,S=0.0625>t=0.01,是,循环,
执行第5次,S=S-m =0.03125,=0.015625,n=5,S=0.03125>t=0.01,是,循环,
执行第6次,S=S-m=0.015625,=0.0078125,n=6,S=0.015625>t=0.01,是,循环,
执行第7次,S=S-m=0.0078125,=0.00390625,n=7,S=0.0078125>t=0.01,否,输出n=7,故选C.
2.【2015高考重庆,文8】执行如图(8)所示的程序框图,则输出s的值为( )
(A) (B) (C) (D)
【答案】D
【解析】初始条件:,
第1次判断0<8,是,
第2次判断2<8,是,
第3次判断4<8,是,
第4次判断6<8,是,
第5次判断8<8,否,输出;
故选D.
3.【2015高考天津,文3】阅读下边的程序框图,运行相应的程序,则输出i的值为( )
(A) 2 (B) 3 (C) 4 (D)5
【答案】C
【解析】
由程序框图可知: 故选C.
4.【2015高考陕西,文7】根据右边框图,当输入为6时,输出的( )
A. B. C. D.
【答案】D
【解析】该程序框图运行如下:,,,,故答案选D.
5.【2015高考湖南,文5】执行如图2所示的程序框图,如果输入n=3,中输入的S=( )
A、 B、 C、 D、
【答案】B
【解析】由题根据所给程序框图不难得到所求S值即是求递推数列的连续前3项的和;
由题 ,故选B.
6.【2015高考福建,文4】阅读如图所示的程序框图,运行相应的程序.若输入的值为1,则输出的值为( )
A.2 B.7 C.8 D.128
【答案】C
【解析】由题意得,该程序表示分段函数,则,故选C.
7.【2015高考北京,文5】执行如图所示的程序框图,输出的的值为( )
A. B. C. D.
【答案】B
【解析】初值为,进入循环体后,;;;;
此时,退出循环,故,故选B.
8.【2015高考安徽,文7】执行如图所示的程序框图(算法流程图),输出的n为( )
(A)3 (B)4 (C)5 (D)6
【答案】B
9.【2015高考山东,文11】执行右边的程序框图,若输入的的值为,则输出的的值是 .
【答案】13
【解析】第一次执行程序,满足条件;第二次执行程序,不满足条件
,输出,结束.答案为13.
1.(2014·安徽卷)如图11所示,程序框图(算法流程图)的输出结果是( )
图11
A.34 B.53 C.78 D.89
【答案】B 【解析】由程序框图可知,变量的取值情况如下:
第一次循环,x=1,y=1,z=2;
第二次循环,x=1,y=2,z=3;
第三次循环,x=2,y=3,z=5;
第四次循环,x=3,y=5,z=8;
第五次循环,x=5,y=8,z=13;
第六次循环,x=8,y=13,z=21;
第七次循环,x=13,y=21,z=34;
第八次循环,x=21,y=34,z=55,不满足条件,跳出循环.
2.(2014·天津卷)阅读如图11所示的程序框图,运行相应的程序,输出S的值为( )
图11
A.15
B.105
C.245
D.945
【答案】B
【解析】第1次循环,i=1,T=3,S=1×3;
第2次循环,i=2,T=5,S=1×3×5;
第3次循环,i=3,T=7,S=1×3×5×7.
执行完后,这时i变为4,退出循环,故输出S=1×3×5×7=105.
3.(2014·福建卷)阅读如图13所示的程序框图,运行相应的程序,输出的S的值等于( )
图13
A.18
B.20
C.21
D.40
【答案】B
【解析】输入S=0,n=1,第一次循环,S=0+2+1=3,n=2;
第二次循环,S=3+22+2=9,n=3;
第三次循环,S=9+23+3=20,n=4,满足S≥15,结束循环,输出S=20.
4.(2014·湖北卷)设a是一个各位数字都不是0且没有重复数字的三位数.将组成a的3个数字按从小到大排成的三位数记为I(a),按从大到小排成的三位数记为D(a)(例如a=815,则I(a)=158,D(a)=851).阅读如图12所示的程序框图,运行相应的程序,任意输入一个a,输出的结果b=________.
图12
【答案】495 【解析】取a1=815⇒b1=851-158=693≠815⇒a2=693;
由a2=693⇒b2=963-369=594≠693⇒a3=594;
由a3=594⇒b3=954-459=495≠594⇒a4=495;
由a4=495⇒b4=954-459=495=a4⇒b=495.
5.(2014·湖南卷)执行如图11所示的程序框图.如果输入的t∈[-2,2],则输出的S属于( )
A.[-6,-2] B.[-5,-1]
C.[-4,5] D.[-3,6]
图11
【答案】D
【解析】(特值法)当t=-2时,t=2×(-2)2+1=9,S=9-3=6,所以D正确.
6.(2014·江西卷)阅读如图13所示的程序框图,运行相应的程序,则程序运行后输出的结果为( )
图13
A.7 B.9 C.10 D.11
【答案】B
【解析】由程序框图可知,运算过程如下表:
S
S<-1
i
输出
赋初值
0
1
开始
S=0+lg=-lg 3>-1
否
3
S=-lg 3+lg=-lg 5>-1
否
5
S=-lg 5+lg =-lg 7>-1
否
7
S=-lg 7+lg=-lg 9>-1
否
9
S=-lg 9+lg=-lg 11<-1
是
9
7.(2014·辽宁卷)执行如图12所示的程序框图,若输入x=9,则输出y=________.
图12
【答案】
【解析】当x=9时,y=5,则|y-x|=4;当x=5时,y=,则|y-x|=;当x=时,y=,则|y-x|=<1.故输出y=.
8.(2014·新课标全国卷Ⅰ) 执行如图12所示的程序框图,若输入的a,b,k分别为1,
2,3,则输出的M=( )
图12
A. B. C. D.
【答案】D
【解析】逐次计算,依次可得:M=,a=2,b=,n=2;M=,a=, b=,n=3;M=,a=,b=,n=4.此时输出M,故输出的是.
9.(2014·新课标全国卷Ⅱ)执行如图12所示的程序框图,如果输入的x,t均为2,则输出的S=( )
图12
A.4 B.5 C.6 D.7
【答案】D
【解析】逐次计算,可得M=2,S=5,k=2;M=2,S=7,k=3,此时输出S=7.
10.(2014·山东卷)执行如图12所示的程序框图,若输入的x的值为1,则输出的n的值为____.
图12
【答案】3
【解析】x=1满足不等式,执行循环后,x=2,n=1;x=2满足不等式,执行循环后,x=3,n=2;x=3满足不等式,执行循环后,x=4,n=3;x=4不满足不等式,结束循环,输出的n的值为3.
11.(2014·陕西卷)根据如图11所示的框图,对大于2的整数N,输出的数列的通项公式是( )
图11
A.an=2n
B.an=2(n-1)
C.an=2n
D.an=2n-1
【答案】C
【解析】阅读题中所给的程序框图可知,对大于2的整数N,输出数列:2,2×2=22,2×22=23,2×23=24,…,2×2N-1=2N,故其通项公式为an=2n.
12.(2014·四川卷)执行如图11所示的程序框图,如果输入的x,y∈R,那么输出的S的最大值为( )
图11
A.0 B.1 C.2 D.3
【答案】C
【解析】题中程序输出的是在的条件下S=2x+y 的最大值与1中较大的数.结合图像可得,当x=1,y=0时,S=2x+y取得最大值2,2>1,故选C.
1.执行如图所示的程序框图,则输出S的值为 ( )
A.10 B.17 C.19 D.36
解析 执行程序:k=2,S=0;S=2,k=3;S=5,k=5;S=10,k=9;S=19,k=17,此时不满足条件k<10,终止循环,输出结果为S=19.选C.
答案 C
2.为了在运行如图所示的程序之后得到结果y=16,则键盘输入的x应该是( )
INPUT x
IF x<0 THEN
y=(x+1)*(x+1)
ELSE
y=(x-1)*(x-1)
END IF
PRINT y
END
A.±5 B.5
C.-5 D.0
解析 ∵f(x)=
∴当x<0时,令(x+1)2=16,∴x=-5;
当x≥0时,令(x-1)2=16,∴x=5,∴x=±5.
答案 A
3.执行如图所示的程序框图,则输出的结果是 ( )
A.5 B.7 C.9 D.11
4.执行如图所示的程序框图,输出的M值是 ( )
A.2 B.-1
C. D.-2
解析 M=2,i=1;M==-1,i=2;
M==,i=3;M==2,i=4;
M==-1,i=5,终止循环,输出M=-1.
答案 B
5. 如图所示的程序框图,该算法的功能是 ( )
A.计算(1+20)+(2+21)+(3+22)+…+(n+1+2n)的值
B.计算(1+21)+(2+22)+(3+23)+…+(n+2n)的值
C.计算(1+2+3+…+n)+(20+21+22+…+2n-1)的值
D.计算[1+2+3+…+(n-1)]+(20+21+22+…+2n)的值
6.执行如图所示的程序框图,若输出的结果是4,则判断框内m的取值范围是 ( )
A.(2,6] B.(6,12]
C.(12,20] D.(2,20)
解析 要输出的结果是4,则该程序框图需要运行3次,即第2次的运行结果S
=6满足判断框内的条件,所以6<m,第3次的运行结果S=12不满足判断框内的条件,即12≥m,所以判断框内m的取值范围是(6,12],故选B.
答案 B
7.执行如图所示的程序框图,则输出0的概率为 ( )
A. B.
C. D.
解析 因为的长度为-1=,[1,3]的长度为3-1=2,所以输出0的概率为=,故选A.
答案 A
8.利用如图所示算法在平面直角坐标系上打印一系列点,则打印的点在圆x2+y2=10内的个数为 ( )
A.2 B.3
C.4 D.5
解析 执行题中的程序框图,打印的点的坐标依次为(-3,6),(-2,5),(-1,4),(0,3),(1,2),(2,1),其中点(0,3),(1,2),(2,1)位于圆x2+y2=10内,因此打印的点位于圆x2+y2=10内的共有3个,故选B.
答案 B
9.运行如下所示的程序,当输入a,b分别为2,3时,最后输出的m的值为________.
INPUT a,b
IF a>b THEN
m=a
ELSE
m=b
END IF
PRINT m
END
解析 ∵a=2,b=3,∴a