第二章 算法初步
1 算法的基本思想
[课时作业]
[A组 基础巩固]
1.能设计算法求解下列各式中S的值的是( )
①S=+++…+;
②S=+++…++…;
③S=+++…+(n为确定的正整数).
A.①②
B.①③
C.②③
D.①②③
解析:因为算法的步骤是有限的,所以②不能设计算法求解,易知①③能设计算法求解.
答案:B
2.关于一元二次方程x2-5x+6=0的求根问题,下列说法正确的是( )
A.只能设计一种算法
B.可以设计两种算法
C.不能设计算法
D.不能根据解题过程设计算法
答案:B
3.对于一般的二元一次方程组在写解此方程组的算法时,需要注意的是( )
A.a1≠0
B.a2≠0
C.a1b2-a2b1≠0
D.a1b1-a2b2≠0
答案:C
4.下面给出的是一个已打乱的“找出a,b,c,d四个数中最大值”的算法:
①max=a,②输出max,③如果maxmax,则max=b,⑤输入a,b,c,d四个数,⑥如果c>max,则max=c.正确的步骤序号为( )
A.⑤①④⑥③②
B.⑤②④③⑥①
C.⑤⑥③④①②
D.⑤①④⑥②③
答案:A
5.已知直角三角形的两条直角边长分别为a,b.写出求斜边长c的算法如下:
第一步,输入两直角边长a,b的值.
第二步,计算c=
的值.
第三步,________________.
将算法补充完整,横线处应填____________________.
答案:输出斜边长c的值
6.已知一个学生的语文成绩为89,数学成绩为96,外语成绩为99,求他的总分和平均成绩的一个算法为:
第一步,取A=89,B=96,C=99;
第二步,_______________________________________________________;
第三步,________________________________________________________;
第四步,输出计算的结果.
解析:应先计算总分D=A+B+C,然后再计算平均成绩E=.
答案:计算总分D=A+B+C 计算平均成绩E=
7.求1×3×5×7×9×11的值的一个算法如下,请将其补充完整.
1.求1×3得结果;
2.将第1步所得结果3乘5,得到结果15.
3.________________.
4.再将第3步所得结果105乘9,得945.
5.再将第4步所得结果945乘11,得到10
395,即为最后结果.
解析:由于第2步是计算3×5,故第3步应是计算第3次乘法15×7.
答案:再将第2步所得结果15乘7,得到结果105
8.下面是解决一个问题的算法:
第一步,输入x.
第二步,若x≥6,转到第三步;否则,转到第四步.
第三步,输出3x-2,结束算法.
第四步,输出x2-2x+4.
当输入x的值为________时,输出的数值最小,且最小值为________.
解析:所给算法解决的是求分段函数f(x)=的函数值的问题.当x≥6时,f(x)=3x-2≥3×6-2=16,当x<6时,f(x)=x2-2x+4=(x-1)2+3≥3,所以f(x)min=3,此时x=1,即当输入x的值为1时,输出的数值最小,且最小值是3.
答案:1 3
9.在一个笼子里,关了一些鸡和兔,数它们的头一共有36个,数它们的脚一共有100只,问鸡和兔各多少只?这个问题被称为“鸡兔同笼”问题,它是我国古代的数学著作《孙子算经》中的一个有趣而具有深远影响的题目.用方程组的思想不难解决这一问题,请你设计一个解决此问题的通用算法.
解析:设鸡、兔的总头数为H,总脚数为F,求鸡、兔各有多少只.
算法如下:
第一步,输入总头数H,总脚数F.
第二步,计算鸡的只数x=.
第三步,计算兔的只数y=.
第四步,输出x,y的值.
10.已知直线l1:3x-y+12=0和直线l2:3x+2y-6=0,设计算法求l1和l2及y轴所围成的三角形的面积.
解析:算法如下:
第一步,解方程组得l1,l2的交点为P(-2,6).
第二步,在方程3x-y+12=0中,令x=0,得y=12,从而得到l1与y轴的交点为A(0,12).
第三步,在方程3x+2y-6=0中,令x=0,得y=3,从而得到l2与y轴的交点为B(0,3).
第四步,求出△ABP的边长AB=12-3=9.
第五步,求出△ABP的边AB上的高h=2.
第六步,根据三角形的面积公式计算S=·AB·h=×9×2=9.
第七步,输出S.
[B组 能力提升]
1.对于解方程x2-2x-3=0的下列步骤:
①设f(x)=x2-2x-3;
②计算判别式Δ=(-2)2-4×1×(-3)=16>0;
③作f(x)的图像;
④将a=1,b=-2,c=-3代入求根公式x=,得x1=3,x2=-1.
其中可作为解方程的算法的有效步骤为( )
A.①②
B.②③
C.②④
D.③④
解析:解一元二次方程可分为两步:确定判别式和代入求根公式,故②④是有效的,①③不起作用.
答案:C
2.一个算法的步骤如下:
第一步,令i=0,S=2.
第二步,如果i≤15,则执行第三步;否则执行第六步.
第三步,计算S+i并用结果代替S.
第四步,用i+2的值代替i.
第五步,转去执行第二步.
第六步,输出S.
运行该算法,输出的结果S=________.
解析:由题中算法可知S=2+2+4+6+8+10+12+14=58.
答案:58
3.给出下面的算法:
第一步,输入x.
第二步,判断x是否小于0,若是,则输出x+2,否则执行第三步.
第三步,输出x-1.
当输入的x的值分别为-1,0,1时,输出的结果分别为________、________、________.
解析:该算法实际上是分段函数f(x)=
∴f(-1)=-1+2=1,f(0)=0-1=-1,f(1)=1-1=0.
答案:1 -1 0
4.下面给出了一个解决问题的算法:
1.输入x.
2.若x≤3,则执行第3步,否则执行第4步.
3.使y=2x-1.
4.使y=x2-2x+4.
5.输出y.
则这个算法解决的问题是________.
答案:求分段函数y=的函数值
5.已知函数y=试设计一个算法,输入x的值,求对应的函数值.
解析:算法如下:
第一步,输入x的值.
第二步,当x≤-1时,计算y=2x-1,否则执行第三步.
第三步,当x<2时,计算y=log2(x+1),否则执行第四步.
第四步,计算y=x2.
第五步,输出y.
6.从古印度的汉诺塔传说中演变出一个汉诺塔游戏:如图有三根杆子A,B,C,A杆上有三个碟子(自上到下逐渐变大),每次移动一个碟子,要求小的只能叠在大的上面,最终把所有碟子从A杆移到C杆上.试设计一个算法,完成上述游戏.
解析:第一步,将A杆最上面的碟子移到C杆上.
第二步,将A杆最上面的碟子移到B杆上.
第三步,将C杆上的碟子移到B杆上.
第四步,将A杆上的碟子移到C杆上.
第五步,将B杆最上面的碟子移到A杆上.
第六步,将B杆上的碟子移到C杆上.
第七步,将A杆上的碟子移到C杆上.
PAGE第二章 算法初步
2 算法框图的基本结构与设计
2.1 顺序结构与选择结构
[课时作业]
[A组 基础巩固]
1.要解决下面的四个问题,只用顺序结构不能画出其程序框图的是( )
A.计算1+2+…+10的值
B.当圆的面积已知时,求圆的周长
C.给定一个数x,求其绝对值
D.求函数f(x)=x2-3x-5的函数值
解析:C中要判断x是大于等于0还是小于0,才能求其绝对值.
答案:C
2.下列说法:①条件结构是最简单的算法结构;②顺序结构就是按照程序语句运行的自然顺序,依次地执行顺序;③条件结构可以根据设定的条件,控制语句流程,有选择地执行不同的语句序列.其中正确的说法是( )
A.①②
B.①③
C.②③
D.①②③
答案:C
3.运行如图所示的程序框图,输出的结果为11,则输入的x的值为( )
A.6
B.5
C.4
D.3
解析:依题意,令2x-1=11,解得x=6,即输入的x的值为6.
答案:A
4.如图所示,当x1=6,x2=9,p=8.5时,x3等于( )
A.7
B.8
C.10
D.11
答案:B
5.如图所示的算法框图,输出的结果是S=7,则输入A的值等于________.
解析:2A+1=7,∴A=3.
答案:3
6.定义某种新运算“?”:S=a?b的运算原理为如图的程序框图所示,则式子5?4-3?6=________.
解析:由题意知5?4=5×(4+1)=25,3?6=6×(3+1)=24,所以5?4-3?6=1.
答案:1
7.已知点P(x0,y0),直线l:x+2y-3=0,求点P到直线l的距离的一个算法程序框图如图所示,则在①处应填________.
解析:应填上点到直线的距离公式.
答案:d=
8.如图所示的程序框图表示的是求方程ax+b=0(a,b为常数)的解.问:该程序框图正确吗?若不正确,请问它是哪一个问题的程序框图?应怎样修改?请写出正确的算法及程序框图.
解析:不正确,该程序框图是求方程ax+b=0(a≠0)的解.
正确的算法:
第一步,输入a,b.
第二步,若a≠0,则x=-,并输出x,执行第四步;否则,执行第三步.
第三步,如果b≠0,则输出“方程无实数解”;否则,输出“方程的解是全体实数”.
第四步,结束.
程序框图如下:
9.某居民区的物业管理部门每月向居民收取卫生费,计费方法是:3人和3人以下的住户,每户收取5元;超过3人的住户,每超出1人加收1.2元.设计一个算法,根据输入的人数,计算应收取的卫生费,画出算法框图.
解析:设住户的人数为x人,收取的卫生费为y元,
依题意有
y=
这是一个分段函数求值问题,可用选择结构实现算法.
算法步骤如下:
1.输入x.
2.若x≤3,则y=5;否则(x>3),y=5+1.2(x-3).
3.输出y.
算法框图如图所示.
[B组 能力提升]
1.根据如图所示的程序框图,计算f(-1)+f(2)=( )
A.0
B.1
C.2
D.4
解析:输入x=-1,满足x≤0,所以f(-1)=4×(-1)=-4;输入x=2,不满足x≤0,
所以f(2)=22=4.
所以f(-1)+f(2)=0.故选A.
答案:A
2.某程序框图如图所示,现输入如下四个函数,则可以输出的函数是( )
A.f(x)=x2
B.f(x)=
C.f(x)=ln
x+2x-6
D.f(x)=x3+x
解析:由框图可知,当输入的函数f(x)为奇函数且存在零点时,才可输出f(x),由选项可知,仅f(x)=x3+x同时满足这两个条件,故选D.
答案:D
3.如图是求实数x的绝对值的算法框图,则判断框①中应填________.
解析:x≥0(或x>0)时,|x|=x,x<0时,|x|=-x,所以应填x≥0(或x>0).
答案:x≥0(或x>0)
4.对任意非零实数a,b,若a⊙b的运算原理如程序框图所示,则(3⊙2)⊙4的值是________.
解析:由题意知,a=3,b=2.
再由程序框图得,3≤2不成立,故执行,
得到3⊙2==2.同样2⊙4=.
答案:
5.为了得到班级人数,老师先让同学们从1到3循环报数,最后一个同学报2;再让同学们从1到5循环报数,最后一个同学报3;然后让同学们从1到7循环报数,最后一个同学报4.请你画出计算这个班至少有多少人的程序框图.
解析:程序框图如图所示.
PAGE第二章 算法初步
2 抽样方法
2.2 变量与赋值
[课时作业]
[A组 基础巩固]
1.对赋值语句的描述正确的是( )
①可以给变量提供初值
②将表达式的值赋给变量
③可以给一个变量重复赋值
④不能给同一变量重复赋值
A.①②③
B.①②
C.②③④
D.①②④
答案:A
2.赋值语句M=M+3表示的意义是( )
A.将M的值赋给M+3
B.将M的值加3后再赋给M
C.M和M+3的值相等
D.以上说法都不对
解析:赋值语句是将“=”右边的一个确定值赋给它左边的一个变量.
答案:B
3.设A=10,B=20,则可以实现A,B的值互换的程序是( )
A.
B.
C.
D.
答案:C
4.下列程序段执行后,变量a,b的值分别为( )
a=15
b=20
a=a+b
b=a-b
a=a-b
输出 a,b
A.20,15
B.35,35
C.5,5
D.-5,-5
答案:A
5.已知下列框图,
若a=5,则输出b=________.
解析:由题意可得b=a2+1=52+1=26.
答案:26
6.按图中所示算法框图运行后,输出的结果是________.
解析:由题图中所示的算法可知最后输出的S=100-10-20-30-40=0.
答案:0
7.A=1
A=2
A
A=A+3
A=A2
输出A
上述程序的运行结果为________.
答案:25
8.下面是一个算法的语句,则输出结果为________.
A=1;A=A+2;A=A+3;A=A+4;A=A+5;输出A.
解析:通过分析程序知这是一个计算1+2+3+4+5的值的算法,并把结果赋给了A,所以输出的结果为15.
答案:15
9.“六·一”儿童节这天,糖果店的售货员忙极了,请你设计一个程序,帮助售货员算账.已知水果糖每千克10元,奶糖每千克15元,巧克力糖每千克25元,那么依次购买这三种糖果a,b,c千克,应收取多少钱?试写出一个算法,并画出程序框图.
解析:算法如下:
第一步,输入购买水果糖,奶糖,巧克力糖三种糖果的千克数a,b,c.
第二步,计算Y=10a+15b+25c.
第三步,输出Y.
算法框图如图所示:
10.若要计算一个学生的数学、语文、英语三门课的平均成绩,试写出一个算法,并画出程序框图.
解析:算法如下:
第一步,输入该学生的数学、语文、英语三门课的成绩a,b,c.
第二步,计算y=.
第三步,输出y.
算法框图如图所示:
[B组 能力提升]
1.“x=5
6”,“x=x+2”是某程序中先后相邻的两个语句,那么下列说法中正确的是( )
①x=5
6的意思是x=5×6=30,此式与代数运算中的式子是一样的;②x=5
6是将数值30赋给“x”;③x=5
6可以写成5
6=x;④x=x+2语句在执行时“=”右边“x”的值是30,左边的值是32.
A.①③
B.②④
C.①④
D.②③
解析:赋值语句的规则是左边是变量,右边是表达式,所以②正确;x=x+2的意思就是将上面x的值加上2赋给x,故④也正确.而其余两个选项均错误.
答案:B
2.在如图所示的算法语句中输入x=1
000,y=2,则输出的结果M是( )
输入 x,y
M=2
x+4
y+5
输出 M
A.2
010
B.2
011
C.2
012
D.2
013
解析:M=2×1
000+4×2+5=2
013.
答案:D
3.在如图所示算法程序框图中,令a=-tan
45°,b=-sin
45°,c=cos
45°,则输出结果为________.
解析:该程序目的是求a,b,c中的最大值.
a=-tan
45°=-1,b=-sin
45°=-,c=cos
45°=,所以输出.
答案:
4.如下程序,
输入a,b
a=b
b=a
c=ab
d=ba
输出c,d
若输入a=1,b=2,则输出的结果是________.
解析:a=1,b=2,由a=b,得a=2,又由b=a,得b=2,故c=22=4,d=22=4,故输出结果是4,4.
答案:4,4
5.“特快专递”是目前人们经常使用的异地邮寄信函或托运物品的一种快捷方式,某快递公司规定甲、乙两地之间物品的托运费用根据下列方法计算:
f=
其中f(单位:元)为托运费,w为托运物品的重量(单位:千克).试设计计算费用f的算法,并画出程序框图.
解析:算法如下:
第一步,输入w;
第二步,如果w≤50,那么f=0.53w;否则f=50×0.53+(w-50)×0.85;
第三步,输出f.
程序框图如图所示:
PAGE第二章 算法初步
2 抽样方法
2.3 循环结构
[课时作业]
[A组 基础巩固]
1.下面关于算法的基本结构的叙述错误的为( )
A.任何算法都可以由三种基本结构通过组合与嵌套而表达出来
B.循环结构中包含着选择结构
C.选择结构中的两个分支,可以都是空的
D.有些循环结构可改为顺序结构
答案:C
2.图中所示的是一个算法框图,表达式为( )
A.
B.
C.
D.
答案:A
3.阅读如图所示的算法框图,运行相应的程序,则输出s的值为( )
A.-1
B.0
C.1
D.3
答案:B
3题图 4题图
4.执行如图所示的程序框图,若输出的值为4,则P的取值范围是( )
A.
B.
C.
D.
解析:第一次循环:S=,n=2;第二次循环:S=+=,n=3;第三次循环:S=++=,n=4.因此P的取值范围是,故选D.
答案:D
5.执行如图所示的程序框图,若p=0.8,则输出的n值是________.
5题图 6题图
解析:n=1,S=0<p,此时S=0+=,n=2;
n=2,S=<p,此时S=+=,n=3;
n=3,S=<p,此时S=+=,n=4;
n=4,S=>p,终止循环,故输出的n值是4.
答案:4
6.执行如图所示的算法框图,输出的T=________.
解析:按照算法框图依次执行为:S=5,n=2,T=2;S=10,n=4,T=2+4=6;S=15,n=6,T=6+6=12;S=20,n=8,T=12+8=20;S=25,n=10,T=20+10=30.故输出T=30.
答案:30
7.若某程序框图如图所示,当输入n=50时,则该程序运行后输出的结果是__________.
解析:输入n=50,由于i=1,S=0,所以S=2×0+1=1,i=2,此时不满足S>50;当i=2时,S=2×1+2=4,i=3,此时不满足S>50;当i=3时,S=2×4+3=11,i=4,此时不满足S>50;当i=4时,S=2×11+4=26,i=5,此时不满足S>50;当i=5时,S=2×26+5=57,i=6,此时满足S>50,因此输出i=6.
答案:6
7题图 8题图
8.若某算法框图如图所示,则该程序运行后输出的值等于________.
解析:根据算法框图,可以逐个进行运算,k=1,S=1;S=1+,k=2;S=1++,k=3;S=1+++,k=4;S=1++++=,k=5,程序结束,此时S=.
答案:
9.如何寻找使2×4×6×8×…×i≥10
000成立的i的最小正整数值?请设计一个算法框图.
解析:循环变量:i,每次递增2,可用i=i+2表示;循环体:求积用S=S
i表示;
循环终止条件:S≥10
000;输出变量:i-2.
算法框图如图所示.
10.已知x的取值范围为[0,10],给出如图所示的程序框图.
(1)请写出程序框图所表示的函数表达式;
(2)若输出的y∈(-∞,5),求x的取值范围;
(3)若输出的y∈(6,8],求x的取值范围.
解析:(1)由已知可得程序框图所表示的函数表达式是y=.
(2)若输出y=x+1(0≤x≤7),则x+1<5,所以0≤x<4;
若输出y=x-1(7综上,若输出的y∈(-∞,5),则x的取值范围是[0,4).
(3)若输出y=x+1(0≤x≤7),则6若输出y=x-1(7综上,若输出的y∈(6,8],则x的取值范围是(5,9].
[B组 能力提升]
1.如图所示的程序框图的功能是( )
A.计算(1+20)+(2+21)+(3+22)+…+(n+1+2n)的值
B.计算(1+21)+(2+22)+(3+23)+…+(n+2n)的值
C.计算(1+2+3+…+n)+(20+21+22+…+2n-1)的值
D.计算[1+2+3+…+(n-1)]+(20+21+22+…+2n)的值
解析:初始值k=1,S=0,第一次循环:S=1+20,k=2;第二次循环:S=1+20+2+21,k=3,…;给定正整数n,当k=n时,最后一次循环:S=1+20+2+21+…+n+2n-1,k=n+1,退出循环,输出S=(1+2+3+…+n)+(20+21+22+…+2n-1),故选C.
答案:C
1题图 2题图
2.如图是某同学为求1
009个偶数:2,4,6,…,2
018的平均数而设计的程序框图,则在该程序框图中的空白判断框和处理框中应填入的内容依次是( )
A.i>1
009,x=
B.i≥1
009,x=
C.i<1
009,x=
D.i≤1
009,x=
解析:因为要求1
009个偶数的和,且满足判断条件时,停止循环,输出结果,故判断框中应填入“i>1
009”;因为要求2,4,6,…,2
018的平均数,故处理框中应填入“x=”.
答案:A
3.下列四个程序框图,都是为计算22+42+62+…+1002而设计的.正确的程序框图为________;图中,③输出的结果为________(只需给出算式表达式);在错误的程序框图中,不能执行到底的为________.
解析:将每一个程序框图所表示的算法“翻译”出来即可进行判断.
答案:④ 22+42+62+…+982 ②
4.2017年11月14日中国羽毛球公开赛在福州举行,某机构在福州市随机调查了10
000人,了解他们观看羽毛球公开赛电视直播节目的情况,把调查结果输入如图所示的程序框图中,输出的数值是3
800,则可判断调查的10
000人中观看该直播节目的人数为________.
4题图 5题图
解析:从程序框图中可以看出输出的S的值表示没观看直播节目的人数,所以观看该直播节目的人数为10
000-3
800=6
200.
答案:6
200
5.用N1代表第1个学生的学号,用Ni代表第i个学生的学号,Gi表示第i个学生的成绩,那么如图所示的算法框图表示了一个什么算法?
解析:由算法框图我们可以看出:
①i=1,i≤60,说明循环变量的初始值为1,最大值为60;i=i+1,说明增量为1,故循环60次.
②如果Gi≥90,则打印Ni,Gi,如果Gi<90,直接转至i=i+1,说明Gi低于90不输出,从而转到判断下一个直至不满足i≤60为止.
综上所述,该算法框图表示打印60名学生中90分及90分以上的学生的学号和成绩.
6.一位同学为了求1×2×3×…×30的值,画出了如图所示的程序框图,其中有几处是错误的,请你画出正确的程序框图.
解析:正确的程序框图如下:
PAGE第二章 算法初步
3 几种基本语句
3.1 条件语句
[课时作业]
[A组 基础巩固]
1.对条件语句的描述正确的是( )
A.Else后面的语句不可以是条件语句
B.两个条件语句可以共用一个End
If
C.条件语句可以没有Else后的语句
D.条件语句中Then和Else后的语句必须都有
答案:C
2.下列问题所描述出来的算法,其中不包含条件语句的为( )
A.输入三个表示三条边长的数,计算三角形的面积
B.给出两点的坐标,计算直线的斜率
C.给出一个数x,计算它的常数对数的值
D.给出三棱锥的底面积与高,求其体积
答案:D
3.阅读下面程序:
INPUT xIF x<0 THEN x=-xEND
IFPRINT xEND
若输入x=5,则输出结果x为( )
A.-5
B.5
C.0
D.不确定
解析:当x≥0时,不符合条件,执行END
IF之后的语句,直接输出x的值,即为5.
答案:B
4.为了在运行下面的程序之后输出16,输入x应该是( )
INPUT xIF x<0 THEN y=(x+1)
(x+1)ELSE y=(x-1)
(x-1)END
IFPRINT yEND
A.3或-3
B.-5
C.5或-3
D.5或-5
解析:该程序的功能是求函数
y=的值,
若(x+1)2=16,则x=-5;
若(x-1)2=16,则x=5.
答案:D
5.分析下面的语句,当输入的x值为3时,程序的输出结果为________.
输入x;
If x>2 Then
y=x4
Else
If x<2 Then
y=0
Else
y=5x
End
If
End
If
输出y.
解析:由算法语句可得y=
输入x=3,
则y=34=81.
答案:81
6.读下列语句完成题目
输入x;
If x>1 Then
y=x+1
Else
y=2x+1
End
If
输出y
(1)若执行程序时,没有执行语句y=x+1,则输入的x的范围是________;
(2)若输出结果是5,则执行的赋值语句是______,输入的x的值是________.
解析:依题意,题目所给的程序是求函数y=的函数值.因此,当x≤1时,没有执行语句y=x+1;又当x>1时,x+1>2,当x≤1时,2x+1≤3,从而输出的y的值是5时,执行的赋值语句是y=x+1,故输入的x的值为x=5-1=4.
答案:(1)x≤1 (2)y=x+1 4
7.判断输入的数x是否为正数,若是,输出它的平方;若不是,输出它的相反数,则横线上应填________.
输入x;
If
__________ Then
y=-x
Else
y=x2
End
If
输出y.
解析:y是一个分段函数,由题意知
y=
答案:x≤0
8.以下给出的是用条件语句编写的一个算法,根据该算法回答下列问题:
输入x;
If x<4 Then
y=3
x
Else
If x>4 Then
y=x2+1
Else
y=3
End
If
End
If
输出y.
(1)若输入-3,则输出结果是________;
(2)若输入4,则输出结果是________;
(3)该算法的功能是求函数________的值.
解析:由题意知,当x<4时,y=3x;当x=4时,y=3;当x>4时,y=x2+1.
答案:(1)-9 (2)3 (3)y=
9.以下给出一个算法:
1.输入x.
2.若x<0,执行第3步;否则执行第6步.
3.令y=x+1.
4.输出y.
5.结束.
6.若x=0,执行第7步;否则执行第10步.
7.令y=0.
8.输出y.
9.结束.
10.令y=x.
11.输出y.
12.结束.
(1)指出该算法的功能;
(2)画出该算法的框图;
(3)用基本语句写出该算法.
解析:(1)该算法的功能是计算并输出
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.
10.设计一个程序,对输入的任意一个非零实数,判断其符号,并画出程序框图.
解析:程序框图如图所示:
程序如下:
INPUT “x=”;xIF x>0 THEN PRINT “+”ELSE PRINT “-”END
IFEND
[B组 能力提升]
1.下列算法语句运行的结果是( )
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
解析:A=4.5<5,∴B=6-3=3,B=3+2=5≥4,
∴B=52=25.
答案:D
2.有下列程序,如图(1).
INPUT xIF x>=1 THEN y=xELSE y=-xEND
IFPRINT yEND
图(1)
INPUT xIF
THEN y=-xELSE y=xEND
IFPRINT yENDK
图(2)
现有人将其修改为如图(2)所示的程序与其实现相同的功能.请在内填上合适的语句,使程序能够正常运行( )
A.x<1
B.x<=1
C.x>1
D.x<0
解析:已知程序的功能是求分段函数y=的函数值,故修改后内应填x<1.
答案:A
3.分别判断下列两组语句执行的结果:
(1)输入a
If a>0 Then
m=a
a-1
输出m
Else
输出“a
negative
number”
End
If
若输入-3,则输出的结果为________;
若输入2,则输出的结果为________.
(2)输入x
If x≤10 Then
p=x
0.35
Else
p=10
0.35+(x-10)
0.7
End
If
输出p
若输入6,则p=________;
若输入18,则p=________.
解析:要分清各条件语句中是执行了语句1还是语句2,这取决于条件判断是真还是假.(1)中,若输入-3,则条件判断为假,所以执行Else后面的语句:输出“a
negative
number”.若输入2,则条件判断为真,所以执行Then后面的语句:m=a
a-1;输出m(先将a
a-1的值赋予变量m,然后输出变量m的值).同理可分析得出(2)的答案.
答案:(1)a
negative
number 3 (2)2.1 9.1
4.如图所示的程序是为求函数y=的函数值而设计的,则①②处应分别填写__________,________.
INPUT xIF ① THEN y=3
xELSE IF x<20 THENy=2
x ELSE y=x ②END
IFPRINT yEND
解析:由分段函数的解析式知,当x<10时,y=3x,故程序中①处应填x<10.语句使用的是嵌套语句,程序中有两个IF,故程序②处应填END
IF.
答案:x<10 END
IF
5.给出如下程序(其中x满足0INPUT “x=”;xIF x>0 AND x<=4 THENy=2
xELSE IF x<=8 THEN y=8 ELSEy=24-2
x END
IFEND
IFPRINT yEND
(1)该程序的功能是求什么函数的函数值?
(2)画出这个程序的程序框图.
解析:(1)该程序的功能是求函数
y=的值.
(2)程序框图如图所示.
6.“依法纳税是每个公民应尽的义务”,《中华人民共和国个人所得税法》第十四条中有个人所得税税率表(工资、薪金所得适用):
级数
全月应纳税所得额
税率(%)
1
不超过500元部分
5
2
超过500元至2
000元部分
10
3
超过2
000元至5
000元部分
15
4
超过5
000元至20
000元部分
20
…
…
…
9
超过100
000元部分
45
上表中“全月应纳税所得额”是从月工资、薪金收入中减去2
000元后的余额,例如某人月工资、薪金收入2
220元,减去2
000元后,应纳税所得额就是220元,应缴纳个人所得税11元.在此规定下,试用基本语句描述出输入某人月工资、薪金收入(不超过6
600),输出这个人应缴纳的个人所得税的算法.
解析:算法分析:
用x(元)表示月工资、薪金收入,用y(元)表示应缴纳的个人所得税,y与x的函数关系式为:
y=
程序如下:
输入x;
If x≤2
000 Then
y=0
Else
If x≤2
500 Then
y=0.05(x-2
000)
Else
If x≤4
000 Then
y=0.1(x-2
500)+25
Else
y=0.15(x-4
000)+175
End
If
End
If
End
If
输出y.
PAGE第二章 算法初步
3 几种基本语句
3.2 循环语句
[课时作业]
[A组 基础巩固]
1.关于Do
Loop循环语句叙述正确的是( )
A.至少执行循环体一次
B.执行一次循环体
C.不满足条件时执行循环体
D.遇到Do
Loop就结束
答案:A
2.如果某一循环变量的初始值为2
000,终值为2
013,循环时循环变量的值每次增加1,则该循环变量一共循环的次数为( )
A.11次
B.12次
C.13次
D.14次
答案:D
3.根据下面语句判断输出结果为( )
i=0
S=0
Do
S=S+i
i=i+1
Loop
While
S≤20
输出i
A.6
B.7
C.8
D.9
答案:B
4.读下面甲、乙两个程序:
甲:S=0
For i=1 To 1
000
S=S+i
i=i+1
Next
输出S.
乙:i=1
000
S=0
Do
S=S+i
i=i-1
Loop
While i≥1
输出S.
对甲、乙两程序和输出结果判断正确的是( )
A.程序不同,结果不同
B.程序不同,结果相同
C.程序相同,结果不同
D.程序相同,结果相同
答案:B
5.下列程序执行后输出的结果是________.
s=1
For i=9 To 11
s=s
i
Next
输出s
解析:该程序的运行过程是:
s=1,i=9,s=1×9=9;i=10,s=9×10=90;
i=11,s=90×11=990,输出s=990.
答案:990
6.根据下面的算法语句,可知输出的结果T为________.
T=1
i=3
Do
T=T+i
i=i+2
Loop
While
i<50
输出T
解析:由算法知T=1+3+5+…+49=625.
答案:625
7.阅读下列算法语句:
i=1
S=0
Do
S=S+i
i=i+1
Loop
While i≤100
输出S.
则S的表达式为________.
解析:这是一个Do
Loop语句,终止条件是i>100,循环体是累加,即是从1累加到100.
答案:1+2+3+…+100
8.阅读下面的算法语句:
b=1
For k=1
To
5
b=b
k
If
b≥15 Then
退出For循环
End
If
Next
输出b.
在上述语句中,k循环共执行________次,输出的结果为________.
解析:本题主要考查For循环语句,首先观察循环的条件If
b≥15
Then退出循环,可知b的最终值为24,k从1到4,所以,k的最终值为4,这时b=24.
答案:4 24
9.分别用两种不同的循环语句描述下列算法:计算2×4×6×…×100的值.
解析:法一:S=1
For
i=2 To 100 step 2
S=S
i
Next
输出S
法二:i=2
S=1
Do
S=S
i
i=i+2
Loop
While i≤100
输出S
10.设计求满足条件1+++…+>10的最小自然数的算法,画出算法框图,并用基本语句描述这个算法.
解析:算法框图及语句如下:
S=0
i=1
Do
S=S+
i=i+1
Loop
While
S≤10
输出 i-1
[B组 能力提升]
1.对于下面的语句:
x=-1
Do
x=x
x
Loop
While
x≤10
输出x
下列说法正确的是( )
A.输出结果是1
B.能执行一次
C.能执行10次
D.是“死循环”,有语法错误
解析:从循环语句的格式看,这个循环语句是Do
Loop语句,那么当满足条件x>10时,终止循环体,但是第一次执行循环体后x=1,由于x=1<10成立,则再次执行循环体,执行完成后x=1,则这样无限循环下去,是一个“死循环”,有语法错误,循环终止的条件永远不能满足.故选D.
答案:D
2.如果下面程序执行后输出的结果是132,那么在程序While后的“条件”应是( )
i=12
S=1
Do
S=S
i
i=i-1
Loop
While 条件
输出S
A.i>11
B.i≥11
C.i≤11
D.i<11
解析:132=12×11,所以应在i=10时,不满足“条件”跳出循环,故条件应为“i≥11”.
答案:B
3.读算法语句回答问题:
i=1
sum=0
Do
sum=sum+1/[i
(i+1)]
i=i+1
Loop
While
i<=n
输出sum
(1)若输入n=3,则输出的结果为________;
(2)此程序计算的式子为________.
解析:循环体是sum=sum+,i=i+1.
(1)当n=3时,sum=++=.
(2)程序计算的式子为S=++…+.
答案:(1) (2)++…+
4.设计算法求+++…+的值,画出算法框图并用基本语句描述这个算法.
解析:算法如下:
第一步,令S=0,i=1;
第二步,若i≤99成立,则执行第三步;
否则,输出S,结束算法;
第三步,S=S+;
第四步,i=i+1,返回第二步.
算法框图及语句如下:
法一:
S=0
For i=1
To
99
S=S+1/(i
(i+1))
Next
输出S
法二:
S=0
i=1
Do
S=S+1/(i
(i+1))
i=i+1
Loop
While
i≤99
输出S
5.一个小朋友在一次玩皮球时,偶然发现一个现象:球从某高度落下后,每次都反弹回原高度的,再落下,再反弹回上次高度的,如此反复.假设球从100
cm处落下,那么第10次下落的高度是多少?在第10次落地时共经过多少路程?试用循环语句表述其算法.
解析:用循环语句描述为:
S=100
h=100
For i=2 To 10
h=
S=S+2
h
Next
输出h
输出S
PAGE