第二节算法与程序框图
一、基础知识批注——理解深一点
1.算法
(1)算法通常是指按照一定规则解决某一类问题的明确和有限的步骤.
(2)应用:算法通常可以编成计算机程序,让计算机执行并解决问题.
2.程序框图
程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形.
3.三种基本逻辑结构
(1)顺序结构
定义
由若干个依次执行的步骤组成
程序框图
(2)条件结构
定义
算法的流程根据条件是否成立有不同的流向,条件结构就是处理这种过程的结构
程序框图
(3)循环结构
定义
从算法某处开始,按照一定的条件反复执行某些步骤,反复执行的步骤称为循环体
程序框图
直到型循环结构
先循环,后判断,条件满足时终止循环.
当型循环结构
先判断,后循环,条件满足时执行循环.
三种基本逻辑结构的适用情境
(1)顺序结构:要解决的问题不需要分类讨论.
(2)条件结构:要解决的问题需要分类讨论.
(3)循环结构:要解决的问题要进行许多重复的步骤,且这些步骤之间有相同的规律.
二、基础小题强化——功底牢一点
(1)算法的每一步都有确定的意义,且可以无限地运算.( )
(2)一个程序框图一定包含顺序结构,也包含条件结构和循环结构.( )
(3)一个循环结构一定包含条件结构.( )
(4)当型循环是给定条件不成立时,执行循环体,反复进行,直到条件成立为止.( )
答案:(1)× (2)× (3)√ (4)×
(二)选一选
1.(2018·北京高考)执行如图所示的程序框图,输出的s值为( )
A. B.
C. D.
解析:选B 第一步:s=1-=,k=2,k<3;
第二步:s=+=,k=3,输出s.故选B.
2.某居民区的物业公司按月向居民收取卫生费,每月收费方法是: 4人和4人以下的住户,每户收取6元;超过4人的住户,每超出1人加收1.1元,相应收费系统的程序框图如图所示,则①处应填( )
A.y=6+1.1x
B.y=15+1.1x
C.y=6+1.1(x-4)
D.y=15+1.1(x-4)
解析:选C 依题意得,费用y与人数x之间的关系为y=则程序框图中①处应填y=6+1.1(x-4).
(三)填一填
3.如图所示的程序框图的运行结果为________.
解析:因为a=2,b=4,所以输出S=+=2.5.
答案:2.5
4.执行如图所示的程序框图,则输出的结果为________.
解析:进行第一次循环时,
S==20,i=2,S=20>1;
进行第二次循环时,
S==4,i=3,S=4>1;
进行第三次循环时,
S=,i=4,S=<1,
此时结束循环,输出的i=4.
答案:4
[例1] (2019·沈阳质检)已知一个算法的程序框图如图所示,当输出的结果为0时,输入的实数x的值为( )
A.-3 B.-3或9
C.3或-9 D.-3或-9
[解析] 当x≤0时,y=x-8=0,x=-3;当x>0时,y=2-log3x=0,x=9.故x=-3或x=9,选B.
[答案] B
[例2] 某程序框图如图所示,现输入如下四个函数,则可以输出的函数为( )
A.f(x)=
B.f(x)=
C.f(x)=
D.f(x)=x2ln(x2+1)
[解析] 由程序框图知该程序输出的是存在零点的奇函数,选项A、C中的函数虽然是奇函数,但在给定区间上不存在零点,故排除A、C.选项D中的函数是偶函数,故排除D.选B.
[答案] B
[解题技法] 顺序结构和条件结构的运算方法
(1)顺序结构是最简单的算法结构,语句与语句之间、框与框之间是按从上到下的顺序进行的.解决此类问题,只需分清运算步骤,赋值量及其范围进行逐步运算即可.
(2)条件结构中条件的判断关键是明确条件结构的功能,然后根据“是”的分支成立的条件进行判断.
(3)对于条件结构,无论判断框中的条件是否成立,都只能执行两个分支中的一个,不能同时执行两个分支.
[题组训练]
1.半径为r的圆的面积公式为S=πr2,当r=5时,计算面积的流程图为( )
解析:选D 因为输入和输出框是平行四边形,故计算面积的流程图为D.
2.运行如图所示的程序框图,可输出B=______,C=______.
解析:若直线x+By+C=0与直线x+y-2=0平行,则B=,且C≠-2,
若直线x+y+C=0与圆x2+y2=1相切,则=1,解得C=±2,
又C≠-2,所以C=2.
答案: 2
考法(一) 由程序框图求输出(输入)结果
[例1] (2018·天津高考)阅读如图所示的程序框图,运行相应的程序,若输入N的值为20,则输出T的值为( )
A.1 B.2
C.3 D.4
[解析] 输入N的值为20,
第一次执行条件语句,N=20,
i=2,=10是整数,
∴T=0+1=1,i=3<5;
第二次执行条件语句,N=20,i=3,=不是整数,
∴i=4<5;
第三次执行条件语句,N=20,i=4,=5是整数,
∴T=1+1=2,i=5,此时i≥5成立,∴输出T=2.
[答案] B
[例2] (2019·安徽知名示范高中联考)执行如图所示的程序框图,如果输出的n=2,那么输入的 a的值可以为( )
A.4 B.5
C.6 D.7
[解析] 执行程序框图,输入a,P=0,Q=1,n=0,此时P≤Q成立,P=1,Q=3,n=1,此时P≤Q成立,P=1+a,Q=7,n=2.因为输出的n的值为2,所以应该退出循环,即P>Q,所以1+a>7,结合选项,可知a的值可以为7,故选D.
[答案] D
[解题技法] 循环结构的一般思维分析过程
(1)分析进入或退出循环体的条件,确定循环次数.
(2)结合初始条件和输出结果,分析控制循环的变量应满足的条件或累加、累乘的变量的表达式.
(3)辨析循环结构的功能.
考法(二) 完善程序框图
[例1] (2018·武昌调研考试)执行如图所示的程序框图,如果输入的a依次为2,2,5时,输出的s为17,那么在判断框中可以填入( )
A.k
n?
C.k≥n? D.k≤n?
[解析] 执行程序框图,输入的a=2,s=0×2+2=2,k=1;输入的a=2,s=2×2+2=6,k=2;输入的a=5,s=2×6+5=17,k=3,此时结束循环,又n=2,所以判断框中可以填“k>n?”,故选B.
[答案] B
[例2] (2018·全国卷Ⅱ)为计算S=1-+-+…+-,设计了如图所示的程序框图,则在空白框中应填入( )
A.i=i+1 B.i=i+2
C.i=i+3 D.i=i+4
[解析] 由题意可将S变形为S=-,则由S=N-T,得N=1++…+,T=++…+.据此,结合N=N+,T=T+易知在空白框中应填入i=i+2.故选B.
[答案] B
[解题技法] 程序框图完善问题的求解方法
(1)先假设参数的判断条件满足或不满足;
(2)运行循环结构,一直到运行结果与题目要求的输出结果相同为止;
(3)根据此时各个变量的值,补全程序框图.
[题组训练]
1.(2018·凉山质检)执行如图所示的程序框图,设输出的数据构成的集合为A,从集合A中任取一个元素a,则函数y=xa,x∈[0,+∞)是增函数的概率为( )
A. B.
C. D.
解析:选C 执行程序框图,x=-3,y=3;x=-2,y=0;x=-1,y=-1;x=0,y=0;x=1,y=3;x=2,y=8;x=3,y=15;x=4,退出循环.则集合A中的元素有-1,0,3,8,15,共5个,若函数y=xa,x∈[0,+∞)为增函数,则a>0,所以所求的概率为.
2.(2019·珠海三校联考)执行如图所示的程序框图,若输出的n的值为4,则p的取值范围是( )
A. B.
C. D.
解析:选A S=0,n=1;S=,n=2;S=+=,n=3;满足条件,所以p>,继续执行循环体;S=+=,n=4;不满足条件,所以p≤.输出的n的值为4,所以2 THEN
a=2+a
ELSE
a=a*a
END IF
PRINT a
END
若输出的结果是9,则输入的a的值是________.
解析:由题意可得程序的功能是计算并输出
a=的值,
当a>2时,由2+a=9得a=7;
当a≤2时,由a2=9得a=-3,
综上知,a=7或a=-3.
答案:-3或7
1.(2019·湖北八校联考)对任意非零实数a,b,定义a*b的运算原理如图所示,则(log 2)*-=( )
A.1 B.2
C.3 D.4
解析:选A 因为log 2=3,-=4,3<4,所以输出=1,故选A.
2.执行如图所示的程序框图,则输出的x,y分别为( )
A.90,86 B.94,82
C.98,78 D.102,74
解析:选C 第一次执行循环体,y=90,s=+15,不满足退出循环的条件,故x=90;第二次执行循环体,y=86,s=+,不满足退出循环的条件,故x=94;第三次执行循环体,y=82,s=+,不满足退出循环的条件,故x=98;第四次执行循环体,y=78,s=27,满足退出循环的条件,故x=98,y=78.
3.(2018·云南民族大学附属中学二模)执行如图所示的程序框图,若输出的k的值为6,则判断框内可填入的条件是( )
A.s>? B.s>?
C.s>? D.s>?
解析:选B s=1,k=9,满足条件;s=,k=8,满足条件;s=,k=7,满足条件;s=,k=6,不满足条件.输出的k=6,所以判断框内可填入的条件是“s>?”.故选B.
4.(2019·合肥质检)执行如图所示的程序框图,如果输出的k的值为3,则输入的a的值可以是( )
A.20 B.21
C.22 D.23
解析:选A 根据程序框图可知,若输出的k=3,则此时程序框图中的循环结构执行了3次,执行第1次时,S=2×0+3=3,执行第2次时,S=2×3+3=9,执行第3次时,S=2×9+3=21,因此符合题意的实数a的取值范围是9≤a<21,故选A.
5.(2019·重庆质检)执行如图所示的程序框图,如果输入的x=0,y=-1,n=1,则输出x,y的值满足( )
A.y=-2x B.y=-3x
C.y=-4x D.y=-8x
解析:选C 初始值x=0,y=-1,n=1,x=0,y=-1,x2+y2<36,n=2,x=,y=-2,x2+y2<36,n=3,x=,y=-6,x2+y2>36,退出循环,输出x=,y=-6,此时x,y满足y=-4x,故选C.
6.(2018·南宁二中、柳州高中联考)执行如图所示的程序框图,若输出的结果s=132,则判断框中可以填( )
A.i≥10? B.i≥11?
C.i≤11? D.i≥12?
解析:选B 执行程序框图,i=12,s=1;s=12×1=12,i=11;s=12×11=132,i=10.此时输出的s=132,则判断框中可以填“i≥11?”.
7.(2019·漳州八校联考)执行如图所示的程序,若输出的y的值为1,则输入的x的值为
( )
A.0 B.1
C.0或1 D.-1,0或1
解析:选C 当x≥1时,由x2=1得x=1或x=-1(舍去);当x<1时,由-x2+1=1得x=0.∴输入的x的值为0或1.
8.执行如图所示的程序框图,若输入的n=4,则输出的s=( )
A.10 B.16
C.20 D.35
解析:选C 执行程序框图,第一次循环,得s=4,i=2;
第二次循环,得s=10,i=3;
第三次循环,得s=16,i=4;
第四次循环,得s=20,i=5.
不满足i≤n,退出循环,输出的s=20.
9.(2018·洛阳第一次统考)已知某算法的程序框图如图所示,则该算法的功能是( )
A.求首项为1,公差为2的等差数列的前2 018项和
B.求首项为1,公差为2的等差数列的前2 019项和
C.求首项为1,公差为4的等差数列的前1 009项和
D.求首项为1,公差为4的等差数列的前1 010项和
解析:选D 由程序框图得,输出的S=(2×1-1)+(2×3-1)+(2×5-1)+…+(2×2 019-1),可看作数列{2n-1}的前2 019项中所有奇数项的和,即首项为1,公差为4的等差数列的前1 010项和.故选D.
10.(2018·郑州第一次质量测试)执行如图所示的程序框图,若输出的结果是7,则判断框内m的取值范围是( )
A.(30,42] B.(30,42)
C.(42,56] D.(42,56)
解析:选A k=1,S=2,k=2;S=2+4=6,k=3;S=6+6=12,k=4;S=12+8=20,k=5;S=20+10=30,k=6;S=30+12=42,k=7,此时不满足S=42