§13.4算法与程序框图1.算法与程序框图(1)算法①算法通常是指按照一定规则解决某一类问题的明确和有限的步骤.②应用:算法通常可以编成计算机程序,让计算机执行并解决问题.(2)程序框图定义:程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形.2.三种基本逻辑结构3.算法语句(1)输入语句、输出语句、赋值语句的格式与功能(2)条件语句①程序框图中的条件结构与条件语句相对应.②条件语句的格式a.IF—THEN格式b.IF—THEN—ELSE格式(3)循环语句①程序框图中的循环结构与循环语句相对应.②循环语句的格式a .UNTIL 语句b .WHILE 语句题组一 思考辨析1.判断下列结论是否正确(请在括号中打“√”或“×”) (1)算法只能解决一个问题,不能重复使用.( × ) (2)程序框图中的图形符号可以由个人来确定.( × ) (3)输入框只能紧接开始框,输出框只能紧接结束框.( × )(4)条件结构的出口有两个,但在执行时,只有一个出口是有效的.( √ ) (5)5=x 是赋值语句.( × )(6)输入语句可以同时给多个变量赋值.( √ )题组二 教材改编2.[P30例8]执行如图所示的程序框图,则输出S 的值为( )A .-32B.32C .-12D.12答案 D解析按照程序框图依次循环运算,当k=5时,停止循环,当k=5时,S=sin 5π6=12.3.[P25例5]如图为计算y=|x|函数值的程序框图,则此程序框图中的判断框内应填__________.答案x<0?解析输入x应判断x是否大于等于零,由图知判断框应填x<0?.题组三易错自纠4.(2016·全国Ⅱ)中国古代有计算多项式值的秦九韶算法,如图是实现该算法的程序框图,执行该程序框图,若输入的x=2,n=2,依次输入的a为2,2,5,则输出的s等于()A.7B.12C.17D.34答案 C解析由框图可知,输入x=2,n=2,a=2,s=2,k=1,不满足条件;a=2,s=4+2=6,k=2,不满足条件;a=5,s=12+5=17,k=3,满足条件,输出s=17,故选C.5.执行如图所示的程序框图,若输出k 的值为8,则判断框内可填入的条件是( )A .s ≤34?B .s ≤56?C .s ≤1112?D .s ≤2524?答案 C解析 由s =0,k =0满足条件,则k =2,s =12,满足条件;k =4,s =12+14=34,满足条件;k =6,s =34+16=1112,满足条件;k =8,s =1112+18=2524,不满足条件,输出k =8,所以应填“s ≤1112?”.6.执行下边的程序框图,输出的T 的值为________.答案116解析 当n =1时,T =1+ʃ10x 1d x =1+2101|2x =1+12=32;当n =2时,T =32+ʃ10x 2d x =32+3101|3x=32+13=116;当n =3时,结束循环,输出T =116.题型一 算法的基本结构1.(2018·新余模拟)执行如图所示的程序框图,如果输入的t =0.01,则输出的n 等于( )A .5B .6C .7D .8答案 C解析 执行程序: S =12,m =14,n =1,S >t ; S =14,m =18,n =2,S >t ; S =18,m =116,n =3,S >t ; S =116,m =132,n =4,S >t ; S =132,m =164,n =5,S >t ; S =164,m =1128,n =6,S >t ; S =1128,m =1256,n =7, 此时S >t 不成立,退出循环,n =7.故选C.2.(2017·全国Ⅲ)执行下面的程序框图,为使输出S 的值小于91,则输入的正整数N 的最小值为( )A .5B .4C .3D .2 答案 D解析 假设N =2,程序执行过程如下: t =1,M =100,S =0,1≤2,S =0+100=100,M =-10010=-10,t =2,2≤2,S =100-10=90,M =--1010=1,t =3,3>2,输出S =90<91.符合题意.∴N =2成立.显然2是N 的最小值.故选D.3.(2016·全国Ⅰ)执行下面的程序框图,如果输入的x =0,y =1,n =1,则输出x ,y 的值满足( )A .y =2xB .y =3xC .y =4xD .y =5x 答案 C解析 执行题中的程序框图,知 第一次进入循环体:x =0+1-12=0,y =1×1=1,x 2+y 2<36;第二次执行循环体:n =1+1=2,x =0+2-12=12,y =2×1=2,x 2+y 2<36;第三次执行循环体:n =2+1=3,x =12+3-12=32,y =3×2=6,满足x 2+y 2≥36,故退出循环,输出x =32,y =6,满足y =4x ,故选C.思维升华 (1)高考对算法初步的考查主要是对程序框图含义的理解与运用,重点应放在读懂框图上,尤其是条件结构、循环结构.特别要注意条件结构的条件,对于循环结构要搞清进入或退出循环的条件、循环的次数,是解题的关键. (2)解决程序框图问题要注意几个常用变量:①计数变量:用来记录某个事件发生的次数,如i =i +1. ②累加变量:用来计算数据之和,如S =S +i . ③累乘变量:用来计算数据之积,如p =p ×i .题型二 程序框图的识别与完善命题点1 由程序框图求输出结果典例 (1)(2017·全国Ⅱ)执行如图所示的程序框图,如果输入的a =-1,则输出的S 等于( )A .2B .3C .4D .5答案 B解析 当K =1时,S =0+(-1)×1=-1,a =1,执行K =K +1后,K =2; 当K =2时,S =-1+1×2=1,a =-1,执行K =K +1后,K =3; 当K =3时,S =1+(-1)×3=-2,a =1,执行K =K +1后,K =4; 当K =4时,S =-2+1×4=2,a =-1,执行K =K +1后,K =5; 当K =5时,S =2+(-1)×5=-3,a =1,执行K =K +1后,K =6;当K=6时,S=-3+1×6=3,执行K=K+1后,K=7>6,输出S=3.结束循环.故选B.(2)(2017·山东)执行两次如图所示的程序框图,若第一次输入的x的值为7,第二次输入的x 的值为9,则第一次、第二次输出的a的值分别为()A.0,0 B.1,1C.0,1 D.1,0答案 D解析当x=7时,∵b=2,∴b2=4<7=x.又7不能被2整除,∴b=2+1=3.此时b2=9>7=x,∴退出循环,a=1,∴输出a=1.当x=9时,∵b=2,∴b2=4<9=x.又9不能被2整除,∴b=2+1=3.此时b2=9=x,又9能被3整除,∴退出循环,a=0.∴输出a=0.故选D.命题点2完善程序框图典例(2017·全国Ⅰ)如图所示的程序框图是为了求出满足3n-2n>1000的最小偶数n,那么在◇和▭两个空白框中,可以分别填入()A .A >1000?和n =n +1B .A >1000?和n =n +2C .A ≤1000?和n =n +1D .A ≤1000?和n =n +2 答案 D解析 因为题目要求的是“满足3n -2n >1000的最小偶数n ”,所以n 的叠加值为2,所以▭内填入“n =n +2”.由程序框图知,当◇内的条件不满足时,输出n ,所以◇内填入“A ≤1000?”.故选D. 命题点3 辨析程序框图的功能典例(2018·大连联考)如果执行如图的程序框图,输入正整数N (N ≥2)和实数a 1,a 2,…,a N ,输出A ,B ,则( )A .A +B 为a 1,a 2,…,a N 的和 B.A +B 2为a 1,a 2,…,a N 的算术平均数C .A 和B 分别是a 1,a 2,…,a N 中最大的数和最小的数D .A 和B 分别是a 1,a 2,…,a N 中最小的数和最大的数 答案 C解析 不妨令N =3,a 1<a 2<a 3, 则有k =1,x =a 1,A =a 1,B =a 1; k =2,x =a 2,A =a 2; k =3,x =a 3,A =a 3,故输出A =a 3,B =a 1,故选C.思维升华 (1)已知程序框图,求输出的结果,可按程序框图的流程依次执行,最后得出结果. (2)完善程序框图问题,结合初始条件和输出结果,分析控制循环的变量应满足的条件或累加、累乘的变量的表达式.(3)对于辨析程序框图功能问题,可将程序执行几次,即可根据结果作出判断.跟踪训练 (2018·广州模拟)如图给出的是计算12+14+16+18+…+196的值的一个程序框图,其中判断框内应填入的条件是( )A .i >48?B .i >24?C .i <48?D .i <24?答案 A解析 程序运行过程中,各变量值如下: 第1次循环:S =0+12=12,n =4,i =2,第2次循环:S =12+14,n =6,i =3,第3次循环:S =12+14+16,n =8,i =4,依次类推,第48次循环:S =12+14+16+18+…+196,n =98,i =49, 退出循环体.所以判断框内应填入的条件是i >48. 故选A.题型三 基本算法语句典例 (2018届河北邢台期末)执行如图所示的程序,若输出的结果是2,则输入的x =________.答案 0或2解析 根据条件语句可知程序的功能是求分段函数y =⎩⎪⎨⎪⎧2x +1,x <1,x 2-x ,x ≥1的值.当x <1时,令2x +1=2,解得x =0;当x ≥1时,令x 2-x =2,解得x =2或-1(舍去).思维升华解决算法语句有三个步骤:首先通读全部语句,把它翻译成数学问题;其次领悟该语句的功能;最后根据语句的功能运行程序,解决问题.跟踪训练 (2018·保定模拟)根据如图所示的语句,可知输出的结果S =________.答案 7解析 I =1,S =1;S =1+2=3,I =1+3=4<8; S =3+2=5,I =4+3=7<8; S =5+2=7,I =7+3=10>8. 退出循环,故输出S =7.程序框图中变量的取值典例执行如图所示的程序框图所表示的程序,则输出的A 等于( )A.2047 B.2049C.1023 D.1025错解展示:将每次运算的A值用数列{a n}表示,将开始的A=1看作a0,则a1=2a0+1=1,a2=2a1+1=3,…∴a10=2a9+1=210-1=1023.错误答案 C现场纠错解析本题计算的是递推数列a0=1,a n+1=2a n+1(n=0,1,2,…)的第11项,{a n+1}是首项为2,公比为2的等比数列,故a10+1=211,故a10=2047.答案 A纠错心得程序框图对计数变量及求和变量取值时,要注意两个变量的先后顺序.1.(2016·全国Ⅲ)执行如图的程序框图,如果输入的a=4,b=6,那么输出的n等于()A.3B.4C.5D.6答案 B解析第一次循环a=6-4=2,b=6-2=4,a=4+2=6,s=6,n=1;第二次循环a=4-6=-2,b=4-(-2)=6,a=6-2=4,s=10,n=2;第三次循环a=6-4=2,b=6-2=4,a=4+2=6,s=16,n=3;第四次循环a=4-6=-2,b=4-(-2)=6,a=6-2=4,s=20,n=4,满足题意,结束循环.2.(2016·四川)秦九韶是我国南宋时期的数学家,普州(现四川省安岳县)人,他在所著的《数书九章》中提出的多项式求值的秦九韶算法,至今仍是比较先进的算法.如图所示的程序框图给出了利用秦九韶算法求某多项式值的一个实例,若输入n,x的值分别为3,2,则输出v 的值为()A.9B.18C.20D.35答案 B解析初始值n=3,x=2,程序运行过程如下:v=1i=2v=1×2+2=4i=1v=4×2+1=9i=0v=9×2+0=18i=-1跳出循环,输出v=18,故选B.3.(2017·天津)阅读下面的程序框图,运行相应的程序,若输入N的值为24,则输出N的值为()A .0B .1C .2D .3 答案 C解析 第一次循环执行条件语句,此时N =24,24能被3整除,则N =24÷3=8. ∵8≤3不成立,∴进入第二次循环执行条件语句,此时N =8,8不能被3整除,则N =8-1=7. ∵7≤3不成立,∴进入第三次循环执行条件语句,此时N =7,7不能被3整除,则N =7-1=6. ∵6≤3不成立,∴进入第四次循环执行条件语句,此时N =6,6能被3整除,则N =6÷3=2. ∵2≤3成立,∴此时输出N =2. 故选C.4.(2017·北京)执行如图所示的程序框图,输出的s 值为( )A .2 B.32 C.53 D.85答案 C解析 开始:k =0,s =1; 第一次循环:k =1,s =2;第二次循环:k =2,s =32;第三次循环:k =3,s =53,此时不满足循环条件,输出s ,故输出的s 值为53.故选C.5.(2018·长春模拟)一个算法的程序框图如图所示,若该程序输出的结果是163,则判断框内应填入的条件是()A .i <4?B .i >4?C .i <5?D .i >5?答案 B解析 i =1进入循环,i =2,T =1,P =151+2=5;再循环,i =3,T =2,P =52+3=1;再循环,i =4,T =3,P =13+4=17;再循环,i =5,T =4,P =174+5=163,此时应满足判断条件,所以判断框内应填入的条件是i >4?.6.(2018·广州质检)执行如图所示的程序框图,如果输入n =3,则输出的S 等于()A.67B.37C.89D.49 答案 B解析 第一步运算:S =11×3=13,i =2;第二步运算:S =13+13×5=25,i =3;第三步运算:S =25+15×7=37,i =4>3.故S =37,故选B.7.公元263年左右,我国数学家刘徽发现当圆内接正多边形的边数无限增加时,多边形面积可无限逼近圆的面积,并创立了“割圆术”,利用“割圆术”刘徽得到了圆周率精确到小数点后两位的近似值3.14,这就是著名的“徽率”.如图是利用刘徽的“割圆术”思想设计的一个程序框图,则输出n 的值为________.(参考数据:sin15°≈0.2588,sin7.5°≈0.1305)答案 24解析 n =6,S =12×6×sin60°=332≈2.598<3.1,不满足条件,进入循环;n =12,S =12×12×sin30°=3<3.1,不满足条件,继续循环;n =24,S =12×24×sin15°≈12×0.2588=3.1056>3.1,满足条件,退出循环,输出n 的值为24.8.(2018·银川质检)某框图所给的程序运行结果为S =20,那么判断框中应填入的关于k 的条件是________.答案 k >8?解析 由题意可知输出结果为S =20,第1次循环,S =11,k =9,第2次循环,S =20,k =8,此时S 满足输出结果,退出循环,所以判断框中的条件为“k >8?”. 9.(2017·江苏)如图是一个程序框图,若输入x 的值为116,则输出y 的值是________.答案 -2解析 输入x =116,116≥1不成立,执行y =2+log 2116=2-4=-2.故输出y 的值为-2.10.(2017·江西八校联考)执行如图所示的程序框图,输出的s 是________.答案 -6解析 第一次循环:i =1,s =1;第二次循环:i =2,s =-1;第三次循环:i =3,s =2;第四次循环:i =4,s =-2,此时i =5,执行s =3×(-2)=-6.11.如图所示的程序框图,若输入的x 的值为1,则输出的n 的值为________.答案 3解析 由x 2-4x +3≤0,解得1≤x ≤3.当x =1时,满足1≤x ≤3,所以x =1+1=2,n =0+1=1; 当x =2时,满足1≤x ≤3,所以x =2+1=3,n =1+1=2; 当x =3时,满足1≤x ≤3,所以x =3+1=4,n =2+1=3; 当x =4时,不满足1≤x ≤3,所以输出n =3.12.(2017·西安模拟)执行如图所示的程序框图,如果输出S =3,那么判断框内应填入的条件是__________.答案 k ≤7?解析 首次进入循环体,S =1×log 23,k =3;第二次进入循环体,S =lg3lg2×lg4lg3=2,k =4;依次循环,第六次进入循环体,S =3,k =8, 此时结束循环,则判断框内填k ≤7?.13.(2018·泉州模拟)下面程序框图的算法思路源于我国古代数学名著《九章算术》中的“更相减损术”,执行该程序框图,若输入的a ,b 分别为14,18,则输出的a 等于( )A .0B .2C .4D .14答案 B解析 由题知,若输入a =14,b =18,则第一次执行循环结构时,由a <b 知, a =14,b =b -a =18-14=4; 第二次执行循环结构时,由a >b 知, a =a -b =14-4=10,b =4; 第三次执行循环结构时,由a >b 知, a =a -b =10-4=6,b =4; 第四次执行循环结构时,由a >b 知, a =a -b =6-4=2,b =4;第五次执行循环结构时,由a <b 知, a =2,b =b -a =4-2=2;第六次执行循环结构时,由a =b 知,输出a =2,结束. 故选B.14.(2018·马鞍山质检)根据下列算法语句,当输入x 为60时,输出y 的值为( )A .25B .30C .31D .61 答案 C解析 由题意,得y =⎩⎪⎨⎪⎧0.5x ,x ≤50,25+0.6(x -50),x >50.当x =60时,y =25+0.6×(60-50)=31. 所以输出y 的值为31.15.(2016·山东)执行如图所示的程序框图,若输入的a ,b 的值分别为0和9,则输出的i 的值为________.答案 3解析 第1次循环:i =1,a =1,b =8,a <b ;第2次循环:i =2,a =3,b =6,a <b ;第3次循环:i =3,a =6,b =3,a >b ,输出i 的值为3.16.设a 是一个各位数字都不是0且没有重复数字的三位数.将组成a 的3个数字按从小到大排成的三位数记为I (a ),按从大到小排成的三位数记为D (a )(例如a =815,则I (a )=158,D (a )=851).阅读如图所示的程序框图,运行相应的程序,任意输入一个a ,输出的结果b =________.答案 495解析 取a 1=815,则b 1=851-158=693≠815,则a 2=693;由a 2=693知b 2=963-369=594≠693,则a 3=594;由a 3=594知b 3=954-459=495≠594,则a 4=495;由a 4=495知b 4=954-459=495=a 4,则输出b =495.17.(2018·太原模拟)关于函数f (x )=⎩⎪⎨⎪⎧-x ,1<x ≤4,cos x ,-1≤x ≤1的程序框图如图所示,现输入区间[a ,b ],则输出的区间是________.答案 [0,1]解析 由程序框图的第一个判断条件为f (x )>0,当f (x )=cos x ,x ∈[-1,1]时满足.然后进入第二个判断框,需要解不等式f ′(x )=-sin x ≤0,即0≤x ≤1.故输出区间为[0,1].18.执行如图所示的程序框图,如果输入的x ,y ∈R ,那么输出的S 的最大值为________.答案 2解析 当条件x ≥0,y ≥0,x +y ≤1不成立时输出S 的值为1;当条件x ≥0,y ≥0,x +y ≤1成立时S =2x +y ,下面用线性规划的方法求此时S 的最大值.作出不等式组⎩⎪⎨⎪⎧ x ≥0,y ≥0,x +y ≤1表示的平面区域如图中阴影部分(含边界),由图可知当直线S =2x+y 经过点M (1,0)时S 最大,其最大值为2×1+0=2,故输出S 的最大值为2.19.(2018·沈阳质检)以下给出了一个程序,根据该程序回答:(1)若输入4,则输出的结果是________;(2)该程序的功能所表达的函数解析式为________.答案 (1)15 (2)y =⎩⎪⎨⎪⎧ 2x ,x <3,2,x =3,x 2-1,x >3解析 (1)x =4不满足x <3,∴y =x 2-1=42-1=15.输出15.(2)当x <3时,y =2x ,当x >3时,y =x 2-1;否则,即x =3,y =2.∴y =⎩⎪⎨⎪⎧ 2x ,x <3,2,x =3,x 2-1,x >3.20.(2018·长沙模拟)已知函数f(x)=ax 3+12x 2在x =-1处取得极大值,记g (x )=1f ′(x ).程序框图如图所示,若输出的结果S >20172018,则判断框中可以填入的关于n 的判断条件是______.(填序号)①n ≤2017? ②n ≤2018?③n >2017?④n >2018?答案 ② 解析 由题意得f ′(x )=3ax 2+x ,由f ′(-1)=0,得a =13,∴f ′(x )=x 2+x , 即g (x )=1x 2+x =1x (x +1)=1x -1x +1. 由程序框图可知S =0+g (1)+g (2)+…+g (n )=0+1-12+12-13+…+1n -1n +1=1-1n +1, 由1-1n +1>20172018,得n >2017. 故可填入②.。