欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > PPT文档下载
 

大学C语言实用教程第3章.ppt

  • 资源ID:11498236       资源大小:275.16KB        全文页数:33页
  • 资源格式: PPT        下载积分:9.9积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要9.9积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

大学C语言实用教程第3章.ppt

第3章数据运算,大学C语言实用教程,计算机的基本功能是进行数据处理,而数据处理主要是通过对表达式的计算完成的。表达式是将运算量用运算符连接起来组成的式子,其中运算量可以是常量、变量或函数。由于运算量划分为不同的数据类型,每一种数据类型都规定了自己特有的运算或操作,这就形成了对应于不同数据类型的运算符集合及其相应的求值规则。,必须连接两个运算量的运算符称为二元运算符a+ba%ba/b只连接一个运算量的运算符称为一元运算符-aa+-b,3.1算术运算,1.算术运算符,用算术运算符连接数值型的运算量而得到的式子。-5*3+6%4/2-1(a+b)/(a-b)a+(b+)*c,(1)求余运算的规则假设两个整数分别为a和b,则a%b=a-a/b*b8%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,【例】加1和减1运算。#includevoidmain()inta=100;printf("%dn",a);printf("%dn",+a);/前缀printf("%dn",a-);/后缀printf("%dn",a);,-+i-i+5*6%4/3a+b-c用圆括号可以提高某个运算符的优先级或结合性,但不允许使用方括号或花括号。x+y*s-a+4/5*32与(x+(y*(s-a)+4)/5)*32,3.算术表达式求值规则(1)算术运算符的优先级和结合性优先级:不同的运算符同时出现在表达式中时,进行运算的优先次序结合性:同一优先级的运算符同时出现在同一表达式中时,进行运算的顺序,【例】算术表达式计算优先级和结合性规则。,#includevoidmain()inta=3,b=5,c=15,d=2;printf("%dn",6-a*b/c%d);printf("%dn",+a-a+);printf("%dn",a);,C编绎系统先将所有的char和shortint都转换成int,所有的float都转换成double。如果表达式中只含同类型的运算量,则直接进行运算,运算结果即表达式的值也是同类型的。3/2值为1(整型)3.0/2.0值为1.5(双精度型)A+B值为131(int)型如果表达式中含有不同运算类型的运算量,先将精度较低的运算量转化成精度较高的类型,再与精度较高的运算量进行运算,得到的运算结果为精度较高的类型。,(2)自动类型转换规则,【例】算术表达式计算自动类型转换规则,#includevoidmain()charch=a;inti=5;unsignedintj=6;longintk=12;floatf=3.0;doubled=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)intlonglongdoubledoubledoublelongdoubledoubledouble-,表达式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)在进行强制类型转换时,类型关键字必须用括号括住。例如(int)x不能写成intx。(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.5000001VC+对高精度类型转换乘低精度类型增强了检查能力,因此,对float型变量用double型常数初始化将给出警告。,【例】算术表达式计算强制类型转换规则。#includevoidmain()inta=7,x=3,y=2;floatb=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/赋值表达式赋值运算符:+=-=*=/=%=>=,前五种复合赋值运算符具有算术运算和赋值的双重功能;后五种复合赋值运算符则具有位运算和赋值的双重功能。,2.赋值表达式的值和类型在赋值表达式中,被赋值的变量得到的值就是赋值表达式的值,而被赋值的变量的类型就是赋值表达式的类型。例如,在形如v=e的赋值表达式中,变量v的值就是该赋值表达式的值,变量v的类型也就是赋值表达式的类型。,#includevoidmain()inta=-1;unsignedintb;b=a;/低精度转换成高精度printf("%d%un",a,b);,#includevoidmain()inta;charb;floatc;c=2.5;/高精度转换成低精度b=c;/高精度转换成低精度a=b;/低精度转换成高精度printf("%d,%d,%.1f",a,b,c);,2,2,2.5,-14294967295,3.赋值表达式中的数据类型转换在v=e这样的赋值表达式中,当v和e的数据类型不一致时,C编译系统自动将e的类型转换成与v相同的类型后再赋值。【例3.53.6】赋值表达式中的数据类型转换。,-264,【例3.7】复合赋值运算符和赋值表达式作为运算量。#includevoidmain()inta=12;a=a-a*a;a=a+a;a+=a-=a*a;/赋值表达式作为运算量printf("%dn",a);,3.3逗号运算,1.逗号运算符(顺序运算符)用逗号运算符将几个表达式连接在一起就构成逗号表达式。a=3*5,a*4,a+5;t=a,a=b,b=t;2.逗号表达式的值逗号表达式中最右边的一个表达式的值视为逗号表达式的值。inta=5;a=3*5,a*4,a+5/该逗号表达式的值=?inta=5;a=(3*5,a*4,a+5)/该赋值表达式的值=?,【例】逗号运算符及逗号表达式。#includevoidmain()intc=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;可写成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;i<8,j=c-dx=yscore>90(2)用“=”或“!=”连接两个关系表达式x>y!=yy)=(z=x-1);x=y=z;printf("%d",x);printf("%dn",x+>=+y-z-);,011,3.逻辑运算符,4.逻辑表达式,用逻辑运算符连接关系表达式或任意数值型表达式。charch=a;intx=5;ch>=Aprintf("%dn",3*(a+b)>c,逻辑表达式的特殊计算问题形如(表达式1)(m=a>b),02,3.5测试数据长度运算,C语言并不规定各种类型的数据占用多大的存储空间,这与宿主机器的硬件特性有关。为了能够确定某一种类型数据的长度,C语言提供了测试数据长度运算符sizeof,它的一般格式为:sizeof(exp)其中,exp可以是类型关键字、变量或表达式。其功能是给出exp所代表的数据类型、变量或表达式占用的内存字节数。sizeof(double),sizeof(x),sizeof(a+b),sizeof(3*1.46/7.28)sizeof是一元运算符,它的优先级与+、-、intx=5,y=6;floata=1.28f,b=3000.0f;printf("char:%dn",sizeof(ch);printf("shortint:%dint:%dlongint:%dn",sizeof(shortint),sizeof(int),sizeof(longint);printf("float:%dn",sizeof(a);printf("double:%dlongdouble:%dn",sizeof(double),sizeof(longdouble);printf("intexpress:%dn",sizeof(x+y);printf("floatexpress:%dn",sizeof(a+b);printf("characterexpress:%dn",sizeof(a-0);,C编译系统在标题文件math.h中定义了众多的数学函数。当需要调用这些数学函数时,要用"#include"命令行包含该标题文件。下面列出的函数中,自变量x和y为double型,n为int型,所有的函数值均为double型,三角函数的自变量以弧度为单位,反三角函数的函数值以弧度为单位。,3.6常用数学函数,知识点本章,知识点1:运算符的优先级和结合性知识点2:算术表达式知识点3:赋值表达式知识点4:关系表达式和逻辑表达式知识点5:逗号表达式知识点6:条件表达式知识点7:测试数据长度运算符,

注意事项

本文(大学C语言实用教程第3章.ppt)为本站会员(max****ui)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!