
各类数值型数据间的混合运算 整型、单精度、双精度及字符型数据可 以进行混合运算。当表达式中的数据类型 不一致时,首先转换为同一类型,然后再 进行运算。C语言有两种方法实现类型转 换: 自动类型转换 ·强制类型转换 目标要求 进课提塌 讲课内客 课后作业 P44
目标要求 讲课提纲 讲课内容 课后作业 退出 整型、单精度、双精度及字符型数据可 以进行混合运算。当表达式中的数据类型 不一致时,首先转换为同一类型,然后再 进行运算。C语言有两种方法实现类型转 换: ◼ 自动类型转换 ◼ 强制类型转换 各类数值型数据间的混合运算 P44

●●● 自动类型转换 C编译系统自动完成,转换方向见图所示。 double float char ch;int i;float f;double d; 高 ch/i f*d (f+i) long int doubledouble int doubledouble unsigned 说明: double 必定的转换 低 int char,short double 运算对象类型不同时转换 图2.2 且标要求 讲课提坝 进课内 课后馆业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 说明: 必定的转换 运算对象类型不同时转换 int int double double double double double double ch/i + f*d - (f+i) char ch; int i; float f; double d; C编译系统自动完成,转换方向见图所示。 自动类型转换

强制类型转换 强制类型转换。 程序的运行结果是: main() x=4.500000,i=4 float x; int i; x=4.5; i=(int)x; /*强制类型转换*/ printf("x=%f,i=%d\n",x,i) 类型转换过程中,当数据类型由低向高转换时, 数据精度不会受到损失;而数据类型由高到低的转换, 此时,数据精度会受到损失。 且标要求(进课提,)讲课内字)( 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 强制类型转换 ◼ 强制类型转换是指通过强制类型转换运算符,将 表达式的类型强制转换为所指定的类型。 ◼ 强制类型转换运算符 : 一般形式:(类型名)(表达式) 例 (double)a (将a转换成double类型) (int)(x+y) (将x+y的值转换成整型) (float)(5%3) (将5%3的值转换成float型) 说明:强制转换得到所需类型的中间变量, 原变量类型不变。 强制类型转换。 main() { float x; int i; x=4.5; i=(int)x; /*强制类型转换 */ printf("x=%f,i=%d\n",x,i); } 程序的运行结果是: x=4.500000, i=4 类型转换过程中,当数据类型由低向高转换时, 数据精度不会受到损失;而数据类型由高到低的转换, 此时,数据精度会受到损失

《C语言程序设计》 第四章选择结构
《 C语言程序设计》 第四章 选择结构

关系运算符和关系表达式 ● 关系运算符 =、 结合方向:自左向右 优先级别: 优先级7(低) 关系表达式的值:是逻辑值“直”或“假”,用1和0表 例 int a=3,b=2,c=1,d,f; a>b /表达式值1 (a>b)==c /表达式值1 d=a>b /d=1 f=a>b>c /f=0 且标要求 进课提场 讲课内客 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 关系运算符和关系表达式 ◼ 关系运算符 ◼种类:=、 > 、!= ◼结合方向:自左向右 ◼优先级别: >= == != 优先级6(高) 优先级7(低) 例 c>a+b //c>(a+b) a>b!=c //(a>b)!=c a==bc //a=(b>c) ◼关系表达式的值:是逻辑值“真”或“假”,用1和0表 例示int a=3,b=2,c=1,d,f; a>b //表达式值1 (a>b)==c //表达式值1 d=a>b //d=1 f=a>b>c //f=0

逻辑运算符和表达式 逻辑运算符 种类:、&&、I 逻辑运算真值表 a b la b a&&b allb 真 真 假 假 真 真 真 假 假 真 假 真 假 真 真 假 假 亮 假 假 真 真 假 假 C语言中,运算量时:0表示“假”,非0表示“真”;做为运算 结果时:0表示“假”,1表示“真”。 且标要求 讲课提坝 进课内睿 课后馆业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 逻辑运算符和表达式 ▪ 逻辑运算符 ⚫ 种类: !、 &&、 || ⚫ 逻辑运算真值表 C语言中,运算量时: 0表示“假” ,非0表示“真”;做为运算 结果时: 0表示“假” ,1表示“真” 。 a b !a !b a&&b a||b 真 假 真 假 假 假 真 真 真 假 假 假 假 假 真 真 假 假 真 真 真 假 真 真

●●●● 逻辑运算符和表达式 ●●● ●优先级: ·结合方向: 1(非) (高) :从右向左 算术运算符 关系运算符 &&:从左向右 &&和川 :从左向右 赋值运算符 (低) (a>b)&&(x>y) 可写成a>b&&x>y (a==b)川(X==y) 可写成a==bllx==y (!a)(a>b) 可写成!ala>b 目标要求 进课提纲 讲课内客 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 逻辑运算符和表达式 ⚫优先级: ⚫结合方向: ! :从右向左 && :从左向右 || :从左向右 (a>b) && (x>y) 可写成 a>b && x>y (a==b)||(x==y) 可写成a==b||x==y (!a)||(a>b) 可写成 !a||a>b

第4章选择程序设计 ●●●● ◆ 短路现象:逻辑表达式求解时,并非所有的逻辑运算符 都被执行,只是在必须执行下一个逻辑运算符才能求出表 达式的解时,才执行该运算符。 例a&&b&&c ∥只在a为真时,才判别b的值: 只在a、b都为真时,才判别c的值 例ab ∥只在a为假时,才判别b的值: 只在a、b都为假时,才判别c的值 例 a=1;b=2;c=3;d=4m=1;n=1; (m=a>b)&&(n=c>d) /结果m=0,n=1 且标要求 讲课提坝 进课内 课后馆业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 ◼ 短路现象:逻辑表达式求解时,并非所有的逻辑运算符 都被执行,只是在必须执行下一个逻辑运算符才能求出表 达式的解时,才执行该运算符。 例 a&&b&&c //只在a为真时,才判别b的值; 只在a、b都为真时,才判别 c的值 例 a||b||c //只在a为假时,才判别b的值; 只在a、b都为假时,才判别 c的值 例 a=1;b=2;c=3;d=4;m=1;n=1; (m=a>b)&&(n=c>d) //结果m=0,n=1 第4章 选择程序设计

第4章 选择程序设计 f语句 f语句的形式 嵌套的f语句 由条件表达式构成的选择结构 且标要求 进课提纲 讲课内客 课后作业 K 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 第4章 选择程序设计 if语句的形式 嵌套的if语句 由条件表达式构成的选择结构 if语句

第4章选择程序设计 f语句 1、if-else结构 f-else构造了一种二路分支选择结构,是一种最基本的选择结构。 【格式】 if(表达式) 语句1 非0 表达式 else 语句2 或: 语句1 语句2 if(表达式) 语句1 else 语句2 例如:if(x>y) printf('max=%d”,x; if-else else printf("max=%d",y); 后续语句 且标要逑 讲课提场 进课内客 课后业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 第4章 选择程序设计 1、if-else结构 if-else构造了一种二路分支选择结构,是一种最基本的选择结构。 【格式】 if (表达式) 语句1 else 语句2 或: if (表达式) 语句1 else 语句2 例如:if (x>y) printf("max=%d",x); else printf("max=%d",y); if语句 表达式 语句 1 语句 2 非0 =0 if-else 后续语句