C语言基本数据类型与表达式.ppt

上传人:tia****nde 文档编号:12805503 上传时间:2020-05-25 格式:PPT 页数:81 大小:410KB
返回 下载 相关 举报
C语言基本数据类型与表达式.ppt_第1页
第1页 / 共81页
C语言基本数据类型与表达式.ppt_第2页
第2页 / 共81页
C语言基本数据类型与表达式.ppt_第3页
第3页 / 共81页
点击查看更多>>
资源描述
2.1C语言的语法基础2.2C语言的基本数据类型2.3常量和变量2.4运算符与表达式2.5数据类型转换,第二章C语言的基本数据类型与表达式,2.1语言的语法基础,(4)特殊符号:通常由12个符号组成,主要用来表示运算符。,2.1.1、C语言字符集,C语言的基本符号可分4个类,归纳如下:,(1)英文字母:大小写各26个,共计52个;,(2)阿拉伯数:0、1、2、3、4、5、6、7、8、9共10个数字;,(3)下划线:_;,第二章2.1C语言数据类型,例如:,算术运算符:+-*/%+-,关系运算符:=,条件运算符:?:和赋值运算符:=,其他分隔符:().,;,2.1.2标识符(*),概念:就是用来标识变量名、符号常量名、函数名、类型名、文件名等的有效字符序列。,(1)标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。,定义规则:,如:_1yearmonthstudent_namesum0M.D.Jones$123#a3b?ca=b,(2)在C语言中,大小写字母不等效。因此,a和A,I和i,Sum和sum,分别是两个不同的标识符。,(3)用户自定义的标识符不能与保留字(关键字)同名。,保留字,2.1.3关键字,概念:就是具有特定含义的标识符,用户不能用来作自定义标识符。,C语言中的关键字较少,由ANSI标准推荐的关键字有32个。,(1)与数据类型有关的(14):charintfloatdoublesignedunsignedshortlongvoidstructuniontypedefenumsizeof,(3)与程序控制结构有关的(12):dowhileforifelseswitchcasedefaultgotocontinuebreakreturn,(2)与存储类别有关的:autoexternregisterstatic,2.2基本数据类型,5,整型数据,值为5,算术运算,0.5,实型数据,值为0.5,算术运算,原始数据,相同的特性,同一数据类型,数据分类、处理,2.2.1数据类型概述,三种表现形式:,十进制形式:与数学上的整数表示相同。例如:12,-100,0,八进制形式:在数码前加数字0。例如:012=1*81+2*80=10(十进制),十六进制形式:在数码前加0X(数字0和字母X,大小写均可)。例如:0 x12=1*161+2*160=18(十进制),2.2.2整型,十六进制的数码除了数字0-9外,还使用英文字母a-f(或A-F)表示10-15。如:0 x1e、0Xabcdef、0 x1000但:0X2defg、0 x100L都是错误的。,注意事项:,八进制的数码范围为0-7;则:018、091、0A2都是错误的数据表示方法。,2.2.3实型,二种表现形式:,十进制形式:由数字和小数点组成;,指数形式:由“十进制小数”+“e(或E)”+“十进制数整数”三部分组成。,例如:3.44.3,例如:12.5e-6表示12.510-6,十进制小数,e(或E),十进制数整数,注意事项:,小数点不能单独出现;,e或E的两边必须有数,且其后面必须为整数;,如:0.=.0=0=0.0.,如:6E0.2e56E,二种表现形式:,用单引号括起来的一个字符;,用单引号括起来的由反斜杠()引导的转义字符。,如:A、1、?等。,如:n101x41,在统计字符个数时,只能记为一个字符,只能是英文的单引号,2.2.3字符型,转义字符表,字符形式,功能,n,换行,t、V,横向跳格、,b、r,竖向跳格,退格、,f,回车,、,8进制数表示的ASCII码对应的字符,反斜杠、单引号、双引号,ddd,换页,xhh,16进制数表示的ASCII码对应的字符,一个字符的多种表示方法:,65D(十进制)=41H(十六进制)=101Q(八进制)字符A可以表示为A、x41、101、65、0 x41、0101。,要避免的错误:,表示单引号:表示双引号:表示斜线:,例2-1:,main(),printf(”abctderftgn);,printf(htibbjk);,/*注代表空格*/,设一个输出区占8列,试分析输出结果。,字符的值域:,即字符的取值范围。,0-127或0-255,ASCII字符表中的所有字符,每个字符型数据在内存中占一个字节,包括可显示字符和非显示字符。,2.3常量与变量,2.3.1常量与符号常量,1.直接常量:是在程序中直接引用的数据。,分为:整型、实型、字符型、字符串,以数据的原形出现!,2字符串常量,字符串常量在机器内存储时,系统会自动在字符串的未尾加一个“字符串结束标志”,它是转义字符0。该结束标志在内存中占用一个字节,但不记入字符串长度,在C语言中,用一对双引号括起来的零个或多个字符序列称为字符串。例如:”LiMing”、”Hello”。,字符串的长度是指该字符串的字符个数,不包括双引号。例如以上两个字符串的长度分别为6和5。,3.符号常量:,特点:在程序中不能给它赋值。,概念:是用标识符来表示一个数据。,定义形式:,#define标识符常量数据,例如:#definePI3.14159,在程序预处理时,凡是出现标识符PI的地方都将用数据3.14159来替换。,如:2*2.3*PI就等价于2*2.3*3.14159。,2.3.2变量,变量是指在程序运行中,其值可以被改变的量。,基本概念:,变量代表计算机内存中的某一存储空间,该存储空间中存放的数据就是变量的值。,在同一程序块中,每个变量都有唯一的名字,不能被重复定义。,使用变量时必须“先定义,后使用”。,inta,b,c;floatx,y;charc1,c2;或intc1,c2;,自己设定,满足标识符的规定。,如:int,float,char,;不可省,1.定义形式:,类型标识符变量名1,变量名2,变量名3,.;,例如:,2.整型变量,(1)整型变量的分类,基本型,以int表示。,短整型,以shortint表示,或以short表示。,长整型,以longint表示,或以long表示。,无符号型,其中无符号型又分为无符号整型,无符号短整型和无符号长整型,分别以unsignedintunsignedshortunsignedlong表示。,intx;longy;,2000,2001,2002,2005,x,y,内存,内存地址,2003,2004,(2)整型常量的类型在将一个整型常量赋给一个整型变量时如何进行类型匹配?,其值在-32768-+32767范围内,认为它是int型,它可以赋值给int型和longint型变量。,其值在-2147483648-+2147483647范围内,则认为它是longint型,可以将它赋值给一个longint型变量。,.短整型常量:,.长整型常量:,.如果某一计算机系统的C版本确定的shortint与int型数据在内存中占据的长度相同,,.常量中无unsigned型.,则它的表示范围与int型相同。,因此一个int型的常量也同时是一个shortint型常量,可以赋值给int型或shortint型变量。,但一个非负值的整常量可以赋值给unsigned型整常量,只要它的范围不超过变量的表示范围即可。,数据后加一个字母1或L,则认为是longint型常量.,.长整型常量的表示:,例如:1231,432L,0L等等。,这往往用于函数调用中,如果函数的形参为longint型,则要求实参也为longint型,此时用123作实参不行,而要用123L作实参。,main()intx;x=10*9*8*7*6*5*4*3*2*1;printf(%d,x);,例2-2,看看下面程序的输出是什么?,longintx;,%Ld,3、实型变量的分类,(1)整型变量的分类,单精度(float)型,双精度(double)型,(2)实例,2000,2003,2004,2011,x,y,内存,内存地址,例如:charc;c=a;c=034;c=n;c=x65;c=65;c=0101;c=0 x41;,4.字符变量,字符变量用来存放字符常量,注意一个字符变量只能存放一个字符。,一般以一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。,5.变量初始化,在说明变量的同时给变量一个初始值。,变量定义,分配存储空间,变量初始化,分配存储空间的同时存入数据,inta,b;,inta=1,b=2;,不确定,例2-3:看一看,下列的定义哪些是正确的?,inta=5,b=3;,inta=b=c=3;,inta,b,c;a=b=c=3;,例2-4:#definePI3.14159main()floats,r;scanf(%f,/*输出变量s的值(面积)*/,1s=3.14(共输出6个字符且有2位小数)2s=12.5664(共输出8个字符且有4位小数),运行结果,小结,1、数据类型的引入及意义,2、符号常量的定义形式和引入符号常量的意义,3、变量的定义、赋值、初始化,2.4运算符与表达式,运算符的分类,分类依据:运算符的功能,分类:,算术运算符,关系运算符,逻辑运算符,赋值运算符,按位运算符,其它运算符,参见附录2(296页):运算符的优先级和结合方向一览表,表达式:,是由操作数和运算符组成的序列。,一、算术运算符和算术表达式,1、算术运算符,+:加法,-:减法,*:乘法,/:除法,%:取余或模,3+51+1+3,3-51-1-3,3*5aba.b,3/5=03./5=0.63/5.=0.6,3%5=3a%b=a-n*ba、b必须为整数5%(-3)=5-(-1)*(-3)=2(-12)%(-5)=(-12)-2*(-5)=-2,2、算术表达式,用算术运算符和括符将操作数连接起来的式子。,优先级:,(),*/%,+-,结合性,自左向右,与数学上一致。,表达式的值:,数值型:int、long、unsigned、double,结合性是指同级运算时运算符的结合方向。如a#b#c(#代表某一运算符)若先运算a#b,再将其结果与c运算,称为左结合性;从左至右运算规则若先运算b#c,再将a与其结果运算,则称右结合性。从右至左运算规则,例2-5:已知:floata=2.0;intb=6,c=3;求解:a*b/c-1.5+A+abs(-5)=?,12.0/3,4.0-1.5,2.5,+65(int),67.5,5,72.5,3.自增与自减运算符(重点和难点),+i,-i,先增(减)1,再使用i,i+,i-,先使用i,再增(减)1,(1)单独使用时,+i;,等价,i+;,等价,i=i+1;,(2)j=+i;,(3)j=i+;,若i的初始值为3,i=4;j=4;,i=4;j=3;,结合性:,自右向左,例:,i=2;j=-i+;,分析:(1)+、-、+(正号)、-(取负)是同级运算符,结合方向:自右向左。,(2)-i+等价于-(i+),(3)对于括号内的自增运算,又要先使用i,再使i增加1。,运算结果:i的值为3,j的值为-2。,二、关系运算符和关系表达式,关系运算:比较运算,比较两个操作数,看是否满足给定的关系。,1、关系运算符,:小于,53,35,=:小于等于,53,35,=:大于等于,5=3,3=5,与数学上()不同,=:等于,5=3,与数学上(=)不同,!=:不等于,5!=3,与数学上()不同,2、关系表达式,用关系运算符将表达式连接起来的式子,优先级,=,高低,=!=,结合方向,自左向右,表达式的值,关系成立,即为真,结果为1;,关系不成立,即为假,结果为0;,算术运算符,高低,C语言中,真:非0值,假:0值,三、逻辑运算符和逻辑表达式,1、逻辑运算符,!:逻辑非,一元运算符,运算规则:取反,真,假,假,真,floatb=3.5;,!a,0,!b,0,ab=1;c=2;d=a+,d=(a+),运算结果:d=0,a=1,b=1,c=2,(1)ab=1;c=2;d=a+|b+|-c;,d=(a+)|(b+)|(-c);,运算结果:d=1,a=1,b=2,c=2,思考题:判断一个数n是否为奇数或偶数?判断一个字母c是否是英文字符?判断一个年份是否为闰年?判断一个数n是否被数k整除?判断三个数是否组成一个三角形?判断三个数是否组成一个等腰三角形?,四、赋值运算符和赋值表达式,1、赋值运算符,=(数学上的等号),功能:将一个表达式的值赋给一个变量。,2、赋值表达式,用赋值运算符将变量和表达式连接起来的式子,形式:=,求值规则:将“=”右边表达式的值赋给左边的变量。,结合性:自右至左,例2-9:,(1)x=(y=12)/4,y值为12,x值为3,表达式的值为3,(2)x=y=12/4,y值为3,x值为3,表达式的值为3,(3)x=(y=12/4),(y值为3,x值为3,表达式的值为3,(4)(x=y)=12/4,该赋值运算符左边不是变量,而是一个表达式,3、复合赋值运算符,*=、/=、%=、+=、-=、=、a+=a*=a;,五、条件运算符与条件表达式,有两个符号:?、:,它与三个操作数组成三元运算。,一般形式:,?:,求值规则和表达式的值:,求解表达式1,真(非0),求解表达式2,假(0),求解表达式3,表达式的值,优先级:,逻辑条件赋值,结合性:,自右至左,例2-11:,intmax,a=5;b=3;max=ab?a:b,-a=b+?a+:b+,y=x10?x/10:x0?x:-x;,形式:,逗号表达式1,逗号表达式2,逗号表达式n,求值规则:,从左至右依次计算各表达式的值,优先级,最低,结合性:,自左至右,表达式的值,最后一个表达式的值。,六、逗号运算符与逗号表达式,例2-12:,aby逗号表达式y=a=4,b=5,a+b;4549y=(a=4,b=5,a+b);4599y=(a=4,b=5),a+b;4559y=a=(4,b=5),a+b;55510,注意:,C语言常用逗号作为分隔符,例如:,inta=3,b=4,c=5;,printf(%d,%d,%d,(a,b,c);,printf(%d,%d,%d,a,(a,b,c),c);,七、位运算符,1.数的补码表示,计算机内部的数据和C语言的数据都是以补码表示的。补码的最高位为符号位,若为0,该数为正数;若为1,该数为负数。符号位与数值位一起参与运算。,正数的补码即其本身。负数的补码可这样求出:(1)先求该数的绝对值,再求出对应正数的二进制编码;(2)对二进制编码按位取反;(3)对最低位加1。,求-2的补码(以两个字节表示),(1)求-2的绝对值,|-2|=2,二进制编码为:0000000000000010,(2)按位取反得:1111111111111101,(3)最低位加1:1111111111111101,1,1111111111111110,2位运算符位运算符主要有:floaty=1.6;charc=A;,c+x*y=?,65(int),2(int),1.6(double),3.2(double),68.2(double),2、赋值转换,在赋值时,将赋值符右边值的类型转换成与其左边变量类型一致的类型。,几种情况:,(1)实型,整型(字符型),取整数部分,去掉小数部分,(2)整型、字符型,实型,补足有效位,floatf=23;23.00000(7位)doublef=A;65.00000000000000(16位),(3)对char、int、short、long、unsigned型数据,赋值符右边数据(a位),赋值符左边变量(b位),a=b原样照赋,ab截断高a-b位,送低b位,ab,无符号数据或正数,有符号数据,高a-b位全补0,有符号变量,符号扩展,符号扩展,符号位为0,剩余的高位补0,符号位为1,剩余的高位补1,3、强制转换,形式:,(类型名)表达式,注意:,强制类型转换时,得到所需类型的值,原来变量的类型和值都不变。,例:,inta=2,b=5;floatx=4.4;,(float)b/a,2.5,(float)(b/a),2.0,第二章小结,1、变量的定义,整型int(-32768+32767)long(-2147483648+2147483647)unsigned(0+65535),实型float,字符型char,2、自增自减运算符,a+b+c+,(a+)+(b+)+(c+),3、常见运算的优先级别(参见附录2),逻辑非!,算术运算符,关系运算符,逻辑与、或,逻辑与、或,赋值运算符,高低,
展开阅读全文
相关资源
相关搜索

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


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

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


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