最新人教版高中数学必修3第一章《基本算法语句》达标训练.docx
《最新人教版高中数学必修3第一章《基本算法语句》达标训练.docx》由会员分享,可在线阅读,更多相关《最新人教版高中数学必修3第一章《基本算法语句》达标训练.docx(16页珍藏版)》请在冰点文库上搜索。
![最新人教版高中数学必修3第一章《基本算法语句》达标训练.docx](https://file1.bingdoc.com/fileroot1/2023-7/13/eb5b09ba-926f-4689-af19-d8d3eeec4cc1/eb5b09ba-926f-4689-af19-d8d3eeec4cc11.gif)
最新人教版高中数学必修3第一章《基本算法语句》达标训练
更上一层楼
基础·巩固
1.下列关于赋值语句的说法错误的是()
A.赋值语句的作用是先计算出赋值号右边的表达式的值
B.赋值语句是把左边变量的值赋给赋值号右边的表达式
C.赋值语句是把右边表达式的值赋给赋值号左边的变量
D.在算法语句中,赋值语句是最基本的语句
思路分析:
赋值语句的一般格式是:
变量名=表达式,其作用是把右边表达式的值赋给赋值号左边的量,故B错误.
答案:
B
2.下列给出的赋值语句正确的有()
①赋值语句3=B②赋值语句x+y=0③赋值语句A=B=-2④赋值语句T=T*T
A.0个B.1个C.2个D.3个
思路分析:
①赋值语句中“=”左右两边不能互换,即不能给常量赋值.左边必须是变量,右边必须是表达式,应改为B=3;
②赋值语句不能给一个表达式赋值;
③一个赋值语句只能给一个变量赋值,不能出现两个或多个“=”;
④该语句的功能是将当前的T平方后再赋值给变量T.
答案:
B
3.“x=4+5”“x=x-1”是某一程序中的先后相邻的两个语句,那么下列说法正确的是()
①x=4+5的意思是x=4+5=9,此式与算术中的式子是一样的
②x=4+5是将数值9赋给x
③x=4+5可以写成4+5=x
④x=x-1语句在执行时,“=”右边x的值是9,执行后左边x的值是8
A.①③B.②④C.①④D.②③
思路分析:
①x=4+5的意思是将9赋值给x;③赋值语句中“=”左右两边不能互换,即不能给常量赋值.左边必须是变量,右边必须是表达式.故①③错误.
答案:
B
4.给出以下4个问题:
①输入一个数x,输出它的绝对值;
②求函数f(x)=
的函数值;
③求面积为6的正方形的周长;
④求三个数a,b,c中的最大数.
其中不需要用条件语句来描述其算法的有()
A.1个B.2个C.3个D.4个
思路分析:
根据条件语句的使用范围,当需要根据某个给定条件是否满足而决定是否执行下一步时,应该使用条件语句.由此可判断出问题③不需要用条件语句,因为正方形的面积一定时,其周长也一定.
答案:
A
5.下列关于循环语句的说法不正确的是()
A.算法中的循环结构一定是由WHILE语句来实现
B.一般算法程序设计中,有当型和直到型两种循环结构
C.循环语句中,有当型和直到型两种形式,即WHILE型语句和UNTIL型语句
D.算法中的循环结构由循环语句来实现
思路分析:
算法中有两种循环结构,对应也有两种循环语句,即:
WHILE型语句和UNTIL型语句,所以算法中的循环结构可由两种循环语句来实现.由此可知4个选项中只有A不正确.
答案:
A
6.观察下面的程序,写出运行结果:
(1)INPUTa
IFa>=0THEN
PRINTSQR(a)
ELSE
PRINT“是负数”
ENDIF
END
(2)INPUTx
IFx<10THEN
P=x*0.35
ELSE
P=10*0.35+(x-10)*0.7
ENDIF
PRINTP
END
(1)输入-4,输出结果为___________;
输入9,输出结果为___________.
(2)若x=6,则P=___________;
若x=18,则P=___________.
思路分析:
这两个程序中都用到了IF-THEN-ELSE语句.
(1)中条件“a≥0”满足时进行开平方,否则输出“是负数”.所以该程序描述的是求一个实数平方根的算法.
(2)中条件“x<10”满足时,P=x*0.35,否则P=10*0.35+(x-10)*0.7,可见该程序是求一个分段函数值的问题.
答案:
(1)负数3
(2)2.19.1
7.写出求三个数a,b,c的方差的程序.
思路分析:
方差是在初中统计内容中学习过的知识,计算所有数的方差首先计算所有数的平均数
通过公式s2=
来计算.
解:
算法步骤:
第一步,计算平均数x=
.
第二步,计算方差s2=
.
第三步,得到的结果即为所求.
程序如下:
INPUTa,b,c
y=(a+b+c)/3
s=((a-y)^2+(b-y)^2+(c-y)^2)/3
PRINTs
END
8.编写一个程序,要求输入两个正数a和b的值,输出ab和ba的值.
思路分析:
可以利用INPUT语句输入两个正数,然后将ab和ba的值分别赋给两个变量输出即可.也可以将ab和ba的底数和幂进行交换,故还可以利用赋值语句,采用将两个变量的值互换的办法来实现.
解:
程序一:
INPUT“a,b”;a,b
A=a^b
B=b^a
PRINT“a^b=”;A,“b^a=”;B
END
程序二:
INPUT“a,b”;a,b
A=a^b
PRINT“a^b=”;A
x=a
a=b
b=x
A=a^b
PRINT“b^a=”;A
END
9.写出求1+2+3+4+5+6+7的值的一个程序算法.
思路分析:
计算自然数的累加可据公式1+2+3+…+n=
该题中,只要把n取成7,代入公式即可求出.
解:
程序如下:
INPUT“n”;n
S=
PRINT“S=”;S
END
10.以下是一个用基本语句编写的程序,根据程序画出其相应的程序框图,并指出这一算法的功能.
INPUT“语文”;a
INPUT“数学”;b
INPUT“英语”;c
INPUT“物理”;d
INPUT“化学”;e
S=a+b+c+d+e
P=S/5
PRINTP
END
思路分析:
该程序利用了3种基本语句进行算法描述,从程序可以看出,这是求一个学生5门课程平均分的算法,只要按顺序从上到下将输入语句,赋值语句,输出语句表达的内容填入相应的程序框即可.
解:
程序框图如右图所示.
综合·应用
11.输入x的值,求函数y=
的值,用程序语言表达该算法.
思路分析:
由于函数是分段函数,函数值是1还是0要看输入的x的值的正负,即算法中需用
到条件结构对x的值进行判断,相应的算法语句要用到条件语句.可以先画出解决该问题的程序框图,再对应写出程序语言.
解:
算法的程序框图如右图:
程序语言如下:
INPUTx
IFx>0THEN
y=1
ELSE
y=0
ENDIF
PRINT“y=”;y
END
12.任意给出一个数据(正数),写出求以它为半径的圆的周长和面积的一个算法程序.
思路分析:
设圆的半径为r,则周长C=2πr,面积S=πr2,其中圆周率π为常数,但计算机不能识别这个常数,因此我们必须先设定π的值,即把π的近似值赋给一个变量.
解:
记π=3.1415926,算法程序如下:
INPUT“请输入圆的半径r:
”;r
C=2*π*r
S=π*r^2
PRINT“圆的半径r=”;r
PRINT“圆的周长C=”;C
PRINT“圆的面积S=”;S
END
13.编写一个程序,输入一个数x,如果它是正数,则输出它,否则不输出.
思路分析:
这是一个很简单的问题,只要对输入的x的值进行符号判断即可.可先画出解决它的程序框图,再对应写出程序.
解:
其程序框图如右图所示.
程序步骤如下:
INPUT“x=”;x
IFx>0THEN
PRINTx
ENDIF
END
14.求平方值小于1000的最大正整数,写出一个算法的程序.
思路分析:
可设置累加求和的形式,用循环语句实现,用WHILE型语句或UNTIL型语句均可.其中的循环条件是累加和小于1000.
解:
(法1)用“WHILE”语句编写程序如下:
s=1
i=2
WHILEs<1000
a=i^2
s=s+a
i=i+1
WEND
i=i-1
PRINT“n的最大正整数为:
”;i
END
(法2)用“UNTIL”语句编写程序如下:
i=1
DO
s=i^2
i=i+1
LOOPUNTILs>=1000
i=i-2
PRINT“平方值小于1000的最大正整数为:
”;i
END
15.隋朝时期的数学名著《孙子算经》中有一个有趣而影响深远的“鸡兔同笼”问题.原题为:
“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
”也就是:
一个笼子里有若干小鸡和若干兔子,要数头共有35个,要数腿共有94条,那么共有多少小鸡、多少免子?
设计一个算法,写出算法程序,解决这一类问题.
思路分析:
本题实际上是解二元一次方程组的问题,可用代入法,也可用加减法.运用方程组的思想:
设鸡、免的头数为H,脚数为F,则可求出共有小鸡x=
只,兔子y=
只,也可以用H-x来表示兔子的数量.要解决这一类问题只要设计好公式,输入头、脚的数目,运用公式即可.
解:
算法程序如下:
INPUT“请输入小鸡和兔子头的总数:
”;H
INPUT“请输入小鸡和兔子脚的总数:
”;F
LETx=(4*H-F)/2
LETy=(F-2*H)/2
PRINT“小鸡的只数为:
”;x
PRINT“兔子的只数为:
”;y
END
执行这个程序时,H输入35,F输入94,则会输出结果x,y的值.
16.设成年人的身高为H,体重为W,T=H-100,体重公斤数在T的±10%范围内的称为正常,超过T的10%为偏胖,低于T的10%为偏瘦.试编写一个程序,当输入一个人的身高和体重时,能输出“正常”“偏胖”或“偏瘦”等信息.
思路分析:
根据已知条件,可用三个条件语句描述算法.若体重W的公斤数在T的±10%范围内时,输出“正常”;若体重W的公斤数超过T的10%,则输出“偏胖”;
若体重W的公斤数低于T的10%,则输出“偏瘦”.
解:
算法程序如下:
INPUT“身高:
”;h
INPUT“体重:
”;w
t=h-100
IFw>t*1.1THEN
PRINT“偏胖,注意减肥”
ENDIF
IFwPRINT“偏瘦,注意增加营养”
ENDIF
IFw<=t*1.1ANDw>=t*0.9THEN
PRINT“正常,注意保持”
ENDIF
END
17.请你设计一个程序,将全班40名学生中考试不及格者的分数打印出来.
思路分析:
依题意可设计如下的算法步骤:
第一步,设n=1;
第二步,判断n的取值,如果n>40,则转到第七步;
第三步,输入一个成绩g;
第四步,g和60比较,如果g<60,则打印分数;
第五步,使n=n+1;
第六步,转到第二步;
第七步,算法结束.
据此,可用循环语句完成该问题的算法.
解:
设计程序如下:
n=1
WHILEn<=40
INPUT“请输入一学生成绩”;g
IFg<60THEN
PRINTg
ENDIF
n=n+1
WEND
END
回顾·展望
18.阅读下列程序,并指出当a=2,b=-5时的计算结果:
(1)INPUTa,b
(2)INPUTa,b(3)INPUTa,b
x=a+ba=a+ba=a+b
y=a-bb=a-bb=a-b
a=(x+y)/2a=(a+b)/2a=(a-b)/2
b=(x-y)/2b=(a-b)/2b=(a+b)/2
PRINTa,bPRINTa,bPRINTa,b
a=_________,b=________a=________,b=________a=________,b=________
思路分析:
本题主要关注变量的值在经过每一个赋值语句后的改变,依次进行,最终变量具有的值就是最终结果.
答案:
(1)2-5
(2)2-5(3)-52
19.写出下列程序运行的结果.
(1)a=2
(2)x=100
i=1i=1
WHILEi<=6DO
a=a+1x=x+10
PRINTi,aPRINTi,x
i=i+1i=i+1
WENDLOOPUNTILx=200
ENDEND
思路分析:
(1)程序中用到了WHILE循环语句,从a=2,i=1开始,第一次循环求2+1,并打印出i=1,a=3;第二次求3+1,并打印出i=2,a=4;第三次求4+1,并打印出i=3,a=5;…,第6次求7+1,并打印出i=6,a=8.
(2)程序中用到了UNTIL循环语句,从i=1,x=100开始,第一次循环得x=110,并打印i=1,x=110,接着i的值变为2,开始第二次循环,得到x=120,并打印i=2,x=120,接着i的值变为3,开始第三次循环,得到x=130,并打印i=3,x=130,接着i的值变为4,开始第四次循环,得到x=140,…如此循环下去,直到x=200时结束循环.
可见该题可让我们理解当型语句和直到型语句的不同,理解循环体的执行步骤.
解:
(1)1,3;2,4;3,5;4,6;5,7;6,8
(2)1,110;2,120;3,130;4,140;5,150;6,160;7,170;8,180;9,190;10,200
20.根据下面的程序,仔细观察后画出其算法的程序框图.
i=-1
WHILEi≤1
x=i
y=x*x*x
i=i+0.2
PRINT“y=”;y
WEND
END
思路分析:
由给出的程序可以看出,这是一个用循环语句编写的程序,第一次循环取x=-1,第二次取x=-1+0.2,…,最后一次取x=1,这实际上就是把区间[-1,1]平均分成10等份,求函数f(x)=x3在区间的端点及各个等分点处的函数值问题.
由程序写出程序框图,关键是将循环语句(WHILE或UNTIL语句)中的循环条件及循环体所表达的内容填入程序框图的循环结构中去.
解:
程序框图如下图所示.
21.已知函数y=
试输入x的值计算y的值.画出程序框图,并写出算法程序.
思路分析:
本题是已知分段函数的解析式,求函数值的问题.由于该函数分三段,从而在程序框图中,需判定的条件有2个,所以在使用条件语句时要注意书写顺序及语句间的对应.
解:
本题的程序框图如下图所示.
算法程序步骤如下:
INPUT“x=”;x
IFx>0THEN
y=(2*x^2)-1
ELSE
IFx=0THEN
y=2*x+1
ELSE
y=-2*x^2+4*x
ENDIF
ENDIF
PRINTy
END
22.求1+
+
+
+…+
的值,用程序语言表示其算法.
思路分析:
设置累加变量,用循环语句实现,可用WHILE语句,也可以用UNTIL语句.
解:
(法1)用“WHILE语句”表示如下:
s=1
i=2
WHILEi<=100
a=1/i
s=s+a
i=i+1
WEND
PRINT“1+
+
+
+…+
=”;s
END
(法2)用“UNTIL语句”表示如下:
s=1
i=2
DO
a=1/i
s=s+a
i=i+1
LOOPUNTILi>100
PRINT“1+
+
+
+…+
=”;s
END