1
预习课本P75~83,思考并完成以下问题
(1)算法的概念是什么?
(2)算法的特征有哪些?
(3)设计算法需要注意哪些问题?
1.算法的概念
在解决某些问题时,需要设计出一系列可操作或可计算的步骤,通过实施这些步骤来解决问题,通常把这些步骤称为解决这些问题的算法.这种描述不是算法的严格定义,但是反映了算法的基本思想.
[点睛]
算法与一般意义上数学问题的解法的联系和区别
(1)联系:算法和解法是一般与特殊,抽象与具体的关系.例如,教材给出二分法求根的算法,根据这样的求解步骤可以求得任意方程的近似根.
(2)区别:算法是解决一类问题的所需程序和步骤的统称,也可以理解为数学的“通法”,解法是解决一个具体问题的解题过程.
2.算法的主要特征
(1)有穷性:一个算法的步骤是有限的,它应在有限步操作之后停止,而不能是无限的.
(2)确定性:算法中的每一步应该是确定的并且能有效地执行和得到确定的结果,而不应当模棱两可.
(3)有序性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都要准确无误,才能解决问题.
(4)不唯一性:求解某一个问题的算法不是唯一的,对于一个问题可以有不同的算法.
(5)普遍性:很多具体的问题都可以设计合理的算法去解决.
1.判断正误.(正确的打“√”,错误的打“×”)
(1)算法就是某个问题的解题过程.( )
(2)解决某一个具体问题时,算法不同,结果不同.( )
(3)算法执行步骤的次数不可以很大,否则无法实施.( )
答案:(1)× (2)× (3)×
2.下列描述不能看作算法的是( )
A.做米饭需要刷锅,淘米,添水,加热这些步骤
B.洗衣机的使用说明书
C.从济南到台湾旅游,先坐火车,再坐飞机
D.解方程2x2+x-1=0时需先判断判别式的符号
解析:选D 因为A、B、C都描述了解决问题的过程,可以看作算法,而D只描述了一个事实,没说明如何解决问题,不是算法.
3.下列关于算法的说法正确的是( )
A.某算法可以无止境地运算下去
B.一个问题的算法步骤是可逆的
C.完成一件事情的算法有且只有一种
D.算法的每一步操作都是明确的
解析:选D 根据算法的特征进行判断.选项A中,由于算法具有有穷性,因此不可以无止境地运算下去;选项B中,算法中的步骤是按顺序一步步进行下去的,因此是不可逆的;选项C中,由于算法具有不唯一性,因此完成一件事情的算法不是只有一种;D正确,算法中的每一个步骤应当是明确无误的,不应产生歧义.
算法的概念
[典例] 下列对算法的理解不正确的是( )
A.一个算法应包含有限的步骤,而不能是无限的
B.算法可以理解为由基本运算及规定的运算顺序构成的完整的解题步骤
C.算法中的每一步都应当有效地执行,并得到确定的结果
D.一个问题只能设计出一个算法
[解析] 由算法的特征可知,D不正确.
[答案] D
解答这类问题的方法为特征判断法,主要从以下三方面判断:
(1)看是否满足顺序性.算法实际上就是顺序化的解题过程,是指可以用计算机来解决某一类问题的程序或步骤.
(2)看是否满足明确性.算法的每一步都是确定的,而不是含糊的、模棱两可的.
(3)看是否满足有限性.一个算法必须在有限步后结束.如果一个解题步骤永远不能结束,那么就永远得不到答案.因此,有始无终的解题步骤不是算法.
此外,算法的不唯一性也要考虑到.
[活学活用]
有关算法的描述有下列几种说法:
①对一类问题都有效;
②对个别问题有效;
③计算可以一步一步地进行,每一步都有唯一的结果;
④是一种通法,只要按部就班地做,总能得到结果.
其中说法正确的是________.
解析:算法通常是指可以用计算机来解决的某一类问题的程序或步骤,所以①正确,②错误.由于程序必须是明确的,有效的,而且在有限步之内完成,故③④正确.综上知,①③④正确.
答案:①③④
算法的设计
[典例] 写出解方程组的一个算法.
[解] (加减消元法):算法步骤如下:
1.①×5-②得(2×5-4)x=7×5-11; ⑤
2.解⑤得x=4;
3.①×2-②得(1×2-5)y=7×2-11; ⑥
4.解⑥得y=-1;
5.得到方程组的解为
设计具体问题的算法的一般步骤
(1)分析问题,找出解决问题的一般数学方法;
(2)借助有关变量或参数对算法加以表述;
(3)将解决问题的过程划分为若干步骤;
(4)用简练的语言将这个步骤表示出来.
[活学活用]
写出求1+2+3+4+5+6的一个算法.
解:算法步骤如下:
1.计算1+2得到3;
2.将步骤1中的运算结果3与3相加得到6;
3.将步骤2中的运算结果6与4相加得到10;
4.将步骤3中的运算结果10与5相加得到15;
5.将步骤4中的运算结果15与6相加得到21.
[层级一 学业水平达标]
1.下列对算法的理解不正确的是( )
A.算法只能用自然语言来描述
B.算法可以用图形方式来描述
C.算法一般是“机械的”,有时要进行大量重复的计算,它的优点是可以解决一类问题
D.设计算法要本着简单、方便、可操作的原则
解析:选A 算法有三种描述方式:自然语言、框图(流程图)、计算机语言,故A不正确,B正确;算法通常是指可以用计算机来解决某一类问题的程序或步骤,所以C正确;选项D所给出的是设计算法的一般原则,其中最重要的原则是可操作性,即算法的可行性,不能够执行的算法步骤是无意义的,所以D正确.
2.下列语句中是算法的有( )
①从广州到北京旅游,先坐火车到上海,再坐飞机抵达;
②解一元一次方程的步骤是去分母、去括号、移项、合并同类项、系数化为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个
解析:选C ①中说明了从广州到北京的行程安排,完成任务;②中给出了一元一次方程这一类问题的解决方式;④中给出了求1+2+3+4的一个过程,最终得出结果;对于③,并没有说明如何去算,故①②④是算法,③不是算法.
3.下列各式中S值不可以用算法求解的是( )
A.S=10+20+30+40
B.S=12+22+32+…+1002
C.S=1++…+
D.S=1+2+3+4+…
解析:选D 由算法的有穷性知,选D.
4.比较两个实数a与b的大小的一个算法为:
(1)若a-b>0,则a>b;
(2)________;
(3)若a-b<0,则a<b.
请将上面的算法补充完整.
答案:若a-b=0,则a=b
[层级二 应试能力达标]
1.使用配方法解方程x2-4x+3=0的算法的正确步骤是( )
①配方得(x-2)2=1;②移项得x2-4x=-3;
③解得x=1或x=3;④开方得x-2=±1.
A.①②③④ B.②①④③
C.②③④① D.④③②①
解析:选B 使用配方法的步骤应按移项、配方、开方、得解的顺序进行.
2.第一步,输入不小于2的正整数n.
第二步,判断n是否为2.若n=2,则n满足条件;若n>2,则执行第三步.
第三步,依次从2到n-1检验能不能整除n,若不能整除,则n满足条件.
上述算法满足条件的n是( )
A.质数 B.奇数
C.偶数 D.合数
解析:选A 依据质数、奇数、偶数和合数的定义可以判断满足条件的n是质数.
3.阅读下面的算法:
(1)输入两个实数a,b.
(2)若a<b,则交换a,b的值,否则执行第三步.
(3)输出a.
这个算法输出的是( )
A.a,b中的较大数 B.a,b中的较小数
C.原来的a的值 D.原来的b的值
解析:选A 第二步中,若a<b,则交换a,b的值,那么a是a,b中的较大数;若a<b不成立,即a≥b,那么a也是a,b中的较大数.
4.小明早上从起床到出门需要洗脸刷牙(5 min)、刷水壶(2 min)、烧水(8 min)、泡面(3 min)、吃饭(10 min)、听广播(8 min)几个步骤,下列选项中最好的一种算法是( )
A.①洗脸刷牙;②刷水壶;③烧水;④泡面;⑤吃饭;⑥听广播
B.①刷水壶;②烧水同时洗脸刷牙;③泡面;④吃饭;⑤听广播
C.①刷水壶;②烧水同时洗脸刷牙;③泡面;④吃饭同时听广播
D.①吃饭同时听广播;②泡面;③烧水同时洗脸刷牙;④刷水壶
解析:选C 因为A选项共用时间36 min,B选项共用时间31 min,C选项共用时间23 min,D选项的算法步骤不符合常理.
5.在下面求15和18的最小公倍数的算法中,其中不恰当的一步是________.
(1)先将15分解素因数:15=3×5;
(2)然后将18分解素因数:18=32×2;
(3)确定它们的所有素因数:2,3,5;
(4)计算出它们的最小公倍数:2×3×5=30.
解析:(4)步不恰当,正确的应该是:先确定素因数的指数:2,3,5的指数分别为1,2,1;然后计算出它们的最小公倍数:2×32×5=90.
答案:(4)
6.求1×3×5×7×9×11的值的一个算法是:
(1)求1×3,得结果3.
(2)将第一步所得结果3乘以5,得到结果15.
(3)______________________________________.
(4)再将第三步所得结果105乘以9,得到945.
(5)再将第四步所得结果945乘以11,得到10 395,即为最后结果.
答案:再将第二步所得结果15乘以7,得到结果105
7.已知一个学生的语文成绩为89分,数学成绩为96分,外语成绩为99分,求它的总分和平均分的一个算法如下,请将其补充完整:
(1)取A=89,B=96,C=99.
(2)______________________.
(3)______________________.
答案:计算总分D=A+B+C 计算平均分E=
8.写出解方程x2-2x-3=0的一个算法.
解:法一:算法步骤如下:
1.移项得x2-2x=3.①
2.①两边同加1并配方得(x-1)2=4.②
3.②两边开方得x-1=±2.③
4.解③得x=3或x=-1.
法二:1.计算方程的判别式并判断其符号:Δ=22+4×3=16>0;
2.将a=1,b=-2,c=-3代入求根公式x=,得x1=3,x2=-1.
9.有蓝和黑两个墨水瓶,但现在却错把蓝墨水装在了黑墨水瓶中,黑墨水错装在了蓝墨水瓶中,要求将其互换回来,请设计一个算法解决这个问题.
解:算法步骤如下:
(1)取一只空的墨水瓶,设其为白色;
(2)将黑墨水瓶中的蓝墨水装入白瓶中并将黑墨水瓶洗干净;
(3)将蓝墨水瓶中的黑墨水装入黑墨水瓶中并将蓝墨水瓶洗干净;
(4)将白瓶中的蓝墨水装入蓝墨水瓶中.
2.1
预习课本P75~83,思考并完成以下问题
(1)算法的概念是什么?
(2)算法的特征有哪些?
(3)设计算法需要注意哪些问题?
1.算法的概念
在解决某些问题时,需要设计出一系列可操作或可计算的步骤,通过实施这些步骤来解决问题,通常把这些步骤称为解决这些问题的算法.这种描述不是算法的严格定义,但是反映了算法的基本思想.
[点睛]
算法与一般意义上数学问题的解法的联系和区别
(1)联系:算法和解法是一般与特殊,抽象与具体的关系.例如,教材给出二分法求根的算法,根据这样的求解步骤可以求得任意方程的近似根.
(2)区别:算法是解决一类问题的所需程序和步骤的统称,也可以理解为数学的“通法”,解法是解决一个具体问题的解题过程.
2.算法的主要特征
(1)有穷性:一个算法的步骤是有限的,它应在有限步操作之后停止,而不能是无限的.
(2)确定性:算法中的每一步应该是确定的并且能有效地执行和得到确定的结果,而不应当模棱两可.
(3)有序性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都要准确无误,才能解决问题.
(4)不唯一性:求解某一个问题的算法不是唯一的,对于一个问题可以有不同的算法.
(5)普遍性:很多具体的问题都可以设计合理的算法去解决.
1.判断正误.(正确的打“√”,错误的打“×”)
(1)算法就是某个问题的解题过程.( )
(2)解决某一个具体问题时,算法不同,结果不同.( )
(3)算法执行步骤的次数不可以很大,否则无法实施.( )
答案:(1)× (2)× (3)×
2.下列描述不能看作算法的是( )
A.做米饭需要刷锅,淘米,添水,加热这些步骤
B.洗衣机的使用说明书
C.从济南到台湾旅游,先坐火车,再坐飞机
D.解方程2x2+x-1=0时需先判断判别式的符号
解析:选D 因为A、B、C都描述了解决问题的过程,可以看作算法,而D只描述了一个事实,没说明如何解决问题,不是算法.
3.下列关于算法的说法正确的是( )
A.某算法可以无止境地运算下去
B.一个问题的算法步骤是可逆的
C.完成一件事情的算法有且只有一种
D.算法的每一步操作都是明确的
解析:选D 根据算法的特征进行判断.选项A中,由于算法具有有穷性,因此不可以无止境地运算下去;选项B中,算法中的步骤是按顺序一步步进行下去的,因此是不可逆的;选项C中,由于算法具有不唯一性,因此完成一件事情的算法不是只有一种;D正确,算法中的每一个步骤应当是明确无误的,不应产生歧义.
算法的概念
[典例] 下列对算法的理解不正确的是( )
A.一个算法应包含有限的步骤,而不能是无限的
B.算法可以理解为由基本运算及规定的运算顺序构成的完整的解题步骤
C.算法中的每一步都应当有效地执行,并得到确定的结果
D.一个问题只能设计出一个算法
[解析] 由算法的特征可知,D不正确.
[答案] D
解答这类问题的方法为特征判断法,主要从以下三方面判断:
(1)看是否满足顺序性.算法实际上就是顺序化的解题过程,是指可以用计算机来解决某一类问题的程序或步骤.
(2)看是否满足明确性.算法的每一步都是确定的,而不是含糊的、模棱两可的.
(3)看是否满足有限性.一个算法必须在有限步后结束.如果一个解题步骤永远不能结束,那么就永远得不到答案.因此,有始无终的解题步骤不是算法.
此外,算法的不唯一性也要考虑到.
[活学活用]
有关算法的描述有下列几种说法:
①对一类问题都有效;
②对个别问题有效;
③计算可以一步一步地进行,每一步都有唯一的结果;
④是一种通法,只要按部就班地做,总能得到结果.
其中说法正确的是________.
解析:算法通常是指可以用计算机来解决的某一类问题的程序或步骤,所以①正确,②错误.由于程序必须是明确的,有效的,而且在有限步之内完成,故③④正确.综上知,①③④正确.
答案:①③④
算法的设计
[典例] 写出解方程组的一个算法.
[解] (加减消元法):算法步骤如下:
1.①×5-②得(2×5-4)x=7×5-11; ⑤
2.解⑤得x=4;
3.①×2-②得(1×2-5)y=7×2-11; ⑥
4.解⑥得y=-1;
5.得到方程组的解为
设计具体问题的算法的一般步骤
(1)分析问题,找出解决问题的一般数学方法;
(2)借助有关变量或参数对算法加以表述;
(3)将解决问题的过程划分为若干步骤;
(4)用简练的语言将这个步骤表示出来.
[活学活用]
写出求1+2+3+4+5+6的一个算法.
解:算法步骤如下:
1.计算1+2得到3;
2.将步骤1中的运算结果3与3相加得到6;
3.将步骤2中的运算结果6与4相加得到10;
4.将步骤3中的运算结果10与5相加得到15;
5.将步骤4中的运算结果15与6相加得到21.
[层级一 学业水平达标]
1.下列对算法的理解不正确的是( )
A.算法只能用自然语言来描述
B.算法可以用图形方式来描述
C.算法一般是“机械的”,有时要进行大量重复的计算,它的优点是可以解决一类问题
D.设计算法要本着简单、方便、可操作的原则
解析:选A 算法有三种描述方式:自然语言、框图(流程图)、计算机语言,故A不正确,B正确;算法通常是指可以用计算机来解决某一类问题的程序或步骤,所以C正确;选项D所给出的是设计算法的一般原则,其中最重要的原则是可操作性,即算法的可行性,不能够执行的算法步骤是无意义的,所以D正确.
2.下列语句中是算法的有( )
①从广州到北京旅游,先坐火车到上海,再坐飞机抵达;
②解一元一次方程的步骤是去分母、去括号、移项、合并同类项、系数化为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个
解析:选C ①中说明了从广州到北京的行程安排,完成任务;②中给出了一元一次方程这一类问题的解决方式;④中给出了求1+2+3+4的一个过程,最终得出结果;对于③,并没有说明如何去算,故①②④是算法,③不是算法.
3.下列各式中S值不可以用算法求解的是( )
A.S=10+20+30+40
B.S=12+22+32+…+1002
C.S=1++…+
D.S=1+2+3+4+…
解析:选D 由算法的有穷性知,选D.
4.比较两个实数a与b的大小的一个算法为:
(1)若a-b>0,则a>b;
(2)________;
(3)若a-b<0,则a<b.
请将上面的算法补充完整.
答案:若a-b=0,则a=b
[层级二 应试能力达标]
1.使用配方法解方程x2-4x+3=0的算法的正确步骤是( )
①配方得(x-2)2=1;②移项得x2-4x=-3;
③解得x=1或x=3;④开方得x-2=±1.
A.①②③④ B.②①④③
C.②③④① D.④③②①
解析:选B 使用配方法的步骤应按移项、配方、开方、得解的顺序进行.
2.第一步,输入不小于2的正整数n.
第二步,判断n是否为2.若n=2,则n满足条件;若n>2,则执行第三步.
第三步,依次从2到n-1检验能不能整除n,若不能整除,则n满足条件.
上述算法满足条件的n是( )
A.质数 B.奇数
C.偶数 D.合数
解析:选A 依据质数、奇数、偶数和合数的定义可以判断满足条件的n是质数.
3.阅读下面的算法:
(1)输入两个实数a,b.
(2)若a<b,则交换a,b的值,否则执行第三步.
(3)输出a.
这个算法输出的是( )
A.a,b中的较大数 B.a,b中的较小数
C.原来的a的值 D.原来的b的值
解析:选A 第二步中,若a<b,则交换a,b的值,那么a是a,b中的较大数;若a<b不成立,即a≥b,那么a也是a,b中的较大数.
4.小明早上从起床到出门需要洗脸刷牙(5 min)、刷水壶(2 min)、烧水(8 min)、泡面(3 min)、吃饭(10 min)、听广播(8 min)几个步骤,下列选项中最好的一种算法是( )
A.①洗脸刷牙;②刷水壶;③烧水;④泡面;⑤吃饭;⑥听广播
B.①刷水壶;②烧水同时洗脸刷牙;③泡面;④吃饭;⑤听广播
C.①刷水壶;②烧水同时洗脸刷牙;③泡面;④吃饭同时听广播
D.①吃饭同时听广播;②泡面;③烧水同时洗脸刷牙;④刷水壶
解析:选C 因为A选项共用时间36 min,B选项共用时间31 min,C选项共用时间23 min,D选项的算法步骤不符合常理.
5.在下面求15和18的最小公倍数的算法中,其中不恰当的一步是________.
(1)先将15分解素因数:15=3×5;
(2)然后将18分解素因数:18=32×2;
(3)确定它们的所有素因数:2,3,5;
(4)计算出它们的最小公倍数:2×3×5=30.
解析:(4)步不恰当,正确的应该是:先确定素因数的指数:2,3,5的指数分别为1,2,1;然后计算出它们的最小公倍数:2×32×5=90.
答案:(4)
6.求1×3×5×7×9×11的值的一个算法是:
(1)求1×3,得结果3.
(2)将第一步所得结果3乘以5,得到结果15.
(3)______________________________________.
(4)再将第三步所得结果105乘以9,得到945.
(5)再将第四步所得结果945乘以11,得到10 395,即为最后结果.
答案:再将第二步所得结果15乘以7,得到结果105
7.已知一个学生的语文成绩为89分,数学成绩为96分,外语成绩为99分,求它的总分和平均分的一个算法如下,请将其补充完整:
(1)取A=89,B=96,C=99.
(2)______________________.
(3)______________________.
答案:计算总分D=A+B+C 计算平均分E=
8.写出解方程x2-2x-3=0的一个算法.
解:法一:算法步骤如下:
1.移项得x2-2x=3.①
2.①两边同加1并配方得(x-1)2=4.②
3.②两边开方得x-1=±2.③
4.解③得x=3或x=-1.
法二:1.计算方程的判别式并判断其符号:Δ=22+4×3=16>0;
2.将a=1,b=-2,c=-3代入求根公式x=,得x1=3,x2=-1.
9.有蓝和黑两个墨水瓶,但现在却错把蓝墨水装在了黑墨水瓶中,黑墨水错装在了蓝墨水瓶中,要求将其互换回来,请设计一个算法解决这个问题.
解:算法步骤如下:
(1)取一只空的墨水瓶,设其为白色;
(2)将黑墨水瓶中的蓝墨水装入白瓶中并将黑墨水瓶洗干净;
(3)将蓝墨水瓶中的黑墨水装入黑墨水瓶中并将蓝墨水瓶洗干净;
(4)将白瓶中的蓝墨水装入蓝墨水瓶中.
2.2 变量与赋值
预习课本P88~93,思考并完成以下问题
(1)变量的含义与表示是什么?
(2)赋值语句的格式是什么?它的作用是什么?
1.变量
在研究问题的过程中可以取不同数值的量称为变量.
2.赋值语句的格式
(1)赋值语句的一般格式是:变量=表达式.
(2)格式中右边“表达式”可以是一个数据、常量和算式,如果“表达式”是一个算式时,赋值语句的作用是先计算出“=”右边表达式的值,然后将该值赋给“=”左边的变量.如a=1,b=2,c=a+b是指先计算出a+b的值3,再把3赋给c,而不是将a+b赋给c.
(3)赋值语句左边只能是变量名字,而不是表达式,如x=5是对的,5=x是错误的,A+B=C也是错误的,而C=A+B是正确的.
3.赋值语句的作用
赋值语句的作用是将表达式所代表的值赋给变量.赋值号左边的变量如果原来没有值,则执行赋值语句后,获得一个值,如果已有值,则执行该语句,以赋值号右边表达式的值代替该变量的原值,即将原值“冲掉”.如:N=N+1,在数学中是不成立的,但在赋值语句中,意思是将N的原值加1再赋给N,此时左边N的值就是原来N的值加1,如N原来是7,则执行N=N+1后,N的值变为8.
[点睛] 赋值语句中的“=”称为赋值符号,而不是“等号”.
1.判断正误.(正确的打“√”,错误的打“×”)
(1)赋值语句中的“=”称为赋值号,而不是等号.( )
(2)赋值语句是把赋值号左边变量的值赋给赋值号右边的表达式.( )
(3)在算法语句中,赋值语句是最基本的语句.( )
答案:(1)√ (2)× (3)√
2.下列赋值语句正确的是( )
A.a+b=5 B.5=a
C.a=b=2 D.a=a+1
解析:选D 赋值语句只能给变量赋值,不能给表达式赋值,也不能对多个变量赋值且变量名一定要在赋值号的左边.
3.赋值语句描述的算法如下:
a=3
a=5
输出a
则运行结果是( )
A.5 B.3
C.a D.8
解析:选A 此算法中用到了赋值语句.虽然a=3是把3赋给a,但是接下来的语句a=5,又把5赋给a,赋值语句中变量取的是最后的值,所以输出a的值为5.
赋值语句的结构
[典例] 下列赋值语句正确的是( )
A.A=B=2 B.x+y=m
C.a2+b2=5 D.N=N+2
[解析] 赋值语句的一般格式是:变量=表达式,格式中右边的“表达式”可以是一个数据、常量或算式.赋值符号的左边只能是变量名字,而不能是表达式,故B、C不对.一个赋值语句只能给一个变量赋值,不能出现两个或多个“=”,故A不对,只有选项D符合赋值语句的写法规则.
[答案] D
赋值号左边只能是变量名称,而不能是表达式;赋值号右边可以是一个常量、变量或含变量的表达式.
[活学活用]
观察下列赋值语句,写法正确的个数是( )
①x=2y+z;
②x=3;y=4;z=5;w=7;
③x+y=7;
④y=M.
A.1 B.2
C.3 D.4
解析:选C ①②④符合赋值语句的格式,正确;③不正确,赋值号左侧不能是表达式.
赋值语句的算法功能
[典例] 写出下列语句描述的算法的输出结果:
(1)a=5;
b=3;
c=;
d=c2;
输出d.
(2)a=1;
b=2;
c=a-b;
b=a+c-b;
输出a,b,c.
(3)a=10;
b=20;
c=30;
a=b;
b=c;
c=a;
输出a,b,c.
[解] (1)∵c===4,
∴c2=42=16,即d=16.
∴该语句输出结果为16.
(2)∵c=1-2=-1,b=a+c-b=1-1-2=-2,
∴a=1,b=-2,c=-1.
∴该语句输出结果为:1,-2,-1.
(3)由a=b及b=20知a=20,
由b=c及c=30知b=30,
由c=a及a=20知c=20,
∴a=20,b=30,c=20.
∴该语句输出结果为20,30,20.
在解决与赋值语句有关的题目时,一定要明确赋值语句的作用,尤其是涉及对变量多次赋值时,应以最后一次所赋的值为最终要输出的值.
[活学活用]
将两个数a=15,b=64交换,使a=64,b=15,下列赋值语句中正确的一组是( )
A B C D
解析:选B 先把b的值赋给中间变量c,这样c=64,再把a的值赋给变量b,这样b=15,最后把c的值赋给变量a,这样a=64.
利用赋值语句描述算法
[典例] 用赋值语句写出用公式法求一元二次方程x2-5x+6=0的根的算法,并画出算法框图.
[解] 算法步骤如下:
1.a=1,b=-5,c=6;
2.p=-;
3.q=;
4.x1=p+q,x2=p-q;
5.输出x1,x2.
算法框图如图所示.
利用赋值语句描述算法应注意的问题
(1)两个或多个变量的设置一般是利用已有的公式,使用赋值语句,这样算法的表述就变得非常简洁和清晰.
(2)对一个变量可以多次赋值,其值是最后一次所赋的值.
[活学活用]
已知某同学某三科的成绩分别为80分、75分、95分,画出求这三科成绩的总分及平均分的算法框图.
解:算法框图如图所示.
[层级一 学业水平达标]
1.下面一段算法执行后输出结果是( )
A=2;
A=A2;
A=A+6;
输出A.
A.2 B.8
C.10 D.18
解析:选C 由赋值语句的特点,按步骤执行算法可得A=2→A=22=4→A=4+6=10.
2.下列语句能使变量a的值为4的是( )
A.a=4 a=a+4 B.b=4 b=a
C.a=3 a=a+1 D.a=a+4
解析:选C 对于选项A可知变量a的值为8,B中,a不是变量,D中变量a的值不确定.只有C正确.
3.下列算法语句执行后的结果是( )
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
解析:选D 算法中i=i+j是2+5=7赋值给i,j=i+j是7+5=12赋值给j.
4.读如图所示的框图,得出其算法功能是________.
答案:求实数a,b的和
[层级二 应试能力达标]
1.输入a=5,b=12,c=13,经下列赋值语句运行后,a的值仍为5的是( )
A. B.
C. D.
解析:选C 对于选项A,先把b的值赋给a,a的值又赋给b,这样a,b的值均为12;对于选项B,先把c的值赋给a,这样a的值就是13,接下来是把b的值赋给c,这样c的值就是12,再又把a的值赋给b,所以a的值还是13;对于选项C,先把a的值赋给b,然后又把b的值赋给a,所以a的值没变,仍为5;对于选项D,先把b的值赋给c,这样c的值是12,再把a的值赋给b,于是b的值为5,然后又把c的值赋给a,所以a的值为12.于是可知选C.
2.下列赋值语句正确的是( )
A.m+n=2 016 B.2 016=m
C.m+2 016=m D.m=m+2 016
解析:选D 由赋值语句的格式可知m=m+2 016正确.
3.在如图所示的算法语句中输入x=1 000,y=2,则输出的结果M是( )
输入 x,y
M=2]
A.2 004 B.2 006
C.2 007 D.2 008
解析:选D M=2×1 000+4×2=2 008.
4.阅读如图所示的算法框图,若输入的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 x=a=21,a=c=75,c=b=32,b=x=21.
∴输出a,b,c的值分别为75,21,32.
5.阅读如图所示的算法框图,则输出的结果是________.
解析:y=2×2+1=5,
b=3×5-2=13.
答案:13
6.如下所示的算法语句运行结果为________.
解析:由赋值语句a=2,b=3,c=4,a=b,b=c+2,c=b+4知,赋值后,a=3,b=6,c=10,所以d===.
答案:
7.已知水果店的三种水果标价为香蕉2元/kg,苹果3元/kg,梨2.5元/kg.店主为了收款的方便设计了一个算法如图,则算法框图横线上应填________.
答案:x+y+z
8.下列语句运行后,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的值不变.所以最后结果为-5,8,8.
(2)把b的值-5赋给a,c的值8赋给b,又把a的新值-5赋给c.所以最后结果为-5,8,-5.
9.已知函数f(x)=x2-1,g(x)=2x+3,设计算法框图,求f(g(1))+g(f(-1))的值.
解:如图所示.
2.3 循环结构
预习课本P93~101,思考并完成以下问题
(1)什么样的算法结构是循环结构?
(2)循环体、循环变量、循环的终止条件的定义各是什么?
(3)画循环结构的算法框图时,应确定哪三件事?
1.循环结构的有关概念
(1)定义:
在算法中,从某处开始,按照一定的条件反复执行某些步骤的结构称为循环结构,用算法框图表示如下.
(2)循环体:反复执行的部分称为循环体.
(3)循环变量:控制着循环的开始和结束的变量称为循环变量.
(4)循环的终止条件:判断是否继续执行循环体的判断条件,称为循环的终止条件.
[点睛] 循环结构的三要素:循环变量、循环体、循环的终止条件,三者缺一不可.“循环变量”在构造循环结构中发挥了关键性的作用,其实质就是“函数思想”.
2.画循环结构的算法框图应注意的问题
一般来说,在画出用循环结构描述的算法框图之前,需要确定三件事:
(1)确定循环变量和初始条件;
(2)确定算法中反复执行的部分,即循环体;
(3)确定循环的终止条件.
循环结构的算法框图的基本模式,如图所示.
1.判断正误.(正确的打“√”,错误的打“×”)
(1)循环结构中,根据条件是否成立有不同的流向.( )
(2)循环体是指按照一定条件,反复执行的某一处理步骤.( )
(3)循环结构中一定有选择结构,选择结构中一定有循环结构.( )
答案:(1)√ (2)√ (3)×
2.解决下列问题的算法框图中,必须用到循环结构的是( )
A.解一元二次方程x2-1=0
B.解方程组
C.求lg 2+lg 3+lg 4+lg 5的值
D.求满足1×2×3×…×n>2 0162的最小正整数n
解析:选D A、B、C中都可以只用顺序结构设计程序框图,D中是累乘问题,需要确定正整数n的最小值,因此必须用到循环结构设计算法框图.
3.如图给出了三个算法框图,选择结构、顺序结构、循环结构依次是( )
A.①②③ B.②①③
C.②③① D.③①②
解析:选B 依据三种基本结构的框图的形式易得B正确.
累加求和、累乘求积的算法框图
[典例] 用循环结构写出求1+2+3+…+100的值的算法,并画出算法框图.
[解]
算法如下:
1.设i的值为1;
2.设sum的值为0;
3.计算sum+i并用结果代替sum;
4.计算i+1并用结果代替i;
5.如果i>100,执行第6步,否则转去执行第3步;
6.输出sum的值.
算法框图如图所示.
对于加(乘)数众多,不易采用逐一相加(乘)的方法处理的问题,常通过循环结构解决,方法是引用两个变量i和S,其中i一般称为计数变量,用来计算和控制运算次数,S称为累积变量,它表示所求得的和或积,它是不断地将前一个结果与新数相加或相乘得到的,这两个变量的表示形式一般为i=i+m(m为每次增加的数值)和S=S+A(A为所加的数)或S=S*A(A为所乘的数).
[活学活用]
写出一个求满足1×3×5×7×…×n>60 000的最小正整数n的算法,并画出相应的算法框图.
解:算法如下:
1.s=1.
2.n=1.
3.如果s≤60 000,那么n=n+2,s=s×n,重复执行第3步;否则,执行第4步.
4.输出n.
算法框图如图所示.
查找类(寻找特定数)的算法框图
[典例] 给出以下10个数:5,9,80,43,95,76,20,17,65,36,要求把大于50的数找出来并输出.试画出该算法的框图.
[解] 算法步骤如下:
1.i=1.
2.输入a.
3.如果a>50,则输出a;否则,执行第4步.
4.i=i+1.
5.如果i>10,结束算法;否则,返回第2步.
算法框图如图所示.
利用循环结构设计查找问题的算法时,需把握以下几点:
(1)引入循环变量i,并确定初始值;
(2)确定问题满足的条件,即第一个判断框的内容;
(3)确定在什么范围内解决问题,即i的取值限制,即第二个判断框的内容.
[活学活用]
一个两位数,十位数字比个位数字大,且个位数字为质数.设计一个找出所有符合条件的两位数的算法框图.
解:两位数i的十位数字a=,个位数字b=i-10a.下面我们来设计循环结构:循环变量为i,i的初始值为10,每次递增1,用i=i+1表示;判断条件是b<a且b是质数,如果满足条件则输出i;循环的终止条件是i>99.算法框图如图所示.
循环结构的读图问题
[典例] 如图所示,算法框图的输出结果是( )
A. B.
C. D.
[解析] 第一次循环,s=,n=4;第二次循环,s=,n=6;第三次循环,s=,n=8.此时跳出循环,输出s=.
[答案] D
(1)根据算法框图确定输出结果的方法是读懂算法框图,明确判断条件和循环次数,然后依次写出运行的结果.
(2)在某些问题中,会给出算法框图的输出结果或算法框图的功能,要求对算法框图中缺失的地方进行补充.对于这类问题,最常见的是要求补充循环结构的判断条件,解决此类问题的关键是找出运算结果与判断条件的关系.
[活学活用]
如图所示的算法框图,若输出k的值为6,则判断框内可填入的条件是( )
A.s> B.s>
C.s> D.s>
解析:选C 第一次循环:s=1×=,k=8;第二次循环:s=×=,k=7;第三次循环:s=×=,k=6,此时退出循环,输出k=6.故判断框内可填s>.
[层级一 学业水平达标]
1.下列说法不正确的是( )
A.顺序结构的特征是完成一个步骤再进行另一个步骤
B.选择结构的特征是根据对条件的判断决定下一步工作,故选择结构一定包含顺序结构
C.循环结构是在一些算法中从某处开始按照一定的条件,反复执行某些处理步骤,故循环结构一定包含顺序结构和选择结构
D.循环结构不一定包含选择结构
解析:选D 依据算法框图的三种基本结构的特征易得D不正确.
2.执行两次如图所示的算法框图,若第一次输入的a的值为-1.2,第二次输入的a的值为1.2,则第一次、第二次输出的a的值分别为( )
A.0.2,0.2 B.0.2,0.8
C.0.8,0.2 D.0.8,0.8
解析:选C 两次运行结果如下:
第一次:-1.2→-1.2+1→-0.2+1→0.8;
第二次:1.2→1.2-1→0.2.
3.如图,给出的是计算13+23+33+…+n3的值的一个算法框图,其中判断框内应填入的条件是( )
A.i≤n B.i≥n
C.in
解析:选D 按要求程序运行至S=13+23+33+…+n3以后,紧接着i=i+1即i=n+1,此时要输出S,即判断框内应填i>n.
4.如图所示,算法框图的输出结果是________.
解析:由算法框图可知,变量的取值情况如下:
第一次循环,x=1,y=1,z=2;
第二次循环,x=1,y=2,z=3;
第三次循环,x=2,y=3,z=5;
第四次循环,x=3,y=5,z=8;
第五次循环,x=5,y=8,z=13;
第六次循环,x=8,y=13,z=21;
第七次循环,x=13,y=21,z=34;
第八次循环,x=21,y=34,z=55,不满足条件,跳出循环.
答案:55
[层级二 应试能力达标]
1.执行如图所示的算法框图,若输入n=8,则输出S=( )
A. B.
C. D.
解析:选A S=S+的意义在于对求和.
因为=,同时注意i=i+2,
所以所求的S=+=.
2.阅读如图所示的算法框图,若输入m=4,n=6,则输出的a,i分别等于( )
A.12,2 B.12,3
C.24,2 D.24,3
解析:选B 当i=3时,a=4×3=12能被6整除.
3.执行如图所示的算法框图,若输入的a,b,k分别为1,2,3,则输出的M=( )
A. B.
C. D.
解析:选D 逐次计算,依次可得:M=,a=2,b=,n=2;M=,a=,b=,n=3;M=,a=,b=,n=4,结束循环,输出的M=.
4.如图是计算某年级500名学生期末考试(满分为100分)及格率q的算法框图,则图中空白框内应填入( )
A.q= B.q=
C.q= D.q=
解析:选D 算法执行的过程:如果输入的成绩不小于60分即及格,就把变量M的值增加1,即变量M为统计成绩及格的人数;否则,由变量N统计不及格的人数,但总人数由变量i进行统计,不超过500就继续输入成绩,直到输入完500个成绩终止循环,输出变量q.由q代表的含义可得q==.
5.如图所示,箭头a指向①时,输出的结果是________;指向②时,输出的结果是________.
解析:箭头a指向①时,每次循环S的初值都是0,i由初值1依次增加1,从而输出结果是S=5;箭头指向②时,是求1+2+3+4+5的算法框图,所以输出结果是S=15.
答案:5 15
6.某展览馆每天9:00开馆,20:00停止入馆.在如图所示的框图中,S表示该展览馆官方网站在每个整点报道的入馆总人数,a表示整点报道前1个小时内入馆人数,则空白的执行框内应填入________.
解析:因为S表示该展览馆官方网站在每个整点报道的入馆总人数,所以显然是累加求和,故空白的执行框内应填入S=S+a.
答案:S=S+a
7.某高中男子体育小组的50 m赛跑成绩(单位:s)为6.4,6.5,7.0,6.8,7.1,7.3,6.9,7.4,7.5,7.6,6.3,6.4,6.4,6.5,6.7,7.1,6.9,6.4,7.1,7.0.设计一个算法,从这些成绩中搜索出小于6.8 s的成绩,并画出算法框图.
解:该体育小组共20人,要解决问题必须对运动员进行编号,设第i个运动员的编号为Ni,成绩为Gi.
算法如下:
(1)i=1;
(2)输入Ni,Gi;
(3)如果Gi<6.8,那么输出Ni,Gi,并执行第4步,否则,也执行第4步;
(4)i=i+1;
(5)如果i≤20,那么返回第(2)步,否则结束.
算法框图如图所示.
8.设计一个求的值的算法并画出算法框图.
解:算法步骤如下:
(1)A=;
(2)i=1;
(3)A=;
(4)i=i+1;
(5)如果i不大于或等于5,转去执行第(3)步,否则,输出A,算法结束.
算法框图如图所示.
3.1 条件语句
预习课本P105~107,思考并完成以下问题
(1)If语句的格式是什么?
(2)复合If语句的格式是什么?
1.If语句
(1)算法框图:
(2)语句格式:
If 条件 Then
语句1
Else
语句2
End If
[点睛] (1)条件语句执行步骤:当计算机执行If语句时,首先对If后的条件进行判断,如果条件符合,就执行Then后的语句1,否则执行Else后的语句2.
(2)在某些情况下,也可以只使用If-Then语句,即
If 条件 Then
语句
End If
当计算机执行上述If语句时,首先对If后的条件进行判断,如果条件符合,就执行Then之后的语句,否则执行End If后的语句.
2.复合If语句
(1)算法框图:
(2)语句格式:
If 条件1 Then
语句1
Else
If 条件2 Then
语句2
Else
语句3
End If
End If
[点睛] (1)复合If语句一般用于要解决的问题需要分类(分为3类或3类以上)讨论的情况,注意新一层的条件是以上一层的条件为前提,因此有些条件不要重复加上.
(2)在书写和阅读复合If语句时,要注意“If”和“End If”是成对出现的,内层语句要相对于外层语句缩进两个字符,以便观察出到底哪些If-Then-Else-End If是一组的.
1.判断正误.(正确的打“√”,错误的打“×”)
(1)条件语句对应框图中的基本逻辑结构是选择结构.( )
(2)条件语句中必须有Else和End If.( )
(3)条件语句中可以没有End If.( )
(4)条件语句中可以没有Else,但是必须有End If.( )
答案:(1)√ (2)× (3)× (4)√
2.给出以下问题:
①求面积为1的正三角形的周长;
②求三个实数的算术平均数;
③求两个实数中的最小数;
④求函数f(x)=当自变量取x0时的函数值.其中不需要用条件语句来描述算法的问题有( )
A.1个 B.2个
C.3个 D.4个
解析:选B ①②不涉及对条件的真假进行判断.
3.执行下面的语句:
输入A,B;
If A>B Then
C=A/2
输出C
End If
若输入8,4,则输出结果为( )
A.8 B.4
C.2 D.1
解析:选B 输入8,4时,满足A>B,则C==4.
4.下面的语句中,执行语句3的条件是________.
输入m;
If m>1 Then
y=m+1
Else
If m<1 Then
y=m+2
Else
y=m-1(语句3)
End If
End If
输出y.
解析:由题可知,当m>1时,y=m+1;当m<1时,y=m+2;当m=1时,y=m-1.故填m=1.
答案:m=1
用If-Then-Else语句表示程序
[典例] 设计计算y=函数值的算法,并用相应的算法语句加以描述.
[解] 算法如下:
1.输入x.
2.如果x≥0,则y=x+2;否则,执行第3步.
3.y=x2+2.
用算法语句描述为:
输入x;
If x≥0 Then
y=x+2
Else
y=x*x+2
End If
输出y.
If-Then-Else语句对应的是两个分支的选择结构,若问题的解决需要根据条件是否成立,判断该去执行两个不同步骤中的哪一个步骤,则用该语句来描述算法.
[活学活用]
根据下列算法语句, 当输入x为60时, 输出y的值为( )
A.25 B.30
C.31 D.61
解析:选C 通过阅读理解知,算法语句是一个分段函数f(x)=
∴f(60)=25+0.6×(60-50)=31.
If语句的叠加的应用
[典例] 画出算法框图,使得任意输入三个实数,输出这三个实数中的最小值,并用基本语句描述此算法.
[解] 首先输入a,b,c,再分别比较a与b,a与c的大小,并总把较小的数作为a,这样就找出其中的最小实数了.
算法框图如图所示.
算法语句如下:
输入a,b,c;
If a>b Then
a=b
End If
If a>c Then
a=c
End If
输出a.
If语句的叠加实质上是If-Then语句的叠加,If-Then语句对应的是一个分支为空的选择结构,因此对于需要多次比较与判断的算法,对应的是选择结构的叠加(即条件语句的叠加),此时每一个条件语句都是一个独立的整体,在下一个条件语句之前要加上“End If”.
[活学活用]
根据下面的程序,画出该程序的算法框图,并说明该程序的功能.
输入a,b,c;
If a>b Then
t=a
a=b
b=t
End If
If a>c Then
t=a
a=c
c=t
End If
If b>c Then
t=b
b=c
c=t
End If
输出a,b,c.
解:
程序由三个If语句叠加而成,因此画框图的时候,我们分别将对应的选择结构画出来,并用流程线连接到一起,再补充上起止框和输入、输出框,可得框图如图所示.该程序的流程是:首先输入a,b,c,然后把较小的数赋给a,把中间数赋给b,把较大数赋给c,再把这三个数从小到大排列,依次输出.因此,该程序的功能是将a,b,c这三个数按照从小到大排列.
复合If语句的应用
[典例] 已知函数y=画出算法框图并用基本语句描述一个算法,对每一个输入的x的值,求出相应的函数值.
[解] 算法框图如图所示.
算法语句如下:
输入x;
If x<=-1 Then
y=(x+1)^2
Else
If x>=1 Then
y=1/x-1
Else
y=2]End If
End If
输出y.
复合If语句对应选择结构的嵌套,在写语句的时候分清内层条件语句和外层条件语句.需清楚内层条件结构是外层条件结构的一个分支,且应注意保持每一层的结构的完整,不要漏掉“End If”.
[活学活用]
给出一个算法:
1.输入x;
2.若x<0,则y=x+1;否则执行第3步;
3.若x=0,则y=0;否则y=x;
4.输出y.
(1)指出该算法的功能;
(2)将该算法用框图表示出来;
(3)用基本语句写出该算法.
解:(1)该算法的功能是利用给出的x的值,求函数y=的值.
(2)框图如图所示:
(3)用基本语句描述为:
输入x;
If x<0 Then
y=x+1
Else
If x=0 Then
y=0
Else
y=x
End If
End If
输出y.
条件语句的实际应用
[典例] 到银行办理个人异地汇款(不超过100万)时,银行要收取一定的手续费,汇款额不超过100元,收取1元手续费;超过100元但不超过5 000元,手续费按汇款额的1%收取;超过5 000元,一律收取50元手续费.试用条件语句描述汇款额为x元时,银行收取手续费为y元的过程,并画出算法框图.
[解] 依题意可知手续费y(元)与汇款额x(元)之间的关系式为y=
算法框图如图所示.
用基本语句描述如下:
输入x;
If x<=100 Then
y=1
Else
If x<=5 000 Then
y=0.01]
Else
y=50
End If
End If
输出y.
应用条件语句编写解决某一问题的程序的思路
(1)构思出解决该问题的一个算法(可用自然语言);
(2)画出算法框图,形象、直观地把算法描述出来;
(3)根据这个框图来编写程序,即逐步把框图中的算法步骤用算法语句表达出来.
在把算法框图转化为程序语句的过程中,注意用条件语句正确地表示其中的选择结构.
[活学活用]
某市通信部门规定:拨打市内电话时,如果通话时间不超过3 min,则收取通话费0.2元;如果通话时间超过3 min,则超过部分以0.1元/min收取通话费(t以分钟计,不足1 min按1 min计).问:如何设计一个计算通话费用的算法?请画出框图并用语句描述该算法.
解:令c(单位:元)表示通话费用,t(单位:min)表示通话时间,则有c=
依上面分析知解决这一问题的算法步骤如下:
1.输入通话时间t;
2.如果03.输出费用c.
框图如图所示:
用语句描述为:
输入t;
If t≤3 And t>0 Then
c=0.2
Else
c=0.2+0.1*(t-3).
End If??
输出c.
[层级一 学业水平达标]
1.阅读下面程序.
输入x;
If x<0 Then
x=-x
End If
输出x.
若输入x=5,则输出的x的值为( )
A.-5 B.5
C.0 D.不确定
解析:选B 当x≥0时,不符合条件,执行End If之后的语句,直接输出x的值,即5.
2.当a=1,b=3时,执行完下面语句后,x的值是( )
输入a,b;
If a>b Then
x=a+b
Else
x=a-b
End If
输出x.
A.1 B.3
C.4 D.-2
解析:选D 先判断a与b的大小,再代入相应表达式求x的值.∵a=1,b=3,不满足a>b,∴x=a-b=1-3=-2.
3.阅读下列语句:
输入a;
If a>5 Then
b=2*a
Else
b=a*a+1
End If
输出b.?
如果输出5,则输入的a为 ( )
A.2.5 B.2
C.-2 D.±2
解析:选D 由算法语句可知,令2a=5,则a=<5(舍去),令a2+1=5,则a=±2,满足题意.
4.阅读下列程序,回答问题:
输入 x1,x2
If x1=x2 Then
x1=x1+x2
End If
y=x1+x2
输出y.
如果输入x1=3,x2=5,那么执行此算法的输出结果是________.
解析:由于输入的两个数x1=3,x2=5,不满足条件x1=x2,因此,不执行语句体x1=x1+x2,而直接执行y=x1+x2,所以y=8,最后输出8.
答案:8
[层级二 应试能力达标]
1.阅读下面的程序,若分别输入0,1,4,8,9,10,则输出的结果是( )
输入x;
If x Mod 4=0 Then
输出 x
End If
A.0,8 B.4,8
C.0,4,8 D.0,1,4,8,9,10
解析:选C 算法的功能是输入一个数,判断其能否被4整除;若能,则输出该数.输入的各数0,1,4,8,9,10中,0,4,8能被4整除,故输出的结果是0,4,8.
2.阅读下列基本语句描述的算法,
输入x;
If x<=4 Then
t=1/3]t=16]( )
A.3 B.-4
C.3或-3 D.4或-4
解析:选C 当x≤4时,t=x2;当x>4时,t=16(4-x),故此算法解决的是求分段函数t=的函数值的问题.当x≤4时,令x2=3,解得x=±3;当x>4时,令16(4-x)=3,显然无解.
综上可知,输入的x的值是3或-3.
3.下列算法语句运行的结果是( )
A=4.5;
B=6;
If A≥5 Then
B=B+1
Else
B=B-3
B=B+2
If B≥4 Then
B=B2
Else
B=A+B
End If
End If
输出B.
A.10.5 B.11.5
C.16 D.25
解析:选D 由算法语句知,
A=4.5<5,
故B=6-3+2=5,
B=5≥4,
故B=25.
4.给出下列语句:
输入x;
If x<0 Then
y=x+4
Else
If x=0 Then
y=0
Else
y=x^2
End If
End If
输出y.
该语句的功能是( )
A.输入一个数x,并比较x与0的大小
B.求函数y=的函数值
C.求函数y=的函数值
D.以上都不对
解析:选C 此算法涉及复合If语句,分x>0,x=0,x<0三种情况讨论,且相应的y的表达式也不同,故它的功能是求一个分段函数的函数值,易知此函数为y=
5.下列程序:
输入x;
If x>9 And x<100 Then
a=x Mod 10
b=(x-a)/10
x=10]输出x
Else
输出“输入有误”
End If
若输入的x值为83,则输出的结果为________.
解析:依题意a表示x整除10所得的余数,由x=83,得a=3,从而b=8,故输出的x=10a+b=38.
答案:38
6.下面的语句是判断输入的正整数是否是11和7的公倍数,请将语句补充完整.
输入正整数a;
If ________ And ________ Then
输出“是11和7的公倍数”
Else
输出“________________”
End If
答案:a Mod 11=0 a Mod 7=0 不是11和7的公倍数
7.读语句完成下列题目.
输入x;
If x>1 Then
y=x+1
Else
y=2] ;
(2)若输出结果是5,则执行的赋值语句是________,输入的x的值是________.
解析:依题意,题目所给的语句是求分段函数y=的函数值,因此当x>1时,x+1>2,当x≤1时,2x+1≤3,从而输出的y的值是5时,执行的赋值语句是y=x+1,输入的x的值是4.
答案:(1)x≤1 (2)y=x+1 4
8.给出下列算法:
输入x;
If x<3 Then
y=2]If x>3 Then
y=x*x-x
Else
y=6
End If
End If
输出y.
(1)若输入9,则输出结果是什么?
(2)该算法的功能是什么?
解:(1)因为x=9>3,
则有y=x2-x=9×9-9=72,
所以输出结果是72.
(2)该算法的功能是输入自变量x的值,输出
函数y=的值.
9.乘坐火车时,可以托运货物.从甲地到乙地,规定托运费计算方法是:行李质量不超过50 kg时按0.25元/kg;超过50 kg而不超过100 kg时,其超过部分按0.35元/kg;超过100 kg时,其超过部分按0.45元/kg.设计算法,输入行李质量,计算出托运的费用,画出算法框图并用语句描述.
解:算法步骤:
1.输入行李质量x;
2.当x≤50时,计算y=0.25x,否则执行下一步;
3.当x≤100时,计算y=0.35x-5,否则计算y=0.45x-15;
4.输出y.
算法框图如图.
用语句描述为:
输入x;
If x≤50 Then
y=0.25]
Else
If x≤100 Then
y=0.35]
Else
y=0.45]
End If
输出y.
3.2 循环语句
预习课本P108~109,思考并完成以下问题
(1)For语句的格式是什么?
(2)Do Loop语句的格式是什么?
(3)For语句和Do Loop语句的适用范围有什么不同?
1.For语句
(1)格式
For循环变量=初始值To终值
循环体
Next
(2)适用范围
For语句适用于预先知道循环次数的循环结构.
[点睛] (1)循环体是由计算机反复执行的一组语句构成的.For后面的“条件”是用于控制计算机执行循环体或跳出循环体的.
(2)在For语句里,我们默认循环变量每次的增量为1,增量不为1时,需用参数Step,即“For循环变量=初始值To终值Step增量”.
2.Do Loop语句
(1)格式
(2)适用范围
Do Loop语句适用于预先不知道循环次数的循环结构.
[点睛] 用Do Loop语句编写程序时,一定要注意While后面的条件,条件为真时执行循环体,条件为假时结束循环.
1.判断正误.(正确的打“√”,错误的打“×”)
(1)循环语句与算法框图中的循环结构相对应.( )
(2)For语句与Do Loop语句都是循环语句.( )
(3)所有的循环结构框图都可以用For语句与Do Loop语句描述.( )
(4)For语句不能用来描述循环次数不确定的循环结构.( )
答案:(1)√ (2)√ (3)× (4)√
2.若i的初始值为0,当执行完Do i=i+1 Loop While i≤10后i的值变为( )
A.9 B.10
C.11 D.12
解析:选C 由Do Loop语句的形式和执行条件易得循环结束后,i=11.
3.下面算法语句的功能是( )
S=0
For i=1 To 100
S=S+i
Next
输出S.
A.求1×2×3×…×100的值
B.求1×3×5×…×99的值
C.求1+2+3+…+100的值
D.求1+3+5+…+99的值
解析:选C 由“S=S+i”可知该算法解决的是累加问题;由循环变量i的增量为1,从1到100可知,求的是1+2+3+…+100的值.
4.给出下列For语句:
S=0
For i=1 To 10
S=S+i
Next
循环变量是________,循环变量的初始值是________,循环变量的终值是________,循环体是________.
解析:循环变量是i,循环变量的初始值是1,循环变量的终值是10,循环体是S=S+i.
答案:i 1 10 S=S+i
For语句的应用
[典例] 画出求1+++…+的值的算法框图,并用For语句描述该算法.
[解] 算法框图为:
用For语句描述算法为:
S=0
For i=1 To 1 000
S=S+1/i
Next
输出S.
使用For语句描述算法的一般步骤为:
(1)确定循环次数,即确定循环变量的初始值和终值;
(2)把反复要做的工作,作为循环体放在For与Next之间;
(3)输出结果.
[活学活用]
1.下列语句运行的结果是( )
S=0
For i=-1 To 11
S=i*i
Next
输出S.
A.-1 B.11
C.100 D.121
解析:选D S=11×11=121.
2.写出下列框图所对应的算法语句.
解:用算法语句描述为:
S=1
For i=3 To 99 Step 2
S=S*i
Next
输出S.
Do Loop语句的应用
[典例] 画出求满足1+3+5+…+n>2 016的最小自然数n的算法框图,并用相应的算法语句描述该算法.
[解] 算法框图如下:
用Do Loop语句描述为:
S=0
i=1
Do
S=S+i
i=i+2
Loop While S≤2 016
输出i-2.
用Do Loop语句描述算法时,要注意Loop While后面的条件,每次重复后,都要检验While后的条件是否被满足,一旦不满足条件,循环停止,输出结果.
[活学活用]
1.读下面的算法语句,输出的结果是( )
I=1
S=0
Do
S=2*S+1
I=I+1
Loop While?I≤4
输出S.
A.2 B.10
C.15 D.20
解析:选C 当I=1时,S=0×2+1=1;当I=2时,S=1×2+1=3;当I=3时,S=3×2+1=7;当I=4时,S=7×2+1=15.当I=5时,跳出循环体,即输出的S的值为15.
2.请用基本语句设计一个算法,求平方值小于1 000的所有正整数的平方和.
解:用Do Loop语句描述如下:
S=0
i=1
Do
S=S+i2
i=i+1
Loop While i2<1 000
输出S.
循环语句的综合应用
[典例] 用基本语句描述求实数a1,a2,a3,a4中最大值的一个算法.
[解] 用基本语句描述如下:
输入a1,a2,a3,a4;
max=a1
i=2
Do
If ai>max Then
max=ai
End If
i=i+1
Loop While i<=4
输出max.
[活学活用]
根据如图所示的算法框图写出相应的程序.
解:由算法框图可知,算法的功能是求12+32+52+…+9992的值.
法一:用Do Loop语句描述如下:
S=0
i=1
Do
S=S+i2
i=i+2
Loop While i<=999
输出S.
法二:用For语句描述如下:
S=0
For i=1 To 999 Step 2
S=S+i2
Next
输出S.