好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

C语言ch041关系、逻辑和条件表达式.ppt

31页
  • 卖家[上传人]:鲁**
  • 文档编号:585796093
  • 上传时间:2024-09-03
  • 文档格式:PPT
  • 文档大小:577.52KB
  • / 31 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 2024/9/31上一节我们学到了n赋值表达式和赋值语句赋值表达式和赋值语句n=、、+=、左值、左值nprintf()n%d、、%f......nscanf()n&、、%lfngetchar()nputchar() 2024/9/32第四章 选择结构程序设计Conditional Operator and ExpressionsBranching 2024/9/33To be or not to be, this is a question. 2024/9/34n4.1 选择结构和条件判断选择结构和条件判断n4.2 用用if语句语句实现选择结构实现选择结构n4.3 关系关系运算符和关系表达式运算符和关系表达式n4.4 逻辑逻辑运算符和逻辑表达式运算符和逻辑表达式n4.5 条件条件运算符和条件表达式运算符和条件表达式n4.6 选择结构的嵌套选择结构的嵌套n4.7 用用switch语句语句实现多分支选择结构实现多分支选择结构n4.8 选择结构程序综合举例选择结构程序综合举例内容 2024/9/35关系运算符和表达式n>,,>=,,<,,<=,,==,,!=n大于,大于等于,小于,小于等于,等于,不等于大于,大于等于,小于,小于等于,等于,不等于n关系表达式(和逻辑表达式)的关系表达式(和逻辑表达式)的结果结果为为0和和1n0,表示假,即该关系不成立,表示假,即该关系不成立n1,表示真,即该关系成立,表示真,即该关系成立n在所有涉及到真假判断的地方,在所有涉及到真假判断的地方,0表示假,表示假,非非0表示表示真真n表达式非表达式非0 => 条件为真条件为真(true) 2024/9/36优先级 P3781.( ) [ ] -> .2.! ~ ++ -- +(正号正号) - * & (类型类型) sizeof3.* / %4.+ -5.<< >>6.< <= > >=7.== !=8.&9.^10.|11.&&12.||13.? :14.= += -= *= /= %= &= ^= |= <<= >>=15., 2024/9/37关系、算术、赋值运算符的优先级nint a = 3, b = 2, c = 1;nc>a+b n等效于等效于c>(a+b)na>b==c n等效于等效于 (a>b)==cna==bc n等效于等效于 a=(b>c)nwhile(c=getchar() != EOF)nwhile ((c=getchar()) != EOF)算术运算符算术运算符 (高高)赋值运算符赋值运算符 (低低)关系运算符关系运算符 2024/9/38分清== 和 =nint a = 1;if (a == 0)printf("OK");nint a = 0;if (a == 0)printf("OK");nint a = 1;if (a = 0)printf("OK");nint a = 0;if (a = 0)printf("OK"); 2024/9/39分清== 和 =nint a;a = 0;a == 1;nint a;a == 0;a = 1;n下面用法能起点小作用:下面用法能起点小作用:nint a = 0;if (0 == a)printf("OK");nint a = 0;if (0 = a)printf("OK");编译出错编译出错编译出错编译出错 2024/9/3104.4 逻辑运算符n逻辑运算,运算结果为逻辑运算,运算结果为1和和0n&&n与运算,只有左右都为真,结果才是真与运算,只有左右都为真,结果才是真n(a>b && b>c);a大于大于b,并且,并且b大于大于cn||n或运算,只有左右都为假,结果才是假或运算,只有左右都为假,结果才是假n(a>b || b>c); a大于大于b,或者,或者b大于大于cn!n求反,非求反,非n(!a);如果如果a是是0,结果非,结果非0,即,即1;如果如果a是是非非0,结果,结果是是0n并不改变并不改变a的值的值 2024/9/311修改后的逻辑运算真值表ab! aa && ba || b 非非0非非0011非非000010非非010100100 2024/9/312逻辑运算符的优先级n逻辑运算符的优先次序逻辑运算符的优先次序n! && || ((!为三者中最高)为三者中最高)n与其他运算符的优先次序与其他运算符的优先次序 ! (高)(高)算术运算符算术运算符关系关系运算符运算符 && 和和 ||赋值运算符赋值运算符 (低)(低) 2024/9/313逻辑表达式举例n若若a=4,则,则!a的值为的值为n0n若若a=4,,b=5,则,则a && b的值为的值为n1n a和和b值分别为值分别为4和和5,则,则a||b的值为的值为n1na和和b值分别为值分别为4和和5,则,则!a||b的值为的值为n1n4 && 0 || 2的值为的值为n1n5 > 3 && 8 < 4 - !0n0 2024/9/314n怎么表示怎么表示"如果分数如果分数80小于等于小于等于grade且小于且小于90,,则五则五分制分数为分制分数为A"??nif (80 <= grade < 90),错,错nif (grade>=80 && grade<90),对,对nif ((grade>=80) && (grade<90)),加括号最好,加括号最好n怎么表示怎么表示"如果字符型变量如果字符型变量c为为‘Y’或或‘y’"??nif (c == 'Y' || 'y'),错,错nif (c == 'Y' || c == 'y'),对,对 2024/9/315逻辑表达式的自动优化na && b && cn只有只有a为真(非为真(非0)时,才需要判断)时,才需要判断b和和c的值的值na || b || cn只要只要a为真(非为真(非0),就不需要判断),就不需要判断b和和c的值的值n例例nint a = 1, b = 2, c = 3, d = 4, m = 1, n = 1;n(m=a>b) && (n=c>d) 2024/9/316判断闰年n判别某一年是否闰年,用逻辑表达式表示判别某一年是否闰年,用逻辑表达式表示n闰年的条件是符合下面二者之一:闰年的条件是符合下面二者之一:P20①①能被能被4整除,但不能被整除,但不能被100整除,如整除,如2008②②能被能被400整除,如整除,如2000n(year % 4 == 0 && year % 100 !=0) || (year % 400 == 0)n如果表达式值为如果表达式值为1,则闰年,则闰年;否则为非闰年否则为非闰年 174.4.3￿逻辑型变量n与与C++C++或或JavaJava不同不同, , 没有没有booleanboolean类类型型 (in C89/C90) (in C89/C90)nin C99, in C99, 增加增加_Bool _Bool 类型类型n如果想用如果想用boolbool类型,使用类型,使用stdbool.hstdbool.h 2024/9/3184.5 条件表达式n条件表达式的一般形式为条件表达式的一般形式为n表达式1表达式1??表达式2表达式2: 表达式3表达式3n把把a和和b中的最大值赋值给中的最大值赋值给maxnif (a > b) max = a;else max = b;nmax = (a > b) ? a : b; n这种表达式切忌用得过于繁杂这种表达式切忌用得过于繁杂 2024/9/319条件运算符的执行顺序n表达式1表达式1??表达式2表达式2: 表达式表达式33n求解表达式求解表达式1n若为非若为非0(真)则求解表达式(真)则求解表达式2,此时表达式,此时表达式2的值的值就作为整个条件表达式的值就作为整个条件表达式的值n若表达式若表达式1的值为的值为0(假),则求解表达式(假),则求解表达式3,表达,表达式式3的值就是整个条件表达式的值的值就是整个条件表达式的值 2024/9/320优先级n( ) [ ] -> .n! ~ ++ -- + - * & (类型类型) sizeofn* / %n+ -n<< >>n< <= > >=n== !=n&n^n|n&&n||n? :n= += -= *= /= %= &= ^= |= <<= >>=n, 2024/9/321n结合方向为结合方向为"自右至左自右至左"n以下为合法的使用方法:以下为合法的使用方法:na>b ? (max=a):(max=b);na>b ? printf("%d",a): printf("%d",b); 2024/9/322n例例4.4 输入一个字符,判别它是否大写字母,如果是,输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母将它转换成小写字母;如果不是,不转换。

      然后输出最如果不是,不转换然后输出最后得到的字符后得到的字符include int main(void){ char ch; printf("请输入一个字符,按回车结束:请输入一个字符,按回车结束:"); scanf("%c", &ch); ch = (ch>='A' && ch<='Z') ? (ch+32) : ch; printf("%c\n", ch); return 0;} ifif (x % 2 ==0) y += x/2;n如果条件为真,执行如果条件为真,执行y += x/2;n否否则,什么也不做则,什么也不做2024/9/323 2024/9/324例4.2 输入两个实数,按数值从小到大的次序输出这两个实数#include int main(void){ float a, b, t; scanf("%f%f", &a, &b); if (a > b) { t = a; a = b; b = t; } printf("%5.2f,%5.2f\n", a, b); return 0;} 2024/9/325两整数交换na和和b交换,要求不占用额外内存空间交换,要求不占用额外内存空间n方法方法1::na = a + b;nb = a - b;na = a - b;n方法方法2::n位运算,自己完成位运算,自己完成 2024/9/326 例4.3 输入3个数a,b,c,要求按由小到大的顺序输出。

      n解题思路:可以先用伪代码写出算法:解题思路:可以先用伪代码写出算法:nif a>b,,a和和b对换对换 ((a是是a、、b中的小者)中的小者)nif a>c,,a和和c对换对换 ((a是三者中最小者)是三者中最小者)nif b>c,,b和和c对换对换 ((b是三者中次小者)是三者中次小者)n顺序输出顺序输出a,,b,,c排序问题 2024/9/327#include int main(void){ float a, b, c, t; scanf("%f,%f,%f", &a, &b, &c); if (a > b) // a是是a、、b中的小者中的小者 { t = a; a = b; b = t; } if (a > c) // a是三者中最小者是三者中最小者 { t = a; a = c; c = t; } if (b > c) // b是三者中次小者是三者中次小者 { t = b; b = c; c = t; } printf("%5.2f,%5.2f,%5.2f\n", a, b, c); return 0;}独占一行独占一行如果没有这个如果没有这个{},会发,会发生什么?生什么? 2024/9/328else关键字if (x%2 == 0) y += x/2; else y += (x+1)/2; n可选可选n如如果条件为假,执行第二个分支果条件为假,执行第二个分支y += (x+1)/2; 2024/9/329else if 关键字if (x%2 == 0) y += x/2; else if (x%4 == 1) y+= 2∗ ∗ ((x+3)/4);elsey += (x+1)/2; 2024/9/330这一节我们学到了n关系运算符和表达式关系运算符和表达式n>,,>=,,<,,<=,,==,,!=n=和和==的区别的区别n逻辑运算符和表达式逻辑运算符和表达式n&& || !n?:nif 2024/9/331作业nP111 习题习题3nP112 习题习题6nP112 习题习题12 。

      点击阅读更多内容
      相关文档
      2025国开山东开大《土质学与土力学》形成性考核123答案+终结性考核答案.docx 中学综合素质知识点梳理【中学教师资格证】.docx 2025国开山东开大《特许经营概论》形成性考核123答案+终结性考核答案.doc 2025年高考英语全国一卷真题(含答案).docx 2025国开山东《农民专业合作社创建与管理》形成性考核123答案+终结性考核答案.docx 2025国开山东开大《自然现象探秘》形成性考核123答案+终结性考核答案.docx 2025国开山东《消费心理学》形成性考核123答案+终结性考核答案.doc 2025国开山东《小微企业管理》形成性考核123答案+终结性考核答案.doc 2025国开山东开大《资本经营》形成性考核123答案+终结性考试答案.docx 2025国开山东《小学生心理健康教育》形考123答案+终结性考试答案.docx 2025国开《视频策划与制作》形考任务1-4答案.docx 2025国开《亲子关系与亲子沟通》形考任务234答案+期末大作业答案.docx 2025国开电大《煤矿地质》形成性考核123答案.docx 2025国开电大《冶金原理》形考任务1234答案.docx 2025国开《在线学习项目运营与管理》形考任务1234答案.doc 2025国开电大《在线教育的理论与实践》阶段测验1-4答案.docx 2024 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 环保工程师---2023 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 2025国开《液压与气压传动》形考任务一参考答案.docx 2025年春江苏开放大学教育研究方法060616计分:形成性作业2、3答案.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.