电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

C程序设计 教学课件 ppt 作者 赵山林 6

33页
  • 卖家[上传人]:E****
  • 文档编号:89343315
  • 上传时间:2019-05-23
  • 文档格式:PPT
  • 文档大小:328.50KB
  • / 33 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第6章 选择结构程序设计,选择结构的N-S流程图如图6.1所示。,图6.1 选择结构的N-S流程图,P为选择的条件,对于执行A还是B要根据条件P的判断结果来决定,如果条件P的结果为真则执行A,如果条件P的结果为假则执行B。这里条件P的结果就成为执行A还是B的关键所在。P是一个判断的条件,其结果为真或者假,将其称为“逻辑量”。C语言中没有提供逻辑型变量,可以使用整型数据去描述1表示真,0表示假。在C语言中任意确定的值都可作为逻辑量处理,当作为逻辑量处理时,如果该值为非0,则表示真(1),如果该值为0,则表示假(0)。下面讲述条件P的逻辑量表示方法。,6.1 逻辑量的表示方法 6.2 if语句 6.3 switch语句 6.4 选择结构程序设计举例,6.1 逻辑量的表示方法 C语言中逻辑量是用整型数据来表示的,用来表示真或成立,用来表示假或不成立。逻辑量的表示是非常灵活的,具体表示方法有以下几种方式。,6.1.1 关系表达式,1关系运算符 关系运算是一种比较运算符两侧运算对象大小的运算,完成两个运算对象比较,运算结果为成立与不成立,用1和0表示。 关系运算符有以下6种: ,=,=,=,!=

      2、 关系运算符是双目运算符。其中前4种的优先级相同但要高于后2种,后2种优先级相同。所有6种运算符的优先级都高于赋值运算符,但都低于算术运算符。此6种关系型运算符均为左结合性。,2关系表达式 用关系运算符将运算对象连接起来的合乎C语言规则的表达式称为关系表达式。 例如: ab,3+7!=10,aa a+(b=a+) 都是合法的C语言关系表达式。 关系表达式的求解遵循表达式求解规则,关系运算的结果只有两种可能,要么关系成立为真(1),要么关系不成立为假(0)。,例如有整型变量a,b,且a3,b5, 求解表达式:aba 算术运算符“”的优先级高于关系运算符“”,因此先计算ab的值为8,之后运算8a,而a参加运算时需转换为整型数97运算,实际运算的是897,判断后其结果为不成立,表达式的运算结果为0。 若有关系表达式0x10,则其运算结果为逻辑量1。表达式中两个运算的优先级相同,于是首先运算0x,x的值无论是多少,运算结果只能是1或者0;然后要么运算110,要么运算010,其运算结果必然为1。,6.1.2 逻辑运算和逻辑表达式 1逻辑运算符 C语言中逻辑运算符一共有3个:&,|和!,其中“!”

      3、运算的优先级最高,仅次于小括号,为左结合性。“&”的优先级高于“|”,它们的优先级都低于关系运算符,高于赋值运算符。,2逻辑表达式 用逻辑运算符将逻辑量连接而形成的合乎C语言规则的表达式称为逻辑表达式。 参与逻辑运算的运算对象是逻辑量,在C语言中任意表达式都可以作为逻辑量来处理,具体处理规则是表达式值非0则为1,否则为0。逻辑运算的结果和关系运算一样,也是逻辑量。,例如有整型变量a3,b4,c5,求解表达式!(xa)&(yb)|0。 xa为赋值表达式,其值为变量的值。 原式!3&4|0 !3为逻辑运算要把3转化为逻辑量 0&4|0 04中要把4转化为逻辑量1 0&1|0 0|0 0,6.1.3 实际问题中逻辑量的描述 (1)图6.4所示x轴上阴影区间的数据描述,图6.4 逻辑量的表示示意图,从该图可知,x的值应该在1到2之间,其值既要满足x=1又要满足x=2,即x=1和x=2同时成立,两个过程同时成立其结果才成立,此运算为逻辑与,可得表达式x=1&x=2。注意,1=x=2是一个关系表达式,不能表示该区间。,(3)闰年问题 假定闰年为year,判定是否闰年的标准为:如果该年能被4整除且不

      4、能被100整除,或者该年能被400整除,则都为闰年。能被4整除且不能被100整除,可表示为 year%40&year%100!0; 能被400整除可表示为year%4000。两者只要有一者成立即为闰年,是逻辑或关系,闰年问题的表达式为 year%40&year%100!0|year%4000, 也可表示为!(year%4)&year%100|!(year%400),6.2.1 if语句的格式 if语句的格式为: if(逻辑量) 语句1 else 语句2 if和else是构成if语句的关键字,语句中的逻辑量是选择结构的条件, 表示else分支可有可无。 if语句的N-S流程图如图6.5所示。 语句1和语句2都只能是单条语句,如果在为真或为假的分支中需执行多个操作,应该使用复合语句将多个操作构成一条语句。语句1是选择结构必需的语句,else分支可有可无。,6.2 if语句,if语句是实现选择结构算法的具体语句。,图6.5 if语句的N-S流程图,使用if语句实现选择结构时,语句中的逻辑量对应于选择条件P,语句1对应于A操作,语句2对应于B操作。if语句执行时,首先判断逻辑量的值,如果逻辑量

      5、为1,执行语句1;如果逻辑量为0,执行else分支对应的语句2。,例6.2 求出两整数中的最大值。 根据流程图得到程序: main() int m,n; scanf(“%d%d“, ,图6.7 例6.2的流程图,使用if语句要注意以下几点。 (1)if语句是一条语句。 (2)逻辑量是if语句选择判断的条件,C语言中任意确定的值都可以作为逻辑量处理。 (3)逻辑量为1和为0的分支都只能是单条语句,如果要执行多个操作的话,应该将多个操作复合为单条语句才能出现在if的分支结构中。 (4)分支中出现的语句1是复合语句的时候,后不应该有“;”。 (5)语句中语句1是条件语句中必不可少的部分。 (6)正确理解if语句和N-S选择结构流程图的对应关系。,嵌套主要用于处理多条件的题目。设计嵌套选择结构时,应清晰描述各条件之间的约束关系。嵌套的if语句可以简单描述如下: 嵌入的if语句是在当外围的if语句的条件p1的逻辑量值为1时才可以执行,即其作为外围if语句的条件成立时的执行语句,嵌入在外围if内。当然语句1、语句2、语句3也可以是if语句,具体的嵌套形式和具体题目中的多条件是密切相关的, if语句

      6、的嵌套形式应建立在对具体问题的分析上。,6.2.2 if语句的嵌套及多条件结构的实现,例6.4 求函数中x为任意值时 y 的值。 由于if选择结构仅有两个分支,而此分段函数x的定义域为三分支,因此当确定x的关系表达式时,其中必然有一个分支包含另外两部分定义域,需在此基础上作进一步的条件判断。,根据流程图得到如下程序: main() main() float x,y; float x,y; scanf(%f, ,图6.9 例6.4的流程图 图6.10 例6.4的流程图2,6.2.3 条件表达式 条件运算符由两个符号“?”和“:”复合而成,此运算符为C语言中惟一的一个三目运算符,其优先级只比赋值运算符和逗号运算符高,结合性为从右到左。 条件表达式的一般格式为: 表达式1?表达式2:表达式3 其中表达式1是作为逻辑量处理的。 条件表达式中由于有条件限制,所以应先进行条件表达式的运算,根据条件表达式1表示的逻辑量值选取表达式2或表达式3的结果作为整个表达式的值。,其执行过程如下。 当表达式1的逻辑量值为1时,选取表达式2的结果作为整个表达式的值。 当表达式1的逻辑量值为0时,选取表达式3的结果

      7、作为整个表达式的值。 假定a5,b3,则表达式max (ab)?a:b 的求解过程如下:此表达式右边为一条件表达式,由于条件运算符的优先级高于赋值运算符,应先计算条件表达式的值,再通过赋值运算符把得到的值赋给max。在条件表达式中,首先计算表达式ab的逻辑量值,根据题意,ab表达式的逻辑量值为1,则a为条件表达式的结果,为5,那么条件表达式的值为5,可得max的值为5。,6.3 switch语句,如果题目中的多条件是有规律的,则可以采用switch语句来实现。switch语句称为分支语句,又称为开关语句。 switch的具体形式如下: switch(表达式) case 整型常量表达式1:语句组1 break case 整型常量表达式2:语句组2 break case 整型常量表达式n:语句组n break default :语句组n+1 switch,case,default和break都是构成多分支语句的关键字。 表示break可有可无。,其中表达式是任意类型的表达式,但运算结果会自动转换为整型。整型常量表达式只能由整型常量构成。break语句的作用是结束switch语句,执行swi

      8、tch的后续语句。语句组可以是单条语句,也可以是多条语句,多条语句无需用复合语句去表示。而在ifelse结构中的语句1和语句2只能是单条语句。 switch语句中的一对花括号是必须书写的,是switch语句构成的必要部分。,switch语句的具体执行过程为:根据switch表达式的值,寻找switch语句的执行入口。自上而下和case后的整型常量表达式的值进行比较,如果相等则执行其后的语句组,假定入口是整型常量表达式2,那么该语句执行语句组2,当语句组2执行完毕后,若有break语句,则中断switch语句的执行,否则继续执行语句组3;如果没有和表达式的值相匹配的整型常量表达式,则执行default后的语句组。 case后的整型常量表达式的值实际上就是switch后括号内的表达式的各种可能的取值。如果能穷尽表达式各种可能的取值,则语句中可省去default分支;否则最好不要省略default,因为default表示的是switch语句在没有找到匹配入口时的语句执行入口。,例6.6 输入一同学的成绩,判断其成绩等级。 等级范围为: 90 以上 等级为A 8980 等级为B 7970 等级

      9、为C 6960 等级为D 60 以下 等级为E,假定成绩为score,可以得到表达式(int)(score/10)。当表达式的值为10和9时,对应于90分以上的条件分支,为8时对应于8980分段的条件分支,以下的取值和对应的分支可以依次类推。60分以下可用switch中default分支来描述。程序如下: main() float score; scanf(%f, ,score/10中score得到的结果为浮点型,系统会自动转换为整型。常量表达式为10的分支,由于与9的分支均为A级,利用switch的特点可以不写值为10的分支对应的语句。,使用switch语句应注意以下几点。 (1)switch 语句中表达式可为任意类型,但运算结果为整型。case后的表达式必须是整型常量表达式。 (2)每个case后的常量表达式的值不能相同,否则会自相矛盾,无法判断。 (3)case及default的顺序对运行结果不产生影响。 (4)若无break语句进行switch语句的强制跳出,则从该处顺序执行其余语句,直至跳出或执行结束。 (5)case和其后的整型常量表达式中间应有空格,6.4 选择结构程序设计举例,例6.10 批发钢材,每吨批发金额为1000元,计算批发金额,批发折扣如表6-3所示。 表6-3 例6.10折扣表 表6-4 例6.10折扣规律表1,main() float t,d,m; scanf(“%f“, /*x9d是字符¥的ASCII码*/ ,main() float t,d,m; scanf(%f, ,

      《C程序设计 教学课件 ppt 作者 赵山林 6》由会员E****分享,可在线阅读,更多相关《C程序设计 教学课件 ppt 作者 赵山林 6》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.