C语言第4章zxc2008
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
示例
若以x, 表示平面上一点的坐标 表示平面上一点的坐标, [例] 若以 ,y表示平面上一点的坐标, 判断点( , )是否落在图2. 所示的阴影 判断点(x,y)是否落在图 .1所示的阴影 区内,包括边界,其中内圆半径为1。 区内,包括边界,其中内圆半径为 。 对于 此问题来说,若点( , )落在阴影区内, 此问题来说,若点(x,y)落在阴影区内, 必须同时满足两个条件: 必须同时满足两个条件: (1)落在正方形内; (2)落在内圆之外。 )落在正方形内; )落在内圆之外。
使用条件表达式时,还应注意以下几点: 使用条件表达式时,还应注意以下几点: 条件运算符的运算优先级低于关系运算符、逻辑运算符和算术运算符, 条件运算符的运算优先级低于关系运算符、逻辑运算符和算术运算符, 但高于赋值符。 但高于赋值符。 条件运算符?和 是一对运算符 必须配对使用; 是一对运算符, 条件运算符 和:是一对运算符,必须配对使用; 条件运算符是从右到左结合。 条件运算符是从右到左结合。 a>b? a :c>d?c:d a > b ? a : ( c > d ? c : d) a > b ? c > d ? c: d: a a > b ?( c > d ? c: d): a
按照运算符的优先顺序可以得出: 按照运算符的优先顺序可以得出: a>b && c>d !b==c||d<a
a+b>c && x+y<b 等价于 ((a+b)>c) && ((x+y)<b)
4.2.2 逻辑表达式
用逻辑运算符将表达式或逻辑量连接起来的表达式叫做逻辑表达式, 用逻辑运算符将表达式或逻辑量连接起来的表达式叫做逻辑表达式, 其一般形式为: 其一般形式为: 表达式 逻辑运算符 表达式 其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。例如: 其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。例如: (a&&b)&&c 根据逻辑运算符的左结合性,上式也可写为: 根据逻辑运算符的左结合性,上式也可写为: a&&b&&c 逻辑表达式的值是式中各种逻辑运算的最终值 结果只能是“ 和 是式中各种逻辑运算的最终值, 逻辑表达式的值 是式中各种逻辑运算的最终值 , 结果只能是 “ 1”和 “0”,分别代表“真”和“假”。 ,分别代表“
4.5 选择结构
逻辑运算的值为“ 来表示。 逻辑运算的值为“真”和“假”两种,用“1”和“0 ”来表示。 两种, 和 来表示 而参与逻辑运算的量可以是0(表示假 或非0(表示真 表示假)或非 表示真)。 而参与逻辑运算的量可以是 表示假 或非 表示真 。其求值规则 如下: 如下: 与运算:表达式 表达式2。当表达式1 的值和表达式2的值 与运算:表达式1 && 表达式 。当表达式 的值和表达式 的值 为真时,整个与运算表达式的值为真;否则为“ 均 为真时,整个与运算表达式的值为真;否则为“假”; 或运算:表达式 表达式2。当表达式1 的值或者表达式2的值有 或运算:表达式1 || 表达式 。当表达式 的值或者表达式 的值有 一个真时,整个或运算表达式的值为真;当表达式1 一个真时,整个或运算表达式的值为真;当表达式 的值或者表 达式2的值都为假时则为 的值都为假时则为“ 达式 的值都为假时则为“假”; 非运算:!表达式。当表达式 的值为真时, 非运算:!表达式。当表达式1 的值为真时,非运算表达式的值 :!表达式 为假;当表达式的值为假时则为“ 为假;当表达式的值为假时则为“真”;
a>b?printf(“%d”,a): printf(“%d”,b);
[例]编写程序,从键盘接收一个字符并判断,若为大写字母则 编写程序,从键盘接收一个字符并判断, 将其转换为对应的小写字母,否则不处理。最后, 将其转换为对应的小写字母,否则不处理。最后,输出处理后的 字符。 字符。 #include<stdio.h> < . > void main() ( { char ch; ; ch=getche(); = ( ch = ( ’ A’<= && <= ’ Z’? ch+ ’ a’ - ’ A’: <=ch&& <=’ ? + <= &&ch<= : ch); ) putchar(ch); ( ) }
2&&3; -1||0; (x=4)||(y=2)<1; X=!6;
非0即真
逻辑表达式的值
表2.3 . 逻辑运算 x y !x !y X&&y 真 真 假 假 真 真 假 假 真 假 假 真 真 假 假 假 假 真 真 假 x || y 真 真 真 假
表2.4 逻辑运算(运算数和结果的差异) . 逻辑运算(运算数和结果的差异) x y !x !y x&&y x || y ≠0 ≠0 0 0 1 1 ≠0 0 0 1 0 1 0 ≠ 1 0 0 1 0 0 1 1 0 0
4.4.1 流程图符号
数据 处理 特定处理 准备 判断
循环上限 流程线
循环下限
连接符
端点符
注释
图1.l 流程图符号
4.4.2流程图表示算法
开始 变量定义
输入半径
计算面积、 计算面积、体积
输出面积, 输出面积,体积
结束
#include<stdio.h> #define PI 3.14 /*定义 值为 定义π值为 定义 值为3.14*/ main() {float r,area,volume; /*定义变量 为半径 定义变量r为半径 定义变量 为半径*/ printf("请输入半径 请输入半径:"); 请输入半径 scanf("%f",&r); /*输入一个半径值 输入一个半径值*/ 输入一个半径值 area=PI*r*r; /*面积公式 面积公式*/ 面积公式 volume=4.0/3*PI*r*r*r; /*体积公式 体积公式*/ 体积公式 printf("area=%f,volume=%f",area,volume); /*输出结果 输出结果*/ 输出结果 }
4.1.2关系表达式 4.1.2关系表达式
由关系运算符连接起来的表达式称为关系表达式, 由关系运算符连接起来的表达式称为关系表达式,如:a>6就 就 是一个关系表达式。具体讲, 是一个关系表达式。具体讲,当a=8时,此关系表达式的值为真。 时 此关系表达式的值为真。 表示关系表达式为真, 用1表示关系表达式为真,关系表达式的一般形式为: 表示关系表达式为真 关系表达式的一般形式为: 表达式 关系运算符 表达式 上述的一般形式中,表达式也可以是关系表达式,此时, 上述的一般形式中,表达式也可以是关系表达式,此时,则 出现了关系表达式的嵌套。 出现了关系表达式的嵌套。
[例] 阅读程序,其输出结果是_。 阅读程序,其输出结果是_。 include<stdio. #include<stdio.h> main() void main() 4, { int a = - 1,b = 4,k; ++<0)&&(!(b--<=0 (b--<= k=( a ++<0)&&(!(b--<=0)); printf( ,%d,%d );/* /*显示变量 printf(”%d,%d,%d” ,k,a,b);/*显示变量 值*/ } B. C. D. A.0,0,3 B.0,1,2 C.1,0,3 D.1,1,2
4.3 条件运Leabharlann 符和条件表达式条件语句是C语言独有的,它根据条件是否成立而赋予变量不同的值。 条件语句是 语言独有的,它根据条件是否成立而赋予变量不同的值。 语言独有的 它有效地增加了程序的效率。 它有效地增加了程序的效率。 条件运算符由以下两个字符?和 构成。它是C语言中唯一的三目运算 条件运算符由以下两个字符 和:构成。它是 语言中唯一的三目运算 即有三个元素参与运算。 符,即有三个元素参与运算。由条件运算符组成条件表达式的一般形式 为: 表达式1 表达式2 表达式3 表达式 ? 表达式 : 表达式 变量=表达式 表达式2 表达式3 变量 表达式1 ? 表达式 : 表达式 表达式 其求值规则为:如果表达式1的值为真 则把表达式2的值赋给变量 的值为真, 的值赋给变量, 其求值规则为 : 如果表达式 的值为真 , 则把表达式 的值赋给变量 , 否则把以表达式3的值赋给变量 的值赋给变量。 否则把以表达式 的值赋给变量。
例: 描述闰年的条件: 、能被4整除 但不能被100整除 整除, 描述闰年的条件:1、能被 整除,但不能被 整除 2、能被 、能被400整除 整除
(X%4==0&&x%100!=0) ||
(X%400==0)
[例 ]若 a=3,b=4,c=5,x是一个变量, 是一个变量, 试计算出下述表达式的值。 试计算出下述表达式的值。 )!(a (l)!(a>b)&& !c || 1 )!(x &&0 (2)!(x=a)&& b>c &&0 [例] 给出下述区间形式判断的表达式描述。 给出下述区间形式判断的表达式描述。 判定变量x是否属于[ 区间。 (1)判定变量x是否属于[3,6]区间。 判定变量x所存储的字符是否为小写字母。 (2)判定变量x所存储的字符是否为小写字母。
第4章 流程控制
退出
4.1 关系运算
4.1.1关系运算符
用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于 用于比较运算。 包括大于 、小于 、等于 、 (>=)、小于等于 和不等于(!=)六种。 六种。 、小于等于(<=)和不等于 和不等于 六种 优先级:低于算术运算符,高于赋值运算符。在六个关系运算符中, 优先级:低于算术运算符,高于赋值运算符。在六个关系运算符中, <,<=,>,>=的优先级相同,高于 和!=, 的优先级相同, 的优先级相同 高于==和 , ==和!=的优先级相同 和 的优先级相同
4.4三种基本程序结构 4.4三种基本程序结构 的流程图表示
结构是指一个模块内机器的处理流程。 结构是指一个模块内机器的处理流程。结构化是指程 序由顺序结构、选择结构和循环结构三种基本结构组成, 序由顺序结构、选择结构和循环结构三种基本结构组成, 它们的共同特点是只有一个入口和一个出口。 它们的共同特点是只有一个入口和一个出口。 Y P A A B 顺序 选择 图1.3 三种基本结构 B Y P N 循环 N A
#include "stdio.h" void main() { int a=23, x=2569; x=(a>6); printf("\n%06d,%6d,%+6d,%-6d,% 6d",x,x,x,x,x); } 注意:-5<x<=6
4.2逻辑运算
4.2.1 逻辑运算符
C语言中提供了三种逻辑运算符 语言中提供了三种逻辑运算符-------- && 语言中提供了三种逻辑运算符 || !。 &&和||为双目运算符,要求两个运算量。!为单目运算符,要求一个运 和 为双目运算符 要求两个运算量。 为单目运算符 为双目运算符, 为单目运算符, 算量。逻辑运算符和其它运算符优先级的关系可表示如下: 算量。逻辑运算符和其它运算符优先级的关系可表示如下: ! && || 优先于算术运算符和赋值运算符。 优先于算术运算符和赋值运算符。 优先于赋值运算符,但低于算术运算和关系运算。 优先于赋值运算符,但低于算术运算和关系运算。 等价于 (a>b) && (c>d) 等价于 ((!b)==c)||(d<a)
4.1.3逻辑值 4.1.3逻辑值
判断的结果:真(1),假(0)
X=1; Y=2; Y=(X=5+Y)>(Y- 3<1);
关系表达式的值
[例] 阅读程序,说明其输出结果。 阅读程序,说明其输出结果。 include<stdio. #include<stdio.h> main() void main() x= { int x= l,y= 0,z; printf( printf(”%d”,X== y); , /*显示表达式 x==y的值*/ /*显示表达式 ==y的值* <(y )+1 z= x-l>= y== 0<(y== 0)+1; printf( /*显示变量 printf(”%d”,x );/*显示变量z的值*/ , );/*显示变量z的值* }