• 278.32 KB
  • 2022-04-12 发布

2020版高中数学第一章算法初步1.2.2条件语句学案(含解析)新人教b版必修3

  • 15页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
1.2.2 条件语句学习目标 1.了解条件语句和条件分支结构之间的对应关系.2.理解条件语句的语法规则和用算法解决问题的一般步骤.3.能够用条件语句编写条件分支结构的程序.知识点一 条件语句的概念处理条件分支逻辑结构的算法语句,叫做条件语句.知识点二 条件语句的类型、格式、功能格式一格式二条件语句if 表达式  语句序列1;endif 表达式语句序列1;else语句序列2;end语句功能如果表达式的结果为真,则执行语句序列1,否则跳过语句序列1.如果表达式结果为真,则执行语句序列1;如果表达式结果为假,则执行语句序列2对应条件结构框图1.条件语句中必须有else和end.( × )2.条件语句中可以没有end.( × )3.条件语句中可以没有else,但是必须有end.( √ )4.条件语句中可以没有end,但是必须有else.( × )题型一 条件语句的理解例1 编写程序,输入两个不等的实数,由大到小输出这两个数.n解 程序如下:a=input(“a=”);b=input(“b=”);if a<b t=a; a=b; b=t;endab反思与感悟 (1)条件语句的执行顺序与算法框图中的选择结构的执行顺序一致,先对条件进行判断,满足条件,则执行该条件下的语句,不满足条件,则执行下一步.(2)条件语句一般用在需要对条件进行判断的算法设计中,这与逻辑结构中的选择结构一致.(3)if代表条件语句的开始,end代表条件语句的结束,这两点是判断一个语句是否是条件语句的关键.跟踪训练1 根据输入的x值计算y的值,y=利用条件语句编写程序,并画出相应的程序框图.解 程序如下:x=input(“x=”);if x<=2.5y=x^2+1;elsey=x^2-1;endprint(%io(2),y);程序框图如图所示.n题型二 条件语句的编写例2 编写程序,根据输入的x值,计算y的值,并输出y的值,y=解 程序如下:x=input(“x=”);if x<1 y=-2*x+1;elsey=2*x-1;endprint(%io(2),y);引申探究若本例中条件不变,请画出相应的程序框图.解 程序框图如图所示.反思与感悟 使用条件语句时的三个关注点(1)条件语句是一个语句,if,else,end都是语句的一部分.(2)条件语句必须是以if开始,以end结束,一个if必须与一个end相对应.(3)为了程序的可读性,一般if,else,end顶格书写,其他的语句体前面空两格.跟踪训练2 设计一个程序,输入一个学生的成绩S,根据该成绩的不同值进行以下输出:若S<60,则输出“不及格”;若60≤S≤90,则输出“及格”;若S>90,则输出“优秀”.n解 程序如下:S=input(“S=”);if S<60 disp(“不及格”);else if S>90 disp(“优秀”); elsedisp(“及格”); endend题型三 条件语句的嵌套例3 若有以下程序:x=input(“x=”);if x<=-1f(x)=x+2;elseif x<=1 f(x)=x^2;else f(x)=-x+2;endendprint(%io(2),f(x));根据上面的程序,若函数g(x)=f(x)-m在R上有且只有两个零点,则实数m的取值范围为________.答案 (-∞,0)∪{1}解析 由题意知,该程序的作用是计算分段函数f(x)=的函数值.其函数图象如图.n又∵函数g(x)=f(x)-m在R上有且只有两个零点,∴由图象可得m<0或m=1.反思与感悟 在某些较为复杂的算法中,有时需要按条件要求执行的某一语句(特别是else后的语句序列2)继续按照另一条件进行判断,这时可以再利用一个条件语句完成这一要求,这就形成了条件语句的嵌套,其一般形式是:if 表达式1 语句序列1;elseif 表达式2 语句序列2;else 语句序列3;endend注意:end是“出口”,是条件语句的结束符号,在书写程序时不要漏掉.当出现条件语句的嵌套时,每一个if对应着一个end.跟踪训练3 已知程序:x=input(“x=”);if x>-1 and x<0 y=-x;else if x>=0 andx<1 y=x^2; elseif x>=1andx<=2 y=x;endn endendprint(%io(2),y);如果分别输入x=,x=,则输出的结果分别为________.答案 ,解析 当-1<x<0时,y=-x;当0≤x<1时,y=x2;当1≤x≤2时,y=x,即函数的解析式为y=当x=时,y=;当x=时,y=.1.当a=1,b=3时,执行完下面一段程序后x的值是(  )if a<b x=a+b;else x=a-b;endxA.1B.3C.4D.-2答案 C解析 因为1<3满足a<b,故x=1+3=4,故选C.2.给出下列程序:x1=input(“x1=”);x2=input(“x2=”);if x1=x2x1=x1+x2;end y=x1+x2;print(%io(2),y);n如果输入x1=2,x2=3,那么执行程序后,输出的结果是(  )A.7B.10C.5D.8答案 C解析 因为x1=2,x2=3,故x1≠x2,得y=x1+x2=2+3=5.3.根据下列算法语句,当输入x为60时,输出y的值为(  )x=input(“x=”);if x≤50y=0.5*x;elsey=25+0.6*(x-50);endprint(%io(2),y);A.25B.30C.31D.61答案 C解析 由题意,得y=当x=60时,y=25+0.6×(60-50)=31.∴输出y的值为31.4.下面的程序运行后输出的结果为______.x=5;y=-20;if x<0 x=y-3;else y=y+3;endprint(%io(2),x-y,y-x);答案 -22,22解析 因为x=5>0,根据题意,执行y=y+3,y=-20+3=-17,因此x-y=5-(-17)=22,y-x=-17-5=-22.n输出的结果y-x在前,x-y在后,所以答案为-22,22.5.儿童乘坐火车时,若身高不超过1.1m,则无需购票;若身高超过1.1m不超过1.4m,只需买半票;若身高超过1.4m,则买全票.试写出一个购票算法程序.解 程序如下:h=input(“h=”);if h<=1.1 print(%io(2),“免费乘车”);elseif h<=1.4 print(%io(2),“半票乘车”);else print(%io(2),“全票乘车”);endend使用条件语句时应注意的问题:(1)对于条件语句,要先看输入的值是否符合条件,再进一步执行合适的步骤;(2)如果程序中只需对条件为真的情况作出处理,不用处理条件为假的情况时,else分支可以省略,此时条件语句就由双支变为单支;(3)分段函数需要多重判断,可以利用条件语句的嵌套式结构.一、选择题1.当a=3时,下面的程序段输出的结果是(  )a=input(“a=”);if a<10y=a;elsey=a*a;nendprint(%io(2),y);A.9B.3C.10D.6答案 B解析 此程序段的功能是求分段函数y=的函数值,当a=3时,y=3.故选B.2.已知程序如下:x=3;if x>3 y=x^2;else y=2*x;endprint(%io(2),y);该程序运行后,y的值是(  )A.3B.6C.9D.27答案 B解析 依题意知,x=3,得y=2x=2×3=6.3.给出以下四个问题,其中不需要用条件语句来描述其算法的有(  )①输入一个数x,输出它的绝对值;②求函数f(x)=的函数值;③求面积为6的正方形的周长;④求三个数a,b,c中的最大数.A.1个B.2个C.3个D.4个答案 A解析 在算法中需要逻辑判断的都要用到条件语句,其中①②④都需要进行逻辑判断,故都要用到条件语句,③只要顺序结构就能描述其算法.4.阅读下列程序,x=4;if x>3ny=x*x;elsey=2*x;endprint(%io(2),y);则该程序运行后,变量y的值为(  )A.4B.16C.6D.8答案 B解析 因为x=4满足“x>3”的条件,所以执行的是y=x2=4×4=16.5.下面程序输入“x=π”时的运算结果是(  )x=input(“x=”);if x>0y=-2;elseif x=0y=0;else  y=2;endendprint(%io(2),y);A.-2B.1C.πD.2答案 A解析 此程序表示的函数为分段函数y=故x=π时,y=-2.6.为了在运行下面的程序之后得到输出y=9,x输入的值应该是(  )x=input(“x=”);if x<0 y=(x+1)*(x+1);nelse y=(x-1)*(x-1);endprint(%io(2),y);A.-4B.-2C.4或-4D.2或-2答案 C解析 此程序表示的函数为分段函数,y=若x<0,则由(x+1)2=9得x=-4;若x≥0,则由(x-1)2=9得x=4.7.下列程序语句是求函数y=|x-4|+1的函数值,则①处为(  )x=input(“x=”);if x>=4 y=x-3;else   ①  endprint(%io(2),y);A.y=3-xB.y=x-5C.y=5-xD.y=ABS(x-4)+1答案 C解析 ∵y=|x-4|+1=故选C.8.下面程序在开始运行后,通过键盘输入三个值a=3,b=24,c=7,则输出的结果是(  )程序:a=input(“a=”);b=input(“b=”);c=input(“c=”);if b>a t=a,a=b,b=t;nendifc>a t=a,a=b,b=t;endif c>b t=b,b=c,c=t;endprint(%io(2),a,b,c);A.3,24,7B.3,7,24C.24,7,3D.7,3,24答案 B解析 当a=3,b=24,c=7时,此时b>a,首先是a,b交换数值即a=24,b=3,c=7,又此时c>b,执行的程序是b,c交换数值,即b=7,c=3,所以a=24,b=7,c=3.二、填空题9.给出如下程序,运行后输出的结果为________.x=5;y=-12;if x<0 x=y-3;else x=y+3;end S=x-y;print(%io(2),S);答案 3解析 ∵x=5不满足x<0,∴x=y+3=-12+3=-9,∴S=x-y=-9-(-12)=3.10.给出下列程序:nx=input(“x=”);if x<10p=x*5;elsep=1010*5+(x-15)*7;endprint(%io(2),P);若输入x=6,则p=____,若输入x=18,则p=______.答案 30 71解析 此程序是求函数p=的值,当x=6时,p=6×5=30;当x=18时,p=10×5+(18-15)×7=50+21=71.11.若下面程序执行的结果是5,则输入的x值是__________________________.x=input(“x=”);if x>=0y=x;elsey=-x;endprint(%io(2),y);答案 5或-5解析 由程序语句知,该程序的功能是输入一个x,输出函数y=的值,若输出5,则应输入5或-5.12.下列程序语句的算法功能是________.a=input(“a=”);b=input(“b=”);c=input(“c=”);if a<ba=b;endif a<cna=c;endprint(%io(2),a);答案 输出a,b,c三个数中的最大数解析 由程序语句可知,当比较a,b的大小后,选择较大的数赋给a;当比较a,c的大小后,选择较大的数赋给a;最后输出a,所以此程序的作用是输出a,b,c中最大的数.13.下面的程序是求一个函数的函数值的程序:x=input(“x=”);if x<=0 y=-x;elseif x>0andx<=1 y=0;else y=x-1;endendprint(%io(2),y);若执行此程序的结果为3,则输入的x值为________.答案 4或-3解析 此程序是求函数y=的值.若输出的结果为3,则有可能x-1=3即x=4,或-x=3即x=-3.三、解答题14.已知函数y=试写出程序,根据输入的x值,输出相应的y值.解 程序为x=input(“x=”);if x<0  y=x^2-3;elseif x>0y=x/2+5;elsen y=0;endendprint(%io(2),y);四、探究与拓展15.如图所示,在边长为16的正方形ABCD的边上有一动点P,点P沿边线由B→C→D→A(B为起点,A为终点)运动.若设P运动的路程为x,△APB的面积为y,试写出程序,根据输入的x值,输出相应的y值.解 由题意可得函数关系式为y=程序如下:x=input(“x=”);ifx>0andx<=16y=8*x;elseifx<=32y=128;elsey=8*(48-x);endendprint(%io(2),y);

相关文档