[读教材·填要点]
1.算法的概念
在解决某些问题时,需要设计出一系列可操作或可计算的步骤,通过实施这一系列步骤来解决问题,我们把这一系列步骤称为解决这个问题的一个算法.
2.算法的作用
现代算法的作用之一是使计算机能代替人完成某些工作,这是学习算法的重要原因之一.
3.排序问题
(1)排序的定义:
为了便于查询和检索,根据某种要求把被查询的对象用数字(或者符号)表示出来,并把数字按大小排列,是信息处理中的一项基本工作,通常叫排序.
(2)有序列:
按顺序排列的数据列为有序列.
(3)有序列的排序方法:
有序列的排序方法有直接插入排序法和折半插入排序法两种.
[小问题·大思维]
1.是不是任何一个算法都有明确结果?
提示:是,因为算法的步骤是明确的和有限的,有时可能需大量重复的计算,但只要按部就班地去做,总能得到确定的结果.
2.一个具体问题的算法唯一吗?
提示:解决一个具体问题的算法可有多个,但我们可以选择其中最优的、最简单的、步骤尽量少的算法.
[研一题]
[例1] 下列语句中是算法的有( )
①做饭需要刷锅、淘米、加水、加热这些步骤;
②解一元一次方程的步骤是去分母、去括号、移项、合并同类项、系数化为1;
③方程x2-1=0有两个实根;
④求1+2+3+4的值,先计算1+2=3,再由3+3=6,6+4=10得最终结果是10.
A.1个 B.2个
C.3个 D.4个
[自主解答] ①说明了做饭的步骤;②中给出了一元一次方程这一类问题的解决方式;④中给出了求1+2+3+4的一个过程,最终得出结果;对于③,并没有说明如何去算,故①②④是算法,③不是算法.
[答案] C
[悟一法]
解答这类问题的方法为特征判断法,主要从以下三方面判断:
(1)看是否满足顺序性.算法实际上就是顺序化的解题过程,是指可以用计算机来解决某一类问题的程序或步骤.
(2)看是否满足明确性.算法的每一步都是确定的,而不是含糊的、模棱两可的.
(3)看是否满足有限性.一个算法必须在有限步后结束.如果一个解题步骤永远不能结束,那么就永远得不到答案.因此,有始无终的解题步骤不是算法.
此外,算法的不唯一性也要考虑到.
[通一类]
1.下列语句表达中是算法的有( )
①从济南到巴黎可以先乘火车到北京,再坐飞机抵达;
②x>2x+4;
③求M(1,2)与N(-3,-5)两点连线的方程,可先求MN的斜率,再利用点斜式方程求得.
A.0个 B.1个
C.2个 D.3个
解析:①中说明了从济南到巴黎的行程安排,完成任务.对于②没有说明如何去做.③说明了求直线MN的方程的算法步骤.
答案:C
[研一题]
[例2] 给出解方程ax2+bx+c=0(a、b、c为实常数)的一个算法.
[自主解答] 算法步骤如下:
1.当a=0,b=0,c=0时,解集为全体实数;
2.当a=0,b=0,c≠0时,原方程无实数解;
3.当a=0,b≠0时,原方程的解为x=-;
4.当a≠0且b2-4ac>0时,方程有两个不等实根x1=,
x2=;
5.当a≠0,b2-4ac=0时,方程有两个相等实根x1=x2=-;
6.当a≠0且b2-4ac<0时,方程没有实数根.
[悟一法]
设计算法的基本要求是:(1)设计的算法必须能解决一类问题并且能重复使用;(2)算法的过程需能一步步执行,每步执行的操作必须确切,不能含糊不清,而且经过有限步运算后能得出结果;(3)任何算法都必须输出结果,否则是无意义的算法;(4)如果需要分类讨论解决的问题,那么设计的算法中,要根据条件是否成立来决定执行任务的步骤;(5)如果需要重复做同一种动作,那么设计的算法要含有返回步骤.
[通一类]
2.写出解方程x2-2x-3=0的一个算法.
解:法一:1.移项,得x2-2x=3;①
2.①两边同时加1并配方,得(x-1)2=4;②
3.②式两边开方,得x-1=±2;③
4.解③得x=3,或x=-1.
法二:1.计算方程的判别式并判断其符号,Δ=(-2)2-4×1×(-3)=16>0;
2.将a=1,b=-2,c=-3代入求根公式x=,得x1=3,x2=-1.
[研一题]
[例3] 将-4插入有序列{-8,-3,0,2,6}中,分别用直接插入排序法和折半插入排序法写出算法.
[自主解答] 法一:直接插入排序法:
1.-4与6比较,由于-4<6,则-4在6的左边;
2.-4与2比较,由于-4<2,则-4在2的左边;
3.-4与0比较,由于-4<0,则-4在0的左边;
4.-4与-3比较,由于-4<-3,则-4在-3的左边;
5.-4与-8比较,由于-4>-8,则-4在-8的右边,则-4在-8与-3之间;
6.得新的有序列{-8,-4,-3,0,2,6}.
法二:折半插入排序法:
1.-4与0比较,由于-4<0,则-4在0的左边;
2.-4与-8比较,由于-4>-8,则-4在-8的右边;
3.-4与-3比较,由于-4<-3,则-4在-3的左边,故-4在-8与-3之间;
4.得新的有序列{-8,-4,-3,0,2,6}.
[悟一法]
有序列直接插入排序法与折半插入排序法的区别是:有序列直接插入排序法就是比较两个数的大小,再把其余的数依次进行比较插入到这个数列中,而折半插入排序法是先将新数据与“中间位置”的数据进行比较,把原有序列折半,直到确定新数据应有的位置.
[通一类]
3.设计一个算法,对无序列{36,6,12,24,38,46,0}进行排序.
解:算法如下:
1.{36}是有序列,将36与6比较,因为36>6,故得到有序列{6,36};
2.将12与6,36各数进行比较,因为12>6,12<36,故得到有序列{6,12,36};
3.将24与6,12,36各数进行比较,因为24>12,24<36,故得到有序列{6,12,24,36};
4.将38与6,12,24,36各数进行比较,因为38>36,故得到有序列{6,12,24,36,38};
5.将46与6,12,24,36,38各数进行比较,因为46>38,故得到有序列{6,12,24,36,38,46};
6.将0与6,12,24,36,38,46各数进行比较,因为0<6,故得到有序列{0,6,12,24,36,38,46}.
所以,排序之后的结果为{0,6,12,24,36,38,46}.
设计一个算法,求1+2+3+4+5+6+7+8+9+10的值.
[错解] 1.计算1+2的值为3;
2.将3加到上一步的结果中,3+3=6;
3.将4加到上一步的结果中,6+4=10;
…
9.将10加到上一步的结果中,45+10=55;
10.输出结果为55.
[错因] 根据算法的确定性.算法的每一步都是明确具体的.当算法中出现类似步骤时,可以给出判定条件重复执行,不能由省略号代替.本题做错的根本原因在于对算法的确定性理解不到位所致.
[正解] 算法:
1.令S=0,n=1;
2.将n加给S;
3.判断n是否为10,若不是,则n加1后,执行第二步;若n是10,则输出结果S后结束.
1.下列说法正确的是( )
A.“5+6=11”是一个算法
B.“3是15与21的公约数”是一个算法
C.判断15是否为素数的一个程序或步骤是一个算法
D.用二分法求方程x2-2=0的近似根(精确到0.01)是一个算法
解析:算法中的程序或步骤应是明确的,有效的,且在有限步之内能够解决问题.
答案:D
2.用折半插入排序法将1插入有序列{-2,-1,3,5,8}中,则第一次与该有序列中的哪个数比较( )
A.-2 B.-1
C.3 D.8
解析:∵有序列的中间数据为3,∴应先与3比较大小.
答案:C
3.计算下列各式中的S值,能设计算法求解的是( )
①S=1+2+3+…+100;
②S=1+2+3+…+100+…;
③S=1+2+3+…+n(n≥1,且n∈N*).
A.①② B.①③
C.②③ D.①②③
解析:算法的设计要求步骤是可行的,并且能在有限步之内完成任务.
答案:B
4.以下有六个步骤:
①拨号;②等拨号音;③提起话筒(或免提功能);④开始通话或挂机(线路不通);⑤等复话方信号;⑥结束通话.
试写出打一个本地电话的算法________.(只写编号)
解析:按照拨打电话的顺序设计,同时考虑所有可能的情况.
答案:③②①⑤④⑥
5.求二次函数y=ax2+bx+c(a≠0)的最值的一个算法如下,请将其补充完整:
第一步,计算m=.
第二步,________________________________________________________________.
第三步,________________________________________________________________.
解析:m是最大值还是最小值由a的正负确定,依据二次函数求最值的方法,确定第二、三步的内容.
答案:如果a>0,则得到ymin=m,否则执行第三步 得到ymax=m
6.求半径r=2的圆的周长,写出算法.
解:算法如下:
1.取r=2;
2.计算C=2πr;
3.输出C.
一、选择题
1.想泡茶喝,当时的情况是:火已经生起了,凉水和茶叶也有了,开水没有,开水壶要洗,茶壶和茶杯要洗,下面给出了四种不同形式的算法过程,你认为最好的一种算法是( )
A.洗开水壶,灌水,烧水,在等待水开时,洗茶壶、茶杯、拿茶叶,等水开了后泡茶喝
B.洗开水壶,洗茶壶和茶杯,拿茶叶,一切就绪后,灌水,烧水,坐等水开后泡茶喝
C.洗开水壶,灌水,烧水,坐等水开,等水开后,再拿茶叶,洗茶壶、茶杯,泡茶喝
D.洗开水壶,灌水,烧水,再拿茶叶,坐等水开,洗茶壶、茶杯,泡茶喝
解析:解决一个问题可以有多种算法,可以选择其中最优、最简单、步骤尽可能少的算法.选项中的四种算法中都符合题意,但算法A运用了统筹法原理,因此这个算法要比其余的三种算法科学.
答案:A
2.将有序列{5,4,3,2,1}按照从小到大的顺序输出,通过直接排序需要排序的次数为( )
A.7 B.8
C.9 D.10
解析:1.把4插入到{5}中,得{4,5},需1次排序;
2.把3插入到{4,5}中,得{3,4,5},需2次排序;
3.把2插入到{3,4,5}中,得{2,3,4,5},需3次排序;
4.把1插入到{2,3,4,5}中,得{1,2,3,4,5},需4次排序.
故共需1+2+3+4=10次排序.
答案:D
3.下列叙述能称为算法的个数为( )
①植树需要运苗、挖坑、栽苗、浇水这些步骤.
②顺序进行下列运算:1+1=2,2+1=3,3+1=4,…,99+1=100.
③从枣庄乘火车到徐州,从徐州乘飞机到广州.
④3x>x+1.
⑤求所有能被3整除的正数,即3,6,9,12,….
A.2 B.3
C.4 D.5
解析:根据算法的含义和特征:①②③都是算法.④⑤不是算法.其中④,3x>x+1不是一个明确的逻辑步骤,不符合逻辑性;⑤的步骤是无穷的,与算法的有穷性矛盾.
答案:B
4.下列所给问题中:
①二分法解方程x2-3=0(精确到0.01);
②解方程
③求半径为2的球的体积;
④判断y=x2在R上的单调性.
其中可以设计一个算法求解的个数是( )
A.1 B.2
C.3 D.4
解析:由算法的特征可知①②③都能设计算法.对于④,当x>0或x<0时,函数y=x2是单调递增或单调递减函数,但当x∈R时,由函数的图像可知在整个定义域R上不是单调函数,因此不能设计算法求解.
答案:C
5.已知算法:
1.输入n;
2.判断n是否是2,
若n=2,则n满足条件;
若n>2,则执行第3步;
3.依次检验从2到n-1的整数能不能整除n,若不能整除n,满足条件.
上述满足条件的数是( )
A.质数 B.奇数
C.偶数 D.4的倍数
解析:由质数的定义知,满足条件的是质数.
答案:A
二、填空题
6.给出下列算法:
1.输入x的值.
2.当x>4时,计算y=x+2;否则执行下一步.
3.计算y=.
4.输出y.
当输入x=10时,输出y=__________.
解析:∵x=10>4,∴计算y=x+2=12.
答案:12
7.已知直角三角形的两条直角边长分别为a,b,写出求斜边c的算法步骤.
1.________________________________________________________________________;
2.________________________________________________________________________;
3.________________________________________________________________________.
解析:先输入a、b的值,再根据勾股定理算出斜边c的长,最后输出c的结果.
答案:输入两直角边长a、b的值
计算c=
输出斜边长c的值
8.将{5,21,37,13,29}按照从小到大的顺序排序,所需排序的次数为________.
解析:1.将{5}作为一个有序列;
2.由5<21,得到{5,21};
3.将37插入{5,21},得到{5,21,37};
4.将13插入{5,21,37},得到{5,13,21,37};
5.将29插入{5,13,21,37},得到{5,13,21,29,37}.
故排序结果为{5,13,21,29,37},需1+1+3+2=7次排序.
答案:7
三、解答题
9.请设计求18的所有正约数的算法.
解:1.18=2×9;
2.18=2×32;
3.列出18的所有正约数:1,2,3,32,2×3,2×32.
10.写出将56插入有序列{1,8,12,36,49,57,68,79}中的算法.
解:法一:1.56与79比较,56<79,56应在79的左边;
2.56与68比较,56<68,56应在68的左边;
3.56与57比较,56<57,56应在57的左边;
4.56与49比较,56>49,56应在49的右边.
因此将56插入到49与57之间,得到一个新的有序列,{1,8,12,36,49,56,57,68,79}.
法二:1.将56与中间位置的数36比较,56>36,故56应该在36的右边;
2.将56与剩余的数的中间位置的数57比较,56<57,故56应该在57的左边;
3.再将56与49比较,56>49,故56应该在49与57之间.
由此得插入56后的新的有序列{1,8,12,36,49,56,57,68,79}.2.2 变量与赋值
[读教材·填要点]
1.变量
(1)定义:在研究问题的过程中,可以取不同数值的量称为变量.在设计算法的过程中,引入变量后,会使算法的表述变得非常简洁、清楚.
(2)表示法:算法中的变量常用英文字母表示或英文字母加数字表示.例如A,B,a,b,c等.不同的变量要用不同的字母表示.
2.赋值
在算法中,把变量A的值赋予变量B,这个过程称为赋值,记作B=A,其中“=”称为赋值号.
[小问题·大思维]
1.赋值号与数学中的等号相同吗?
提示:不相同.
2.在算法中,“A=B”和“B=A”相同吗?
提示:在算法中,“A=B”和“B=A”不同,其中A=B表示把变量B的值赋予A;B=A则表示把A的值赋予B.
[研一题]
[例1] 判断下列赋值语句是否正确:
(1)1=m;(2)x-y=3;(3)A=B=2;(4)N=M.
[自主解答] 由赋值语句中的“=”左边是变量,右边是表达式知(1)(2)错误,由赋值语句只能给一个变量赋值,不能出现两个或多个“=”知(3)错误,(4)是正确的,故(1)错误;(2)错误;(3)错误;(4)正确.
答案:(1)(2)(3)错误,(4)正确
[悟一法]
1.赋值语句的格式为:变量=表达式,先计算右边表达式的值,然后把这个值赋给“=”左边的变量.
2.赋值号左边只能是变量名称,如:X+Y=3是不正确的,3=X也是不正确的.
3.在一个赋值语句中,不能出现两个或更多个“=”.
[通一类]
1.下列赋值语句中正确的是( )
A.4=M B.x+y=10
C.A=B=2 D.N=N2
答案:D
[研一题]
[例2] 写出下列语句描述的算法的输出结果:
(1)a=5;
b=3;
c=;
d=c2;
输出d.
(2)a=10;
b=20;
c=30;
a=b;
b=c;
c=a;
输出a,b,c.
[自主解答] (1)∵c===4,∴c2=42=16,即d=16.
(2)由a=b及b=20知a=20,
又b=c及c=30知b=30,c=a及a=20知c=20,
∴a=20,b=30,c=20.
[悟一法]
赋值号与数学中的等号的意义不同.赋值号左边的变量如果原来没有值,则在执行赋值语句后,获得一个值.如果原已有值,则执行该语句后,以赋值号右边表达式的值代替该变量的原值,即将原值“冲掉”,如N=N+1,在数学中是不成立的,但在赋值语句中,意思是将N的原值加1再赋给N,此时左边N的值就是原来N的值加1,如果N的原值为4,则经过赋值后,N值变为5.
一个变量可以多次赋值,其值是最后一次所赋予的值,如A=3,A=4,A=5,最后若输出A,则A的值为5.
[通一类]
2.图中算法框图的功能是______________________________________________.
答案:(1)求以a,b为直角边的直角三角形的斜边c的长.
(2)求两个实数a,b的和
[研一题]
[例3] 金融业是现代生活中不可或缺的行业,与我们有着密切的关系.某人现有5 000元人民币,他按照定期一年的存款方式存入银行,到期自动转存,按复利计算,如果当前定期一年的利率为3.5%,试求5年后这个人连本带息可以取出多少钱?用算法解决问题,画出框图.
[自主解答] 设这个人在n(n=1,2,3,4,5)年后连本带息可以取出a元,算法如下:
1.a=5 000;
2.a=a(1+3.5%);
3.a=a(1+3.5%);
4.a=a(1+3.5%);
5.a=a(1+3.5%);
6.a=a(1+3.5%);
7.输出a;
算法框图如图所示:
[悟一法]
赋值语句就是将表达式所代表的值赋给变量,在计算机执行赋值语句时,先计算“=”右边表达式的值,然后把这个值赋给“=”左边的变量.
[通一类]
3.编写一个算法,求用长度为l的细铁丝分别围成的正方形和圆的面积.要求输入l的值,输出正方形和圆的面积,并画出框图.
[自主解答] 算法步骤如下:
1.输入l的值;
2.S1=;
3.S2=;
4.输出S1,S2.
算法框图如图所示:
已知一个正三棱锥的底面边长为a,高为h.用赋值语句表示求该三棱锥体积的过程.
[错解] S=a2;V=Sh.
[错因] 在错解中没有指明输出的是哪一个变量,过程不完整,这是解题过程中易犯的错误.
[正解] S=a2;V=Sh;
输出V.
1.如图所示的算法框图的功能是( )
A.交换变量M、N的值
B.交换变量M、P的值
C.交换变量N、P的值
D.无意义
答案:C
2.如图所示的算法框图的输出结果是( )
A.3 B.2
C.1 D.0
解析:第一步,分别将1,2,3赋值给x,y,z,第二步,将y的值赋给x,即x=2,再将2赋给y,即y=2,最后将y的值2赋给z,即z=2,第三步输出z的值是2.
答案:B
3.如图算法框图中,结果为:( )
A.20,15 B.35,35
C.5,5 D.-5,-5
解析:在a=a+b中a=35,
在b=a-b中b=15,
在a=a-b中a=20.
答案:A
4.下列语句执行完后,A、B的值分别为________.
A=2
B=2
B=A*A
A=A+B
B=A+B
解析:第三步B=2×2=4,
第四步:A=2+4=6,
第五步:B=6+4=10.
答案:6,10
5.如图所示的算法框图输出的结果是_____________________.
解析:∵x=-2,
∴y=-2x+1=5,
b=6y-2=28.
答案:28
6.已知函数f(x)=3x-4,求f[f(3)]的值,设计一个算法,并画出算法框图.
解:算法步骤:
1.输入x=3;
2.计算y=3x-4;
3.计算y=3y-4;
4.输出y值.
算法框图:
一、选择题
1.赋值语句描述的算法如下:
a=3;
a=5;
输出a.
则运行结果是( )
A.5 B.3
C.a D.8
解析:此算法中用到了赋值语句.虽然a=3是把3赋予a,但是接下来的语句a=5,又把5赋予a,所以输出a的值为5.
答案:A
2.将两个数a=1,b=2交换,使a=2,b=1,下面语句正确的是( )
A.a=b,b=a
B.b=a,a=b
C.a=c,c=b,b=a
D.c=b,b=a,a=c
解析:“a=b”的含义是把b的值赋给a.选项A得到的结果是a=2,b=2;选项B得到的结果是a=1,b=1;选项C中c的值不明确;选项D正确.
答案:D
3.阅读算法框图,若输入的a,b,c分别为21,32,75,则输出的a,b,c分别是( )
A.75,21,32
B.21,32,75
C.32,21,75
D.75,32,21
解析:算法框图的运行过程是:
a=21;
b=32;
c=75;
x=21;
a=75;
c=32;
b=21;
则输出75,21,32.
答案:A
4.下列算法语句执行后的结果是( )
i=2;
j=5;
i=i+j;
j=i+j;
输出i,j.
A.i=12,j=7 B.i=12,j=4
C.i=7,j=7 D.i=7,j=12
解析:算法中i=i+j是2+5=7赋值给i,j=i+j是7+5=12赋值给j,两处的i+j取值不同.
答案:D
5.如图所示的算法框图中,如果输入三个实数a,b,c,要求输出这三个数中最大的数,那么在空白的判断框中,应该填入下面四个选项中的( )
A.c>x B.x>c
C.c>b D.b>c
解析:该算法框图执行空白处的判断框时,x是a,b的最大值,空白处的判断框内的条件不成立时x大于c,则输出最大值x,所以空白处的判断框内应填入c>x.
答案:A
二、填空题
6.执行下列赋值语句后,变量A=________.
A=1;
A=A+1;
A=2A.
答案:4
7.下列语句执行完后,A、B、C的值分别为________.
A=1
B=2
C=A-B
B=A+C-B
解析:阅读程序,由语句C=A-B及A=1、B=2得C=-1,又根据B=A+C-B得B=-2,所以语句执行完后,A、B、C的值分别为1,-2,-1.
答案:1,-2,-1
8.阅读如图所示的算法框图,若输入a=12,则输出a=________.
解析:输入a=12,该算法框图的执行过程是:
a=12,b=12-6=6,
a=12-6=6,输出a=6.
答案:6
三、解答题
9.下列语句运行后,a,b,c的值各等于什么?
(1)a=3 (2)a=3
b =-5 b =-5
c=8 c=8
a=b a=b
b=c b=c
输出a,b,c. c=a
输出a,b,c
解:(1)把b的值-5赋予a(取代a原来的值),把c的值8赋予b(取代b原来的值),c的值不变.所以最后结果为a=-5,b=8,c=8;
(2)把b的值-5赋予a,c的值8赋予b,又把a的新值-5赋予c,所以最后结果为a=-5,b=8,c=-5.
10.已知一个正三棱柱的底面边长为a,高为h,写出求正三棱柱的表面积和体积的一个算法,并画出框图.
解:根据正三棱柱的表面积及体积公式来完成,算法如下:第一步,输入a,h.第二步:计算正三棱柱的表面积:S=a2,C=3a,T=Ch,P=T+2S;体积为V=Sh.第三步:输出表面积P和体积V,算法结束.
算法框图如图所示:3.2 循 环 语 句
[读教材·填要点]
1.For语句
(1)格式:
For循环变量=初始值To终值 循环体Next
(2)适用于预先知道循环次数的循环结构.
2.Do Loop语句
(1)格式:
(2)适用于预先不知道循环次数的循环结构.
[小问题·大思维]
1.For语句与Do Loop语句有什么区别?
提示:两种循环语句的区别是For语句是先从循环变量的初值开始执行第一次循环体,直到循环变量取到其终值结束循环,适用于预先知道循环次数的循环结构;而Do Loop语句则是先判断条件,当条件为真时,执行循环体,否则结束循环,适用于那些预先不知道循环次数的循环结构.
2.何时才能用到循环语句?
提示:在问题处理中,经常要对某一步骤或若干步骤重复执行多次,即对不同的运算对象进行若干次的相同运算或处理,这种模式就对应程序设计中的循环结构,在算法中的循环结构就是由循环语句来实现的.
[研一题]
[例1] 画出计算12+32+52+…+9992的算法框图,并用For语句写出相应的程序.
[自主解答] 算法框图如下:
S=0
For i=1 To 999 step 2
S=S+i*i
Next
输出S.
[悟一法]
1.For语句适合预先知道循环次数的循环结构,利用For语句表示循环结构时首先要确定循环变量的初始值和终值,然后确定循环体.
2.在For循环语句中,我们默认循环变量每次的增量为1.如果需要考虑增量不为1的情况,需要使用参数Step.
例如,“输出1到100内的所有奇数”的算法语句为:
For i=1 To 100 Step 2.
[通一类]
1.用For语句设计算法,计算3+6+9+…+150的值.
解:S=0
For i=1 To 50
S=S+3]
Next
输出S.
[研一题]
[例2] 设计一个求满足1+3+5+…+n>500的最小自然数n的算法框图,并用Do Loop语句描述这个算法.
[自主解答] 算法框图如下:
Do Loop语句
i=1
S=0
Do
S=S+i
i=i+2
Loop While S<=500
i=i-2
输出i
[悟一法]
Do Loop语句,先执行一次循环体,若符合条件,继续执行循环体;当不符合条件时,跳出循环,执行Do Loop语句后的语句.
[通一类]
2.将求1×2×3×4×5×6×7×8×9×10的程序补充完整:
a=10
b=1
Do
b=b*a
__(1)__
Loop While __(2)__
输出b
解:a的初始值为10,故循环体中的值应该逆减,即a从10减小到1,循环体的条件应为a≥1.
答案:a=a-1 a≥1
[研一题]
[例3] 用循环语句表示求a1,a2,a3,a4的最大值的一个算法.
[自主解答]
输入a1,a2,a3,a4;
M=a1,
i=2
Do
If ai>M Then
M=ai
i=i+1
Else
i=i+1
End If
Loop While i<=4
输出M.
[悟一法]
循环语句格式严格、条件准确,不能有半点马虎,一点不对,全题皆错.当循环语句中有嵌套条件语句时要先确定外层的循环语句,再逐步确定内层的条件语句.
[通一类]
3.给出以下10个数:4,10,70,33,95,74,29,17,60,30.要求将大于40的数找出来,画出求解该问题的算法框图,并写出程序.
解:算法框图如图所示:
i=1
Do
输入x
If x>40 Then
输出x
End If
i=i+1
Loop While i<=10.
用基本语句写一个算法,计算2+4+6+…+20.
[解] 法一:用语句描述为:
i=2
S=0
Do
S=S+i
i=i+2
Loop While i<=20
输出S.
法二:用语句描述为:
S=0
For i=2 To 20 Step 2
S=S+i
Next
输出S.
1.关于Do Loop循环语句叙述正确的是( )
A.总是执行循环体
B.执行一次循环体
C.满足条件时执行循环体
D.遇到Do Loop就结束
解析:对于Do Loop循环语句,先执行循环体,再根据条件是否成立来确定执行循环体.
答案:C
2.下列程序输出的结果是( )
i=1
S=0
Do
S=S*2+1
i=i+1
Loop While i<=4
输出S.
A.3 B.7 C.15 D.19
解析:由程序语句可知,该循环体共循环4次,分别为S=2×0+1=1,S=2×1+1=3,S=2×3+1=7,S=2×7+1=15.
答案:C
3.下列问题可以用循环语句设计程序的有( )
①求1+3+32+…+39的和;
②比较a,b两个数的大小;
③对于分段函数,要求输入自变量,输出函数值;
④求平方值小于100的最大自然数.
A.0个 B.1个 C.2个 D.3个
解析:①④可以用循环语句设计程序;②③要用条件语句设计程序.
答案:C
4.给出下列方程,若运行程序后输出的结果是1 320,则循环执行的“条件”应为________.
i=12
S=1
Do
S=S*i
i=i-1
Loop While条件
输出S
答案:i>=10
5.下面程序语句输出的S值是________.
i=1
S=0
For i=1 To 5
S=S+i
Next
输出S
解析:S=1+2+3+4+5=15.
答案:15
6.已知函数f(x)=,实数a1=f(1),a2=f(a1),…,an+1=f(an),试写出用循环语句表示的求a8的算法,并画出框图.
解:用语句描述为:
A=1
n=1
For n=1 To 8
A=A/(1+A)
Next
输出A.
框图:
一、选择题
1.以下程序
s=0
For x=-1 To 11
s=x*x
Next
输出s.
该程序输出结果是( )
A.-1 B.11
C.100 D.121
解析:由For语句的算法特点可知,s=11×11=121.
答案:D
2.下列程序的运行结果为( )
i=0
S=0
Do
i=i+1
S=S+i
Loop While S<=20
输出i
A.5 B.6
C.7 D.8
解:由于0+1+2+3+4+5=15,0+1+2+3+4+5+6=21,∴i=6.
答案:B
3.下列程序中的For语句终止循环时,S等于( )
S=1
For M=1 To 13 Step 3
S=S+M
Next
输出S.
A.1 B.5
C.10 D.35
解析:S=1+4+7+10+13=35.
答案:D
4.下列算法的运行结果是( )
S=0
For i=1 To 5
S=S+1/i
Next
输出S.
A. B.
C. D.3
解析:本算法是求1++++的和.
答案:A
5.下列算法运行后的输出结果为( )
i=1
Do
i=i+2
S=3+2*i
I=i+1
Loop While i<8
输出S.
A.17 B.19
C.21 D.23
解析:这是用Do Loop语句编写的算法,按Do Loop语句的运行程序可知最后一次执行循环体时S=3+2×(7+2)=21.
答案:C
二、填空题
6.S=0
For i=0 To 10 000 Step2
S=S+i
Next
输出S
则循环10次的结果是________.
解析:算法程序实际是在计算S=0+2+4+…+10 000如果循环10次,则有S=0+2+4+6+8+…+18=90.
答案:90
7.S=0
For i=1 To 100
S=S+i*i
Next
输出S
则该语句的算法功能为______________.
解析:S=12+22+…+1002.
答案:计算12+22+…+1002的值
8.如图,把求+++…+的值的程序补充完整,则(1)____________;(2)____________.
i=1
S=0
Do
Loop While __(2)__
输出S
答案:(1)S=S+1/i*(i+3)
(2)i<=50
三、解答题
9.据下列框图写出对应算法语句.
解:S=0
i=1
Do
S=S+i
i=i+1
Loop While i<=1 000
输出S.
10.猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天又将剩下的桃子吃掉一半,又多吃了一个,以后每天早上都吃前一天剩下的一半零一个,到第十天早上想吃时,见只剩一个桃子了,求第一天共摘了多少桃子?画出算法框图,并用语句描述.
解:算法框图如图所示.
程序如下:
s=1
For i=1 To 9
s=2*(s+1)
Next
输出S2.1 顺序结构与选择结构
[读教材·填要点]
1.顺序结构
(1)定义:按照步骤依次执行的一个算法,称为具有“顺序结构”的算法,或者称为算法的顺序结构.
(2)算法框图:如图所示.
2.选择结构
(1)定义:在算法中,需要判断条件的真假,依据判断的结果决定后面的步骤,像这样的结构通常称为选择结构.
(2)算法框图:如图所示.
3.几个基本程序框、流程线和它们各自表示的功能
图形符号 名称 功能
终端框(起止框) 表示一个算法的起始和结束
输入、输出框 表示一个算法输入和输出的信息
处理框(执行框) 赋值、计算
判断框 成立时标明“是”或“Y”;不成立时标明“否”或“N”
流程线 连接程序框
连接点 连接框图的两部分
[小问题·大思维]
1.顺序结构和选择结构有什么区别?
提示:选择结构不同于顺序结构的地方是:它不是依次执行,而是依据条件作出逻辑判断,选择执行不同指令中的一个.
2.什么问题适合用选择结构的框图进行设计?
提示:(1)凡根据条件先作出判断,再决定进行哪一个步骤的问题,在画程序框图时,必须引入判断,应用条件结构.如分段函数求值、数据的大小比较及含“若……则……”字样等问题.
(2)解决问题时的注意事项:常常先判断条件,再决定程序流向,菱形图有两个出口,但在最终执行程序时,选择的路线只能有一条.
[研一题]
[例1] 一次考试中,某同学的语文,数学,英语,物理,化学的成绩分别是a,b,c,d,e,设计一个计算该同学的总分和平均分的算法,并画出算法框图.
[自主解答] 算法步骤如下:
1.输入该同学的语文,数学,英语,物理,化学的成绩:a,b,c,d,e.
2.计算S=a+b+c+d+e.
3.计算W=.
4.输出S和W.
算法框图如图所示.
[悟一法]
顺序结构的执行顺序为从上到下依次进行.在画框图时要遵循以下原则:
(1)特定的符号表示特定的含义,不能随意创造;
(2)图形符号内的语言要精炼;
(3)框图的方向是自上而下或自左向右.
[通一类]
1.已知一个三角形三条边的边长分别为a,b,c,则三角形面积为S=,其中p=.请利用上述公式设计一个计算三角形面积的算法,并画出算法框图.
解:1.输入三角形三条边的长a,b,c.
2.计算p=.
3.计算S=.
4.输出S.
算法框图如图所示:
[研一题]
[例2] 某居民区的物业管理部门每月向居民收取卫生费,计费方法是:3人和3人以下的住户,每户收取5元;超过3人的住户,每超出1人加收1.2元,设计一个算法,根据输入的人数,计算应收取的卫生费,画出算法框图.
[自主解答] 设住户的人数为x,收取的卫生费为y元,依题意有y=这是一个分段函数求值问题,算法步骤如下:
1.输入x;
2.若x≤3,则y=5;否则y=5+1.2(x-3);
3.输出y.
算法框图如图:
[悟一法]
1.设计算法框图时,首先设计算法步骤(自然语言),再将算法步骤转化为算法框图(图形语言).如果已经非常熟练掌握了画算法框图的方法,那么可以省略设计算法步骤而直接画出算法框图.对于算法中含有分类讨论的步骤,在设计算法框图时,通常用选择结构的算法框图.
2.解决分段函数的求值问题,一般采用选择结构来设计算法.解决此类问题的关键是判断框中内容的填写,通常为分段函数的某一段自变量的范围.
[通一类]
2.任意给定3个正实数,设计一个算法,判断以这3个正实数为三条边边长的三角形是否存在,并画出这个算法框图.
解:算法如下:
1.输入3个正实数a,b,c;
2.判断a+b>c,b+c>a,c+a>b是否同时成立,若是,则存在这样的三角形;否则,不存在这样的三角形.
算法框图如图所示.
[研一题]
[例3] 如图所示是解决某个问题而绘制的算法框图,仔细分析各程序框内的内容及程序框之间的关系,回答下面的问题:
(1)该算法框图解决的是怎样的一个问题?
(2)若最终输出的结果y1=3,y2=-2,当x取5时输出的结果5a+b的值应该是多大?
(3)在(2)的前提下,输入的x值越大,输出的ax+b是不是越大?为什么?
(4)在(2)的前提下,当输入的x值为多大时,输出结果ax+b等于0
[自主解答] (1)该框图解决的是求函数f(x)=ax+b的函数值的问题.其中输入的是自变量x的值,输出的是x对应的函数值.
(2)y1=3,即2a+b=3 ①
y2=-2,即-3a+b=-2 ②
由①②得a=1,b=1.
∴f(x)=x+1.
∴当x取5时,5a+b=f(5)=5×1+1=6.
(3)输入的x值越大,输出的函数值ax+b越大,因为f(x)=x+1是R上的增函数.
(4)令f(x)=x+1=0,得x=-1,因而当输入的x值为-1时,输出的函数值为0.
[悟一法]
已知算法框图的函数问题,将框图所表示的算法翻译成自然语言,是由用自然语言表达的算法画出算法框图的逆向过程,对这两种语言的互译有助于熟练掌握算法的设计,而将算法框图翻译成自然语言相对而言比较陌生,是一个难点.
[通一类]
3.阅读算法框图,写出它表示的函数.
解:y=
如图,给出了一个算法框图,其作用是输入x的值,输出相应的y的值.若要使输入的x的值与输出的y的值相等,则这样的x的值有( )
A.1个 B.2个
C.3个 D.4个
[错解] 该算法框图的作用是求分段函数
y=的函数值.
(1)当x≤1时,令x2=x,得x=0或x=1.
(2)当1<x≤3时,令2x-3=x,得x=3.
(3)当x>3时,令=x,得x=±1均不满足x>3,故舍去.
综上,只有3个值符合.
[错因] 忽视分段函数定义域,而导致出错.
[正解] 该算法框图的作用是求分段函数
y=的函数值.
(1)当x≤1时,令x2=x,得x=0或x=1符合.
(2)当1<x<3时,令2x-3=x,得x=3,不符合,舍去.
(3)当x≥3时,令=x得x=±1,均不满足x≥3,故舍去.
综上可知,有2个值符合题意.
[答案] B
1.下列关于选择结构的说法中正确的是( )
A.对应的算法框图有一个入口和两个出口
B.对应的算法框图有两个入口和一个出口
C.算法框图中的两个出口可以同时执行
D.对于同一个算法来说,判断框中的条件是唯一的
答案:A
2.如图所示的算法框图,当输入x=2时,输出的结果是( )
A.4 B.5
C.6 D.13
解析:该算法框图的执行过程是:x=2,y=2×2+1=5,b=3×5-2=13,输出b=13.
答案:D
3.如图所示的算法框图,其功能是( )
A.输入a,b的值,按从小到大的顺序输出它们的值
B.输入a,b的值,按从大到小的顺序输出它们的值
C.求a,b中的最大值
D.求a,b中的最小值
解析:输入a=2,b=1,运行算法框图可得输出2,根据题意可知该算法框图的功能是输入a,b的值,输出它们中的最大值,即求a,b中的最大值.
答案:C
4.如图所示的框图,若a=5,则输出b=________.
解析:这是一个分段函数b=的求值问题.根据条件易知,b=52+1=26.
答案:26
5.阅读如图所示的框图,若输入x的值为2,则输出y的值为________.
解析:框图的实质是一个分段函数求值问题.
此分段函数为y=
若输入x=2,则应代入第一个式子,
则有y=x2-4x+4=4-8+4=0.
答案:0
6.“特快专递”是目前人们经常使用的异地邮寄信函或托运物品的一种快捷方式,某快递公司规定甲、乙两地之间物品的托运费用根据下列方法计算:
f=
其中f(单位:元)为托运费,ω为托运物品的重量(单位:千克),试画出计算费用f的算法框图.
解:
一、选择题
1.如图所示的选择结构,下列说法错误的是( )
A.当条件为假时,执行步骤甲
B.当条件为真时,执行步骤乙
C.无论条件是真是假,只能执行步骤甲和步骤乙中的一个
D.可能同时执行步骤甲和步骤乙
解析:步骤甲和乙不能同时执行.
答案:D
2.已知函数y=输入自变量x的值,求对应的函数值,设计算法框图时所含有的基本逻辑结构是( )
A.顺序结构 B.选择结构
C.顺序结构、选择结构 D.以上都不是
解析:任何算法框图中都有顺序结构,由于自变量在不同的范围内,有不同的对应法则,用选择结构.
答案:C
3.如图所示的算法框图,输入x=2,则输出的结果是( )
A.1 B.2
C.3 D.4
解析:输入x=2;则x=2>1,∴y==2,输出y=2.
答案:B
4.如图所示,算法框图运行的结果为s=( )
A. B.
C.1 D.2
解析:由框图可知s=+=+=+2=.
答案:B
5.如图所示的算法框图中,当输入a1=3时,输出的b=7,则a2的值是( )
A.11 B.17
C.0.5 D.12
解析:b===7,∴a2=11.
答案:A
二、填空题
6.如图所示的算法功能是_____________________________________________.
答案:求两个实数a、b差的绝对值
7.已知函数y=如图是计算函数值y的算法框图,则在空白的判断框中应填________.
解析:由函数y=可知第一个判断框的否定条件为x≤0,第二个判断框的肯定条件的结果为y=0,因此空白判断框内应填“x=0”.
答案:x=0
8.阅读算法框图(如图所示),若a=50.6,b=0.65,c=log0.65,则输出的数是________.
解析:算法框图的功能是输出a,b,c中最大的数,又因为a>1,0<b<1,c<0,所以输出的数为50.6.
答案:50.6
三、解答题
9.已知函数y=写出求函数值的算法并画出算法框图.
解:算法如下:
1.输入x;
2.如果x>0,那么y=-1;如果x=0,那么y=0;如果x<0,那么y=1;
3.输出函数值y.
算法框图如图所示:
10.阅读如图所示的算法框图,根据该图和各问题的条件回答下面几个小题:
(1)该算法框图解决一个什么问题?
(2)若当输入的x值为0和4时,输出的值相等.问当输入的x值为3时,输出的值为多大?
(3)依据(2)的条件,要想使输出的值最大,输入x的值为多大?
解:(1)该算法框图是求二次函数y=-x2+mx的函数值.
(2)当输入的x值为0和4时,输出的值相等,即f(0)=f(4),可得m=4.∴f(x)=-x2+4x.∴f(3)=3.
(3)由(2),知f(x)=-x2+4x=-(x-2)2+4,
∴当输入的x值为2时,函数输出最大值4.2.3 循环结构
[读教材·填要点]
1.循环结构的概念
在算法中,从某处开始,按照一定的条件反复执行某些步骤的结构称为循环结构,用算法框图如图所示.反复执行的部分称为循环体,控制着循环的开始和结束的变量,称为循环变量,决定是否继续执行循环体的判断条件,称为循环的终止条件.
2.循环结构的设计过程
设计循环结构之前需要确定的三件事:
(1)确定循环变量和初始值;
(2)确定算法中反复执行的部分,即循环体;
(3)确定循环的终止条件.
循环结构的算法框图的基本模式,如图所示.
[小问题·大思维]
1.循环结构中一定含有选择结构吗?
提示:在循环结构中需要判断是否继续循环,故循环结构中一定含有选择结构.
2.循环结构中判断框中条件是唯一的吗?
提示:不是,在具体的算法框图设计时,判断框中的条件可以不同,但不同的表示应该有共同的确定的结果.
3.算法框图的基本结构有哪些?
提示:顺序结构、选择结构和循环结构.
[研一题]
[例1] 利用循环结构写出++…+的算法并画出相应的算法框图.
[自主解答] 算法如下:
1.S=0;
2.i=1;
3.S=S+;
4.i=i+1;
5.如果i不大于100,转第3步,否则输出S.
相应框图如下图表示:
[悟一法]
1.如果算法问题中涉及到的运算进行了多次重复,且参与运算的数前后有规律可循,就可以引入变量以参与循环结构.
2.在不同的循环结构中,应注意判断条件的差别,及计数变量和累加(乘)变量的初始值与运算框先后关系的对应性.
[通一类]
1.利用循环结构写出1×2×3×…×100的算法.并画出相应的框图.
解:算法步骤如下:
1.S=1;
2.i=1;
3.S=S×i;
4.i=i+1;
5.判断i是否大于100,若成立,则输出S,结束算法;否则返回第3步重新执行.
算法框图如图所示:
[研一题]
[例2] 1×3×5×…×n>10 000.
问:如何寻找满足条件的n的最小正整数值?请设计算法框图.
[自主解答] 算法框图如下图所示:
[悟一法]
解决该类问题一般分以下几个步骤:
(1)根据题目条件写出算法并画出相应的框图;
(2)依据框图确定循环结束时,循环变量的取值;
(3)得出结论.
[通一类]
2.看下面的问题:1+2+3+…+( )>10 000,这个问题的答案虽然不唯一,但我们只要确定出满足条件的最小正整数n0,括号内填写的数字只要大于或等于n0即可.画出寻找满足条件的最小正整数n0的算法的算法框图.
解:1.S=0;
2.n=0;
3.n=n+1;
4.S=S+n;
5.如果S>10 000,则输出n,否则执行6;
6.回到3,重新执行4,5.
框图如下:
[研一题]
[例3] 某高中男子田径队的50 m赛跑成绩(单位:s)如下:
6.3,6.6,7.1,6.8,7.1,7.4,6.9,7.4,7.5,7.6,7.8,6.4,6.5,6.4,6.5,6.7,7.0,6.9,6.4,7.1,7.0,7.2.
设计一个算法,从这些成绩中搜索出成绩小于6.8 s的队员,并画出算法框图.
[自主解答] 此男子田径队有22人,要解决该问题必须先对运动员进行编号.设第i个运动员编号为Ni,成绩为Gi,设计的算法如下:
1.i=1.
2.输入Ni,Gi.
3.如果Gi<6.8,则输出Ni,Gi,并执行4;否则直接执行4.
4.i=i+1.
5.如果i≤22,则返回2;否则,算法结束.
该算法的框图如图所示.
[悟一法]
解决此类问题的关键是读懂题目,建立合适的模型,注意循环结构与选择结构的灵活运用.
[通一类]
3.2000年底我国人口总数约为13亿,现在我国人口平均年增长率为1%,写出计算多少年后我国的人口总数将达到或超过18亿的算法框图.
解:
阅读如图所示的算法框图,若输出s的值为-7,则判断框内可填写
A.i<3 B.i<4
C.i<5 D.i<6
[错解] i=1,S=2;
S=2-1=1,
i=1+2=3;
S=1-3=-2,
i=3+2=5;
S=-2-5=-7.
由题意可知,S=-7.故应填“i<5”.
[错因] 循环终止的条件写错,没有将循环进行彻底,计算完S值后,忽略了i值的计算,若填“i<5”,则输出S值为-2.
[正解] i=1,S=2;
S=2-1=1,
i=1+2=3;
S=1-3=-2,
i=3+2=5;
S=-2-5=-7,
i=5+2=7.
若终止循环后输出s值为-7,则判断框内应填“i<6”.
[答案] D
1.以下说法不正确的是( )
A.顺序结构是由若干个依次执行的处理步骤组成的,每一个算法都离不开顺序结构
B.循环结构是在一些算法中从某处开始按照一定的条件,反复执行某些处理步骤,故循环结构一定包含选择结构
C.循环结构不一定包含选择结构
D.用算法框图表示的算法更形象、直观,容易理解
解析:显然循环结构一定包含选择结构.
答案:C
2.用二分法求方程x2-2=0的近似解的算法中要用到的算法结构是( )
A.顺序结构 B.选择结构
C.循环结构 D.以上都用
解析:任何一个算法都有顺序结构,循环结构一定包含选择结构,二分法用到循环结构.
答案:D
3.如图所示,该框图运行后输出的结果为( )
A.2 B.4
C.8 D.16
解析:当a=4时,退出循环,b=23=8.
答案:C
4.如图所示,该框图是计算+++…+的值的一个算法框图,其中判断框内应填入的条件是________.
解析:要实现算法,算法框图中最后一次执行循环体时,i的值应为10,当条件i=11>10时就会终止循环,所以条件为i≤10.
答案:i≤10
5.(2012·浙江高考)若某程序框图如图所示,则该程序运行后输出的值是________.
解析:运行程序后,i=1,T=1;i=2,T=;i=3,T=;i=4,T=;i=5,T=;i=6>5,循环结束.则输出的值为.
答案:
6.给出以下10个数:5,9,80,43,95,73,28,17,60,36,要求把大于40的数找出来并输出,试画出解决该问题的算法框图.
解:
一、选择题
1.下面的框图中是循环结构的是( )
A.①② B.②③
C.③④ D.②④
解析:①是顺序结构,②是选择结构,③④是循环结构.
答案:C
2.(2012·天津高考)阅读下边的程序框图,运行相应的程序,则输出S的值为( )
A.8 B.18 C.26 D.80
解析:程序执行情况为S=31-30=2,n=2;S=2+32-31=8,n=3;S=8+33-32=26,n=4≥4,跳出循环.故输出26.
答案:C
3.(2012·北京高考)执行如图所示的程序框图,输出的S值为( )
A.2 B.4 C.8 D.16
解析:框图的功能为计算S=1·20·21·22的值,计算结果为8.
答案:C
4.图中所示的是一个算法的框图,则其表达式为( )
A. B.
C. D.
解析:依题意当i≤99时,S=1+2+…+99,当i=100时,S=.
答案:A
5.某算法框图如图所示,若输出的S=57,则判断框内为( )
A.k>4 B.k>5
C.k>6 D.k>7
解析:当k=1时,k=k+1=2,S=2×1+2=4;
当k=2时,k=k+1=3,S=2×4+3=11;
当k=3时,k=k+1=4,S=2×11+4=26;
当k=4时,k=k+1=5,S=2×26+5=57.
此时S=57,循环结束,k=5,所以判断框中应为“k>4”.
答案:A
二、填空题
6.阅读如图所示的框图,若输入m=4,n=3,则输出a=________,i=________.
解析:由算法框图可知,当a=m×i=4×i能被n=3整除时输出a和i并结束程序.显然,当i=3时,a可以被3整除,故i=3,此时a=4×3=12.
答案:12 3
7.(2012·江西高考)下图是某算法的程序框图,则程序运行后输出的结果是________.
解析:此框图依次执行如下循环:
第一次:T=0,k=1,sin >sin 0成立,a=1,T=T+a=1,k=2,2<6,继续循环;
第二次:sin π>sin 不成立,a=0,T=T+a=1,k=3,3<6,继续循环;
第三次:sin >sin π不成立,a=0,T=T+a=1,k=4,4<6,继续循环;
第四次:sin 2π>sin 成立,a=1,T=T+a=2,k=5,5<6,继续循环;
第五次:sin >sin 2π成立,a=1,T=T+a=3,k=6,跳出循环,输出的结果是3.
答案:3
8.若算法框图所给的程序运行的结果为S=90,那么判断框中应填入的关于k的判断条件是________.
解析:由算法框图可知其作用是计算S=1×10×9×…,当运行结果为S=90时,应有S=1×10×9,
∴当k=8时应符合条件且k>8不符合条件,
∴条件应为k≤8或k<9.
答案:k≤8或k<9
三、解答题
9.设计求1+4+7+10+…+40的一个算法,并画出相应的算法框图.
解:算法:
1.令S=0,i=1.
2.S=S+i.
3.i=i+3.
4.若i≤40,返回第2步;重新执行第2、3、4步;若i>40,执行第5步.
5.输出S的值.
算法框图如图所示:
法一: 法二:
10.以下是某次考试中某班15名同学的数学成绩:72,91,58,63,84,
88,90,55,61,73,64,77,82,94,60.要求将80分以上的同学的平均分求出来,画出算法框图.
解:算法框图如下所示: