欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    C语言第三章数据类型、运算符与表达式.ppt

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

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

    C语言第三章数据类型、运算符与表达式.ppt

    第三章 数据类型、运算符与表达式,第三章 数据类型、运算符和表达式,主要内容C语言的常量与变量C语言的基本数据类型各数据类型间的混合运算运算符和表达式,C语言的数据类型,我们上节课讲到:著名的计算机科学家N.Wirth提出:程序=数据结构(描述数据)+算法(描述操作)一个良好的程序,应当综合考虑算法和数据结构算法处理的对象是数据,而数据是以某种特定的形式存在的数据结构是指数据的组织形式,C语言的数据类型,C语言的数据结构是以数据类型形式出现的,常量和变量,一、基本字符集字符,是组成语言的最基本元素,允许出现在C语言源程序的所有字符的集合,称为字符集。字母:az,AZ 数字:09 特殊字符:控制字符、分隔符、运算符,常量和变量,二、关键字关键字,也叫做保留字,是指在C语言中具有特定的含义的字符,它们由系统定义,不能做为他用。,C语言中的一共有32个关键字:,常量和变量,三、标识符用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符。也就是说,标识符是一个名字C语言中的标识符只能由字母、数字和下划线组成而且第一个字符不能是数字不能将关键字作为标识符,常量和变量,C语言中的标识符只能由字母、数字和下划线组成而且第一个字符不能是数字,问题:下面四个选项中,均是合法的标识符的选项是(A)a1 b!12_e(B)min f12 1x(C)a int PI(D)x2 m_nsum min,常量和变量,标识符的注意事项C语言区分大小写,大小写不同的标识符是不同的例如:Student和student是两个不同的标识符标识符的长度有限制,要注意开发环境的限定Turbo C 允许的标识符的最大长度是32标识符的命名用有意义的单词组合如:Stu_Num表示学号,不要一味地用a,b,c等简单标识符名,常量和变量,三、常量常量:在程序的运行过程中,其值不能被改变常量的分类:,0、-2、123,0.2、4.8、1.3e20,A、g、+、?,(用标识符表示的常量),/*Constant example*/#define PRICE 30 main()int num,total;num=10;total=num*PRICE;printf(total=%d,total)运行结果:total=300,常量和变量,使用符号常量的优点:含义清晰(定义时要注意采用合适的常量名)一改全改,/*Constant example*/#define PRICE 30 main()int num,total;num=10;total=num*PRICE;printf(price=%d,total=%d,PRICE,total)运行结果:price=30,total=300,/*Constant example*/#define PRICE 25 main()int num,total;num=10;total=num*PRICE;printf(price=%d,total=%d,PRICE,total)运行结果:price=30,total=300,/*Constant example*/#define PRICE 25 main()int num,total;num=10;total=num*PRICE;printf(price=%d,total=%d,PRICE,total)运行结果:price=25,total=250,用指定的字符串PRICE来代替“25”,在预编译处理时会将程序中所有“PRICE”用“25”代替,替换时是做简单地置换,不作正确性检查,常量和变量,使用符号常量的优点:含义清晰(定义时要注意采用合适的常量名)一改全改,/*Constant example*/#define PRICE 25 main()int num,total;num=10;total=num*PRICE;printf(“price=%d,total=%d”,PRICE,total);运行结果:price=25,total=250,宏定义(参见第十一章),常量名一般用大写字母,#define命令出现在函数外有效范围是从定义处到源文件结束,宏定义不是C语句,不需要分号,常量和变量,使用符号常量的优点:含义清晰(定义时要注意采用合适的常量名)一改全改,/*Constant example*/#define PRICE 25 main()int num,total;PRICE=50;num=10;total=num*PRICE;printf(price=%d,total=%d,PRICE,total)运行结果:price=25,total=250,常量不能被再次赋值,编译时,简单地将“PRICE”替换成“25”,此语句被替换成:25=50,常量和变量,四、变量变量:在程序的运行过程中,其值可以被改变的量变量必须用有效的标识符作为名字变量名实际上是存放变量值的存储单元地址的抽象,int sum;,sum,sum=0;,sum=sum+1;,常量和变量,四、变量C语言要求对所有变量:先定义,后使用(强制定义),保证程序中的变量名使用正确如:程序在声明部分声明变量student:int student;在执行部分错写成studant:studant=30;在编译的时候会检查出studant未定义,不做为变量名,编译时分配相应的存储单元编译时可以检查该变量所进行的运算是否合法如:在程序的声明部分做了如下定义:int a;float b;在程序的执行部分有下面运算:a%b,编译时会给出相关的出错信息,类型说明符 变量列表,int number,整型数据,一、整型常量的表示十进制如:123,-123,0八进制(以 0 开头)如:0123 表示十进制数83十六进制(以 0 x 开头)如:0 x123表示十进制数291,整型数据,二、整型变量在内存中的存储整型变量在内存中是以二进制补码的形式存放的,int i=10;,int j=-10;,整型数据,三、整型变量的种类基本类型:int根据数值的范围分为:int,short,long根据有无符号(singed/unsigned)及范围可分:,整型数据,四、整型变量的定义变量定义放在函数开头的声明部分或者函数中某一分程序开头的声明部分。,main()int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(c=%d,d=%d,c,d);,main()int a,b;unsigned u;a=12;b=-24;u=10;int c,d;c=a+u;d=b+u;printf(c=%d,d=%d,c,d);,Compiling c:ex3-2.cError.5:Expression syntax in function mainError.6:Undefined symbol c in function mainError.7:Undefined symbol d in function main,main()int a,b;unsigned u;a=12;b=-24;u=10;int c,d;c=a+u;d=b+u;printf(c=%d,d=%d,c,d);,整型数据,五、整型数据的溢出一个int型变量允许的最大值是32767,当给32767加1时:,main()int a,b;a=32767;b=a+1;printf(a=%d,b=%d,a,b);,整型数据,五、整型数据的溢出一个int型变量允许的最大值是32767,main()int a,b;a=65544;b=a+1;printf(a=%d,b=%d,a,b);,整型数据,六、整型常量的类型一个整数,若值在-3276832767范围内,认为是int型一个整数,若在-21474836482148473647范围内,而超过了-3276832767的范围,认为是long int型一个整数,后面加一个字母u或U,认为是unsigned int型如:12345u一个整数,后面加一个字母l或L,认为是long int型如:12345L,实型数据,一、实型常量的表示十进制小数形式如:.123 123.0.123 0.0指数形式如:123e3 123E3 1.23e5注意:e的前面必须有数字,后面必须是整数如:e32 1.23e2.3 e 都是不合法的,实型数据,二、实型变量在内存中的存储实型变量在内存中以指数的形式存放,一般占4个字节,float f=3.14159;,3.14159=0.314159 101=0.1100100 10000111 11100111 101,阶码,小数部分,数符,阶符,实型数据,三、实型变量的种类基本类型:float根据数值的范围分为:float(单精度型)double(双精度型)long double(长双精度型),main()float a,b;a=12345.6789e5;b=a+20;printf(a=%fnb=%f,a,b);,实型数据,四、实型常量的类型C编译系统将一个实数做为double类型处理,main()double a;float b;a=2.45678*4523.65;b=2.45678*4523.65;printf(a=%fnb=%f,a,b);,先计算出2.45678*4523.65=1113.612847然后将前7位数赋值给float型的b,实型数据,四、实型常量的类型C编译系统将一个实数做为double类型处理可以在实数后面加f或F,表示float型实数,编译系统会按单精度实数(32位)处理如:123.456f 456.789F,字符型数据,一、字符常量的表示用单引号括起的单个字符如:a B?用“”开头的转义字符,012 或 xa 表示ASCII码为10的“换行”101 或 x41表示ASCII码为65的字母A000 或 x00 表示ASCII码为0的“空操作”字符,字符型数据,二、字符变量在内存中的存储一个字符变量只能存放一个字符定义形式:char c1,c2;赋值:c1=a;c2=n;字符数据在内存中以ASCII码(二进制)的方式存储占一个字节,字符型数据,一、字符变量在内存中的存储字符数据可以和整型数据通用,main()char ch1,ch2;ch1=97;ch2=98;printf(%c,%cn,ch1,ch2);printf(%d,%dn,ch1,ch2);,字符型数据,一、字符变量在内存中的存储字符数据可以和整型数据通用,main()char ch;int i;ch=97;i=a;printf(%c,%dn,ch,ch);printf(%c,%dn,i,i);,字符型数据,一、字符变量在内存中的存储字符数据可以和整型数据通用,main()/*大小写字母转换*/char c1,c2;c1=A;c2=c1+32;c1=c1+3;printf(%c,%dn,c1,c1);printf(%c,%dn,c2,c2);,问题:已知换行的ASCII码值为10,则下列正确表示换行符的方法是:(ch是字符型变量)(A)ch=n;(B)ch=10;(C)ch=12;(D)ch=x10;(E)ch=xa;(F)ch=10;,字符型数据,字符型数据,二、字符常量的表示,main()printf(ab ct derftgn);printf(“htibbj k”);,显示器,a b c d e,f,h i,j,显示器显示结果的特点:向回返的特殊符号(r b等),并没有清除原有的内容向前进的特殊符号(t空格)或字符修改了原有的内容,字符型数据,三、字符串常量字符串常量是一对双撇号括起来的字符序列如:Hello Word!a 123.4546e3 注意:“a”和 a 的区别 char c;c=a;c=a;,O,字符型数据,四、字符串常量的存储C语言将字符0作为字符串的结束标志,0是系统自动加上的,写字符串的时候不必加0,O,C 语言的运算符,C 语言的运算符运算符是描述对数据进行特定运算的符号,C 语言的运算符,学习运算符应注意的问题:运算符的功能与运算量的关系要求运算量的个数(单目运算符?双目运算符?)要求运算量的类型(整型?实型?字符型?其他类型?)运算符的优先级别结合方向(从左至右?从右至左?)运算结果的类型,C 语言的表达式,C语言的表达式运算符与运算对象连接在一起就构成了表达式,赋值运算符和赋值表达式,简单的赋值运算符:符号:=格式:变量标识符=表达式将一个表达式的值(或一个常量的值)赋给一个变量结合方向:从右至左注意:左边必须是变量,不可以是表达式,赋值运算符和赋值表达式,变量赋初值:C语言允许定义变量的同时使变量初始化,变量数据类型变量名变量初值;变量数据类型变量名;变量名变量初值;,若同时给几个变量赋值:,int a=5,b=5,c=5;,赋值运算符和赋值表达式,类型转换:将实型值赋值给整型变量时,舍弃小数部分将整型赋值给实型变量时,数值不变,以浮点形式存储到变量中将double型值赋值给float型变量时,截取前面7位有效数字将一个数值(整型或实型)赋值给一个字符型变量时,将数值的低8位赋值给字符变量即可,int a;a=2.845;/*a被赋值2*/,int i;char c;i=289;c=i;printf(i=%dnc=%cn,i,c);,33,赋值运算符和赋值表达式,类型转换:将字符型数据赋值给整型变量时,将字符数据(8位)赋值给整型变量的低8位即可若字符最高位为0,则整型变量高8位补0若字符最高位为1,则整型变量高8位补1,int i;char c;c=65;i=c;printf(i=%dnc=%cn,i,c);,int i;char c;c=246;i=c;printf(i=%dnc=%cn,i,c);,赋值运算符和赋值表达式,复合赋值运算符:在“=”之前加上其他运算符,就构成了复合赋值运算符有:+=,-=,*=,/=,%=含义:变量标识符 op=表达式 变量标识符=变量标识符 op 表达式,a+=3 x*=y+8x%=3,a=a+3 x=x*(y+8)x=x%3,赋值运算符和赋值表达式,赋值表达式的嵌套:,int a,b,c;a=b=c=5;a=5+(c=6);a=(b=4)+(c=6);,int a=b=c=5;,O,c=5,b=c=5,a=b=5 c=6,a=5+c=5+6=11 b=4,c=6,a=b+c=10,赋值运算符和赋值表达式,赋值表达式的嵌套:,int a=12;a+=a-=a*a;,a+=a-=144 a+=(a=a 144)a+=(a=-132)a=a+a(a=-132)a=(-132)+(-132)a=-264,逗号运算符和逗号表达式,逗号运算符:用来将两个表达式连接起来形式:表达式1,表达式2,表达式3,表达式n优先级:(最低)结合方向:从左至右表达式的值:表达式n的值用途:通常用于循环结构的for语句中,逗号运算符和逗号表达式,a=3*4,5*2;a=(a=3,5*2);a=1;b=2;c=3;printf(%d,%d,%d,a,b,c);printf(%d,%d,%d,(a,b,c),b,c);,a=12,表达式的值:10 a=10 输出:1,2,3 输出:3,2,3,算术运算符和算术表达式,基本的算术运算符:+:加法(或正值)运算符如:3+2,+3.5-:减法(或负值)运算符如:3-2,-3.5*:乘法运算符如:3*2,3.5*2/:除法运算符如:3/2,3.5/2要说明的是:两个整数相除的结果仍为整数:5/3=1若结果为负值,多数机器采用向零取整的办法:-5/3=-1%:模运算符(两个运算量都是整数)如:3%2,算术运算符和算术表达式,算术表达式用算术运算符和括号,将运算对象(操作数)连接起来符合C语法规则的式子例如:a*b/c+1.5-3.28+f,算术运算符和算术表达式,基本的算术运算符:+,-,*,/,%结合方向:从左至右(左结合性)优先级别:-(负值)*/%+-(减法)说明:整数的算术运算结果仍为整数若算术运算中有一个实数,则运算结果为double型%只能进行整数的取模运算,余数与被除数符号相同“”为负值运算符时(单目运算),为右结合性,2 3 4,5/3-3*2+-2.5=,-7.500000,5/2=-5/2.0=5%2=-5%2=5%-2=-5%-2=5%1=5%1.0=,2,-2.500000,1,-1,1,-1,0,O,自增、自减运算符,作用:使变量值增1或减1+i-i:先执行i=i+1(或i=i-1),再使用i的值i+i-:先使用i的值,再执行i=i+1(或i=i-1),j=3;k=+j;j=3;k=j+;j=3;printf(%d,+j);j=3;printf(%d,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;,j=j+1;k=j;结果:k=4,j=4 k=j;j=j+1;结果:k=3,j=4 j=j+1;输出;结果:输出4,j=4 输出;j=j+1;结果:输出3,j=4 a=a+1;c=a*b;结果:a=4,c=20 c=a*b;a=a+1;结果:a=4,c=15,自增、自减运算符,作用:使变量值增1或减1+i-i:先执行i=i+1(或i=i-1),再使用i的值i+i-:先使用i的值,再执行i=i+1(或i=i-1)说明:+和-不能用于常量和表达式+和-的结合方向:自右向左优先级:-(负值),+,-*,/,%,+,-(减法),5+-(a*b),O,2 3 4,j=3;printf(%d,-j+);,-j+相当于-(j+),输出:-3,j=4,j=2,k=3;printf(%d,j+k);,j+k相当于(j+)+k 输出:5,j=3,k=3,各数据类型间的混合运算,整型、实型、字符型数据间的混合运算整型和字符型数据可以通用整型和实型数据可以进行混合运算运算规则:不同类型的数据要先转换成同一类型,char和short型先转成int型float型先转成double型,精度低的转换成精度高的,main()int a=3;float f=3.14;char c=a;printf(%f,10+c+a*f);,强制类型转换运算符,强制类型转换运算符,可以将一个表达式转换成所需类型一般形式:(类型名)(表示式)说明:表达式应当用括号括起来在进行强制转换时,得到一个所需类型的中间变量,原来变量的类型并没有发生变化,(double)a(int)(x+y)(float)(5%3),(int)(x+y)(int)x+y,main()float x;int i;x=3.6;i=(int)x;printf(x=%fni=%d,x,i);,作业,P54习题,

    注意事项

    本文(C语言第三章数据类型、运算符与表达式.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开