C语言程序设计(十分详细)

上传人:wan****21 文档编号:245342385 上传时间:2024-10-08 格式:PPT 页数:46 大小:275KB
返回 下载 相关 举报
C语言程序设计(十分详细)_第1页
第1页 / 共46页
C语言程序设计(十分详细)_第2页
第2页 / 共46页
C语言程序设计(十分详细)_第3页
第3页 / 共46页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,C,数据类型及其运算,C,语言程序设计,2,C,语言的数据类型,C,数据类型,数组类型,结构体类型,共用体类型,枚举类型,整型,字符型,实型(浮点型),空类型,单精度型,双精度型,基本类型,指针类型,构造类型,3,整型数据,1整型数据的类型,基本整型数据,int,,,分配,2,Byte,短整型数据,short int,,,分配,2,Byte,长整型数据,long int,,,分配,4,Byte,整型数据均以,二进制补码,形式存储,问题:,为什么要采用补码?,如何表示?,4,计算机中正、负数的表示,例如:109(1101101),2,要区别:109 和 109,方法是:,将符号也数码化,即:正的符号,用,0,表示,负的符号,用,1,表示,计算机中的数表示方法是:,符号位,二进制数值,(,以 8,bit,为例,),109,110 1101,0,110 1101,109,110 1101,1,110 1101,5,2.有符号和无符号整型数据,有符号的整型数据,signed int,无符号的整型数据,unsigned int,区别是将,最高位,看作符号位还是数据位,例如:,1,111 1111 1010 1000,作为,有符号数,使用时,最高为符号位,为负数,值是:,-88,作为,无符号数,使用时,最高为数据位,为无符号的数,值是:,65448,6,例如:,main(),unsigned int m;,m=,65448,;,printf(nm=,%d,n,m);,printf(m=,%u,n,m);,输出结果:,m=,-88,m=,65448,按有符号数输出,按无符号数输出,7,整型数据的类型及规定,方括号表示可选项,int,分配,2,Byte,,,long,分配,4,Byte,类型名称,类型符,bit,取值范围,整型,(短整型),signed,int,signed,short,int,16,2,15,2,15,-1,(-32768,32767),无符号整型,unsigned,int,16,0,2,16,-1,(0,65535),长整型,signed,long,int,32,-2,31,2,31,-1,无符号长整型,unsigned long,int,32,0,2,32,-1,8,2.1.2 实型数据,1,实型数据的类型,单精度实型数据,float,,分配,4,Byte,双精度实型数据,double,,分配,8,Byte,2,实型数据的存储,单精度实型,指数部分,小数部分,小数的符号位,指数的符号位,9,实型数据的类型及规定,C,标准并未具体规定各种实型数据所占字节数,也不规定具体小数和指数部分的位数。,一般而言,小数部分位数多,数据表示的有效数字多,精度就高;而指数部分位数多,则表示的数据范围更大。,有效数字的意义?,类型,类型符,Byte,绝对值的范围,有效数字,单精度型,float,4,10,-3,8,10,38,7,位,双精度型,double,8,10,-30,8,10,308,15,位,10,字符型数据,字符型数据,char,,,分配,1,Byte,字符型数据是指字母、数字、各种符号等用,ASCII,值表示的字符,例如,a,是一个,char,类型数据,称作字符常量,存储:,单片机中常用,int,和,char,数据类型。,0 1 1 0 0 0 0 1,2.1.4,空类型,空类型,void,通常与指针或函数结合使用,11,常量、变量与标准函数,主要内容:,常量,变量,12,2.2.1 常量,在运行程序的过程中值保持不变的量,1整型常量,十进制,:09,八进制,:07,以,0,开头,十六进制,:09,,AF/af,,以,0,x,或,0,X,开头(,单片机编程常用,16,进制,),例如:,100 -8 0 +123,010 024 0100 073,0,x38 0 x10 0X10 0XFF 0 x0a,13,1.整型常量,整型常量的类型:,根据值大小默认类型。,整型常量后面加,l,或,L,,,则认为是,long int,型,例如:123,L,、0,L,、432,l,、0 x100,l,注意:,十六进制常量中可以使用大写字母,AF,,也可以使用小写字母,af。,八进制常量中不能出现数字 8 或 9,例如:,018,、,0921,非法,14,2.实型(浮点型)常量,十进制形式,1.0 1.+12.0 -12.0 0.0,指数形式,1,e3 1.8e-3 -123E-6 -.1E-3,等价于:110,3,1.810,-3,-,12310,-6,-,0.110,-3,指数只能是整数,而尾数则可以是整数也可以是小数,无论指数或尾数均不能省略,例如:,1,e,、,E.5,、,E-3,非法,实型常量的类型:默认为,double,型,后面加,F,(,或,f,),,则强调表示该数是,float,类型,例如:3.5,f,、1e2,F,15,3.字符型常量,可视字符常量,单引号括起来的单个可视字符,例如:,a,、,A,、,+,、,3,、,等,转义字符常量,单引号括起来的,与,可视字符,组合,例如:,0,字符串结束标志,n,回车换行,t,跳到下一个输出位置,双引号字符,ddd,ddd,为,1,到,3,位八进制数所代表的字符,xhh,hh,为1到2位十六进制数所代表的字符,16,4.字符串常量,用双引号括起的一个字符序列,例如:,ABC,、,123,、,a,、,nt,nGood morning,字符串常量的长度,:,所包含的字符个数,字符串常量的存储方式:,n,G,o,o,d,m,o,r,n,i,n,g,0,a,0,所占存储单元数:,串长度1,例如:,字符串,结束标记,17,5.符号常量,以标识符来代表的常量,事先编译预处理命令,define,定义,编译时先由系统替换为它所代表的常量,再进行编译,例如:,#,define,LEN,2.5,main(),float a,b;,a=2*3.14*,LEN,;,b=3.14*,LEN,*,LEN,;,printf(a=%f,b=%fn,a,b);,定义符号常量,使用符号常量,编译前系统进行替换,18,5.符号常量,main(),float a,b;,a=2*3.14*,2.5,;,b=3.14*,2.5,*,2.5,;,printf(a=%f,b=%fn,a,b);,define,是编译预处理命令,必须以“,#,”开头,替换为,19,变量,1.变量的有关概念,在程序运行过程中,其值改变的数据,称为变量,变量用标识符表示,称为,变量名,。,变量必须“先定义后使用”,系统为变量分配存储单元,存储变量的值。,编写程序时通过变量名来存、取,变量值,。,a,510,变量值,为变量分配的存储单元,变量名,例如:,有,变量a,它的值是5,10,20,变量定义,变量定义的一般格式:,数据类型说明符 变量列表,;,例如:,int i,j;,long k,m;,float x,y;,char ch1,ch2;,必须使用合法的标识符作变量名,不能使用关键字为变量命名,21,3.变量的初始化:,允许在说明变量的时候对变量赋初值。,例如:,int a=5,b=10+2;,double x=23.568,y;,char ch1=a,ch2=66,ch3=142;,表示定义变量并对变量存储单元赋值。,错误的初始化:,int a=3+b,b=5;,float m=n=23.16;,22,运算符和表达式,主要内容:,算术运算符和算术表达式,赋值运算符和赋值表达式,关系运算符和关系表达式,逻辑运算符和逻辑表达式,位运算符和位运算表达式,条件运算符和条件表达式,逗号运算符和逗号表达式,其他运算符及其运算,23,运算符的有关概念,作用:,对运算对象完成规定的操作运算,类型:,按运算对象分:,单目、双目、三目,按功能分:,算术、赋值、关系、逻辑,条件、逗号、位、其他,24,运算符的优先级和结合性,优先级,指各种运算符号的运算优先顺序,例如:,算术运算优先于关系运算,算术运算中先*/后+-,结合性,指运算符号和运算对象的结合方向,分为:从左向右(,左结合,)和从右向左(,右结合,),例如:,算术运算符为,左结合,a-b,+,4,赋值运算符为,右结合,a=b=5,(,C,语言规定见教材,),25,运算符,+-*/%,+-+-,=+=-=*=/=%=,&=|=,?:,&,sizeof,(,数据类型标识符),类型,种类,算术运算符,赋值运算符,关系运算符,逻辑运算符,位运算符,条件运算符,逗号运算符,其他运算符,26,表达式的有关概念,什么是表达式,由,运算符,将运算对象连接成的式子,它描述了一个具体的求值运算过程。,计算表达式的值,按照运算符的运算规则求值,求值时注意运算符的优先级和结合性,表达式值的类型,自动转换,强制转换,27,例如:,表达式:,150+b,*,2,12.456,b=(+a)-2,a/=a*=(a=2),f=abc,-,a|+b&c+,max=ab?a:b,a=3,a+=3,a*a,1/(,float)a+6,28,算术运算,算术运算符的优先级,(),+,-+-,*/%,+,-,同级 同级 同级,单目 双目,高,低,没有乘方运算符,,要计算,a,3,要写作,a*a*a,的连乘,或用标准库函数,pow(a,3),“,/,”,的运算对象可为各种类型数据,但是当进行两个整型数据相除时,运算结果也是整型数据,“,%,”要求运算对象必须是整型数据,功能是求两数相除的余数,余数的符号与被除数的符号相同。,29,自增自减运算,+,-,是,单目运算符,有前缀和后缀,两种形式,前缀形式:,先自增(自减)再引用;,后缀形式:,先引用再自增(自减);,功能:,前缀形式,+,a,等价于,a=a+1,-,a,等价于,a=a,1,后缀形式,a+,等价于,a=a+1,a,-,等价于,a=a,1,表达式的值会不同,30,例如:,当,a5,时,+a,表达式的值为,6,,且,a6,a+,表达式的值为,5,,且,a6,b=+a,等价于,a=a+1;b=a,表达式的值为,6,,且,a=6,b=6,b=a+,等价于,b=a;a=a+1,表达式的值为5,且,a=6,b=5,31,说明:,+,和,-,的运算对象只能是变量(或运算结果是变量的表达式),不能是常量(或运算结果是数值的表达式)。,例如:,5+,、,(,a+2)+,不合法。,具有右结合性,结合方向为从右到左。,例如:,a+,等价于,-(,a+),如果有多个运算符连续出现时,,C,系统尽可能多的从左到右将字符组合成一个运算符,例如:,i+j,等价于,(,i+)+j,-i+-j,等价于,-(,i+)+(-j),32,main(),int a=5;,printf(%d%dn,a,a+);,说明(续):,对函数参数的求值顺序:,Turbo C,系统先计算最右边的参数值,再依次计算左面的参数值。,【例,2.5,】有多个函数参数且为同一变量自增的运算处理。,输出结果:,6 5,运行例2.5,33,说明(续):,【例,2.6,】有多个函数参数且为同一变量多次自增的运算处理。,main(),int a=5;,printf(%d%dn,a,(a+)+(a+);,输出结果:,7 11,运行例2.6,34,赋值运算,赋值运算符,(右结合),=+=,-,=*=/=%=,&=|=,赋值表达式,将,表达式的值,存入,变量,对应的内存单元中,m=12,b=(+a)-2,m%=3+n,等价于,m=m%(3+n),x*=(x=5),35,说明:,赋值号左边必须是变量,右边可以是,C,语言任意合法的表达式,例如:,n=t+210,等价于:,a=,(,b=,(,(,b*c,),10,),),赋值号与数学中的等号含义不同,例如:,数学中,a=b,等价于,b=a,C,语
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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