- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北大裘宗燕《从问题到程序》第三章 变量、函数和控制结构
第三章变量、函数和控制结构 认识函数调用 包含一个/多个函数定义的程序模式: #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。 关系运算符的优先级低于二元算术运算符,高于赋值,分为两级:==、!= 低,其他运算符高。 关系算符自左向右结合,未规定对象计算顺序。 一般不采用连续写关系算符的形式(易误解),例: 5 = 3 = 2 条件表达式 关系式的结果是成立/不成立。描述逻辑判断/逻辑性质 关系成立,所描述的关系“真”,逻辑值“真”; 不成立时该关系“假”,逻辑值“假”。 程序用逻辑判断/逻辑值控制计算进程。 C语言中所有基本类型的值都可当作逻辑值用,规定: 值等于0表示逻辑值“假” 非0值都作为逻辑值“真” 条件运算符“?:”。条件表达式的语法形式: 表达式1 ? 表达式2 : 表达式3 语义(计算方式特殊): 先算表达式1(条件); 条件成立时算表达式2,以其结果作为条件表达式的值 条件不成立算表达式3,以其值作为条件表达式的值 注意:条件成立时不算表达式3;不成立时不算表达式2 函数 dmax 的定义: double dmax (double x, double y) { return x y ? x : y; } 例:z = dmax(2, 3) 注意它的计算过程。 符号函数 sign对应的C函数: double sign (double x) { return x 0 ? 1 : (x == 0 ? 0 : -1); } 条件表达式的优先级和结合顺序 每个 : 与前面最近的没有匹配的 ? 匹配 x 0 ? 1 : x == 0 ? 0 : -1 条件运算符的优先级高于赋值,低于关系运算符。 注意条件表达式的特殊计算方式。 下面例子没问题:当x值非0时,变量z将被赋予由y/x的值,否则z赋值1。 z = x != 0 ? y/x : 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 为便于
您可能关注的文档
最近下载
- 2025年【全国】汉字听写大会竞赛考试题(含答案).docx VIP
- 新高三第一次班主任会议,校长讲话:凝心聚力战高三,担当使命育栋梁.docx
- 《化学抛光和电解抛光》.ppt VIP
- 校园内施工安全教育课件.pptx VIP
- 某某村党群服务中心项目可行性研究报告.doc VIP
- 2023年电动自行车换电站相关项目可行性研究报告.docx VIP
- Q-CR 517.2-2023铁路工程喷膜防水材料 第2部分:喷涂橡胶沥青(OCR).pdf
- (王红)《遣戍伊犁日记》《叶柝纪程》录文.doc VIP
- 一种用硅藻土助滤剂废弃物制备纳米白炭黑的方法.pdf VIP
- 数字化转型之数据治理解决方案.pdf VIP
文档评论(0)