欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c语言课件第二章数据类型运算符与表达式.ppt

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

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

    c语言课件第二章数据类型运算符与表达式.ppt

    第二章第二章数据类型数据类型运算符和表达式运算符和表达式2.1 2.1 C C的数据的数据类类型型 能能被被计计算算机机处处理理的的信信息息称称为为数数据据(data)。在在计计算算机机科科学学领领域域中中,数数据据是是广广义义的的。数数值值、字字符符、文文字字、表表格格、图图形形和和图图像、声音等都是数据。像、声音等都是数据。程序、算法处理的对象是数据。程序、算法处理的对象是数据。C C语语言言中中数数据据是是有有类类型型的的,数数据据的的类类型型简简称称数数据据类类型型。在在C语语言言中中讨讨论论数数据据,总总是是把把数数据据的的表表示示、数数据据值值和和数数据据类类型型作作为一个整体考察。为一个整体考察。第二章第二章数据类型数据类型运算符和表达式运算符和表达式2.1 2.1 C C的数据的数据类类型型 2.1 2.1 C C的数据的数据类类型型注意注意:1 1、不同数据类型有不同的取值范围、不同数据类型有不同的取值范围P43(P43(表表3-1),3-1),p46(p46(表表3-2)3-2)。2 2、不同的编译系统,数据分配字节不同。例如、不同的编译系统,数据分配字节不同。例如TC P43(TC P43(表表3-1)3-1)中中int int 型数据分配型数据分配2 2个字节(个字节(1616位),而位),而VC+6.0VC+6.0中中intint型数据分配型数据分配4 4个字节个字节(3232位)。位)。3 3、不同的数据类型有不同的操作。、不同的数据类型有不同的操作。如整型数可以取余操作,如整型数可以取余操作,实实型数型数据却不行;整型、据却不行;整型、实实型数据可以有加法,字符数型数据可以有加法,字符数组组不行。不行。4 4、不同的数据类型即使有相同的操作有时含义也不同,如指针数、不同的数据类型即使有相同的操作有时含义也不同,如指针数据自增据自增1 1与整数自增与整数自增1 1含义是不同的。含义是不同的。2.1 2.1 C C的数据的数据类类型型注意注意:5 5、不同的数据类型对计算机可能出现的错误不同。如整型数的、不同的数据类型对计算机可能出现的错误不同。如整型数的溢出错误,浮点数的精度的丢失(有效数字位数不够)。溢出错误,浮点数的精度的丢失(有效数字位数不够)。6 6、C C语言的数据类型可以构造复杂的数据结构。如使用结构体数语言的数据类型可以构造复杂的数据结构。如使用结构体数组可以构造线性表。使用指针类型、结构体类型可以构造线性链组可以构造线性表。使用指针类型、结构体类型可以构造线性链表(栈、队列)、树、图。(在数据结构课程介绍)表(栈、队列)、树、图。(在数据结构课程介绍)2.2常量与变量常量与变量2 2、2 2、1 1 常量常量:在程序的运行过程中,其值不能改变的量称为常量。它相:在程序的运行过程中,其值不能改变的量称为常量。它相当于数学中的常数。当于数学中的常数。在在C语言中,常量可以分为语言中,常量可以分为一般常量一般常量和和符号常量符号常量两类。两类。1.常量的使用(一):常量的使用(一):2 2、2 2、1 1 常量:常量:2.常量的使用(二)常量的使用(二)符号常量的使用:符号常量的使用:#define PI 3.1416#include void main()float s,l;s=10*10*PI;l=2*PI*10;printf(“s=%fn,l=%fn,s,l);printf(“PI=%fn,PI)PI也是一个常量,称为符号常也是一个常量,称为符号常量,它由量,它由#define命令定义,命令定义,代表代表3.1416。该程序在编译之。该程序在编译之前,会自动将程序中所有的前,会自动将程序中所有的PI替换成替换成3.1416。这样程序将等。这样程序将等价于后面(三)的程序。价于后面(三)的程序。2 2、2 2、1 1 常量:常量:3.常量的使用(三):常量的使用(三):#include void main()float s,l;s=10*10*3.1416;l=2*3.1416*10;printf(“s=%fn,l=%fn,s,l);printf(“PI=%fn,3.1416)由于替换命令都是由于替换命令都是在编译之前进行的,所在编译之前进行的,所以类似于以类似于#define 这样这样的命令被称之为的命令被称之为预处理预处理命令命令。(例如。(例如#include)预处理命令的命令行)预处理命令的命令行一般都是放在源程序中一般都是放在源程序中最前面的说明部分。最前面的说明部分。2 2、2 2、1 1 常量:常量:使用符号常量的好处:(使用符号常量的好处:(1)含义清楚、见名知意。)含义清楚、见名知意。(2)修改方便、一改全改)修改方便、一改全改。思考:同是常量,符号常量在程序设计中有什么优势?思考:同是常量,符号常量在程序设计中有什么优势?2 2、2 2、2 2 变量变量 在程序的运行过程中,其值可以改变的量称在程序的运行过程中,其值可以改变的量称为为变量变量。1、变变量量名名(用用标标识识符符表表示示)、变变量量在在内内存存中中占占据据的的存存储储单单元元、变变量量值三者关系。值三者关系。变变量量名名在在程程序序运运行行过过程程中中不不会会改改变变,变变量量的的值值可可以以改改变变。变变量量名遵守标识符准则名遵守标识符准则。2 2、2 2、2 2 变量变量2、变量的定义格式:变量的定义格式:变量类型变量类型变量名;变量名;intnum;2 2、2 2、2 2 变量变量3、变量的特性变量的特性2 2、2 2、2 2 变量变量4、变量:变量:“先定义,后使用先定义,后使用”。1)只只有有定定义义过过的的变变量量才才可可以以在在程程序序中中使使用用,这这使使得得变变量量名名的的拼拼写错误容易发现。写错误容易发现。2)定定义义过过的的变变量量属属于于确确定定的的类类型型,编编译译系系统统可可方方便便地地检检查查变变量量所进行运算的合法性。所进行运算的合法性。3 3)在编译时根据变量类型可以为变量确定存储空间,)在编译时根据变量类型可以为变量确定存储空间,“先定先定义后使用义后使用”使程序效率高。使程序效率高。2 2、2 2、2 2 变量变量例(例(200903)12.若函数中有定义语句若函数中有定义语句:intk;,则则A)系统将自动给系统将自动给k赋初值赋初值0B)这是这是k中的值无定义中的值无定义C)系统将自动给系统将自动给k赋初值赋初值-1D)这时这时k中无任何值中无任何值2、3 整型数据整型数据整型常量的表示方法整型常量的表示方法1)十进制。例如)十进制。例如123,-456,0。2)八进制。以)八进制。以0开头,后面跟几位的数字(开头,后面跟几位的数字(0-7)。)。例如:例如:0123=(123)8=(83)10;-011=(-11)8=(-9)10。3)十六进制。以)十六进制。以0 x开头,后面跟几位的数字(开头,后面跟几位的数字(0-9,A-F)。)。注意:注意:AF(af)是不区分大小写的。是不区分大小写的。例如:例如:0 x123=291,-0 x12=-18,0 xF=15。整型常整型常量量的表示方法的表示方法4)整整型型常常量量的的类类型型(整整型型常常数数的的后后缀缀,在在整整型型变变量量部部分分介介绍绍,这这里只要知道怎么表示)。里只要知道怎么表示)。整型常量后缀可以用:整型常量后缀可以用:u或或U明确说明为无符号整型数明确说明为无符号整型数l或或L明确说明为长整型数明确说明为长整型数.例如:例如:123L,123ul,123u,123UL整型常量的表示方法整型常量的表示方法1 1、以下选项中可作为、以下选项中可作为C C语言合法整数的是语言合法整数的是A A)10110B B10110B B)0386 0386 C C)0Xffa0Xffa D D)x2a2x2a22 2、与十六进制数与十六进制数200200等值得十进制数为()等值得十进制数为()A)256A)256B)512B)512C)1024C)1024D)2048D)20482.3.2整型变量整型变量1、整型数据在内存中的存放形式、整型数据在内存中的存放形式数据在内存中以二进制形式存放,事实上以补码形式存放。数据在内存中以二进制形式存放,事实上以补码形式存放。例如:定义一个整型变量例如:定义一个整型变量i=10,补充知识(参考计算机文化基础等课程):补充知识(参考计算机文化基础等课程):1)带符号数的表示,原码、反码、补码。)带符号数的表示,原码、反码、补码。2)原原码码-补补码码相相互互转转化化。正正数数的的补补码码与与其其原原码码相相同同,负负数数的的补补码码是是其其对对应应的的绝对值的原码数值位按位取反绝对值的原码数值位按位取反+1。2.3.2整型变量整型变量例题:例题:10,-10的计算机机内表示。的计算机机内表示。思思路路:先先将将数数值值表表示示为为二二进进制制形形式式(十十进进制制=二二进进制制,除除2取取余余),即获得数值的原码。将原码转化为补码,就是机内表示。,即获得数值的原码。将原码转化为补码,就是机内表示。10=(1010)2=(0000,0000,0000,1010)原原=(0000,0000,0000,1010)补。补。-10=(-1010)2=(1000,0000,0000,1010)原原=(1111,1111,1111,0110)补。补。从从10,-10的的计计算算机机机机内内表表示示可可以以看看出出正正数数、负负数数机机内内表表示示(补补码码表表示)看上去明显不同。示)看上去明显不同。2.3.2整型变量整型变量2、整型变量的分类、整型变量的分类整整型型变变量量的的基基本本类类型型为为int。通通过过加加上上修修饰饰符符,可可定定义义更更多多的的整整数数据类型。数数据类型。归纳起来可以用归纳起来可以用6种整型变量种整型变量:l有符号基本整型有符号基本整型:signedintl有符号短整型有符号短整型:signedshortintl有符号长整型有符号长整型:signedlongintl无符号基本整型无符号基本整型:unsignedintl无符号短整型无符号短整型:unsignedshortintl无符号长整型无符号长整型:unsignedlongint2.3.2整型变量整型变量2、整型变量的分类、整型变量的分类1)根根据据表表达达范范围围可可以以分分为为:基基本本整整型型(int)、短短整整型型(short)、长长整整型型(long)。用用long型型可可以以获获得得大大范范围围的的整整数数,但但同同时时会会降降低低运运算速度。算速度。2)根根据据是是否否有有符符号号可可以以分分为为:有有符符号号(signed,默默认认),无无符符号号(unsigned)-目的:扩大表示范围,有些情况只需要用正整数。目的:扩大表示范围,有些情况只需要用正整数。有有符符号号整整型型数数的的存存储储单单元元的的最最高高位位是是符符号号位位(0:正正、1:负负),其其余余为为数数值值位位。无无符符号号整整型型数数的的存存储储单单元元的的全全部部二二进进制制位位用用于于存存放放数数值本身而不包含符号。值本身而不包含符号。C标标准准没没有有具具体体规规定定上上面面数数据据类类型型所所占占用用的的字字节节数数,只只要要求求long型型数数据据长长度度不不短短于于int型型,short型型不不长长于于int型型。具具体体如如何何实实现现,由由各各计计算算机机系系统统自自行行决决定定。如如微微机机上上short,int都都是是16位位,而而long是是32位;位;VAX750机,机,int,long都是都是32位,而位,而short是是16位。位。2.3.2整型变量整型变量2、整型变量的分类、整型变量的分类(p43表表3.1)2.3.2整型变量整型变量2、整型变量的分类、整型变量的分类例子:保存整数例子:保存整数1313的各种整型数据类型。的各种整型数据类型。2.3.2整型变量整型变量3、整型变量的定义、整型变量的定义格式:变量类型格式:变量类型 变量名变量名 表表;例如:例如:#includevoidmain()inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn”,c,d);结果结果:a+u=22,b+u=-142.3.2整型变量整型变量3、整型变量的定义、整型变量的定义说明:说明:(1)(1)变变量定量定义时义时,可以,可以说说明多个相同明多个相同类类型的型的变变量。各个量。各个变变量量用用“,”分隔。分隔。类类型型说说明与明与变变量名之量名之间间至少有一个空格至少有一个空格间间隔。隔。(2 2)最后一个变量名之后必须用)最后一个变量名之后必须用“;”结尾。结尾。(3 3)变量必须先定义后使用。)变量必须先定义后使用。(4)(4)也可以在定也可以在定义变义变量的同量的同时时,对变对变量量进进行初始化。行初始化。2.3.2整型变量整型变量3、整型变量的定义、整型变量的定义例例2-2:变变量初始化量初始化#includevoidmain()inta=3,b=5;printf(a+b=%dn,a+b);2.3.2整型变量整型变量4、整型数据的溢出整型数据的溢出 整整型型数数最最大大允允许许值值+1+1,最最小小允允许许值值-1-1,会会出出现现什什么么情情况况?例如:例如:32767+1=-3276832767+1=-32768;-32768-1=32767-32768-1=32767。例例2-2a:整型数据的溢出整型数据的溢出#includevoidmain()inta,b;a=32767;b=a+1;printf(na=%d,a+1=%dn,a,b);a=-32768;b=a-1;printf(na=%d,a-1=%dn,a,b);结果:结果:a=32767,a+1=-32768a=-32768,a-1=32767超出范围就发生超出范围就发生超出范围就发生超出范围就发生“溢出溢出溢出溢出”,运行时不报错,运行时不报错,运行时不报错,运行时不报错。2.4 2.4 实型(浮点型)数据实型(浮点型)数据2、4、1实型常量的表示方法实型常量的表示方法实数(浮点数)有两种表示形式实数(浮点数)有两种表示形式:1 1、十进制小数形式。由数字,小数点组成(必须有小数点)。、十进制小数形式。由数字,小数点组成(必须有小数点)。例如:例如:.123.123、123.123.、123.0123.0、0.00.0 2 2、指数形式。格式:指数形式。格式:aEnaEn。例如:例如:123123e3e3、123E3123E3都是实数的合法表示。都是实数的合法表示。2、4、1实型常量的表示方法实型常量的表示方法指数形式指数形式注意:注意:1)字母)字母e(或或E)前面必须有数字,后面必须为整数。前面必须有数字,后面必须为整数。例如:例如:e3、2.1e3.5、.e3、e都不是合法的指数形式。都不是合法的指数形式。2)规规范范化化的的指指数数形形式式。在在字字母母e或或E之之前前的的小小数数部部分分,小小数数点点左左边边应应当当有有且且只只能能有有一一位位非非0数数字字。用用指指数数形形式式输输出出时时,是是按按规规范范化化的的指数形式输出的。指数形式输出的。例如:例如:2.3478e2、3.0999E5、6.46832e12都属于规范化的指数形式。都属于规范化的指数形式。3)实实型型常常量量都都是是双双精精度度,如如果果要要指指定定它它为为单单精精度度,可可以以加加后后缀缀f(实型数据类型参看实型变量部分说明)。实型数据类型参看实型变量部分说明)。2、4、1实型常量的表示方法实型常量的表示方法1 1、以下符合以下符合C C语言语法的实型常量是()语言语法的实型常量是()A)1.2E0.5B)3.14.159EA)1.2E0.5B)3.14.159EC)C).5E-.5E-3D)E153D)E15(13).一下选项中一下选项中,能用作数据常量的是能用作数据常量的是(200903)A)o115B)0118D)115L2、4、2实型变量实型变量1.1.实型数据在内存中的存放形式实型数据在内存中的存放形式 一个实型数据一般在内存中占一个实型数据一般在内存中占4 4个字节(个字节(3232位)。与整数存储位)。与整数存储方式不同,实型数据是按照指数形式存储的。系统将实型数据分为方式不同,实型数据是按照指数形式存储的。系统将实型数据分为小数部分和指数部分,分别存放。小数部分和指数部分,分别存放。实型数据存放的示意实型数据存放的示意图图 :标标准准C没没有有规规定定用用多多少少位位表表示示小小数数,多多少少位位表表示示指指数数部部分分,由由C编编译译系系统统自自定定。例例如如,很很多多编编译译系系统统以以24位位表表示示小小数数部部分分(包包括括符符号号),8位位表表示示指指数数部部分分(包包括括指指数数的的符符号号)。小小数数部部分分占占的的位位数数多多,实实型型数数据据的的有有效效数数字字多多,精精度度高;指数部分占的位数多,则表示的数值范围大。高;指数部分占的位数多,则表示的数值范围大。2 2、实型变量的分类、实型变量的分类 实实型型变变量量分分为为:单单精精度度(float)float)、双双精精度度(double)double)、长长双双精精度度(long double)long double)。ANSI CANSI C没有规定每种数据类型的长度、精度和数值范围。下表列出没有规定每种数据类型的长度、精度和数值范围。下表列出微机上常用的微机上常用的C C编译系统的情况。编译系统的情况。对于每一个实型变量也都应该先定义后使用。如对于每一个实型变量也都应该先定义后使用。如:类型类型比特数比特数有效数字有效数字数值范围数值范围float326-7-3.4x10+383.4x10+38double6415-16-1.7x10+3081.7x10+308longdouble12818-19-1.2x10+49321.2x10+4932floatx,y;doublez;longdoublet;3 3、实实型数据的舍入型数据的舍入误误差(差(对对比:整型数据的溢出比:整型数据的溢出)实实型型变变量量是是用用有有限限的的存存储储单单元元存存储储的的,因因此此提提供供的的有有效效数数字字是是有有限限的,在有效位以外的数字将被舍去,由此可能会产生一些误差。的,在有效位以外的数字将被舍去,由此可能会产生一些误差。例例2-3a:实型数据的舍入误差(实型变量只能保证实型数据的舍入误差(实型变量只能保证7位有效数字,后面的数位有效数字,后面的数字无意义)字无意义)#includevoidmain()floata,b;a=123456.789e5;b=a+20;printf(a=%f,b=%fn,a,b);printf(a=%e,b=%en,a,b);结果:结果:a=12345678848.000000,b=12345678848.000000a=1.23457e+10,b=1.23457e+10 3 3、实实型数据的舍入型数据的舍入误误差(差(对对比:整型数据的溢出比:整型数据的溢出)结论:结论:由于实数存在舍入误差,使用时要注意:由于实数存在舍入误差,使用时要注意:(a)a)不要试图用一个实数精确表示一个大整数,记住:浮点数是不精确的。不要试图用一个实数精确表示一个大整数,记住:浮点数是不精确的。(b)b)实数一般不判断实数一般不判断“相等相等”,而是判断接近或近似。,而是判断接近或近似。(c)c)避免直接将一个很大的实数与一个很小的实数相加、相减,否则会避免直接将一个很大的实数与一个很小的实数相加、相减,否则会“丢失丢失”小的数。小的数。(d)d)根据要求选择单精度、双精度。根据要求选择单精度、双精度。例例2-42-4:根据精度要求,选择实数类型:根据精度要求,选择实数类型#include void main()void main()float a;float a;double b;double b;a=33333.33333;a=33333.33333;b=33333.3333333;b=33333.3333333;printf(a=%f,b=%fn,a,b);printf(a=%f,b=%fn,a,b);2 2、5 5 字符型数据字符型数据2、5、1字符常量字符常量字符常量字符常量是用单引号(是用单引号()括起来的一个字符。)括起来的一个字符。字符常量主要用下面几种形式表示:字符常量主要用下面几种形式表示:1、直直接接用用单单引引号号括括起起来来一一个个字字符符(可可显显示示的的字字符符),如如,a、x、D、$、?、a、A、1、等都是字符常量。等都是字符常量。n错例,错例,abc、我我2、字符的转义表示法(、字符的转义表示法(ASCII码表示)。码表示)。(1)、预先定义的一部分常用的转义字符。如)、预先定义的一部分常用的转义字符。如n-换行,换行,t-水平制表。水平制表。书书P48页表页表3.3,记忆,记忆(2)转转义义表表示示格格式式:ddd或或xhh(其其中中ddd,hh是是字字符符的的ASCII码码,ddd是是1到到3位位8进进制制数数ASCII码码代代表表的的字字符符、hh是是1到到2位位16进进制制数数ASCII码码代代表表的的字字符符)。注意:不可写成。注意:不可写成0 xhh或或0ddd(整数整数)。举例:举例:101:代表字母:代表字母A;040:代表空格符;代表空格符;0或或000:代表空操作符,即空字符,代表空操作符,即空字符,ASCII码为码为0。x3A 2、5、1字符常量字符常量例:例:2.5.1转义字符的使用转义字符的使用#includevoidmain()printf(ab ct derftgn);printf(“htibbj kn);2 2、5 5 字符型数据字符型数据2、5、2字符变量字符变量 字字符符型型变变量量是是用用来来存存放放字字符符数数据据,且且只只能能存存放放一一个个字字符符。所所有有编编译译系系统统都都规规定定一一个个字字符符变变量量在在内内存存中中占占一个字节。一个字节。字符变量定义形式:字符变量定义形式:charcl,c2;c1=a;c2=b;2、5、3 3字符数据在内存中的存储形式及其使用字符数据在内存中的存储形式及其使用将一个字符常量存放到字符变量中,是将该字符的将一个字符常量存放到字符变量中,是将该字符的ASCII码存放到存储单元中。码存放到存储单元中。2、5、3 3字符数据在内存中的存储形式及其使用字符数据在内存中的存储形式及其使用可可以以看看出出字字符符数数据据以以ASCII码码存存储储的的形形式式与与整整数数的的存存储储形形式式类类似似,这使得字符型数据和整型数据之间可以通用(当作整型量)。这使得字符型数据和整型数据之间可以通用(当作整型量)。具体表现为:具体表现为:1、可可以以将将整整型型量量赋赋值值给给字字符符变变量量,也也可可以以将将字字符符量量赋赋值值给给整整型型变量。变量。2、可可以以对对字字符符数数据据进进行行算算术术运运算算(即即对对它它们们的的ASCII码码进进行行算算术术运算)。运算)。3、一一个个字字符符数数据据既既可可以以以以字字符符形形式式输输出出(ASCII码码对对应应的的字字符符),也可以以整数形式输出(直接输出,也可以以整数形式输出(直接输出ASCII码)。码)。注注意意:尽尽管管字字符符型型数数据据和和整整型型数数据据之之间间可可以以通通用用,但但是是字字符符型型只只占占1个个字字节节,即即如如果果作作为为整整数数使使用用范范围围0-255(无无符符号号),-128-127(有符号)。(有符号)。2、5、3 3字符数据在内存中的存储形式及其使用字符数据在内存中的存储形式及其使用例例2-72-7a a:给字符变量赋以整数(字符型、整型数据通用给字符变量赋以整数(字符型、整型数据通用 turbo c-128-127turbo c-128-127)#include“stdio.h”voidmain()/*字符字符a的各种表达方法的各种表达方法*/charc1=a;charc2=x61;/*note:x.,.*/charc3=141;charc4=97;charc5=0 x61;/*note:0 x.,0.*/charc6=0141;printf(nc1=%c,c2=%c,c3=%c,c4=%c,c5=%c,c6=%cn,c1,c2,c3,c4,c5,c6);printf(c1=%d,c2=%d,c3=%d,c4=%d,c5=%d,c6=%dn,c1,c2,c3,c4,c5,c6);c1=a,c2=a,c3=a,c4=a,c5=a,c6=ac1=97,c2=97,c3=97,c4=97,c5=97,c6=97 过程:整型数过程:整型数=机内表示机内表示(两个字节两个字节)=)=取低取低8 8位赋值给字符变量位赋值给字符变量2、5、3 3字符数据在内存中的存储形式及其使用字符数据在内存中的存储形式及其使用例例2-82-8a a:大大小小写写字字母母的的转转换换(ASCIIASCII码码表表:小小写写字字母母比比对对应应的的大大写写字字母母的的ASCIIASCII码码大大3232,本本例例还还可可以以看看出出允允许许字字符符数数据据与与整整数数直直接接进进行行算算术术运运算算,运运算算时时字字符符数数据据用用ASCIIASCII码码值参与运算)值参与运算)#includevoidmain()charc1,c2,c3;c1=a;c2=b;c1=c1-32;c2=c2-32;c3=130;printf(n%c%c%cn,c1,c2,c3);printf(%d%d%dn,c1,c2,c3);AB?6566126(此时如何处理?此时如何处理?)(p52页页)2、5、4字符串常量字符串常量字符串常量:是一对双引号(字符串常量:是一对双引号(“”)括起来的字符序列。)括起来的字符序列。例如:例如:“Howdoyoudo?”,“CHINA”,“a”,“$123.45”.注意:注意:1、区分字符常量与字符串常量。如、区分字符常量与字符串常量。如a和和“a”。C语语言言规规定定:在在每每个个字字符符串串的的结结尾尾加加一一个个“字字符符串串结结束束标标志志”,以以 便便 系系 统统 据据 此此 判判 断断 字字 符符 串串 是是 否否 结结 束束。C规规 定定 以以0(ASCII码为码为0的字符)作为字符串结束标志。的字符)作为字符串结束标志。如:如:“CHINA”在内存中的存储应当是:(在内存中的存储应当是:(长度长度=6)CHINA02、5、4字符串常量字符串常量2、不能将字符串赋给字符变量。、不能将字符串赋给字符变量。如:如:charc;c=a;(正确正确)c=“a”(错误错误)3、C语语言言没没有有专专门门的的字字符符串串变变量量,如如果果想想将将一一个个字字符符串串存存放放在在变变量量中中,可可以以使使用用字字符符数数组组。即即用用一一个个字字符符数数组组来来存存放放一一个个字符串,数组中每一个元素存放一个字符。字符串,数组中每一个元素存放一个字符。2 2、6 6 变量赋初值变量赋初值程程序序中中常常常常需需要要对对一一些些变变量量预预先先设设置置初初值值,C语语言言允允许许在在定定义义变量的同时使变量初始化。变量的同时使变量初始化。例如:例如:inta=3;/*指定指定a为整型变量,初值为为整型变量,初值为3*/floatf=3.56;/*指定指定f为实型变量,初值为为实型变量,初值为3.56*/charc=a;/*指定指定c为字符型变量,初值为为字符型变量,初值为a*/2 2、6 6 变量赋初值变量赋初值可以只对定义的一部分变量赋初值可以只对定义的一部分变量赋初值。inta,b=2,c=5;/*指指定定a,b,c为为整整型型变变量量,只只对对b、c初初始始化化,b的初值为的初值为2,c的初值为的初值为5*/初始化不是在编译阶段完成的,而是在程序运行时执行本函数初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋予初值的,相当于有一个赋值语句。时赋予初值的,相当于有一个赋值语句。inta=3;相当于:相当于:inta;a=3;2 2、6 6 变量赋初值变量赋初值 考虑:考虑:int x=y=z=1;int x=y=z=1;是否正确?是否正确?2 2、7 7 各类数值型数据(整型、实型、字符型)的混合运算各类数值型数据(整型、实型、字符型)的混合运算 整型(包括整型(包括int,short,long)和实型(包括和实型(包括float,double)数数据可以混合运算,另外字符型数据和整型数据可以通用,因此,据可以混合运算,另外字符型数据和整型数据可以通用,因此,整整型、实型、字符型数据之间可以混合运算。型、实型、字符型数据之间可以混合运算。例如:表达式例如:表达式10+a+1.5-8765.1234*b是合法的。是合法的。在进行运算时,在进行运算时,不同类型的数据先转换成同一类型,然后进不同类型的数据先转换成同一类型,然后进行计算行计算,转换的方法有两种:,转换的方法有两种:自动转换(隐式转换);强制转换自动转换(隐式转换);强制转换。2 2、7 7 各类数值型数据(整型、实型、字符型)的混合运算各类数值型数据(整型、实型、字符型)的混合运算1 1、自动转换(隐式转换)自动转换发生在不同类型数据进行、自动转换(隐式转换)自动转换发生在不同类型数据进行混合运算时,由编译系统自动完成。转换规则:(参看图)混合运算时,由编译系统自动完成。转换规则:(参看图)2 2、7 7 各类数值型数据(整型、实型、字符型)的混合运算各类数值型数据(整型、实型、字符型)的混合运算注意:注意:(1)类型不同,先转换为同一类型,然后进行运算。)类型不同,先转换为同一类型,然后进行运算。(2)图图中中纵纵向向的的箭箭头头表表示示当当运运算算对对象象为为不不同同类类型型时时转转换换的的方方向向。可可以以看看到到箭箭头头由由低低级级别别数数据据类类型型指指向向高高级级别别数数据据类类型型,即即数数据据总总是是由由低低级级别别向向高高级级别别转转换换。即即按按数数据据长长度度增增加加的的方方向向进进行行,保保证证精精度度不降低。不降低。(3)图图中中横横向向向向左左的的箭箭头头表表示示必必定定的的转转换换(不不必必考考虑虑其其它它运运算算对对象象)。如如字字符符数数据据参参与与运运算算必必定定转转化化为为整整数数,float型型数数据据在在运运算算时时一一律律先先转转换换为为双双精精度度型型,以以提提高高运运算算精精度度(即即使使是是两两个个float型型数数据据相加,也先都转换为相加,也先都转换为double型,然后再相加)。型,然后再相加)。(4 4)赋值运算,如果赋值号)赋值运算,如果赋值号“=”“=”两边的数据类型不同,赋值号两边的数据类型不同,赋值号右边的类型转换为左边的类型。这种转换是截断型的转换,不会四舍右边的类型转换为左边的类型。这种转换是截断型的转换,不会四舍五入。五入。2 2、7 7 各类数值型数据(整型、实型、字符型)的混合运算各类数值型数据(整型、实型、字符型)的混合运算2、强制转换:、强制转换:强制转换是通过类型转换运算来实现。强制转换是通过类型转换运算来实现。一般形式:(类型说明符)表达式一般形式:(类型说明符)表达式功功能能:把把表表达达式式的的结结果果强强制制转转换换为为类类型型说说明明符符所所表表示示的的类类型。型。例如:例如:(int)a将将a的结果强制转换为整型量。的结果强制转换为整型量。(int)(x+y)将将x+y的结果强制转换为整型量。的结果强制转换为整型量。(float)a+b将将a的内容强制转换为浮点数,再与的内容强制转换为浮点数,再与b相加。相加。说明:说明:(1)类类型型说说明明和和表表达达式式都都需需要要加加括括号号(单单个个变变量量可可以以不不加括号)加括号)(2)无无论论隐隐式式转转换换,强强制制转转换换都都是是临临时时转转换换,不不改改变变数数据本身的类型和值。据本身的类型和值。2 2、7 7 各类数值型数据(整型、实型、字符型)的混合运算各类数值型数据(整型、实型、字符型)的混合运算#includevoid main()void main()float f=5.75;float f=5.75;printf(int)f=%dn,(int)f);printf(int)f=%dn,(int)f);/*/*将将f f的的结结果果强强制制转转换换为为整型,输出整型,输出*/*/printf(f=%fn,f);/*printf(f=%fn,f);/*输出输出f f的值的值*/*/结果:结果:(int)f=5int)f=5 f=5.750000 f=5.750000例例2-92-9:强制类型转换:强制类型转换2、8算术运算符和算术表达式算术运算符和算术表达式2.8.1C C运算符简介运算符简介 本章主要介绍算术运算符(包括自增自减运算符)、赋值运算符、逗号运算符,其它运本章主要介绍算术运算符(包括自增自减运算符)、赋值运算符、逗号运算符,其它运算符在以后相关章节中结合有关内容陆续进行介绍。算符在以后相关章节中结合有关内容陆续进行介绍。2.8.22.8.2算术运算符和算术表达式算术运算符和算术表达式 1、算术运算符、算术运算符+(加法运算符。如(加法运算符。如3+5)-(减法运算符或负值运算符。如(减法运算符或负值运算符。如5-2,-3)*(乘法运算符。如(乘法运算符。如3*5)/(除法运算符。如(除法运算符。如5/2,5.0/2)%(模模运运算算符符或或求求余余运运算算符符,%要要求求两两侧侧均均为为整整型型数数据据。如如7%4的值为的值为3)。)。除了负值运算符除了负值运算符-单目运算符外,其它都是双目运算符。单目运算符外,其它都是双目运算符。考虑:考虑:-7%4,7%-4,-7%-4;-3,3,-3C语言规定:语言规定:符号由被除数决定。符号由被除数决定。2.8.22.8.2算术运算符和算术表达式算术运算符和算术表达式 2、算术表达式、算术表达式算算术术表表达达式式:用用算算术术运运算算符符和和括括号号将将运运算算对对象象(也也称称操操作作数数)连连接接起起来来的的、符符合合C语语法法规规则则的的式式子子,称称为为算算术术表表达达式式。运运算算对对象象可可以以是常量、变量、函数等。是常量、变量、函数等。例如,下面是一个合法的例如,下面是一个合法的C算术表达式。算术表达式。a*b/c-1.5+a;x+sqrt(0.25*y)/(abs(a+b)-3.6).2.8.22.8.2算术运算符和算术表达式算术运算符和算术表达式 注注意意:C语语言言算算术术表表达达式式的的书书写写形形式式与与数数学学表表达达式式的的书书写写形形式式有一定的区别:有一定的区别:(1)C语言算术表达式的乘号(语言算术表达式的乘号(*)不能省略。)不能省略。例如:数学式例如:数学式b2-4ac,相应的相应的C表达式应该写成:表达式应该写成:b*b-4*a*c。(2)C语言表达式中只能出现字符集允许的字符。语言表达式中只能出现字符集允许的字符。例如例如:数学数学r2相应的相应的C表达式应该写成:表达式应该写成:PI*r*r(其中其中PI是已经定义的符号常量是已经定义的符号常量)。(3)C语言算术表达式不允许有分子分母的形式。语言算术表达式不允许有分子分母的形式。例如例如,(a+b)/(c+d)。(4)C语言算术表达式只使用圆括号改变运算的优先顺序()语言算术表达式只使用圆括号改变运算的优先顺序()不不要要指指望望用用)。可可以以使使用用多多层层圆圆括括号号,此此时时左左右右括括号号必必须配对,运算时从内层括号开始,由内向外依次计算表达式的值。须配对,运算时从内层括号开始,由内向外依次计算表达

    注意事项

    本文(c语言课件第二章数据类型运算符与表达式.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开