2020版高中数学新人教B版必修3第一章算法初步1.2.1赋值、输入和输出语句学案(含解析)

文档属性

名称 2020版高中数学新人教B版必修3第一章算法初步1.2.1赋值、输入和输出语句学案(含解析)
格式 zip
文件大小 190.4KB
资源类型 教案
版本资源 人教新课标B版
科目 数学
更新时间 2019-06-03 16:59:58

图片预览

文档简介

1.2.1 赋值、输入和输出语句
学习目标 1.了解学习程序语句的必要性和根本目的.2.理解赋值、输入和输出的格式和功能.3.能把本节涉及的程序框转化为相应的程序语句.
知识点一 赋值语句
思考1 计算机用变量来存取数据.怎样表示“把变量a,b中的数据相加,存入c中”?
答案 用赋值语句“c=a+b”.
思考2 输入语句和赋值语句都可以给变量赋值,二者有何不同?
答案 输入语句可使初始值与程序分开,利用输入语句改变初始数据时,程序不变,而赋值语句是程序的一部分,输入语句可对多个变量赋值,赋值语句只能给一个变量赋值.
思考3 赋值语句中的“=”和平时所用的“=”意义相同吗?
答案 意义不同,赋值语句中的“=”叫赋值号,它表示把右边的表达式所代表的常量、变量或算式赋给左边的变量,如C=Y+Z表示把计算Y+Z所得的值赋给C.
梳理 赋值语句
(1)格式:变量名=表达式.
(2)功能:将表达式所代表的值赋给变量.一般先计算“=”右边表达式的值,然后把这个值赋给“=”左边的变量.
知识点二 输入语句
思考1 一个计算圆的面积的程序,需要使用者输入什么信息?
答案 圆的半径.
思考2 输入语句所输入的内容可以是函数、变量或表达式吗?
答案 输入语句要求输入的值只能是具体的常数,不可以是函数、变量或表达式.如输入“5*3”或“x+2”等都不可以.
梳理 输入语句
在某些算法中,变量的初值要根据情况经常地改变.一般我们把程序和初始数据分开,每次算题时,即使初始数据改变,也不必改变程序部分,只要每次程序运行时,输入相应的数据即可.这个过程在程序语言中,用“输入语句”来控制.“input”在计算机程序中,通常称为键盘输入语句.
知识点三 输出语句
思考1 一个程序如果没有输出语句,影响程序运行吗?你知道运行结果吗?
答案 不影响.程序照常运行,但运行结果就不会告诉你.
思考2 输出语句能否一次完成输出多个表达式的功能?
答案 能.
梳理 输出语句
任何求解问题的算法,都要把求解的结果“输出”,由此可知,任何程序语言也必须有“输出语句”来控制输出.
知识点四 算法语句中的表达方式
数学表达式
程序语句表达式
xa
x^a
2x
2*x

a/b
1.输入语句的作用是计算.( × )
2.输出语句的作用是实现算法的输出结果功能.( √ )
3.赋值语句的作用是把赋值号左边的值赋值给右边.( × )
题型一 赋值语句
例1 判断下列给出的赋值语句是否正确?为什么?
(1)赋值语句 3=B;
(2)赋值语句 x+y=0;
(3)赋值语句 A=B=-2;
(4)赋值语句 T=T*T.
解 (1)错,赋值语句中“=”号左边不能是常量;
(2)错,不能给一个表达式赋值;
(3)错,一个赋值语句只能给一个变量赋值;
(4)正确,该句的功能是将当前T的值平方后再赋给变量T.
反思与感悟 赋值号与数学中的等号的意义是不同的,赋值号左边的变量如果原来没有值,则执行赋值语句后,获得一个值;如果已有值,则执行该语句,以赋值号右边表达式的值代替该变量原来的值,即将原值“冲掉”;赋值号的左边不能是常量,一个赋值语句的表达式不能出现两个及两个以上的赋值号.
跟踪训练1 判断下列各组语句是否正确.
(1)赋值语句r=9;
(2)赋值语句9=r;
(3)赋值语句R=r=9.
答案 (1)对,(2)错,(3)错.
题型二 输入语句
例2 写出鸡兔同笼问题的一个算法,画出相应算法的框图,写出计算机程序.
解 算法:
S1 输入鸡和兔的总数量M;
S2 输入鸡腿和兔腿的总数量N;
S3 鸡的数量A=;
S4 兔的数量B=M-A;
S5 输出A,B.
程序框图如图所示:
程序如下:
M=input(“How many heads”);
N=input(“How many legs”);
A=(4*M-N)/2;
B=M-A
A
B
反思与感悟 本题得出的程序本身没法得出A,B的值,只有把上述程序保存成一个文件,然后在Scilab界面内执行该程序,然后根据屏幕出现的提示内容,从键盘输入相应数据才能计算出结果.
跟踪训练2 “植树造林,防风抗沙”.某沙漠地区在2013年底有绿化带树林20000亩.该地区每年春天都会种树400亩加以绿化,但同时每年冬天又会有总绿化面积的1%被沙漠化,问2016年底该地区总绿化面积S有多少亩?画出程序框图,并写出程序.
解 程序框图如图:
程序如下:
S=20 000;
S=?S+400?*?1-0.01?;
S=?S+400?*?1-0.01?;
S=?S+400?*?1-0.01?;
S
题型三 输出语句
例3 一个算法是,用Scilab中的rand()函数,首先生成一个0~1之间的随机数并把它赋值给变量a,再把3赋值给变量b,把a+b赋值给变量c,最后把它们都输出到屏幕上.这个算法用Scilab程序写出,并用print(%io(2),a,b,c)语句控制输出,写出该程序.
解 程序如下:
a=rand????;
b=3;
c=a+b;
print?%io?2?,a,b,c);
反思与感悟 (1)print(%io(2),表达式)中的表达式指程序要输出的数据,输出语句可以输出常量,变量或表达式的值.例如print(%io(2),B),print(%io(2),4*3)等.
(2)print(%io(2),a,b,c)中的参数%io(2)表示在屏幕上输出,print(%io(2),a,b,c)在屏幕上输出的顺序是c,b,a.
跟踪训练3 用描点法作函数y=2x3+3x2-12x+15的图象时,需要求出自变量与函数的一组对应值.编写该程序.
解 我们用Scilab语言来描述:
x=input(“x=”);
y=2*x^3+3*x^2-12*x+15;?
print(%io(2),y,x);
1.将两个数a=8,b=17交换,使a=17,b=8,下面语句正确的一组是(  )
a=b
b=a
A.
c=b
b=a
a=c
B.
b=a
a=b
C.
a=c
c=b
b=a
D.
答案 B
解析 先把b的值赋给中间变量c,于是c=17;再把a的值赋给变量b,于是b=8;最后把c的值赋给变量a,于是a=17.
2.下面算法执行后的结果为________.
a=2;
a=4;
a=a+a;
a
答案 8
解析 先把2赋给a,然后又把4赋给a,此时a的原值2被4“冲掉”,所以a的值为4,最后把4+4再赋给a,因此输出的a的值为8.
3.下面算法执行后的结果为________.
a=2;
b=3;
c=a+b;
b=a+c-b;
print?%io?2?,a,b,c?;
答案 5,4,2
解析 由于把2+3的值赋给c,所以c的值为5,又把2+5-3的值赋给b,所以b的值为4,a的值没有变化仍为2.
4.下列程序的运行结果是________.
a=2;
b=3;
c=4;
a=b;
b=a+c;
c=b+a;
a=?a+b+c?/2;
print?%io?2?,a?;
答案 10
解析 ∵a=2,b=3,c=4,
∴执行程序语句后,a=b=3,b=a+c=7,c=b+a=10,
a===10.故程序的运行结果为10.
5.已知三角形的三边长分别为a,b,c,借助海伦公式求三角形的面积.
解 程序如下:
a=input?“a=”?;
b=input?“b=”?;
c=input?“c=”?;
p=?a+b+c?/2;
S=sqrt?p*?p-a?*?p-b?*?p-c??;
print?%io?2?,S?;
1.赋值语句中的“=”称作赋值号,而不是“等号”;格式中右边“表达式”可以是一个数值、常量或算式,如果“表达式”是一个算式,赋值语句的作用是先计算出“=”右边表达式的值,然后将该值赋给“=”左边的变量.
2.需输入信息时用input语句,需输出信息时用print语句,当变量需要的数据较少或给变量赋予算式时,用赋值语句,当变量需要输入多组数据且程序重复使用时,使用输入语句较好.
一、选择题
1.下列给出的赋值语句中正确的是(  )
A.4=M B.M=-M
C.B=A=3 D.x+y=0
答案 B
解析 赋值语句的格式:变量=表达式,是将右边表达式的值赋给左边的变量,赋值时左右两端不能对换,也不能进行字符运算.故选B.
2.下列给变量赋值的语句正确的是(  )
A.5=a B.a+2=a
C.a=b=4 D.a=2*a
答案 D
解析 A错,因为赋值语句的左右两边不能对换,赋值语句是将赋值号右边表达式的值赋给赋值号左边的变量;B错,赋值语句左边是一个变量,而不是代数式;C错,因为赋值语句不能把一个值同时赋给两个变量;D正确.
3.赋值语句N=N+1的意义是(  )
A.N等于N+1
B.N+1等于N
C.将N的值赋给N+1
D.将N的原值加1再赋给N,即N的值增大1
答案 D
解析 赋值语句的一般格式:变量名=表达式.赋值语句的作用是将表达式所代表的值赋给变量.故选D.
4.下列程序执行后,变量a,b的值分别为(  )
a=15;
b=20;
a=a+b;
b=a-b;
a=a-b;
print?%io?2?,a,b?;
A.15,20B.35,35C.5,5D.-5,-5
答案 A
解析 根据赋值语句的意义,先把a+b=35赋给a,然后把a-b=35-20=15赋给b,最后再把a-b=35-15=20赋给a.
5.执行“print(%io(2),3+2)”的输出结果是(  )
A.3+2=3+2 B.3+2=5
C.5 D.5=5
答案 C
解析 在屏幕上输出3+2的运算结果,即5,故选C.
6.给出下面一个程序:
A=5;
B=8;
X=A;
A=B;
B=X+A;
print?%io?2?,A,B?;
此程序运行的结果是(  )
A.5,8B.8,5C.13,8D.5,13
答案 C
解析 此程序先将A的值赋给X,再将B的值赋给A,再将X+A的值赋给B,即将原来的A与B的和赋给B,最后A的值是原来B的值8,而B的值是两数之和13.
7.下列给出的输入、输出语句正确的是(  )
①input a;b;c;②input x=4;③print A=4;④print(%io(2),a).
A.①②B.②③C.③④D.④
答案 D
解析 由输入、输出语句的格式知,只有④正确,故选D.
8.给出下列程序,输入x=2,y=3,则输出(  )
x=input?“x=”?;
y=input?“y=”?;
A=x;
x=y;
y=A;
print?%io?2?,x,y?;
A.2,3B.2,2C.3,3D.3,2
答案 A
解析 该程序的运行过程是
输入2,3
A=2
x=3
y=2
输出2,3.
二、填空题
9.下面一段程序执行后的结果是________.
A=2;
A=A*2;
A=A+6;
print?%io?2?,A?;
答案 10
解析 先把2赋给A,然后把A*2=4赋给A,即A的值为4,再把4+6=10赋给A,所以输出的A值为10.
10.下面的程序输出的结果是________.
a=2
b=5
c=a+b
a=c+4
print a,b
答案 11,5
解析 第三句给c赋值后c=7,第四句给a赋值后a=11,故最后输出11,5.
11.读程序Ⅰ,Ⅱ,若两程序输入值与执行结果均分别相同,则两程序的输入值为________,执行结果为________.
程序Ⅰ:         程序Ⅱ:
x=input(“x=”); ?x=input(“x=”);
y=x+2; y=2*x+2
print(%io(2),y);print(%io(2),y);
答案 0 2
解析 两程序输入值、执行结果相同,即求直线y=x+2与y=2x+2的交点.
12.下面程序的运行结果为__________.
a=2;
b=3;
c=4;
a=b;
b=c+2;
c=b+4;
d=?a+b+c?/3;
print?%io?2?,d?;
答案 
解析 ∵a=b=3,b=c+2=4+2=6,c=b+4=6+4=10,
∴d=(a+b+c)=×(3+6+10)=.
三、解答题
13.对于平面直角坐标系中给定的两点A(a,b),B(c,d),编写一个程序,要求输入两点的坐标,输出这两点间的距离.
解 程序如下:
a=input?“a=”?;
b=input?“b=”?;
c=input?“c=”?;
d=input?“d=”?;
D=sqrt??a-c?*?a-c?+?b-d?*?b-d??;
print?%io?2?,D?;
14.编写一个程序,要求输入两个正数a,b的值,输出ab和ba的值.
解 程序如下:
a=input?“a=”?;
b=input?“b=”?;
c=a^b;
d=b^a;
print?%io?2?,d,c?;
15.读用Scilab语句编写的程序,根据程序画出程序框图.
x=input(“x=”);
y=input(“y=”);
print(%io(2),x/4);
print(%io(2),2*y);
x=x+2;
y=y-1;
print(%io(2),x);
print(%io(2),y);
解 程序框图如图所示: