您好,欢迎访问三七文档
第四章选择结构程序设计第一节关系运算和逻辑运算第二节if语句第三节switch语句第四节选择结构程序设计举例一、关系运算1.关系运算符、、=、=、!=、==优先级高优先级低2.优先级和结合性左结合与其它种类运算符的优先级由高→低的顺序为:算术运算→、、=、=→==、!=→赋值运算符3.关系表达式若a=3,b=2,c=1则abc结果为0第一节关系运算和逻辑运算二、逻辑运算1.逻辑运算符&&:逻辑与、||:逻辑或、!:逻辑非真值表:aba&&ba||b!a000010101110010111102.优先权和结合性⑴运算优先权由高到低为:!→&&→||。⑵&&和||低于关系运算符,!高于算术运算符。!→算术运算→关系运算→&&→||→赋值运算3.逻辑表达式如:a=4,!a的值为0。例:在a,b,c三数中,a为最大的条件:(ab)&&(ac)例:判断是否是闰年。判断闰年的条件:符合下面二者之一:①能被4整除,但不能被100整除。②能被400整除。(year%4==0&&year%100!=0)||year%400==0例:计算表达式’c’&&’d’||!(3+4)的值‘c’和’d’的值为1(非零值),1“或”任何值都是1。因此表达式的值为1。在上面这个例子中,实际上!(3+4)的值根本就没有计算,因为它的值对结果没有影响,这是C语言的特点之一。在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。例如:①a&&b&&c只有a为真时,才需要判别b的值,只有a和b都为真的情况下才需要判别c的值。只要a为假,就不必判别b和c(此时整个表达式已确定为假)。如果a为真,b为假,不判别c。②a||b||c只要a为真,就不必判断b和c,只有a为假,才判别b;a和b都为假才判别c。如果有下面的逻辑表达式:(m=ab)&&(n=cd)当a=1,b=2,c=3,d=4,m和n的原值为1,表达式计算结束时,m、n的值各为多少?由于ab的值为0,m=0,意味着(m=ab)为0,则整个表达式的值为0,而(n=cd)不被执行,因此n的值不是0而仍保持原值1。第二节if语句一、if语句的格式格式1:if(表达式){语句序列}格式3:if(表达式1){语句序列1}elseif(表达式2){语句序列2}......elseif(表达式n){语句序列n}else{语句序列n}格式2:if(表达式){语句序列1}else{语句序列2}格式4:if(表达式1)if(表达式2)语句;else语句;elseif(表达式3)语句;else语句;[例]输入一个整数,若大于0,输出1,否则输出0。[例]输入两个整数,输出最大值。[例]输入三个整数,输出其中的最大数。[例]输入两个实数,按由小到大的顺序输出这两个数。[例]输入三个数,按由小到大的顺序排列。[例]计算y值。y=[例]从键盘输入一个字符,如果是大写字母,则把它转换成小写字母输出;否则,直接输出。1x00x=0-1x0二、条件运算符1.条件运算符的格式表达式1?表达式2:表达式32.运算规则如果表达式1的值为1,则运算结果等于表达式2的值,否则等于表达式3的值。[例]输入三个数,输出其中最大的值。第三节switch语句switch语句是多分支选择语句。一、switch语句的格式switch(表达式){case常量表达式1:语句1;break;case常量表达式2:语句2;break;......case常量表达式n:语句n;break;default:语句n+1;}二、switch语句的执行过程三、例题[例4_1][例4_2]执行下列程序后,变量i的结果是什么?[例4_3]给变量a,b,c输入整数,当a为1时输出b与c之和;a为2时输出b与c之差;a为3时输出b与c之积;a为4时输出b与c之商,其他数值时不做任何操作。[例4_4]输入一个字符,为a时显示America,为b时显示Britain,为c时显示China,为其他字符时显示Japan。[例4_5]从键盘输入一个百分制成绩score,按下列原则输出其等级。score等级=90A=80B=70C=60D60E四、说明1.switch后面的表达式可以是任何类型。2.case后面的常量表达式仅起语句标号作用,并不进行判断,系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断。所以必须加上break语句,以便结束switch语句。3.各switch语句出现的先后次序不影响执行结果。[例4_6]输入某年某月,输出该月的天数。分析:1,3,5,7,8,10,12月均为31天,4,6,9,11月均为30天,2月为28天,闰2月为29天。[例4_7]从终端输入两个实数和一个运算符(+-*/),执行相应的运算并输出运算结果。第四节选择结构程序设计举例[例4_12]求一元二次方程的根。①b2-4ac=0,有两个相等实根。②b2-4ac0,有两个不等实根。③b2-4ac0,有两个共轭复根。[例4_13]运输公司对用户计算运费,距离s越远,每公里运费越低。标准如下:s250没有折扣250=s5002%折扣500=s10005%折扣1000=s20008%折扣2000=s300010%折扣s=300015%折扣设每公里每吨货物的基本运费为p,货物重量为w,距离为s,折扣为d,则总运费f的计算公式为:f=p*w*s*(1-d)[例4_14]某公司员工工资为保底工资数加上利润提成,已知保底薪水为500,工程利润p与利润提成的关系如下:p=1000没有提成1000p=2000提成10%2000p=5000提成15%5000p=10000提成20%p10000提成25%试计算员工的月工资。[例4_15]给一个不多于5位的正整数,要求:①求出它是几位数②分别打印出每一位数字③按逆序打印出各位数字。例如原数为321,应输出123。[例4_16]从键盘输入3和4,写出程序的运行结果。小结第一节关系运算和逻辑运算一、关系运算1、关系运算符、、=、=、!=、==优先级高优先级低2、优先级和结合性:左结合与其它种类运算符的优先级由高→低的顺序为:算术运算→、、=、=→==、!=→赋值运算符3、关系表达式若a=3,b=2,c=1则abc结果为0二、逻辑运算1、逻辑运算符&&:逻辑与、||:逻辑或、!:逻辑非2、优先权和结合性⑴运算优先权由高到低为:!→&&→||。⑵&&和||低于关系运算符,!高于算术运算符。!→算术运算→关系运算→&&→||→赋值运算3、逻辑表达式如:a=4,!a的值为0。第二节if语句一、if语句的格式格式1:if(表达式){语句序列}格式3:if(表达式1){语句序列1}elseif(表达式2){语句序列2}......elseif(表达式n){语句序列n}else{语句序列n}格式2:if(表达式){语句序列}else{语句序列}格式4:if(表达式1)if(表达式2)语句;else语句;elseif(表达式3)语句;else语句;[例l4_1]输入一个整数,若大于0,输出1,否则输出0。[例l4_2]输入三个整数,输出其中的最大数。[例l4_3]输入两个实数,按由小到大的顺序输出这两个数。[例l4_4]输入三个数,按由小到大的顺序排列。[例l4_5]计算y值。y=[例l4_6]从键盘输入一个字符,如果是大写字母,则把它转换成小写字母输出;否则,直接输出。二、条件运算符表达式1?表达式2:表达式31x00x=0-1x0第三节switch语句switch语句是多分支选择语句。一、switch语句的格式switch(表达式){case常量表达式1:语句1;break;case常量表达式2:语句2;break;......case常量表达式n:语句n;break;default:语句n+1;}[例4_9]给变量a,b,c输入整数,当a为1时输出b与c之和;a为2时输出b与c之差;a为3时输出b与c之积;a为4时输出b与c之商,其他数值时不做任何操作。[例4_10]输入一个字符,为a时显示America,为b时显示Britain,为c时显示China,为其他字符时显示Japan。[例4_11]从键盘输入一个百分制成绩score,按下列原则输出其等级。score等级=90A=80B=70C=60D60E四、说明1、switch后面的表达式可以是任何类型。2、case后面的常量表达式仅起语句标号作用,并不进行判断,系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断。所以必须加上break语句,以便结束switch语句。3、各switch语句出现的先后次序不影响执行结果。第四节选择结构程序设计举例[例4_12]求一元二次方程的根。①b2-4ac=0,有两个相等实根。②b2-4ac0,有两个不等实根。③b2-4ac0,有两个复根。[例4_13]某公司员工工资为保底工资数加上利润提成,已知保底薪水为500,工程利润p与利润提成的关系如下:p=1000没有提成1000p=2000提成10%2000p=5000提成15%5000p=10000提成20%p10000提成25%试计算员工的月工资。[例4_14]运输公司对用户计算运费,距离s越远,每公里运费越低。标准如下:s250没有折扣250=s5002%折扣500=s10005%折扣1000=s20008%折扣2000=s300010%折扣s=300015%折扣设每公里每吨货物的基本运费为p,货物重量为w,距离为s,折扣为d,则总运费f的计算公式为:f=p*w*s*(1-d)[例4_15]给一个不多于5位的正整数,要求:①求出它是几位数②分别打印出每一位数字③按逆序打印出各位数字。例如原数为321,应输出123。[例4_16]写运行结果。
本文标题:新C第4章选择
链接地址:https://www.777doc.com/doc-3336815 .html