ImageVerifierCode 换一换
格式:PPT , 页数:35 ,大小:210.50KB ,
资源ID:18023708      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-18023708.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言数据运算.ppt)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

c语言数据运算.ppt

1、第 3 章 数据运算,计算机的基本功能是进行数据处理,而数据处理主要是通过对表达式的计算完成的。表达式是将运算量用运算符连接起来组成的式子,其中运算量可以是常量、变量或函数。由于运算量划分为不同的数据类型,每一种数据类型都规定了自己特有的运算或操作,这就形成了对应于不同数据类型的运算符集合及其相应的求值规则。,必须连接两个运算量的运算符称为二元运算符 a+b a%b a/b 只连接一个运算量的运算符称为一元运算符-a a+-b,3.1 算术运算,1.算术运算符,用算术运算符连接数值型的运算量而得到的式子。-5*3+6%4/2-1(a+b)/(a-b)a+(b+)*c,(1)求余运算的规则 假设

2、两个整数分别为a和b,则a%b=a-a/b*b 8%3=2,-8%3=-2,8%(-3)=2-8%(-3)=-2(2)自加(加1)自减(减1)运算+i 表示i=i+1-i 表示i=i-1,2.算术表达式,+或-可以用于前缀,也可以用于后缀。+n 表示先令n=n+1,然后取n的值/先运算后取值 n+表示先取n的值,然后令n=n+1/先取值后运算 如果前缀或后缀运算形成一条语句,其运算结果是相同的。例如,设 i=5,则 i+;及+i;运算后,i的值均为6。,100101101100,【例3-1】加1和减1运算。#include void main()int a=100;printf(%dn,a);

3、printf(%dn,+a);/前缀 printf(%dn,a-);/后缀 printf(%dn,a);,-+i-i+5*6%4/3 a+b-c 用圆括号可以提高某个运算符的优先级或结合性,但不允许使用方括号或花括号。x+y*s-a+4/5*32与(x+(y*(s-a)+4)/5)*32,3.算术表达式求值规则(1)算术运算符的优先级和结合性 优先级:不同的运算符同时出现在表达式中时,进行运算的优先次序 结合性:同一优先级的运算符同时出现在同一表达式中时,进行运算的顺序,-+i-i+5*6%4/3 a+b-c 用圆括号可以提高某个运算符的优先级或结合性,但不允许使用方括号或花括号。x+y*s-

4、a+4/5*32与(x+(y*(s-a)+4)/5)*32,【例3-2】算术表达式计算优先级和结合性规则。,#include void main()int a=3,b=5,c=15,d=2;printf(%dn,6-a*b/c%d);printf(%dn,+a-a+);printf(%dn,a);,C编绎系统先将所有的char和short int都转换成int,所有的float都转换成double。如果表达式中只含同类型的运算量,则直接进行运算,运算结果即表达式的值也是同类型的。3/2 值为1(整型)3.0/2.0 值为1.5(双精度型)A+B 值为131(int)型 如果表达式中含有不同运算

5、类型的运算量,先将精度较低的运算量转化成精度较高的类型,再与精度较高的运算量进行运算,得到的运算结果为精度较高的类型。,(2)自动类型转换规则,【例3-3】算术表达式计算自动类型转换规则,#include void main()char ch=a;int i=5;unsigned int j=6;long int k=12;float f=3.0;double d=6.0;printf(“%lfn”,ch/i+i*k-(j+k)*(f*d)/(f+i);,38.500000,ch/i+i*k-(j+k)*(f*d)/(f+i)int long long double double double

6、 long double double double-,表达式ch/i+i*k-(j+k)*(f*d)/(f+i)中含有多种类型的变量,根据优先级和结合性规则及自动类型转换规则进行计算,计算过程如图所示。,(3)强制类型转换规则,当算术表达式中需要违反自动类型转换规则,或者说自动类型转换规则达不到目的时,可以使用强制类型转换,其格式为:(类型关键字)(表达式)(double)a 强制将变量a转换成double型(int)(x+y)强制将表达式(x+y)的值转换成int型(int)x+y 强制将变量x转换成int型,然后与y相加其中包围类型关键字的圆括号必不可少。,使用强制应注意以下几点:(1)

7、在进行强制类型转换时,类型关键字必须用括号括住。例如(int)x不能写成int x。(2)在对一个表达式进行强制类型转换时,整个表达式也应该用括号括住。例如,(float)(a+b)若写成(float)a+b就只对变量a进行了强制类型转换。(3)在对变量或表达式进行了强制类型转换后,并不改变原变量或表达式的类型。例如,设x为float型,y为double型,则(int)(x+y)为int型,而x+y仍然是double型。(4)将float型或double型强制转换成int型时,对小数部分是四舍五入还是简单地截断,取决于具体的系统。VC+采用的是截断小数的办法。,2.500000 1 VC+对高

8、精度类型转换乘低精度类型增强了检查能力,因此,对float型变量用double型常数初始化将给出警告。,【例3-4】算术表达式计算强制类型转换规则。#include void main()int a=7,x=3,y=2;float b=2.5F,c=4.7F,z=3.5F;printf(%fn,b+a%3*(int)(b+c)%2/4);printf(%dn,(x+y)%2+(int)b/(int)z);,3.2 赋值运算,1.赋值运算符“=”和赋值表达式 v=e;/赋值语句 v=e/赋值表达式 赋值运算符:+=-=*=/=%=,前五种复合赋值运算符具有算术运算和赋值的双重功能;后五种复合赋值

9、运算符则具有位运算和赋值的双重功能。,2.赋值表达式的值和类型 在赋值表达式中,被赋值的变量得到的值就是赋值表达式的值,而被赋值的变量的类型就是赋值表达式的类型。例如,在形如 v=e的赋值表达式中,变量v的值就是该赋值表达式的值,变量v的类型也就是赋值表达式的类型。,#include void main()int a=-1;unsigned int b;b=a;/低精度转换成高精度 printf(%d%un,a,b);,#include void main()int a;char b;float c;c=2.5;/高精度转换成低精度 b=c;/高精度转换成低精度 a=b;/低精度转换成高精度

10、printf(%d,%d,%.1f,a,b,c);,2,2,2.5,-1 4294967295,3.赋值表达式中的数据类型转换 在v=e这样的赋值表达式中,当v和e的数据类型不一致时,C编译系统自动将e的类型转换成与v相同的类型后再赋值。【例3.53.6】赋值表达式中的数据类型转换。,【例3-7】复合赋值运算符和赋值表达式作为运算量。#include void main()int a=12;a+=a-=a*a;/赋值表达式作为运算量 printf(3%dn,a);,运行结果-264,3.3 逗号运算,1.逗号运算符(顺序运算符)用逗号运算符将几个表达式连接在一起就构成逗号表达式。a=3*5,a

11、*4,a+5;t=a,a=b,b=t;2.逗号表达式的值 逗号表达式中最右边的一个表达式的值视为逗号表达式的值。int a=5;a=3*5,a*4,a+5/该逗号表达式的值=?int a=5;a=(3*5,a*4,a+5)/该赋值表达式的值=?,【例3-8】逗号运算符及逗号表达式。#include void main()int c=5;printf(%d,%d,%dn,c+=c+,c+8,+c);c=5;printf(%dn,(c+=c+,c+8,+c);c=5;printf(%dn,c+=c+,c+8,+c);,(1)用一个逗号表达式语句可代替多个赋值语句,如 a=0;b=1;c=2;可写成

12、 a=0,b=1,c=2;(2)用一个逗号表达式语句可得到多个计算结果,如 y=10;x=(y=y-5,60/y);执行后,x的值为12,y的值为5。(3)当某些语法位置只允许出现一个表达式时,用逗号表达式可实现多个表达式的运算,例如后面要介绍的for循环:for(i=0,j=0;i8,j10;i+,j+)中的三个语法位置:循环变量赋初值、循环终止条件判断和循环变量增值都只允许一个表达式,用逗号表达式可实现两个或多个表达式的运算。,3.逗号表达式的应用,1.关系运算符,3.4 关系运算和逻辑运算,2.关系表达式,(1)用一个关系运算符连接两个算术或赋值表达式 a+b=c-d x=y score

13、90(2)用“=”或“!=”连接两个关系表达式 xy!=yz a+b=c+d关系表达式的值是一个逻辑值:逻辑真和逻辑假。逻辑真:1 printf(“%d”,32!=25);逻辑假:0 printf(“%d”,25=32);,【例3-9】关系表达式的计算。,#include void main()int x=8,y,z;y=z=x+;printf(%d,(xy)=(z=x-1);x=y=z;printf(%d,x);printf(%dn,x+=+y-z-);,0 1 1,3.逻辑运算符,4.逻辑表达式,用逻辑运算符连接关系表达式或任意数值型表达式。char ch=a;int x=5;ch=A&c

14、h=a&ch=0&x=x=0 25&-3 其值得1 0|356 其值得1!(-23)其值得0,1,【例3-10】逻辑表达式的计算和逻辑表达式的值。#include#define EOF 1 void main()int a=3,b=4,c=5;printf(%dn,3*(a+b)c,逻辑表达式的特殊计算问题 形如(表达式1)&(表达式2)&的逻辑表达式 计算到第一个为逻辑假的表达式,就可判定整个逻辑表达式为逻辑假,其后的表达式将不被计算。形如(表达式1)|(表达式2)|的逻辑表达式时 计算到第一个为逻辑“真”的表达式,就可判定整个逻辑表达式为逻辑“真”,其后的表达式将不被计算。,【例3-11】

15、逻辑表达式中的特殊计算规则。#include void main()int a=1,b=2,c=3,d=4,m=2,n=2;(m=ab),0 2,3.5 测试数据长度运算,C语言并不规定各种类型的数据占用多大的存储空间,这与宿主机器的硬件特性有关。为了能够确定某一种类型数据的长度,C语言提供了测试数据长度运算符sizeof,它的一般格式为:sizeof(exp)其中,exp可以是类型关键字、变量或表达式。其功能是给出exp所代表的数据类型、变量或表达式占用的内存字节数。sizeof(double),sizeof(x),sizeof(a+b),sizeof(3*1.46/7.28)sizeof是

16、一元运算符,它的优先级与+、-、&、等相同,结合性为从右至左。,【例3-12】用sizeof测试VC+6.0中各种数据类型的长度。#include void main()char ch=a;int x=5,y=6;float a=1.28f,b=3000.0f;printf(char:%dn,sizeof(ch);printf(short int:%d int:%d long int:%dn,sizeof(short int),sizeof(int),sizeof(long int);printf(float:%dn,sizeof(a);printf(double:%d long double

17、:%dn,sizeof(double),sizeof(long double);printf(int express:%dn,sizeof(x+y);printf(float express:%dn,sizeof(a+b);printf(character express:%dn,sizeof(a-0);,char:1short int:2 int:4 long int:4float:4double:8 long double:8int express:4float express:4character express:4,C 编译系统在标题文件math.h中定义了众多的数学函数。当需要调用这些数学函数时,要用#include 命令行包含该标题文件。下面列出的函数中,自变量x和y为double型,n为int型,所有的函数值均为double型,三角函数的自变量以弧度为单位,反三角函数的函数值以弧度为单位。,3.6 常用数学函数,知识点本章,知识点1:运算符的优先级和结合性 知识点2:算术表达式 知识点3:赋值表达式 知识点4:关系表达式和逻辑表达式 知识点5:逗号表达式 知识点6:条件表达式知识点7:测试数据长度运算符,

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2