算法与程序框图一、基础知识1.算法(1)算法通常是指按照一定规则解决某一类问题的明确和有限的步骤.(2)应用:算法通常可以编成计算机程序,让计算机执行并解决问题.2.程序框图程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形.3.三种基本逻辑结构(1)顺序结构(2)条件结构(3)循环结构三种基本逻辑结构的适用情境(1)顺序结构:要解决的问题不需要分类讨论.(2)条件结构:要解决的问题需要分类讨论.(3)循环结构:要解决的问题要进行许多重复的步骤,且这些步骤之间有相同的规律.考点一顺序结构和条件结构[例1](优质试题·沈阳质检)已知一个算法的程序框图如图所示,当输出的结果为0时,输入的实数x的值为()A .-3B .-3或9C .3或-9D .-3或-9[解析] 当x ≤0时,y =⎝ ⎛⎭⎪⎫12x -8=0,x =-3;当x >0时,y =2-log 3x =0,x=9.故x =-3或x =9,选B.[答案] B[例2] 某程序框图如图所示,现输入如下四个函数,则可以输出的函数为( )A .f (x )=cos x x ⎝ ⎛⎭⎪⎫-π2<x <π2,且x ≠0B .f (x )=2x -12x +1C .f (x )=|x |x D .f (x )=x 2ln(x 2+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+3y-2=0平行,则B=3,且C≠-2,若直线x+3y+C=0与圆x2+y2=1相切,则|C|12+(3)2=1,解得C=±2,又C≠-2,所以C=2.答案:3 2考点二循环结构考法(一)由程序框图求输出(输入)结果[例1](优质试题·天津高考)阅读如图所示的程序框图,运行相应的程序,若输入N的值为20,则输出T的值为()A.1B.2C.3 D.4[解析]输入N的值为20,第一次执行条件语句,N=20,i=2,Ni=10是整数,∴T=0+1=1,i=3<5;第二次执行条件语句,N=20,i=3,Ni=203不是整数,∴i=4<5;第三次执行条件语句,N=20,i=4,Ni=5是整数,∴T=1+1=2,i=5,此时i≥5成立,∴输出T=2.[答案] B[例2](优质试题·安徽知名示范高中联考)执行如图所示的程序框图,如果输出的n=2,那么输入的a的值可以为()A.4 B.5C.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](优质试题·武昌调研考试)执行如图所示的程序框图,如果输入的a 依次为2,2,5时,输出的s为17,那么在判断框中可以填入()A .k <n?B .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] (优质试题·全国卷Ⅱ)为计算S =1-12+13-14+…+199-1100,设计了如图所示的程序框图,则在空白框中应填入( )A .i =i +1B .i =i +2C .i =i +3D .i =i +4[解析] 由题意可将S 变形为S =⎝ ⎛⎭⎪⎫1+13+…+199-⎝ ⎛⎭⎪⎫12+14+…+1100,则由S =N -T ,得N =1+13+…+199,T =12+14+…+1100.据此,结合N =N +1i ,T =T +1i +1易知在空白框中应填入i =i +2.故选B.[答案] B[解题技法] 程序框图完善问题的求解方法 (1)先假设参数的判断条件满足或不满足;(2)运行循环结构,一直到运行结果与题目要求的输出结果相同为止; (3)根据此时各个变量的值,补全程序框图.[专题训练]1.(优质试题·凉山质检)执行如图所示的程序框图,设输出的数据构成的集合为A ,从集合A 中任取一个元素a ,则函数y =x a ,x ∈[0,+∞)是增函数的概率为( )A.47B.45C.35D.34解析:选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 =x a ,x ∈[0,+∞)为增函数,则a >0,所以所求的概率为35.2.(优质试题·珠海三校联考)执行如图所示的程序框图,若输出的n 的值为4,则p 的取值范围是( )A.⎝ ⎛⎦⎥⎤34,78B.⎝ ⎛⎭⎪⎫516,+∞ C.⎣⎢⎡⎭⎪⎫516,78 D.⎝ ⎛⎦⎥⎤516,78 解析:选A S =0,n =1;S =12,n =2;S =12+122=34,n =3;满足条件,所以p >34,继续执行循环体;S =34+123=78,n =4;不满足条件,所以p ≤78.输出的n 的值为4,所以34<p ≤78,故选A.3.(优质试题·贵阳适应性考试)某程序框图如图所示,若该程序运行后输出的值是137,则整数a 的值为( )A .6B .7C .8D .9解析:选A 先不管a 的取值,直接运行程序.首先给变量S ,k 赋值,S =1,k =1,执行S =S +1k (k +1),得S =1+11×2,k =2;执行S =1+11×2+12×3,k =3;……继续执行,得S =1+11×2+12×3+…+1k (k +1)=1+⎝ ⎛⎭⎪⎫1-12+⎝ ⎛⎭⎪⎫12-13+…+⎝ ⎛⎭⎪⎫1k -1k +1=2-1k +1,由2-1k +1=137得k =6,所以整数a =6,故选A.考点三 基本算法语句[典例] 执行如图程序语句,输入a =2cos 2 019π3,b =2tan 2 019π4,则输出y的值是( )A .3B .4C .6D .-1[解析] 根据条件语句可知程序运行后是计算y =⎩⎪⎨⎪⎧a (a +b ),a <b ,a 2-b ,a ≥b ,且a =2cos2 019π3=2cos π=-2,b =2tan 2 019π4=2tan 3π4=-2.因为a ≥b ,所以y =a 2-b =(-2)2-(-2)=6, 即输出y 的值是6.[答案] C[变透练清]1. 执行如图所示的程序,输出的结果是________.i=11S=1DOS=S*ii=i-1LOOP UNTIL i<9PRINT SEND解析:程序反映出的算法过程为i=11⇒S=11×1,i=10;i=10⇒S=11×10,i=9;i=9⇒S=11×10×9,i=8;i=8<9退出循环,执行“PRINT S”.故S=990.答案:9902.阅读如图所示的程序.a的值是________.解析:由题意可得程序的功能是计算并输出 a =⎩⎪⎨⎪⎧2+a ,a >2,a ×a ,a ≤2的值,当a >2时,由2+a =9得a =7; 当a ≤2时,由a 2=9得a =-3, 综上知,a =7或a =-3. 答案:-3或7[课时跟踪检测]1.(优质试题·湖北八校联考)对任意非零实数a ,b ,定义a *b 的运算原理如图所示,则(log222)*⎝ ⎛⎭⎪⎫18-23=( )A .1B .2C .3D .4解析:选A 因为log 222=3,⎝ ⎛⎭⎪⎫18-23=4,3<4,所以输出4-13=1,故选A.2.执行如图所示的程序框图,则输出的x ,y 分别为( )A .90,86B .94,82C .98,78D .102,74解析:选C 第一次执行循环体,y =90,s =867+15,不满足退出循环的条件,故x =90;第二次执行循环体,y =86,s =907+433,不满足退出循环的条件,故x =94;第三次执行循环体,y =82,s =947+413,不满足退出循环的条件,故x =98;第四次执行循环体,y =78,s =27,满足退出循环的条件,故x =98,y =78.3.(优质试题·云南民族大学附属中学二模)执行如图所示的程序框图,若输出的k 的值为6,则判断框内可填入的条件是( )A .s >12? B .s >710? C .s >35?D .s >45?解析:选B s =1,k =9,满足条件;s =910,k =8,满足条件;s =45,k =7,满足条件;s=710,k=6,不满足条件.输出的k=6,所以判断框内可填入的条件是“s>710?”.故选B.4.(优质试题·合肥质检)执行如图所示的程序框图,如果输出的k的值为3,则输入的a的值可以是()A.20 B.21C.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.(优质试题·重庆质检)执行如图所示的程序框图,如果输入的x=0,y=-1,n=1,则输出x,y的值满足()A.y=-2x B.y=-3xC.y=-4x D.y=-8x解析:选C初始值x=0,y=-1,n=1,x=0,y=-1,x2+y2<36,n=2,x =12,y =-2,x 2+y 2<36,n =3,x =32,y =-6,x 2+y 2>36,退出循环,输出x =32,y =-6,此时x ,y 满足y =-4x ,故选C.6.(优质试题·南宁二中、柳州高中联考)执行如图所示的程序框图,若输出的结果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.(优质试题·漳州八校联考)执行如图所示的程序,若输出的y 的值为1,则输入的x 的值为( )INPUT xIF x>=1 THEN y =x 2ELSEy =-x 2+1END IF PRINT y ENDA .0B .1C .0或1D .-1,0或1解析:选C 当x ≥1时,由x 2=1得x =1或x =-1(舍去);当x <1时,由-x 2+1=1得x =0.∴输入的x 的值为0或1.8.执行如图所示的程序框图,若输入的n =4,则输出的s =( )A.10 B.16C.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.(优质试题·洛阳第一次统考)已知某算法的程序框图如图所示,则该算法的功能是()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.(优质试题·郑州第一次质量测试)执行如图所示的程序框图,若输出的结果是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<m,退出循环,所以30<m≤42,故选A.11.(优质试题·石家庄调研)20世纪70年代,流行一种游戏——角谷猜想,规则如下:任意写出一个自然数n,按照以下的规律进行变换,如果n是奇数,则下一步变成3n+1;如果n是偶数,则下一步变成n2.这种游戏的魅力在于无论你写出一个多么庞大的数字,最后必然会落在谷底,更准确地说是落入底部的4-2-1循环,而永远也跳不出这个圈子,下列程序框图就是根据这个游戏而设计的,如果输出的i值为6,则输入的n值为()A.5或16 B.16C.5或32 D.4或5或32解析:选C若n=5,执行程序框图,n=16,i=2;n=8,i=3;n=4,i =4;n=2,i=5;n=1,i=6,结束循环,输出的i=6.若n=32,执行程序框图,n =16,i =2;n =8,i =3;n =4,i =4;n =2,i =5;n =1,i =6,结束循环,输出的i =6.当n =4或16时,检验可知不正确,故输入的n =5或32,故选C.12.(优质试题·贵阳第一学期检测)我国明朝数学家程大位著的《算法统宗》里有一道闻名世界的题目:“一百馒头一百僧,大僧三个更无争.小僧三人分一个,大小和尚各几丁?”如图所示的程序框图反映了对此题的一个求解算法,则输出的n 的值为( )A .20B .25C .30D .35解析:选B 法一:执行程序框图,n =20,m =80,S =60+803=8623≠100; n =21,m =79,S =63+793=8913≠100; n =22,m =78,S =66+783=92≠100; n =23,m =77,S =69+773=9423≠100; n =24,m =76,S =72+763=9713≠100;n =25,m =75,S =75+753=100,退出循环.所以输出的n =25. 法二:设大和尚有x 个,小和尚有y 个,则⎩⎨⎧x +y =100,3x +13y =100,解得⎩⎪⎨⎪⎧x =25,y =75,。