南京大学:《C语言程序设计》课程教学资源(PPT课件)第五章 选择结构程序设计(姜恒远)

第5章选择结构程序设计
1 第5章 选择结构程序设计

在第四章中已学习过的表达式语句、赋值语句等都 是顺序执行的语句,用它们编出的程序一定是顺序执行 的。然而,要解决一个较为复杂的问题仅有这类顺序执 行的语句是不够的。例如要求任一实数的绝对值: X当X<0 X X当X≥0
2 在第四章中已学习过的表达式语句、赋值语句等都 是顺序执行的语句,用它们编出的程序一定是顺序执行 的。然而,要解决一个较为复杂的问题仅有这类顺序执 行的语句是不够的。例如要求任一实数的绝对值:

下面是求一个实数绝对值的一种算法: 读入x x≥0 X<0 x<0? X→zabs abs 输出x与xabs
3 下面是求一个实数绝对值的一种算法:

很明显,仅使用顺序执行的语句实现这种处理就比较 困难,因为它需要根据x的值,选择不同的分支处理。 为了解决这类程序设计问题,计算机程序设计语言 一般都提供相应的程序流程控制语句,用于控制程序执行 的顺序。 用程序设计语言按上述处理流程编出求x绝对值的程 序需要解决两个问题:首先,条件x<0的表示及判定;其 次,如何根据x<0的判断结果实现程序的控制转移。这正 是在本章中要讨论的内容。 在程序设计语言中,根据某个条件判断的结果,决定 程序的控制转移方式,称之为程序的选择控制方式
4 很明显,仅使用顺序执行的语句实现这种处理就比较 困难,因为它需要根据x的值,选择不同的分支处理。 为了解决这类程序设计问题 , 计算机程序设计语言 一般都提供相应的程序流程控制语句,用于控制程序执行 的顺序。 用程序设计语言按上述处理流程编出求x绝对值的程 序需要解决两个问题:首先,条件x<0的表示及判定;其 次,如何根据x<0的判断结果实现程序的控制转移。这正 是在本章中要讨论的内容。 在程序设计语言中,根据某个条件判断的结果, 决定 程序的控制转移方式,称之为程序的选择控制方式

51关系运算符与关系表达式 关系运算是对兩个操作数进行大小等同的比较运算, 比较的结果为成立不成立 在程序中,两个量之间的大小关系通常作为某种条件, 以决定程序执行的顺序或执行的操作。 、关系运算符 C语言定义的关系运算符有:
5 5.1 关系运算符与关系表达式 关系运算是对两个操作数进行大小等同的比较运算, 比较的结果为成立不成立。 在程序中,两个量之间的大小关系通常作为某种条件, 以决定程序执行的顺序或执行的操作。 1、关系运算符 C语言定义的关系运算符有:

>(大于) <(小于) (大于等于 (小于等于 (等于) !=(不等于) 注意 等于运算符==为连续两个等于号,主要为区别赋值 运算符=。在作相等判断时经常只写一个=,把相等判断 作为赋值运算,且不易发现。如i(x=7)错写成if(x-7), 原因是赋值会产生一个值
6 > (大于) = (大于等于) <= (小于等于) == (等于) != (不等于) 注意: 等于运算符 = = 为连续两个等于号,主要为区别赋值 运算符 = 。 在作相等判断时经常只写一个 = ,把相等判断 作为赋值运算, 且不易发现。如 if ( x==7 ) 错写成if ( x=7) , 原因是赋值会产生一个值

2、关系运算符的优先级和结合性 优先级: (高) 相同 (低)==! 相同 它们的优先级高于赋值运算符,低于算术运算符。 结合性:自左向右 3、关系表达式 由关系运算符、操作数(各种表达式)及小括号 组成的运算式
7 2 、关系运算符的优先级和结合性 优先级: (高) = 相同 (低) = = != 相同 它们的优先级高于赋值运算符, 低于算术运算符。 结合性: 自左向右 3、关系表达式 由关系运算符 、操作数(各种表达式)及小括号 组成的运算式

例如: a>3“ab!=ba=bb=c(错误)应写成a>(b=c) 关系表达式的值 关系表达式的值是逻辑值(真或假)。 条件成立时其值为1 条件不成立时其值为0 结果类型为:int C语言无逻辑型数据,非0为真,0为假。所以任 何表达式都可作条件,因它们都有值 两个操作数的类型不同时,自动转换成相同类型后 再进行比较
8 例如: a>3 ‘a’b!=b a==bb=c (错误) 应写成 a>(b=c) 关系表达式的值: 关系表达式的值是逻辑值(真或假)。 条件成立时其值为 1 条件不成立时其值为 0 结果类型为: int 两个操作数的类型不同时 , 自动转换成相 同类型后 再进行比较。 C语言无逻辑型数据 , 非0 为真 , 0 为假。所以任 何表达式都可作条件,因它们都有值

例 已知intx=2,y=1,z=0;判断以下关系表达式的值: X>V+1 >=y+1x>(y=2) 值0) (值1) 值0) (x=0,y=1,z2) (语法错)(值1) (值0) ≥y>x/语法正确,语义错误* (值0)
9 例: 已知 int x=2 , y=1 , z=0; 判断以下关系表达式的值: x>y+1 x>=y+1 x>(y=2) (值0) (值1) (值0) x>y=2 x>y==1 x==(x=0 , y=1 , z=2) (语法错) (值1) (值0) z>y>x /*语法正确,语义错误 */ (值0)

因浮点数的近似表示与计算误差问题,所以应避免对 浮点数做“—″、“!=″运算,理论上相等的两个数,可 能获得不等的比较结果。 若有 float x,a;需要判断:x=a时,通常用: fabs(x-a)0) 计算两个实数根} else 计算两个复数根}
10 因浮点数的近似表示与计算误差问题,所以应避免对 浮点数做“==”、“!=”运算,理论上相等的两个数,可 能获得不等的比较结果。 若有 float x , a ; 需要判断: x==a 时, 通常用: fabs(x-a)0 ) { 计算两个实数根 } else { 计算两个复数根 }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 南京大学:《C语言程序设计》课程教学资源(PPT课件)第九章 预处理命令(姜恒远).ppt
- 南京大学:《C语言程序设计》课程教学资源(PPT课件)第三章 数据类型、运算符与表达式(姜恒远).ppt
- 南京大学:《C语言程序设计》课程教学资源(PPT课件)第七章 数组(姜恒远).ppt
- 南京大学:《C语言程序设计》课程教学资源(PPT课件)第一章 C语言概述(姜恒远).ppt
- 清华大学:《数据结构》课程教学资源(PPT课件讲稿)第十章 搜索与散列.ppt
- 清华大学:《数据结构》课程教学资源(PPT课件讲稿)第九章 排序.ppt
- 清华大学:《数据结构》课程教学资源(PPT课件讲稿)第八章 图.ppt
- 清华大学:《数据结构》课程教学资源(PPT课件讲稿)第七章 集合与搜索.ppt
- 清华大学:《数据结构》课程教学资源(PPT课件讲稿)第六章 树与森林.ppt
- 清华大学:《数据结构》课程教学资源(PPT课件讲稿)第五章 递归.ppt
- 清华大学:《数据结构》课程教学资源(PPT课件讲稿)第四章 栈与队列.ppt
- 清华大学:《数据结构》课程教学资源(PPT课件讲稿)第三章 链表.ppt
- 清华大学:《数据结构》课程教学资源(PPT课件讲稿)第二章 数组.ppt
- 清华大学:《数据结构》课程教学资源(PPT课件讲稿)第一章 绪论(主讲:殷人昆).ppt
- 清华大学:《数据结构》课程教学资源(练习答案)第十章答案.doc
- 清华大学:《数据结构》课程教学资源(练习答案)第九章答案.doc
- 清华大学:《数据结构》课程教学资源(练习答案)第八章答案.doc
- 清华大学:《数据结构》课程教学资源(练习答案)第七章答案.doc
- 清华大学:《数据结构》课程教学资源(练习答案)第六章答案.doc
- 清华大学:《数据结构》课程教学资源(练习答案)第五章答案.doc
- 南京大学:《C语言程序设计》课程教学资源(PPT课件)第八章 函数(姜恒远).ppt
- 南京大学:《C语言程序设计》课程教学资源(PPT课件)第六章 循环控制(姜恒远).ppt
- 南京大学:《C语言程序设计》课程教学资源(PPT课件)第十一章 结构体与共用体(姜恒远).ppt
- 南京大学:《C语言程序设计》课程教学资源(PPT课件)第十三章 文件(姜恒远).ppt
- 南京大学:《C语言程序设计》课程教学资源(PPT课件)第十章 指针(姜恒远).ppt
- 南京大学:《C语言程序设计》课程教学资源(PPT课件)第四章 最简单的C程序设计——顺序结构程序设计(姜恒远).ppt
- 东北大学:《离散数学》课程教学资源(PPT课件讲稿)第四章 二元关系.ppt
- 东北大学:《离散数学》课程教学资源(PPT课件讲稿)第四章 二元关系.ppt
- 东北大学:《离散数学》课程教学资源(PPT课件讲稿)期末总复习.ppt
- 东北大学:《离散数学》课程教学资源(PPT课件讲稿)绪论、第一章 命题逻辑(主讲:许桂清).ppt
- 东北大学:《离散数学》课程教学资源(PPT课件讲稿)第二章 谓词逻辑.ppt
- 东北大学:《离散数学》课程教学资源(试题)2001级总本.doc
- 东北大学:《离散数学》课程教学资源(PPT课件讲稿)第三章 集合论基础.ppt
- 东北大学:《离散数学》课程教学资源(PPT课件讲稿)第三章 集合论基础.ppt
- 华中科技大学出版社:《深度探索C++对象模型》PDF电子书(候捷).pdf
- 21世纪高职高专规划教材:《计算机网络技术实训教程》PDF电子书(共八章)(史秀璋).pdf
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)课程简介.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第一章 初步知识.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第二章 数据类型、运算符、表达式.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第三章 结构化程序设计.ppt