C语言教学之选择结构程序设计市公开课金奖市赛课一等奖课件_第1页
C语言教学之选择结构程序设计市公开课金奖市赛课一等奖课件_第2页
C语言教学之选择结构程序设计市公开课金奖市赛课一等奖课件_第3页
C语言教学之选择结构程序设计市公开课金奖市赛课一等奖课件_第4页
C语言教学之选择结构程序设计市公开课金奖市赛课一等奖课件_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、聪明出于勤奋,天才在于积累 华罗庚1第1页5.1关系运算符和关系表示式5.2逻辑运算符和逻辑表示式5.3if语句5.4switch语句5.5程序举例习题第5章 选择结构程序设计2第2页本章纲领选择结构程序设计(4课时)教学内容:关系运算符和关系表示式逻辑运算符及逻辑表示式if语句及条件运算符switch语句选择结构C程序编写3第3页基本要求:掌握关系运算符与关系表示式;掌握逻辑运算符与逻辑表示式;掌握if语句几个形式;掌握if语句嵌套应用;掌握条件运算符应用;掌握switch-case语句应用。重点:if语句;选择结构C程序编写难点:选择结构C程序编写4第4页5.1 关系运算符和关系表示式 关

2、系运算:实际上是“比较运算”。将两个值进行比较,判断其比较结果是否符合给定条件。谁会赢?判断题35 ( )5第5页5.1.1 关系运算符及其优先次序 (小于) = (小于或等于) (大于) = (大于或等于) = = (等于) != (不等于)1.C语言提供关系运算符种类:高优先级相同低优先级相同6第6页从左向右2.关系运算符优先次序:3.关系运算符结合性:关系运算符算术运算符赋值运算符低高比如:ca+b 等效于c(a+b) a=bc等效于a=(bc)a=bc等效于a=(bc)7第7页5.1.2 关系表示式用关系运算符将两个表示式连接起来式子。表示式能够是:1.算术表示式2.关系表示式3.逻辑

3、表示式4.赋值表示式5.字符表示式比如:ab,abbc,(a=3)(b=5),ab,(ab)(bc)只有两种:真和假,在C语言里分别用1和0 来表示。用1和0来表示原因在于:c语言没有逻辑型数据,以1代表“真”,以“0”代表“假”。2.关系表示式结果:1.关系表示式:8第8页例题: 假设a=3,b=2,c=1 以下这些表示式结果是什么?比如:ab,abbc,(a=3)(b=5),ab,(ab)(bc)ab 3&890) printf(“优异”);else if(x80) printf(“良”);else if(x70) printf(“中”); else if(x60) printf(“及格”

4、); else printf(“不及格);表示式1真语句1假语句2表示式2真假语句3表示式3真假语句420第20页说明:(1)三种形式if语句中“表示式”,普通为逻辑表示式或关系表示式。表示式类型能够是任意数值类型(包含整型、实型、字符型、指针型数据) (2) 第二、第三种形式if语句中,在每个else前面有一分号,整个语句结束处有一分号if (x0)printf (%f,x);else printf(%f,-x);if(a=b & x=y)printf(“a=b,x=y”);if(3) printf(“k”); if(a)printf(“%d,a);21第21页(3)在if和else后面能够

5、只含一个内嵌操作语句,也能够有多个操作语句,此时用花括号“”将几个语句括起来成为一个复合语句。if(abc & bca & cab) s=0.5*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“area=%6.2f”,area); else printf(“it is not a trilateral”);22第22页例5.1输入两个实数,按代数值由小到大次序输出这两个数。main() float a,b,t; scanf(“%f,%f“,&a,&b); if(ab) t=a;a=b;b=t; printf(“%5.2f,%5.2f“,a,b);

6、 3.6,-3.2(回车)-3.20, 3.60 开始ab?交换a和b输出a和bYN结束23第23页132酱油(a)醋(b)酱油(a)醋(b)空瓶(t)t=a;酱油空a=b;醋b=t;空酱油空妈妈告诉我,要把酱油和醋交换一下24第24页5.3.2 if语句嵌套if( ) if( )语句1 else语句2 else if( )语句3 else语句4在if语句中又包含一个或多个if语句称为if语句嵌套。普通形式以下:if() if()语句1else if()语句2 else 语句3else总是与它上面最近if配对25第25页例5.3有一函数:编一程序,输入一个x值,输出y值。若 x 0 y = 1

7、输出y开始输入xx0 x=0y=0y=-1y=1输入x结束YNYN图5.726第26页程序1:main() int x,y; scanf(“%d,&x); if(x0y=1y=0YNYNy=-128第28页5.3.3 条件运算符例:若有以下if语句:if(ab)max=a; elsemax=b;能够用下面条件运算符来处理: max=(ab)?ab;若if语句中,在表示式为“真”和“假”时,都只执行一个赋值语句且给同一个变量赋值时,能够用简单条件运算符来处理。29第29页 表示式1 ?表示式2表示式31.条件表示式普通形式:c语言中唯一一个三目运算符2.条件运算符执行次序:先求解表示式1,(1)

8、若表示式1值为非0(真)则求解表示式2,此时表示式2值就作为整个条件表示式值。(2)若表示式1值为0(假),则求解表示式3,表示式3值就是整个条件表示式值。表示式1条件表示式取表示式2值条件表示式取表示式3值真假图5.1130第30页关系运算符算术运算符赋值运算符低高&!(非)假如有ab?ab1相当于ab?a(b1)3.条件运算符优先级|条件运算符31第31页4.条件运算符结合方向“自右至左”假如有以下条件表示式:ab?acd?cd相当于ab?a(cd?cd)假如a=1,b=2,c=3,d=4,则条件表示式值等于多少?432第32页5.说明:如 x? abx是整型变量,若x=0,则条件表示式值

9、为b。如 xy?115假如x=A & ch=Z)?(ch+32)ch; printf(“%c,ch) A(回车) a35第35页5.4 switch 语 句switch语句是多分支选择语句。用来实现如图所表示多分支选择结构。表示式语句A语句B语句M语句Np=p1p=p2p=pnp=pmswitch结构只能对等式进行测试。36第36页1.普通形式:switch(表示式) case常量表示式1:语句1 case常量表示式2:语句2 case常量表示式n:语句n default :语句n1 是整型、字符型或枚举类型表示式,case后面常量表示式类型必须与之匹配。每一个case常量表示式值必须互不相同

10、,不然就会出现相互矛盾现象37第37页比如,要求按照考试成绩等级打印出百分制分数段switch(grade) caseAprintf(85100n); caseBprintf(7084n); caseCprintf(6069n); caseDprintf(60n); defaultprintf(errorn); 38第38页main()char grade;scanf(%c,&grade);switch(grade) case A:printf(85100n); case B:printf(7084n); case C:printf(6069n); case D:printf(60n); de

11、fault:printf(errorn); 完整程序:A(回车)851007084606960errorB(回车)7084606960error不会吧?39第39页main()char grade;scanf(%c,&grade);switch(grade) case A:printf(“85100n”);break; case B:printf(“7084n”); break; case C:printf(“6069n”); break; case D:printf(“0输出两个实根x1,x2输出两个复根p+qip-qi复根实部和虚部分别为:真假45第45页#include main()fl

12、oat a,b,c,d,disc,x1,x2,realpart,imagpart; scanf(f,f,f,&a,&b,&c); printf(The equation); if(fabs(a)=le-6) printf(is not a quadratic); elsedisc=b*b-4*a*c; if(fabs(disc)=le-6) printf(has two equal roots:%8.4n,-b(2*a); 程序以下:a=0 判断b2-4ac=0 判断fabs()是求实数绝对值函数46第46页else if(discle-6)x1=(-bsqrt(disc)(2*a); x2=

13、(-b-sqrt(disc)(2*a); printf(has distinct real roots:%8.4f and %8.4fn,x1,x2); else realpart=-b(2*a); imagpart=sqrt(-disc)(2*a); printf(has comPlex rootsn); printf(%8.4f+%8.4fin,realpart,imagpart); printf(%8.4f-%8.4fin,realpart,imagpart); 10-60-10-6=00=3000) c=12; elsec=s250; switch(c) case 0d=0;break; case 1d=2;break; case 2 程序以下:51第51页 case 3d=5;break; case 4 case 5 case 6 case 7d=8;break; case 8 case 9 case 10 case 11d=10;break; case12d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论