第一章 算法初步1.1 算法与程序框图 1.1.1 算法的概念1.下面四种叙述能称为算法的是( ) A.在家里一般是妈妈做饭B.做米饭需要刷锅、淘米、添水、加热这些步骤C.在野外做饭叫野炊D.做饭必须要有米2.下列关于算法的描述正确的是( ) A.算法与求解一个问题的方法相同B.算法只能解决一个问题,不能重复使用C.算法过程要一步一步执行,每步执行的操作必须确切D.有的算法执行完后,可能无结果3.对“求1+2+3+4+5的和”,下列说法正确的是( ) A.只能设计一个算法 B.可以设计两种算法 C.不能设计算法D.设计的算法可以不包含输出 4.阅读下面的算法:第一步,输入两个实数a ,b .第二步,若a <b ,则交换a ,b 的值. 第三步,输出a .这个算法输出的是( )A.a ,b 中的较大数B.a ,b 中的较小数C.原来的a 的值D.原来的b 的值5.写出解方程2x +3=0的算法步骤:第一步,________________________________________________________________. 第二步,________________________________________________________________. 第三步,________________________________________________________________.6.写出求解方程组⎩⎪⎨⎪⎧2x +y =7, ①4x +5y =11 ②的一个算法.7.已知直线l 的倾斜角是α(α≠90°),且直线l 过点P (x 0,y 0),请完成求直线l 的方程的一个算法:第一步,设直线l 的方程为y -y 0=k (x -x 0). 第二步,___________________________________________________________________. 第三步,___________________________________________________________________.8.有5个小球,其中4个的重量相同,仅有一个较重,打算用天平(不用砝码)找出那个重的小球.下面设计了一种用最少的测量次数测出那个重的小球的算法:第一步,将5个小球分成A,B,C三组,每组分别有2,2,1个.第二步,将A,B两组的小球分别放在天平的两侧,若____________________,则________________,然后执行第三步;若______________________,则C组的小球为那个重的小球.第三步,将含那个重的小球的一组的两个小球分别放在天平的两侧,则较重的球为那个重的小球.(1)将上述算法补充完整;(2)若80个小球中含有1个较重的小球,请仿照上述算法设计一个算法,找出那个重的小球.1.1.2程序框图和顺序结构1.下列框图是判断框的是()2.下列是程序框图的一部分,表示恰当的是()A. B.C. D.3.在程序框图中,算法中间要处理数据或计算,可分别写在不同的()A.处理框内B.判断框内C.输入、输出框内D.终端框内4.下列关于程序框图的说法,正确的有()①程序框图只有一个入口,也只有一个出口;②程序框图中的每一部分都应有一条从入口到出口的路径通过它;③程序框图中的循环可以是无限的循环.A.①②③B.②③C.①③D.①②5.如图1-1-4,该算法的功能是计算长方体的()图1-1-4A.体积B.面对角线的长C.体对角线的长D.表面积6.如图1-1-5所示的框图的输出结果为------------图1-1-57已知三角形边长为a ,b ,c ,计算其面积公式为S =p (p -a )(p -b )(p -c ) ⎝⎛⎭⎫其中p =a +b +c 2.如图1-1-6所示的框图是表示求三角形面积的一个算法,但缺少了两个框图,缺少的是______________、____________.图1-1-68.如图1-1-7所示的程序框图的功能是求一个数的相反数,则 内应填____________.图1-1-79.已知小张的期末考语文成绩为102分,数学成绩为120分,英语成绩为116分,求他的总分和平均分的算法为:第一步,输入A =102,B =120,C =116. 第二步,计算A +B +C .第三步,计算A +B +C3.第四步,得出总分和平均分. 请用程序框图表示这个算法.10. 已知直角三角形的两直角边长分别为a ,b ,设计一个求该三角形周长的算法,并画出相应的程序框图.1.1.3 条件结构和循环结构1.下列说法不正确的是( )A.顺序结构是由若干个依次执行的处理步骤组成的,每一个算法都离不开顺序结构B.循环结构中一定包含条件结构C.循环结构中不一定包含条件结构D.循环结构中反复执行的步骤叫做循环体2.如果一个算法的程序框图中有◇,那么表示该算法中一定有( ) A.循环结构和条件结构 B.条件结构 C.循环结构 D.无法确定3.图1-1-16是描述求一元二次方程ax 2+bx +c =0的根的过程的程序框图,则虚线框内是________结构.图1-1-164.(2014年广东茂名一模)某程序框图如图1-1-17,现输入如下四个函数,则可以输出的函数是( )图1-1-17A.f (x )=x 2B.f (x )=1xC.f (x )=e xD.f (x )=sin x 5.阅读图1-1-18,运行相应程序,则输出的i 值为( )A.3B.4C.5D.6图1-1-186.6.如图1-1-20,该程序框图所表示的算法的功能是( )图1-1-20A.比较a ,b ,c 三个数的大小B.求a ,b ,c 三个数中的最大数C.求a ,b ,c 三个数中的最小数D.求a ,b ,c 三个数的和 7.如果执行如图1-1-21所示的程序框图后,输出的S =2550,那么判断框内应填( )A.k <50?B.k ≤50?C.k ≤49?D.k <49?图1-1-218下面是求10的所有正约数的一个算法,请完成这个算法. 第一步,n =1.第二步,若n ≤10,则判断10n是否为整数,若是,则____________,若不是,则执行第三步;若n >10,则执行第四步.第三步,将n用n+1代替,返回____________.第四步,结束.9.(2013年广东)执行如图1-1-19所示的程序框图,若输入n的值为4,则输出s的值为________.图1-1-1910.(创新题)阅读图1-1-22所示的程序框图,试说明它解决的是什么问题.图1-1-2211.(2012年全国)如果执行图1-1-23的程序框图,输入正整数N(N≥2)和实数a1,a2,…,a N,输出A,B,则()图1-1-23 A.A+B为a1+a2+…+a N的和B.A+B2为a1,a2,…,a N的算术平均数C.A和B分别是a1,a2,…,a N中最大的数和最小的数D.A和B分别是a1,a2,…,a N中最小的数和最大的数1.2基本算法语句1.2.1输入语句、输出语句和赋值语句1.下列给出的赋值语句中不正确的是A.x=-x B.x=x-3C.x=x2+1 D.4=x2.执行“PRINT 3+2=”,则输出的结果是()A.3+2=3+2 B.3+2=5C.5=3+2 D.53.下面程序运行的结果是()M=1M=M+1M=M+2PRINT MENDA.2B.3C.4D.54.“x=3×5”,“x=x+1”是某一程序中的先后相邻的两个语句,那么下列说法正确的是()①x=3×5的意思是x=3×5=15,此式与算术中的式子是一样的;②x=3×5的意思是将数值15赋给x;③x=3×5可以写成3×5=x;④x=x+1语句在执行时“=”右边x的值是15,执行后左边x的值是16.A.①③B.②④C.①④D.②③5.在程序语言中,下列符号分别表示什么运算:*____________;/____________;∧______________;SQR()_____________;ABS()___________.6.写出下列各语句描述的算法的输出结果.(1)______________;(2)________________.a=5b=3c=(a+b)/2d=c*cPRINT“d=”;d END a=1b=2c=a+bb=a+c-bPRINT“a,b,c=”;a,b,c END7.下列程序若输出的结果为3,则输入的x值可能是________.INPUT“x=”;xy=x*x+2*xPRINT yEND8.已知函数f(x)=x2+3x+1,编写一个程序计算f(4)的值.9.给出下列程序,此程序的功能为()INPUT“实数”;x1,y1,x2,y2a=x1-x2b=y1-y2m=a∧2n=b∧2S=m+nPRINT SQR(S)ENDA.求点到直线的距离B.求两点之间的距离C.求一个多项式的值D.求输入值的平方根1.2.2 条件语句1.下列关于条件语句的说法正确的是( ) A.条件语句中必须有ELSE 和END IF B.条件语句中可以没有END IFC.条件语句中可以没有ELSE ,但是必须有END IFD.条件语句中可以没有END IF ,但是必须有ELSE2.如下表示的程序,当输入a ,b 的值分别为2,3时,最后输出的值是( ) INPUT a ,b IF a>b THEN m =a ELSEm =b END IF PRINT m ENDA.2B.3C.2或3D.53.已知函数y =⎩⎪⎨⎪⎧x ,x ≥0,-x ,x <0,计算y 的值的程序是( )INPUT “x =”;x IF x =0 THEN y =xEND IF PRINT y END INPUT “x =”;x IF x>=0 THEN y =xELSE y =-x END IF PRINT yENDA BINPUT “x =”;xIF x>=0 THENx =yEND IFPRINT yENDINPUT “x =”;xIF x>=0 THENy =xELSE y =-xPRINT yENDC D4.为了使运行下面程序之后输出y =9,键盘输入应为( )INPUT “x =”;x IF x>=0 THEN y =(x +1)*(x +1)ELSEy =(x -1)*(x -1)END IF PRINT y ENDA.x =-2B.x =-4C.x =-2或x =2D.x =-4或x =45.写出下列程序的运行结果:若x =6,则P =________;若x =20,则P =________.6.函数“MOD”表示求余数,如3MOD2=1(3除以2,余数为1),将下列程序补充完整: INPUT x m =xMOD2IF THEN PRINT “x 是奇数”ELSEPRINT “x 是偶数”END IF END7.对于函数y =⎩⎪⎨⎪⎧x (0<x ≤10),2x -11 (x >10),请补全下面的算法程序(其中x >0).INPUT xIF x>0 AND x<=10 THEN ELSEEND IF PRINT y END8.已知在a,b,c三个实数中,有且只有一个正数,设计一个程序(用算法语句表示),筛选出这个正数.9.铁路部门托运行李的收费方法如下:y是收费额(单位:元),x是行李重量(单位:kg).当0<x≤20时,按0.35元/kg收费;当x>20时,20 kg的部分按0.35元/kg,超出20 kg 的部分,则按0.65元/kg收费.请根据上述收费方法编写程序.1.2.3循环语句1.循环语句有WHILE和UNTIL语句两种,下面说法错误的是()A.WHILE语句和UNTIL语句之间可以相互转化B.当计算机遇到WHILE语句时,先判断条件真假,如果条件符合,就执行WHILE和WEND之间的循环体C.当计算机遇到UNTIL语句时,先执行一次DO和UNTIL之间的循环体,再对UNTIL 后的条件进行判断D.WHILE语句与UNTIL语句之间不可以相互转化2.下面程序执行后,输出的结果是()n=5s=0WHILE s<15s=s+nn=n-1WENDPRINT nENDA.-1B.0C.1D.23.阅读下面程序,该程序是哪个和式的计算?()i=1S=0WHILE i<=10S=S+ii=i+1WENDPRINT SENDA. B.1+2+3+…+11C.1+2+3+…+9D.1+2+3+…+104.以下给出的程序的功能是___________________________.i=1S=1WHILE S<=5000S=S*ii=i+1WENDi=i-2PRINT iEND5.下面是求30个数的平均数的程序,则在横线上应补充语句为()A.i>30B.i<30C.i>=30D.i<=306.把求n!的程序补充完整[注:n!=1×2×…×(n-1)×n]:7.设计一个计算5×7×…×99的算法,并写出相应的算法程序.8.下面程序输出的n值是____________.j =1n=0WHILE j<=11j=j+1IFjMOD 4=0THENn=n+1END IFj=j+1WENDPRINT nEND9.读程序:甲乙i=1S=0WHILE i<=1000 S=S+ii=i+1WENDPRINT SEND i=1000S=0DOS=S+ii=i-1LOOP UNTIL i<1 PRINT SEND对甲、乙程序和输出结果判断正确的是()A.程序不同,结果不同B.程序不同,结果相同C.程序相同,结果不同D.程序相同,结果相同10.设计一个程序,求立方小于等于1000的所有正整数.1.3算法案例1.整数108与84的最大公约数是()A.6B.8C.12D.242.用秦九韶算法求多项式f(x)=7x6+6x5+3x2+2当x=4时的值,先算的是()A.4×4=16B.7×4=28C.4×4×4=64D.7×4+6=343.用秦九韶算法计算多项式f(x)=x7-5x5+2x4+4x3+7x2+9x+2当x=2时的值时,需要做乘法和加法运算的次数分别是()A.7,7B.7,6C.6,7D.6,6.4 根据如图1-3-1所示的求公约数方法的程序框图,输入m=2146,n=1813,则输出的实数m的值为()图1-3-1A.36B.37C.38D.395.将下面的八进制数化为十进制数.(1)24(8);(2)1357(8).6 用秦九韶算法计算多项式x4+x3+x2+x+1的值时,其表达式应写成________________.7.若六进制数13a 502(6)转化为十进制数后,等于12 710,求数字a的值(要求用两种方法解答).8用辗转相除法求210与162的最大公约数,并用更相减损术检验.9..用秦九韶算法求多项式f(x)=7x7+6x6+5x5+4x4+3x3+2x2+x当x=3时的值.参考答案第一章 算法初步 1.1 算法与程序框图 1.1.1 算法的概念 【课后巩固提升】1.B 2.C 3.B 4.A 5.D6.移项,得2x =-3 系数化为1,得x =-32输出x =-327.-2x <-3 x >328.解:用加减消元法解这个方程组,其算法步骤是: 第一步,①×2-②,得-3y =3. ③ 第二步,解③,得y =-1.第三步,①×5-②,得6x =24. ④(或第三步,将y =-1代入①,得2x -1=7. ④) 第四步,解④,得x =4.第五步,方程组的解为⎩⎪⎨⎪⎧x =4,y =-1.9.第二步,求k 值,k =tan α第三步,把k =tan α代入直线l 的方程得y -y 0=tan α(x -x 0)10.解:(1)天平不平衡 那个重的小球在较重的一组中 天平平衡 (2)算法如下:第一步,将全部小球分成A ,B ,C 三组,使A ,B 两组的球一样多,且比C 组多一个球.第二步,将A ,B 两组的小球分别放在天平的两侧,若天平不平衡,则那个重的小球在较重的一组中,执行第三步;若天平平衡,则那个重的小球在C 组中;第三步,对含那个重的小球的一组,重复第一步、第二步的操作直至找出那个重的小球为止.这样至多测量4次就可找出那个重的小球.1.1.2 程序框图和顺序结构 【课后巩固提升】 1.D 2.A 3.A4.D 解析:程序框图有且仅有一个入口和一个出口,其中每一部分都应有一条从入口到出口的路径通过它.程序框图的循环必须在有限步骤内完成,无限的循环被称为死循环,在程序框图中是禁止出现的.5.C6.B 解析:本框图是一个赋值语句.先把y 的值2赋给x ,即x =2;然后再把z 的值3赋给y ,即y =3;最后把x 的值2赋给z ,即z =2.∴输出的x ,y ,z 的值分别为2,3,2.7. 8.解:如图D4.图D4 9.y=-x10.解:算法步骤如下:第一步,输入实数a,b.第二步,计算a2+b2,并将结果赋给c.第三步,计算l=a+b+c.第四步,输出l.程序框图如图D5.图D5 11.解:算法步骤如下:第一步,人带两只狼过河.第二步,人自己返回.第三步,人带一只羚羊过河.第四步,人带两只狼返回.第五步,人带两只羚羊过河.第六步,人自己返回.第七步,人带两只狼过河.第八步,人自己返回.第九步,人带一只狼过河.程序框图如图D6.图D61.1.3条件结构和循环结构【课后巩固提升】1.C 2.B 3.条件 4.D5.B解析:列表依照循环执行过程可得出结果.6.输出n第二步7.7解析:根据题意,该算法的功能为第一步:i=1,s=1+(1-1)=1,i=2;第二步:i=2,s=1+(2-1)=2,i=3;第三步:i=3,s=2+(3-1)=4,i=4;第四步:i=4,s=4+(4-1)=7,i=5.5>4,此时退出程序,输出s=7.8.B9.B解析:因为S=2+4+6+…+100=2550,故k=50,故判断框内填“k≤50?”.10.解:本题为当型循环结构,先执行i≤n?,再循环.i=1是奇数,执行循环体时,i均取奇数,M是所有奇数的3次幂之和,即计算13+33+53+…+n3的值.11.C1.2基本算法语句1.2.1输入语句、输出语句和赋值语句【课后巩固提升】1.D 2.B 3.D 4.D5.乘除乘方求算术平方根求绝对值6.C7.(1)16(2)1,2,38.1或-39.B10.解:程序如下:INPUT“x=”;xx=4y=x∧2+3*x+1PRINT“f(4)=”;yEND11.B1.2.2 条件语句 【课后巩固提升】1.C 2.B 3.B 4.a 是否为0 5.2.1 10.5解析:求分段函数P =⎩⎪⎨⎪⎧0.35x (x ≤10),3.5+0.7(x -10) (x >10)的值.6.m<>0 7.C8.y =x y =2*x -119.解:由题意,得y =⎩⎪⎨⎪⎧0.35x (0<x ≤20),0.35×20+0.65(x -20) (x >20),该函数是一个分段函数,需要对行李的重量作出判断,因此,这个过程可以用算法中的条件结构来实现.程序如下:10.解:程序框图如图D10,程序如下:INPUT a ,b ,c IF a>0 THENPRINT “正数”;a ELSEIF b>0 THENPRINT “正数”;b ELSEPRINT “正数”;c END IF END IF END图D101.2.3 循环语句 【课后巩固提升】 1.D2.B 解析:试运行程序,n =5,s =0;s =5,n =4;s =9,n =3;s =12,n =2;s =14,n =1;s =15,n =0.输出n =0.3.D4.求使1×2×3×…×i ≤5000成立的最大正整数 5.A6.INPUT WHILE WEND 7.解:算法如下: 第一步,令S =5,i =7. 第二步,S =S ×i ,i =i +2.第三步,判断i>99是否成立,若成立,则执行下一步;否则,返回第二步.第四步,输出S,结束.程序如下:S=5i=7DOS=S*ii=i+2LOOP UNTIL i>99PRINT SEND8.3解析:试运行程序,j=1,n=0;j=2,j=3;j=4,n=1,j=5;j=6,j=7;j =8,n=2,j=9;j=10,j=11;j=12,n=3,j=13,输出n=3.9.B解析:甲、乙都是计算1+2+3+…+1000的值.10.解:程序如下:i=0DOi=i+1m=i*i*iLOOP UNTIL m>1000PRINT iEND1.3算法案例【课后巩固提升】1.C 2.153.D解析:因为f(x)=a n x n+a n-1x n-1+…+a1x+a0=(…((a n x+a n-1)x+a n-1)x+…+a1)x+a0,所以用秦九韶算法求多项式f(x)=7x6+6x5+3x2+2当x=4时的值,先算的是7×4+6=34.4.x(x(x(x+1)+1)+1)+15.A解析:此n次多项式的最高次项系数为1且含有系数为0的项,但仍需进行n 次乘法运算和n次加法运算.6.解:(1)24(8)=2×8+4=20.(2)1357(8)=1×83+3×82+5×8+7=751.7.解:210=162×1+48,162=48×3+18,48=18×2+12,18=12×1+6,12=6×2+0.所以210与162的最大公约数为6.检验:因为210与162都是偶数,可同时除以2,即取105与81的最大公约数后再乘2,105-81=24,81-24=57,57-24=33,33-24=9,24-9=15,15-9=6,9-6=3,6-3=3.所以210与162的最大公约数为3×2=6.8.B解析:算法的功能是利用辗转相除法求2146与1813的最大公约数,2146=1813+333;1813=5×333+148;333=2×148+37;148=4×37+0,最大公约数是37.故选B.9.解:方法一:将六进制数转化为十进制数.13a 502(6)=1×65+3×64+a×63+5×62+0×6+2=12 710(10).即7776+3888+216a+180+0+2=12 710,216a=864,a=4.∴a的值为4.方法二:将十进制数12 710(10)化成六进制数.∴12 710(10)=134 502(6),故a=4.10.解:原多项式可化为:f(x)=((((((7x+6)x+5)x+4)x+3)x+2)x+1)x.v0=7,v1=7×3+6=27,v2=27×3+5=86,v3=86×3+4=262,v4=262×3+3=789,v5=789×3+2=2369,v6=2369×3+1=7108,v7=7108×3+0=21 324.所以当x=3时,f(3)=21 324.。