2.3.1 条
件
语
句
学案
[读教材·填要点]
1.条件语句
条件语句是表达选择结构最常用的语句.
2.两种条件语句
(1)If语句
①框图:
②语句格式:
If 条件 Then
语句1
Else
语句2
End If
(2)复合If语句
①框图:
②语句格式:
If 条件1 Then
语句1
Else
If 条件2 Then
语句2
Else
语句3
End If
End If
[小问题·大思维]
1.条件语句必须要有If,Then、End
If吗?
提示:条件语句必须有If,Then、End
If,根据需要Else及其后的语句体可以省略.
2.使用条件语句应注意什么问题?
提示:条件语句必须以If语句开始,以End
If语句结束,有几个If语句,就必须有几个End
If语句对应.
[研一题]
[例1] 已知函数y=
输入x的值,得到相应函数值,画出算法框图.并用If语句描述该算法.
[自主解答] 框图如图所示:
用语句描述为:
输入x;
If x<0 Then
y=2]
[悟一法]
若问题的解决需要根据条件是否成立判断应去执行两个不同步骤中的哪一个步骤,则用简单If语句来编写算法.
[通一类]
1.求过两点P1(x1,y1)、P2(x2,y2)的直线的斜率,写出解决问题的算法语句,并画出算法框图.
解:算法语句描述为:
输入x1,y1,x2,y2;
If x1=x2 Then
输出“斜率不存在”
Else
k=
End
If.
输出k.
算法框图如图所示.
[研一题]
[例2] 已知函数y=输入x的值,输出相应的函数值.画出框图,并用语句描述.
[自主解答] 框图如下图所示:
用语句描述为:
输入x;
If x<1 Then
y=x
Else
If x<10 Then
y=2]
[悟一法]
在某些较为复杂的算法中,有时需要对按条件要求执行的某一语句(特别是Else后的语句体2)继续按照另一条件进行判断,这时可以再利用一条件语句完成这一要求,这就形成了条件语句的嵌套,其一般形式是:
外层条件语句
[通一类]
2.写出关于x的方程ax+b=0的解的算法框图,并用语句描述.
解:算法框图如下:
算法语句为:
输入a,b;
If a<>0 Then
x=-b/a
输出x
Else
If b=0 Then
输出“方程的根是任意实数”
Else
输出“方程无解”
End
If
End
If
已知分段函数y=
编写程序,输入自变量x的值,输出其对应的函数值y.
[错解] 算法语句为:
输入x;
If x<0 Then
y=-x+1
Else
If x=0 Then
y=0
Else
y=x+1
End If
[错因] (1)每个If都必须有一个End
If与之相匹配;
(2)错解无输出语句.
[正解] 算法语句为:
输入x;
If x<0 Then
y=-x+1
Else
If x=0 Then
y=0
Else
y=x+1
End If
End If
输出y.
1.下列关于条件语句的叙述正确的是( )
A.必须有Else
B.可以没有End
If
C.可以没有Else,但必须有End
If
D.可以没有End
If,也可以没有Else
解析:条件语句必须以If开头,以End
If结束,其中的Else可以没有.
答案:C
2.条件语句对应算法框图中的基本逻辑结构是( )
A.顺序结构
B.选择结构
C.模块结构
D.输出结构
答案:B
3.给出下列算法:
输入x;
If x<0 Then
p=3.5
x
Else
P=3.5+0.7
(x-10)
若x=18时,则输出__________.
其运行结果是( )
A.-2.1 9.1
B.9.1 -2.1
C.2.1 -9.1
D.-9.1 2.1
解析:该算法为条件语句描述的算法,可根据输入的变量值计算出输出的结果分别为-2.1和9.1.
答案:A
4.下列程序语言的条件语句中,判断条件是________.
输入x;
If x>0 Then
y=2
x
Else
y=1-x
End
If
输出y
解析:If后面就是条件语句的判断条件,即x>0是判断条件.
答案:x>0
5.写出下面语句运算的结果.
输入a;
If a<0 Then
输出“不存在”
Else
t=
输出t
End
If
当a=-3时,输出结果为________;当a=9时,输出结果为________.
解析:本算法语句的作用是输入一个数,若该数大于等于0.求该数的算术平方根,当输入的数小于0时,该数的算术平方根不存在.
答案:不存在 3
6.某商店出售音乐CD,购买500片和500片以上,按每片4.5元计价,否则按每片5元计价.请画出算法框图按输入CD片数计算不同收费金额,并写出计算程序.
解:设M表示收费金额(元),P表示出售片数(片),则有
M=.
该算法用条件语句描述如下:
输入P;
If P≥500 Then
M=4.5P
Else
M=5P
End If
输出M.
算法框图如图.
一、选择题
1.当a=3时,下面的程序段输出的结果是( )
输入a;
If a<10 Then
y=2+a
Else
y=3
a
输出y
A.9
B.3
C.10
D.5
解析:∵a=3<10,∴y=2+a=5.
答案:D
2.执行下面语句:
输入A,B;
If
A>B Then
C=A/2
Else
C=B/2
End If
输出C.
在两次执行中分别输入8,4和2,4,则两次执行该语句的输出结果分别是( )
A.8,2
B.8,4
C.4,2
D.4,4
解析:输入8,4时,满足A>B,则C===4;输入2,4时,满足A≤B,则C===2.
答案:C
3.为了在运行下面的程序之后输出y=9,键盘输入应该是( )
输入x;
If x<0 Then
y=(x+1)
(x+1);
Else
y=(x-1)
(x-1)
End
If
输出y.
A.x=-4
B.x=-2
C.x=4或-4
D.x=2或-2
解析:当x<0时,由(x+1)2=9得x=-4;当x≥0
时,(x-1)2=9得x=4.
答案:C
4.以下程序运行的结果为( )
a=2
b=-2
m=a
a=b
b=m
If a>b Then
x=a-b
Else
x=a+b
End
If
输出x.
A.0
B.2
C.4
D.-4
解析:运行过程中m=2,a=-2,b=2,因为a≤b,所以x=a+b=0.
答案:A
5.给出以下四个问题:①输入一个数x,输出它的绝对值;
②求函数f(x)=的函数值;③求面积为6的正方形的周长;④求三个数a,b,c中的最大数.
其中不需要用条件语句来描述其算法的有( )
A.1个
B.2个
C.3个
D.4个
解析:①要判断x≥0还是x<0;②要分x≥0与x<0两种情况;④要分a≥b与a<b等情况判断;只有③不需要判断,因为正方形的面积一定时,其周长也一定.
答案:A
二、填空题
6.给出下列程序:
输入a,b,c;
If a>b Then
a=b
End
If
If a>c Then
a=c
End
If
输出a.
如果输入-10,-26,8,那么输出的是________.
解析:该程序的功能是输入a,b,c的值,求它们中的最小值.
答案:-26
7.阅读下列语句:
输入a;
If a<5 Then
b=2
a
Else
b=a
a+1
End
If .
解析:用算法语句可知,令2a=5,则a=<5(舍)
令a2+1=5,则a=±2,满足题意.
答案:±2
8.(2011·江苏高考改编)根据如下所示的程序,当输入的a,b的值分别为2,3时,最后输出的m的值为________.
输入a,b;
If a>b Then
m=a
Else
m=b
End
If
输出m
解析:a=2,b=3,则a<b,所以m=b=3.
答案:3
三、解答题
9.用基本算法语句描述一个算法,要求输入两个实数,然后由小到大输出这两个数.
解:用算法语句描述为:
输入a,b
If a>b Then
t=a
a=b
b=t
输出a,b
Else
输出a,b
End
If
10.某市通信部门规定:拨打市内电话时,如果通话时间不超过3分钟,则收取通话费0.2元;如果通话时间超过3分钟,则超过部分以0.1元/分钟收取通话费(不足1分钟按1分钟计),问:如何设计一个计算通话费用的算法?请画出框图并用语句描述该算法.
解:令c(单位:元)表示通话费用,t(单位:分钟)表示通话时间,则有
c=.
依上面分析知解决这一问题的算法步骤如下:
1.输入通话时间t;
2.如果03.输出费用c.
框图如图所示:
用语句描述为:
输入t;
If t<=3 And t>0 Then
c=0.2
Else
c=0.2+0.1]