C语言程序设计第4章 选择结构.pptx

第 6章 数组第 7章 函数第 8章 结构体、共用体和枚举类型第 9章 指针第 10章 文件目录页 Contents page第 1章 初识 C语言第 2章 数据类型、运算符与表达式第 3章 顺序结构程序设计第 4章 选择结构第 5章 循环结构目 录 页第 4章选择结构 学习目标案例 目标u 熟悉 条件表达式的构成和运算规则u 掌握 逻辑推理与判断问题的数值化求解方法u 熟悉使用 if语句进行选择结构程序设计目 录 页第 4章选择结构 学习目标学习目标u 掌握关系运算和逻辑运算的运算规则u 掌握 if语句的 3种基本形式,及 if语句的嵌套方法u 掌握 switch语句的使用方法u 能够使用 if语句和 switch语句,进行选择结构程序设计目 录 页第 4章选择结构 案例 4 谁是盗贼【 问题描述 】公安人员审问四名盗贼嫌疑犯。已知,这四名人当中仅有一名是盗贼,还知道这四个人中每人要么是诚实的,要么是说谎的。在回答公安人员的问题中甲说 “乙没有偷,是丁偷的。 ”乙说 “我没有偷,是丙偷的。 ”丙说 “甲没有偷,是乙偷的。 ”丁说 “我没有偷。 ”根据这四人的答话,小明想了想,用笔在纸上画了画, 5分钟后作出答案是乙偷的。请问小明是怎么知道的,他的判断正确吗目 录 页第 4章选择结构 案例 4 谁是盗贼【 问题分析 】假设用变量 A、 B、 C、 D分别代表四个人,变量的值为 1代表该人是盗贼,为 0就不是盗贼。由题目已知四人中仅一人是盗贼,且这四人中每个人要么说真话,要么说假话,而由于甲、乙、丙三人都说了两句话 “X没有偷, Y偷了 ”,故不论该人是否说谎,他提到的两人之中必有一人是小偷。故在列条件表达式时,可以不关心谁说谎,谁说实话。这样,可列出下列条件表达式甲说 “乙没有偷,是丁偷的。 ” BD1乙说 “我没有偷,是丙偷的。 ” BC1丙说 “甲没有偷,是乙偷的。 ” AB1丁说 “我没有偷。 ” ABCD1目 录 页第 4章选择结构 案例 4 谁是盗贼【 算法设计 】1 定义四个变量 A、 B、 C、 D分别代表四个人,变量的值为 1代表是窃贼 ;2 根据对话,列出判断条件表达式bd 1 acd0 表达式( *)的值是否为真如果表达式( *)的值为真,则判断正确,否则小明的判断错误。目 录 页第 4章选择结构 案例 4 谁是盗贼【 算法设计 】参考代码如下include void mainint a,b,c,d;b 1; /*盗贼者是乙 */a c d 0; /*盗贼者不是甲、丙、丁 */ifbd1 else printf“小明的判断错误,盗窃者不是乙 n“;目 录 页第 4章选择结构 案例 4 谁是盗贼【 知识准备 】谁是盗贼的算法要点首先把问题进行数值化处理,根据对话列出条件表达式,最后用 C语言选择结构,计算表达式的值 , 验证小明给出的判断。本案例涉及到 C语言的条件表达式 ,以及选择结构。日常生活中,经常需要判断某一个 “条件 ”是否成立,并根据条件作出选择。要完成上面的任务,必须熟悉条件表达式的构成和运算规则 ,掌握逻辑推理与判断问题的数值化处理方法 ,熟悉使用 if语句进行选择结构程序设计。目 录 页第 4章选择结构 4.1 条件判断表达式4.1.1关系表达式1关系运算符关系运算是指对两个运算量之间大小的比较,关系运算的结果为逻辑值或称 “布尔 ”(boolean)值,其值只有两种可能 “真 ”或 “假 ”。 C语言中提供 6种关系运算符,如表 4-1所示。表 4-1 关系运算符目 录 页第 4章选择结构 4.1 条件判断表达式4.1.1关系表达式2关系表达式用关系运算符将两个表达式连接起来的式子称为关系表达式。其一般形式为例如,下面的关系表达式都是合法的。ab5,a b2, a b1目 录 页第 4章选择结构 4.1 条件判断表达式3. 关系表达式的值 -逻辑值( “真 ”或 “假 ”)在 C编译系统中,没有 “逻辑 ”类型数据,用 1和 0分别表示逻辑值的 “真 ”和 “假 ”。在进行判断时系统视非零值为 “真 ”,零值为 “假 ”;而关系运算的结果若为 “真 ”则其值为 1,若为 “假 ”则其值为 0,结果值是无符号整数,又可参与其后的运算。例如35 2*4 即判断( 3 5)是否等于( 2*4),结果值为 1。3 5-3 等价于 2355-3,结果值为 1。x 54 3 等价于先求 54结果为 1,再进行 1 3的比较 ,结果为 0, 即 关系运算的结果值为 0,最后将 0赋值给变量 x。目 录 页第 4章选择结构 4.1 条件判断表达式4.1.2 逻辑表达式关系表达式描述单一条件,例如 “x-5”,那么就要借助于逻辑表达式。1逻辑运算符逻辑运算是表示运算对象的逻辑关系。 C语言提供 3种逻辑运算符,如表 4-2所示。表 4-2 逻辑运算符目 录 页第 4章选择结构 4.1 条件判断表达式2. 运算规则逻辑运算真值表见表 4-3。即 当且仅当两个运算量的值都为 “假 ”时,运算结果为 “假 ”,否则为 “真 ”; 当运算量的值为 “真 ”时,运算结果为 “假 ”;当运算量的值为 “假 ”时,运算结果为 “真 ”。表 4-3 逻辑运算 “ 真值表 ”目 录 页第 4章选择结构 4.1 条件判断表达式3逻辑表达式用逻辑运算符( 功能如果表达式的值为 “真 ”(非 0) ,则执行语句 1;否则执行语句 2。其流程图如图 4-2所示。目 录 页第 4章选择结构 4.3 选择结构3多分支 if 语句格式 if表达式 1 语句 1else if表达式 2语句 2else if表达式 n语句 nelse 语句 n1功能 依次判断表达式的值,当出现某个值为真时,则执行其对应的语句,然后跳到整个 if语句之外继续执行程序。如果所有的表达式均为假,则执行语句 n1, 然后继续执行后续语句。目 录 页第 4章选择结构 4.3 选择结构4 if语句使用注意事项1 if后面的条件表达式必须用圆括号括起来。2 每个表达式后面的语句如果不止有一条 C语言语句时,必须用一对花括号 “”括起来组成复合语句;否则只能执行前面的一条语句 。例如 ifaba;belse a0;b1;3 表达式可以是任意类型的 C语言合法表达式,除常见的算术表达式、关系表达式或逻辑表达式外,也可以是其它表达式,如赋值表达式,甚至也可以是一个变量。目 录 页第 4章选择结构 4.3 选择结构4.3.2 if 语句的嵌套所谓 if 语句的嵌套,就是在 if语句中又包含了一个或多个 if语句。在 if语句中可根据需要,用 if语句的三种形式进行互相嵌套 。一般 形式如下1 嵌套在 if子句中if 表达式 if 语句else 语句 2;2 嵌套在 else子句中if 表达式 语句 1;else if语句目 录 页第 4章选择结构 4.3 选择结构4.3.3 条件运算符 “ ”为条件运算符,条件运算符有三个操作数,是 C语言中唯一的三目运算符。其连接的表达式为条件表达式。条件表达式的格式如下 功能 首先 计算表达式 1的值,如果表达式 1的值为非 0真 ,则整个条件表达式的值取表达式 2的值;否则,整个条件表达式的值取表达式 3的值。目 录 页第 4章选择结构 4.3 选择结构4.3.4 switch语句switch 语句是一个多分支结构的语句,它所实现功能与多分支 if语句很相似,但在大多数情况下, switch语句表达方式更直观、简单、有效。1. switch语句的语法格式switch case ;break;case ;break;case ;break;default ;break;目 录 页第 4章选择结构 4.3 选择结构2 switch语句执行过程switch语句执行过程可以用图 4-4表示。1 首先计算 switch后的表达式的值。2 然后将结果值与 case后的常量表达式值比较,如果找到相匹配的 case,程序就执行相应的语句序列,直到遇到 break语句 ,switch语句执行结束;如果找不到匹配的 case,就归结到default处,执行它的语句序列,直到遇到 break语句为止;如果没有 default,则不执行任何操作。其它其它常量表达式常量表达式 n常量表达式常量表达式 2常量表达式常量表达式 1语句序列语句序列 1 语句序列语句序列 2 语句序列语句序列 n 语句序列语句序列 n1表达式表达式图图 4-4 switch语句流程图语句流程图目 录 页第 4章选择结构 4.3 选择结构3. 使用 switch语句的注意事项1 switch后面的 “表达式 ”和 “常量表达式 ”必须是整数类型或枚举类型,如 int、 char、sbyte、 ushort、 short、 uint、 int、 ulong、 long。2 case后的 “常量表达式 ”必须互异,不能有重复,其中 default和 可以省略。3 switch语句中的 case和 default的出现次序是任意的,且 case的次序不要求按常量表达式的大小顺序排列。4 case后面的常量表达式仅起语句标号作用,必须在运行前就是确定的,不能改变的。系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以必须加上 break语句,以便结束 switch语句。目 录 页第 4章选择结构 4.4情景应用 案例拓展4.4.1案例 4-1判断闰年【 问题描述 】从键盘输入一个表示年份的整数,判断该年份是否为闰年,并显示判断结果。【 算法设计 】设 year为某一年份, year为闰年的条件是 year可以被 4整除且不可以被 100整除,或者year可以被 400整除,可用如下表达式来表示year4 0 printf“请输入年份 “;scanf“d“,if year4 0 打印是闰年else printf“d 不是闰年 .n“,year; 打印不是闰年目 录 页第 4章选择结构 4.4情景应用 案例拓展4.4.3案例 4-3计算某日是该年的 第几天【 问题描述 】要求编一个计算天数的程序,即从键盘输入当天的日期(年、月、日),在屏幕中输出此日期是该年的第几天。程序运行结果如图 4-5所示。图 4-5 计算今天是该年的第几天

四个人三人真一人假c语言,C语言程序设计第4章选择结构.pptx-资源下载在线文库www.lddoc.cn...相关推荐

  1. 1.第三章 选择结构(一)

    1.第三章 选择结构(一) 1.概念 A:嗨,我们晚上去吃个排骨汤吧 B:我现在牙还在疼,如果到晚上的时候不疼了我们就一起去 2. 什么是if选择结构 1.语法: if () { // 括号里必须是布 ...

  2. Java 第三章 选择结构

    第三章   选择结构 if基本语法: if(条件){// 表达式 // 代码块 } eg: int a = 10; if(a > 1){ System.out.println("内容& ...

  3. Java 北大青鸟 第一学期 第四章 选择结构(二) 上级练习+课后作业

    第一学期 第四章 选择结构二 示例1 实现购物菜单 实现换购的功能 本章练习一 计算器 下载地址 1. 选择结构 基本if选择结构 if(条件){条件成立时执行的代码} if-else选择结构 if( ...

  4. 第三章选择结构(一)

    一.boolean 类型: 值只有两个:true(真)和false(假) 二.常用的关系符: > < >= <= != == 作用:用来比较运算结果,值是boolean类型.. ...

  5. C Programming学习笔记【谭浩强老师编】(第四章选择结构程序设计)02 逻辑运算符和逻辑表达式

    文章目录 一.逻辑运算符和逻辑表达式 二.条件运算符和条件表达式 举例2.1 三.选择结构的嵌套 举例3.1 四.用switch语句实现多分支结构 举例4.1 举例4.2 五.选择结构程序综合举例 选 ...

  6. python基础第三章选择结构答案-零基础学Python--------第3章 流程控制语句

    第3章 流程控制语句 3.1程序的结构 计算机在解决某个具体问题时,主要有3种情况,分别是顺序执行所有的语句.选择执行部分语句和循环执行部分语句.程序设计中的3种基本结构为顺序结构.选择结构和循环结构 ...

  7. python基础第三章选择结构答案-Python days03-选择结构【if】

    编程基础:程序结构 通常情况下,代码为了模拟生活中的处理问题的方式/步骤,出现程序运行结构 1.顺序结构:按照从上到下的顺序,逐行解释执行代码! 2.选择结构:模拟生活中的选择条件,根据条件的结果来执 ...

  8. 第四章 选择结构(二)

    第一题: public static void main(String[] args) { //         Scanner scanner = new Scanner(System.in); / ...

  9. Java 北大青鸟 第一学期 第三章 选择结构(一) 上级练习+课后作业

    第一学期 第三章上级练习+课后作业 示例1(张浩的Java成绩) 示例2(张浩的Java成绩和音乐成绩) 幸运抽奖 会员录入 示例5 实例7 示例8 计算会员折扣 从大到小 飞机 运算符 总结 下载链 ...

最新文章

  1. 求高维方阵的绝对值最大特征值的方法:幂法(幂迭代)。
  2. python大神-国内某Python大神自创完整版,系统性学习Python
  3. 就是肝!计算机基础知识总结与操作系统 PDF 下载
  4. [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计
  5. C语言项目:扫雷大战精简版
  6. Linux Cpu 利用率计算
  7. 留学面试 计算机专业话题,英语面试_美国留学计算机专业详解_沪江英语
  8. Ansible(二)——基本环境的部署以及常用模块的使用
  9. css元素背景图片自适应屏幕大小
  10. 【WIN】【C++】遍历文件夹下所有文件
  11. 用英雄联盟的方式讲解 JavaScript 设计模式
  12. 过去分词和现在分词作非谓语
  13. 《禅者的初心》读书笔记(2)
  14. c语言中常量单双引号,C语言常量中字元与字串 除了单引号与双引号的区别外,还有什么不同。...
  15. 想玩 NAS? 群晖NAS 的选购 配件搭配以及硬盘 RAID指南
  16. CsvHelper文档-1前言
  17. 设计模式之禅(读后感悟随笔)-单一职责原则
  18. Dapr学习(2)之Rancher2.63(k8sk3s)环境安装Dapr
  19. 关于D-InSAR、SBAS-InSAR、PS-InSAR的奋斗史
  20. H3C防火墙基础配置2-配置安全策略

热门文章

  1. 字节跳动(头条)月薪 18k 招的人,有多特别?
  2. html图片显示变形,CSS完美解决前端图片变形问题的方法
  3. qnx挂死恢复脚本简易写法
  4. matlab中单独存图_奇怪的Matlab画图技巧系列1–保存高清大图
  5. 软件实施工程师常问数据库问题
  6. 【若泽大数据】MySQL参数详解
  7. 微信小程序-优化接口代码-提取公共接口路径
  8. 分布式人工智能:基于TensorFlow RTOS与群体智能体系(文末留言赠书)
  9. 《未来简史》六、动物被我们血腥奴役的今天,会不会是人类自己的明天
  10. 电子商务基础:中小企业建站方案和资源