- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数和控制结构
第三章变量、函数和控制结构 包含一个/多个函数定义的程序模式: #include … …… /* 函数定义写在这里 */ int main () { …… /* 主程序体,包含函数调用 */ } 建议写程序时采用这种形式。 3.4 关系表达式/逻辑表达式/条件表达式 已有机制的编程能力还很弱。 例如需要写一个函数,返回两参数中的较大值: double dmax (double, double) 需要: 比较数据大小(判断) 根据判断结果决定做什么(分情况处理) 本节主要讨论如何描述逻辑判断,判断的结果如何确定,怎样利用逻辑判断控制计算进程。 关系运算符/关系表达式 关系运算符共 6 个: = = 大于/大于等于/小于等于/小于 == != 等于/不等于 关系运算符可用于算术类型。 如果被比较对象的类型不同,按算术运算规则转换后再做判断。关系的成立与否(真/假): 3.2 = 2.9 y != x + 1 优先级低于二元算术运算符,高于赋值;==、!= 低于其他四个运算符。自左向右结合,未规定对象计算顺序。 关系表达式运算结果 C语言没有专门表示关系运算结果的类型,关系运算的结果为 int,成立/不成立时值分别是1/0。 (3.24 = 2.98) 的值是 int 类型的 0; (5 != 3 + 1) 的值是 int 类型的 1。 关系式的结果是成立/不成立,逻辑上的真/假。 C语言中所有基本类型的值都可当作逻辑值用,规定: 值等于0表示逻辑值“假” 非0值都作为逻辑值“真” 一般不采用连续写关系算符的形式(容易误解),例: 5 = 3 = 2 条件运算符“?:”。条件表达式的语法形式: 表达式1 ? 表达式2 : 表达式3 语义(计算方式特殊): 先算表达式1(条件); 条件成立时算表达式2,以其结果作为条件表达式的值 条件不成立算表达式3,以其值作为条件表达式的值 注意:条件成立时不算表达式3;不成立时不算表达式2 函数 dmax 的定义: double dmax (double x, double y) { return x y ? x : y; } 符号函数 sign对应的C函数: double sign (double x) { return x 0 ? 1 : (x == 0 ? 0 : -1); } 特殊的运算顺序: z = x != 0 ? y/x : 1; 当x值非0时,变量z将被赋予y/x的值,否则z赋值1。 复杂条件的描述:逻辑表达式 复杂关系,如: 3≤x≤5 时 z 取值 2,否则取值 1。 可用关系表达式和条件表达式描述: z = (x = 3 ? (x = 5 ? 2 : 1) : 1); 用关系表达式和条件表达式足以描述所有可能的复杂条件。但描述可能比较复杂,不太直观。 用逻辑运算符可直接描述多个条件同时成立/多个条件之一成立/某个条件不成立等复杂条件。 三个逻辑运算符: !、 和 ||表示 “否定”/“并且”/“或者” ! 是一元, 和 ||是二元。 !表达式 表达式看作逻辑值,以该值的否定为结果 表达式1 表达式2 两表达式的值都非0时,结果为1,否则为0。 表达式1 || 表达式2 两表达式的值都为0时,结果为0,否则为1。 z = (x = 3 x = 5 ? 2 : 1); 和||的计算方式:先算左边运算对象,如果可确定结果,右边运算对象将不计算。 逻辑表达式计算结果都是整型的 0 或 1。 否定的优先级同其他一元运算符; 优先级高于||,低于关系运算符。 例: x != 0.0 y/x 1.0 求值时不会出现除0问题。 例:根据运算符优先级关系,逻辑表达式: (((x+3)(y+z)) (y10)) || (y12) 写为下面形式意义不变。 x + 3 y + z y 10 || y 12 例:判断变量 year 的值是否表示闰年的年份。 year%4==0 year%100!=0 ||year%400==0 为便于阅读,可适当加括号。 人们常在程序里定义完成判断的函数。通常令判断函数返回1 / 0值(int)表示条件成立与否。 判断年份是否闰年的函数: int IsLeapYear (int year) { return (year%4==0 year%100!=0 || year%400 == 0 ? 1 : 0); } 逻辑表达式的值就是1和0。函数可简写为: int IsLeapYear (int year) { return (year%4==0 year%100!=0 || year
您可能关注的文档
- 94年资讯融入教学.ppt
- 新课程教学艺术与实践.ppt
- 教学艺术论—— 小学提问技巧的原则和方法.ppt
- 数位相机与教学即时应用.ppt
- 教学业务辅导材料.ppt
- 教学过程设计(第四章).ppt
- 构建新型教学结构.ppt
- 浅谈ABA实务教学经验分享.ppt
- 携手合作创新教学.ppt
- 2005年教学工作会议讲话.ppt
- 第五单元化学方程式单元测试卷(B卷提升能力)-2021-2022学年九年级化学上册单元AB卷(人教版)(原卷版).doc
- 专题05《骆驼祥子》整本书阅读(考试热点)35题-2023-2024学年七年级语文下学期期中专题复习.docx
- 专题16期末考试模拟(三).docx
- 特训02第4章平行四边形压轴题(浙江精选归纳).docx
- 专题50热学与电学综合计算题(原卷版).docx
- 3.1Unit3Computers测试卷(A卷夯实基础)-2021-2022学年八年级英语上册单元AB卷(牛津深圳版广州沈阳通用).doc
- 课时07.八年级上册Unit3-2023中考英语四轮总复习(学生版).docx
- 语文-九年级下学期开学摸底考试卷.docx
- 湖南省长沙市长沙县第一中学2024-2025学年高一上学期10月月考政治试卷.docx
- 专题08滑轮组机械能及其转化多项选择-2021年中考物理二轮专项复习核心考点必刷题.doc
文档评论(0)