欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

    C程序设计第五章.ppt

    • 资源ID:14910497       资源大小:217KB        全文页数:39页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C程序设计第五章.ppt

    第五章.分支结构程序设计,关系运算符、逻辑运算符与关系表达式分支结构语句程序设计举例,5.1 关系运算符和关系表达式,6 种关系运算符: (小于) (小于或等于) (大于) (大于或等于) (等于) ! (不等于),一、关系运算符及其优先次序,优先级相同(高),优先级相同(低),结合性:自左向右,5.1 关系运算符和关系表达式,一、关系运算符及其优先次序,与其它运算符优先级的比较:,例如: c=da+b,等效于:c=(d(a+b),1. 什么是关系表达式?,二、关系表达式,如:(ab)(by 、s+fd,2. 关系表达式的值,运算结果逻辑值 1“真” ,0“假”,如: 设 a=3, b=2, c=1 求下面关系表达式 的值:,cb (a-b) = = 1 b+cbc,值为,值为,值为,如果关系运算对象的类型不同,也要先进行类型转换。,5.2 逻辑运算符和逻辑表达式,3种逻辑运算符: ! (逻辑非) & (逻辑与) | (逻辑或),一、逻辑运算符及其优先次序,优先级,(高),(低),如: !a a为真,则!a为假。 a|b a、b之一为真,则a|b为真。 a&b a、b 同时为真,则 a&b 为真。,逻辑运算赋与逻辑表达式,5.2 逻辑运算符和逻辑表达式,与其它运算符优先级的比较:,一、逻辑运算符及其优先次序,(高),(低),例如:c=da+b&ab,等效于: c=(d(a+b)&(ab),1. 什么是逻辑表达式?,二、逻辑表达式,用逻辑运算符将逻辑运算对象连结起来的式子。,如:(ab)&(bb,2. 逻辑表达式的值,运算结果逻辑值(假为0、真为1只有两种取值),如: 53 & 2 | 83 & 84-!0,值为 1,值为,运算对象以数值非0为真、0为假,值为 0,逻辑运算赋相应的运算对象连接起来,运算对象可以是:关系表达式或逻辑量逻辑表达式的求解:自左向右扫描表达式,只要能够判断出表达式的值时就停止运算。 如: a&b&c , a|b|c a=1,b=2,c=3,d=4,m=n=1 (m=ab) & (n=cd) m=? n=?,5.3 if语句,1. if (表达式) 语句,一、if 语句的三种形式,执行过程: 当表达式的值为“真”(非零)时,执行语句,否则,不执行语句。,如: if ( x y ) z = x;,2. if (表达式) 语句1 else 语句2,执行过程: 当表达式的值为“真”(非零)时,执行语句1,否则,执行语句2。,如: if (xy) z=x ; else z=y ;,3. if (表达式1) 语句1 else if(表达式2) 语句2 else if(表达式3) 语句3 : else if(表达式m) 语句m else 语句n,如:if (grade=85) level=A; else if (grade=70) level=B; else if (grade=60) level=C; else level=D;,if 语句说明:, if后面的表达式一般为逻辑表达式或关系表 达式,也可以是任意数值类型表达式。,该语句是合法的:if(3) printf(“ok!”);, if 语句中的“语句”为一个简单语句或复合语句。,如:下面程序段是否有错?,if (x=0) printf(“X is positive.”); x+;else printf(“X is negative.”);,if (x=0) printf(“X is positive.”); x+;else printf(“X is negative.”);,请区分 if (x = =1) 与 if (x=1) 的不同。,例exp5_1 输入两个数,按数值将其按大小顺序输出.#include main() float a,b,t; scanf(“%f,%f”, 要点:交换两个数据的方法,例exp5_2 输入三个数按大小顺序输出.#include main()float a,b,c,t;if(ab) t=a;a=b;b=t;if(ac) t=a;a=c;c=t;if(bc) t=b;b=c;c=t;printf(“%5.2f,%5.2f,%5.2f”,a,b,c);,二、if 语句的嵌套,在 if 语句中又包含一个或多个if 语句称为 if 语句的嵌套。,一般形式:,if (条件1) if (条件2)语句1 else 语句2else if (条件3)语句3 else 语句4,内嵌if,内嵌if,如:if(x0) if(y0) printf(x0,y0); else printf(“x0,y0) printf(“x0); else printf(“x=0, y=0”);,嵌套使用要点1、if语句中if与else的配对关系为:else总是与它上面的最近的if配对.书写格式的缩进与否与它们之间的配对无关.例如: if() if()语句块1 else语句块2这时的else配对的对象为内层的if,而不是外层的if.2、要实行强行的配对关系可以利用 。 如:if() if()语句块1 else 语句块2,else与if的匹配原则:一个else应与其之前距离最近且没有与其它else配对的if 配对。,if (n6) if (n12) printf(“6n12”);else printf(“n=6”);,if (n6) if (n12) printf(“6n12”);else printf(“n=6”);,缩 排,#inclde main() int x; scanf(“%d”, ,例exp5_3 有一函数:-1(x0)main() int x,y; scanf(“%d”, printf(“x=%d,y=%dn”,x,y):,四、条件运算符和条件表达式,如:max= (ab) ? a : b ; 若 a=3, b=2, 则 max=?,如: (ab) ? a : b,目的简化 if 语句。,C语言中唯一一个三目运算符,1.条件运算符的优先级:,算数运算符=关系运算符=逻辑运算符(除!),赋值运算符=条件运算符,如:x = a+bc & cd ? a+b : d,等效于: x = (a+b)c) & (cd) ? (a+b) : d),2.条件运算符的结合方向: 自右至左,如:ab ? a : cd ? c : d,等效于:ab ? a : (cd ? c : d),使用要点,3.表达式2,表达式3也可以是赋值表达式和函数表 达式。 如 ab?(a=100):(b=100) ab? prinf(“%d”,a): printf(“%d”,b)4.表达式1的类型可以与表达式2和表达式3的类型不同,表达式2和表达式3的类型也可以不同。 如 x? a:b xy? 1:1.5,思考:输入一个字符,判断是否是大写字母,如果是,转成小写字母;如果不是,不转换。然后输出最后得到的字符。,5.4 switch 语句,一般形式:,switch(表达式) case 常量表达式1:语句序列1 break; case 常量表达式2:语句序列2 break; : case 常量表达式n:语句序列n break; default :语句序列n+1 ,执行过程:,用break语句处理后的程序段:,switch(grade) case A : printf(“85100 ”); break; case B : printf(“7084 ”); break; case C : printf(“6069 ”); break; case D : printf(“60 ”); break; default : printf(“error ”); ,若gread= A,输出结果又是什么?,85100,完整程序 :,main() char grade; printf(“Input grade(A,B,C,D):”); scanf(“%c”, ,流程图为:,grade,输出 “85100”,输出 “60”,输出 “60-69”,输出 “error”,输出 “70-84”,使用要点1.switch中的表达式可以是整型或字符型表达式。 (也可以是枚举类型,新标准的c语言允许为任意类型.)2.每个常量表达式的值必须各不相同,否则将会出现矛盾.3.当表达式的值与case后面的常量表达式值相等时就执行此case后面的语句.4.“case 常量:”只起语句标号的作用。5.break语句在switch中的作用:强行跳出switch体转到其它某条语句,每个case后面应有一个break语句(否则程序的执行顺序将改变),default分支后的break可以省略。6.各个case出现的先后顺序不影响程序的执行结果.7.多个case可以执行一组语句.,例exp5_4:写一程序判定某一年是否为闰年。闰年的判定:某年能被4整除但不能被100整除或者能被4整除,又能被400整除.,例exp5_4:#include 请同学们考虑程序有无main() 其它简化形式 int year,leap; scanf(“%d”,,main( ) int year, leap=0; scanf(“%d”, ,Exp5_7 已知基本运费、货重,以及路程(s)和折扣的关系标准如下:,s250km 没有折扣 250s500 %2折扣 500s1000 5%折扣 1000s2000 8%折扣 2000s3000 10%折扣 3000s 15%折扣,算法:先按距离的250倍数进行分类,求每类的折 扣,再按公式计算。,编程序,计算运费。设基本运费p、货物重量w、距离s和折扣d。则总运费的计算公式为: f=p*w*s*(1-d),250 500 1000 2000 3000,s,0,161412108642,折扣的变化点都是250的倍数 . c=s/250 代表250的倍数。,1 2 4 8 12 c,总运费的计算公式为: f=p*w*s*(1-d),程序为: main( ) int c,s; float p, w, d , f ; scanf(“%f , %f , %d”, /*750s1000*/ case 4: /*1000s1250*/ case 5: /*1250s1500*/,case 6: /*1500s1750*/ case7: d=8 ; break ; /*1750s2000*/ case8: /*2000s2250*/ case9: /*2250s2500*/ case10: /*2500s2750*/ case11: d=10 ; break; /*2750s3000*/ case12: d=15 ; break; /*3000s*/ f=p*w*s*(1-d/100.0) ; printf(“freight=%15.4f ”, f ) ; ,运行情况:输入:100,20,300 结果:freight= 588000.0000,课后题: 求 ax2+bx+c=0 方程的解 1、a=0 ,方程不是二次方程 2、b2-4ac=0, 有两个相等的实根 3、b2-4ac0, 有两个不相等的实根 4、b2-4ac0, 有两个共轭复根 5、如何判断实数为零(或大于零,或小于零) a=0 fabs(a)=1e-6,特殊条件的处理,#includemain() else if( disc1e-6) float a,b,c,d,disc,x1,x2,realpart,imapart; x1=(-b+sqrt(disc)/(2*a); scanf(“%f,%f,%f”,

    注意事项

    本文(C程序设计第五章.ppt)为本站会员(啊飒飒)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开