1.2.2 条件语句
课后篇巩固提升
基础巩固
1.下列关于条件语句的说法正确的是( )
A.条件语句中必须有ELSE和END IF
B.条件语句中可以没有END IF
C.条件语句中可以没有ELSE,但是必须有END IF
D.条件语句中可以没有END IF,但是必须有ELSE
解析条件语句主要有两种形式的格式,分别是IF—THEN格式和IF—THEN—ELSE格式,但是不管是这两种格式的哪一种,IF与END IF必须是同时出现.所以条件语句中可以没有ELSE,但是必须有END IF,故选C.
答案C
2.已知程序如图,若输入x,y的值分别为6,6,则输出的结果为( )
INPUT x,y
IF x<0 THEN
x=y-4
ELSE
y=y+4
END IF
PRINT x,y
END
A.6,6
B.-2,10
C.2,10
D.6,10
解析由于6>0,故执行ELSE后语句y=6+4=10,输出的结果为6,10.
答案D
3.给出下面程序:
INPUT a,b,c
M=a
IF b>M THEN
M=b
ELSE
IF c>M THEN
M=c
END IF
END IF
PRINT M
END
若输入a=4,b=2,c=-5,则输出的结果为( )
A.1 B.2 C.-5 D.4
解析由程序可知,M=a=4,b=2,b>M不成立,所以执行ELSE后的条件语句.又c=-5,所以c>M不成立,所以直接输出M的值.
答案D
4.为了在运行下面的程序后,得到输出值y=9,则应该输入( )
INPUT x
IF x<0 THEN
y=(x+1)∧2
ELSE
y=(x-1)∧2
END IF
PRINT y
END
A.x=-4 B.x=-2
C.x=4或x=-4 D.x=-2或x=2
解析∵由程序知y=(x+1)2,x<0,(x-1)2,x≥0,
∴当y=9时,x=-4或x=4.
答案C
5.完成如图所示的程序,输入x的值,求函数y=|8-2x2|的值.
INPUT “x=”;x
IF ① THEN?
② ?
ELSE
y=2*x∧2-8
END IF
PRINT y
END
① ;② .?
解析根据ELSE后的语句为y=2*x∧2-8,故条件①应为8-2x2≥0,即-2≤x≤2,写出语句为:x>=-2 AND x<=2;②应为y=8-2*x∧2.
答案①x>=-2 AND x<=2 ②y=8-2*x∧2
6.根据如图所示的程序,当输入的a,b分别为2 019,2 020时,最后输出的m的值是 .?
INPUT a,b
IF a>b THEN
m=a
ELSE
m=b
END IF
PRINT m
END
解析由于2 019>2 020不成立,所以语句执行ELSE后面的m=b,即把b的值赋给m,所以输出的值为2 020.
答案2 020
7.编写一个程序,输入一个正整数,若它是一个三位数,将它反向输出,否则将该数原样输出.例如输入219,输出912;输入230,输出32.
解程序如下:
INPUT “请输入一个正整数:”;x
IF x<100 OR x>=1 000 THEN
PRINT x
ELSE
a=x/100
b=(x-100*a)/10
c=x MOD 10
y=100*c+10*b+a
PRINT y
END IF
END
能力提升
1.阅读下列程序:
INPUT x
IF x<0 THEN
y=7*x/2+3
ELSE
IF x>5 THEN
y=7*x/2-5
ELSE
y=3*x+2
END IF
END IF
PRINT y
END
若输入x=2,则输出的结果为( )
A.10 B.2 C.8 D.-2
解析该程序的功能是求函数y=72x+3,x<0,3x+2,0≤x≤5,72x-5,x>5的值.因此当x=2时,y=3×2+2=8.
答案C
2.下列程序描述的算法功能是( )
INPUT a,b,c
IF aa=b
END IF
IF aa=c
END IF
PRINT a
END
A.输出a,b,c三个数中的最大数
B.输出a,b,c三个数中的最小数
C.将a,b,c按从小到大排列
D.将a,b,c按从大到小排列
解析把大数赋给a,最后输出a,故选A.
答案A
3.求函数y=f(x)的值的程序如图所示,则f(-2)+f(3)=( )
INPUT “x=”;x
IF x<=0 THEN
f(x)=4*x
ELSE
f(x)=2∧x
END IF
PRINT f(x)
END
A.3 B.2 C.1 D.0
解析∵-2≤0,
∴f(-2)=4×(-2)=-8.
∵3>0,
∴f(3)=23=8.
∴f(-2)+f(3)=-8+8=0.
答案D
4.下面的程序是判断输入的正整数是否是11和7的公倍数,请将程序补充完整.
INPUT “请输入正整数:”;a
IF AND THEN?
PRINT “是11和7的公倍数”
ELSE
PRINT “ ”?
END IF
END
答案a MOD 11=0 a MOD 7=0 不是11和7的公倍数
5.为了在运行下面的程序之后输出y=25,输入的x应该是 .?
INPUT x
IF x<0 THEN
y=(x+1)*(x+1)
ELSE
y=(x-1)*(x-1)
END IF
PRINT y
END
解析程序对应的函数是y=(x+1)2,x<0,(x-1)2,x≥0.
由x<0,(x+1)2=25,或x≥0,(x-1)2=25,得x=-6或x=6.
答案-6或6
6.给出如下程序(其中x满足x>0).
INPUT “x=”;x
IF x>0 AND x<=4 THEN
y=2*x
ELSE
IF x<=8 THEN
y=8
ELSE
y=24-2*x
END IF
END IF
PRINT y
END
(1)该程序的功能是求什么函数的函数值?
(2)画出这个程序的程序框图.
解(1)该程序的功能是求函数
y=2x,08的值.
(2)程序框图如图所示.
7.某百货公司为了促销,采用购物打折的优惠办法:
(1)购物1 000元及以上者,按九五折优惠;
(2)购物2 000元及以上者,按九折优惠;
(3)购物3 000元及以上者,按八五折优惠;
(4)购物5 000元及以上者,按八折优惠.
编写程序求优惠后的价格.
解设购物款为x元,优惠后的价格为y元,则
y=x,x<1 000,0.95x,1 000≤x<2 000,0.9x 2 000≤x<3 000,0.85x,3 000≤x<5 000,0.8x,x≥5 000.
算法分析:
第一步,输入x的值.
第二步,如果x<1 000,输出y=x,结束算法;否则转入下一步.
第三步,如果x<2 000,输出y=0.95x,结束算法;否则转入下一步.
第四步,如果x<3 000,输出y=0.9x,结束算法;否则转入下一步.
第五步,如果x<5 000,输出y=0.85x,结束算法;否则转入下一步.
第六步,输出y=0.8x.
程序如下:
INPUT x
IF x<1 000 THEN
y=x
ELSE
IF x<2 000 THEN
y=0.95*x
ELSE
IF x<3 000 THEN
y=0.9*x
ELSE
y=0.85*x
END IF
END IF
END IF
END
课件28张PPT。1.2.2 条件语句条件语句
1.对于含有条件结构的算法,要转化为计算机能够理解的算法语言,只是使用输入语句、输出语句和赋值语句还行吗?还需要使用怎样的语句?
提示不行,要用与条件结构相对应的条件语句.2.关于条件语句的格式和功能,请完成下表: 3.做一做1:判断题
(1)条件语句与程序框图中的循环结构相对应. ( )
(2)条件语句中的“THEN”“ELSE”可以理解为“那么”“否则”的意思. ( )
(3)条件语句是以IF开始,END IF结束,END IF不可缺少. ( )
(4)格式一中的条件语句只有一个语句体,是满足条件时执行语句体.格式二中的条件语句含有两个语句体,满足条件时执行一个语句体;不满足条件时执行另一个语句体. ( )
答案:(1)× (2)√ (3)√ (4)√4.做一做2:下列对条件语句的描述正确的是( )
A.ELSE后面的语句不可以是条件语句
B.两个条件语句可以共用一个END IF
C.条件语句可以没有ELSE后的语句
D.条件语句的嵌套中,对所有条件语句都要进行判断
解析:条件语句有两种格式,分别是“IF—THEN”格式和“IF—THEN—ELSE”格式.对于一个分支的条件语句可以没有ELSE后的语句.
答案:C5.做一做3:条件语句的一般形式如下,其中②表示的是( )
IF ① THEN
②
ELSE
③
END IF
A.条件
B.条件语句
C.满足条件时执行的语句体
D.不满足条件时执行的语句体
解析:通过对程序分析,本程序的功能为:如果条件①成立,则执行②;否则,执行③.
答案:C探究一探究二探究三例1 输入一个实数x,若它是非负数,就输出它;否则不输出它,画一个程序框图解决这个问题,再写出相应的程序.
分析由于不满足条件的情况下不输出,故选择“IF—THEN—END IF”条件语句.“IF—THEN—END IF”语句的应用 当堂检测探究一探究二探究三解:程序框图如图所示. 程序如下:
INPUT “x=”;xIF x>=0 THEN PRINT xEND IFEND
反思感悟“IF—THEN—END IF”语句的选择及注意点
(1)当判断语句的两个出口语句只有一个要执行时,采用“IF—THEN—END IF”语句.
(2)在“IF—THEN—END IF”语句中,“条件”表示判断的条件,“语句”表示当满足条件时执行的操作内容,当条件不满足时,结束程序,END IF表示条件语句的结束.当堂检测探究一探究二探究三变式训练1阅读下面的程序,若输入的x值为3,则输出的y值为( )
A.2 B.3 C.8 D.27INPUT “x=”;x
IF x<1 THEN
y=2∧x
ELSE
IF x<4 THEN
y=x-1
ELSE
y=x
END IF
END IF
PRINT “y=”;y
END当堂检测探究一探究二探究三分析程序中有两个IF—THEN—ELSE—END IF语句,是条件语句的嵌套.
解析:该程序语句的功能是求分段函数 的值,所以当x=3时,y=2.
答案:A当堂检测探究一探究二探究三“IF—THEN—ELSE—END IF”语句的应用 当堂检测探究一探究二探究三解:程序框图如图所示.
程序如下:
INPUT x
IF x<0 THEN
y=SQR(-x)
ELSE
y=SQR(x)
END IF
PRINT y
END当堂检测探究一探究二探究三互动探究本例若用“IF—THEN—END IF”语句编写程序,则程序如何?
解:程序如下:
INPUT x
IF x<0 THEN
x=-x
END IF
y=SQR(x)
PRINT y
END当堂检测探究一探究二探究三反思感悟 “IF—THEN—ELSE—END IF”语句的选择及注意点
(1)当判断语句的两个出口语句都要执行时,采用“IF—THEN—ELSE—END IF”语句.
(2)首先确定条件和语句体.条件即为判断框内的条件,故在IF后.判断框中“是”后的执行框中的内容,是THEN后的语句体1,“否”后的执行框中(如果有的话)的内容,是ELSE后的语句体2.
(3)然后按照格式书写程序.当堂检测探究一探究二探究三变式训练2已知分段函数 编写程序,输入x的值,输出相应的y的值.
解程序如下: INPUT x
IF x<=10 THEN
y=2 ?? x∧2
ELSE
y=3?? x-10
END IF
PRINT y
END当堂检测探究一探究二探究三例3 已知分段函数 编写一个程序,要求输入
自变量x的值,输出相应的函数值并画出程序框图.
分析分析分段函数→画出程序框图→写出程序语言.条件语句的嵌套 当堂检测探究一探究二探究三解:程序框图和程序如下:
INPUT xIF x<0 THEN y=-x+1ELSE IF x=0 THEN y=0 ELSE y=x+1 END IFEND IFPRINT yEND当堂检测探究一探究二探究三反思感悟1.已知分段函数的解析式求函数值的问题,须用条件语句书写程序,当条件的判断有两个以上的结果时,可以选择条件结构嵌套去解决.
2.常规格式(注意根据题目需要也可用2个以上的条件语句嵌套):当堂检测探究一探究二探究三变式训练3设计一个程序,输入学生的成绩S,根据该成绩的不同值进行以下输出:若S<60,则输出“不及格”;若60≤S≤90,则输出“及格”;若S>90,则输出“优秀”.
分析成绩S分三段,可应用条件语句的叠加来编写程序.当堂检测探究一探究二探究三解:程序如下:
INPUT “S=”;S
IF S<60 THEN
PRINT “不及格”
ELSE
IF S>=60 AND S<=90 THEN
PRINT “及格”
ELSE
PRINT “优秀”
END IF
END IF
END当堂检测探究一探究二探究三当堂检测1.阅读下面程序:
INPUT x
IF x>0 THEN
x=-x
END IF
PRINT x
END
若输入x=-5,则输出结果x为( )
A.-5 B.5 C.0 D.不确定
解析:当x=-5时,不符合条件,执行END IF之后的语句,直接输出x的原来值,即-5.
答案:A2.下面程序的算法功能是:判断任意输入的数x是不是正数,若是,则输出它的平方值;若不是,则输出它的相反数.
INPUT “x=”;x
IF THEN?
y=-x
ELSE
y=x*x
END IF
PRINT “y=”;y
END
则横线处填入的条件应该是( )
A.x>0 B.x<0 C.x>=0 D.x<=0探究一探究二探究三当堂检测解析:条件成立时,执行y=-x;条件不成立时,执行y=x??x.由程序的算法功能,知条件应为x<=0,故选D.
答案:D探究一探究二探究三当堂检测3.根据如图所示的程序,当输入a,b的值分别为2,3时,最后输出的m的值为( )
A.3 B.4 C.5 D.6
解析:a=2,b=3,∵2<3,∴m=3.
答案:AINPUT a,bIF a>b THEN m=aELSE m=bEND IFPRINT mEND探究一探究二探究三当堂检测4. 执行如图所示的程序,若输出的结果是4,则输入的x的值是 .?INPUT xIF x>=0 THEN y=x∧2ELSE y=xEND IFPRINT yEND探究一探究二探究三当堂检测
当x<0时,若输出的结果是4,则x=4,矛盾;
当x≥0时,若输出的结果是4,则x2=4,解得x=2.
答案:2探究一探究二探究三当堂检测