




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章数据类型运算符和表达式,第二章数据类型、运算符和表达式,内容提要数据类型常量与变量运算符与表达式,2.1数据类型,数据类型总表,数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作,说明:数据类型所占字节数随机器硬件不同而不同,上表以IBMPC机为例。,基本数据类型,2.1数据类型,2.2常量与变量,数据是程序的处理对象C语言将数据分为常量与变量,2.2.1常量1.常量的定义及分类定义:程序运行的过程中,其值不能改变的量。分类:整型常量实型常量字符常量字符串常量符号常量,2.2常量与变量,2.整型常量(既整常数)三种形式:十进制整数:由数字09和正负号表示.如123,-456,0八进制整数:由数字0开头,后跟数字07表示.如0123,011十六进制整数:由0 x开头,后跟09,af,AF表示.如0 x123,0Xff,转换成十进制数的方法:0123=1x82+2x81+3x80=(83)100 x123=1x162+2x161+3x160=(291)100Xff=15x161+15x160=(255)10,2.2常量与变量,整型常量的说明(1)空白字符不可以出现在整数数字之间(2)根据其值所在范围确定其数据类型(3)在整常量后加字母l或L,认为它是longint型常量,例如30000为int型65536为longint型79L、012L为longint型,2.2常量与变量,3.实型常量实常数或浮点数,是一个十进制表示的符号实数表示形式:十进制小数形式digits.digits如0.123,.123,123.0,0.0,123.指数形式(包括整数部分、尾数部分和指数部分)digits.digitsE|e+|-digits小数点之前是整数部分,小数点之后是尾数部分,小数点在没有尾数时可省略。如12.3e3,123E2,2.2常量与变量,实型常量的说明(1)实型常量采用十进制小数形式表示时,必须有小数点。例如:123.是实型常量,而123是整型常量(2)采用指数形式表示时,在E或e之前必须要有数字,且之后的指数必须为整数。例如:E6、.e6、e等都是不合法的(3)实型常量的整数部分为0时可以省略,如下形式是允许的:.57,.0075e2,-.125,-.175E-2(4)所有的实型常量均被看作是双精度类型(double),2.2常量与变量,4.字符常量定义:用单引号括起来的单个普通字符或转义字符。分为一般字符常量和特殊字符常量一般字符常量:如a、9、!等。单引号只起定界作用并不表示字符本身,中间的字符可以是除单引号()和反斜杠()以外的数字、字母等C语言字符集中包含的所有可显示字符。特殊字符常量(也叫转义字符)是C语言中表示字符的一种特殊形式,其含义为将反斜杠()后面的字符转换成另外的意义。,2.2常量与变量,字符常量的值:该字符的ASCII码值,如A65,a97,048,n10,2.2常量与变量,aaa,13,如101-A012-n376-x61-a060-0,例转义字符举例intmain()printf(101x42Cn);printf(Isay:Howareyou?n);printf(CProgramn);printf(TurboC);,运行结果:(屏幕显示)ABCIsay:”Howareyou?”CProgramTurboC,2.2常量与变量,字符常量与字符串常量不同,5.字符串常量定义:用双引号(“”)括起来的字符序列存储:每个字符串尾自动加一个0作为字符串结束标志,例:charch;ch=“A”;,例:charch;ch=A;,2.2常量与变量,6.符号常量(1)标识符定义:用来标识变量、常量、函数等的字符序列组成:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感不能使用关键字长度:最长32个字符命名原则:见名知义不宜混淆如1与l,o与0,2.2常量与变量,在C语言中,允许将程序中的常量定义为一个标识符,称为符号常量。在使用符号常量前必须先加以定义,一般情况下,符号常量使用大写英文字母表示。,其定义的一般形式为:#define例如:#definePRICE35,2.2常量与变量,2.2.2变量概念:其值可以改变的量变量名与变量值变量定义的一般格式:数据类型变量1,变量2,变量n;变量初始化:定义时赋初值变量的使用:先定义,后使用,决定分配字节数和数的表示范围,合法标识符,例:inta,b,c;floatdata;,例:inta=2,b,c=4;floatdata=3.67;charch=A;intx=1,y=1,z=1;intx=y=z=1;,2.2常量与变量,变量定义位置:一般放在函数开头,2.2常量与变量,与常量类似,变量也有不同的类型,一般可以分为以下三种类型:整型变量实型变量字符变量,2.2常量与变量,1.整型变量(1)整型变量的分类基本型短整型长整型无符号整型,基本型:类型说明符为int,在内存中占2个字节。,短整型:类型说明符为shortint或short,所占字节和取值范围均与基本型相同。,长整型:类型说明符为longint或long,在内存中占4个字节。,无符号整型:类型说明符为unsigned。.无符号基本型:类型说明符为unsignedint或unsigned。.无符号短整型:类型说明符为unsignedshort。.无符号长整型:类型说明符为unsignedlong。,2.2常量与变量,例2-1整型变量的使用#includeintmain()intx,y,z;x=10;y=20;z=x+y;printf(“x+y=%dn”,z);return0;输出结果:x+y=30,(2)整型变量的定义与使用,2.2常量与变量,intx;x=10;则变量x的值10在内存中的存放形式:intx;x=-10;则变量x的值10在内存中的存放形式:,(3)整型数据在内存中的存放形式,2.2常量与变量,例2-2整型数据的溢出问题#includeintmain()intx,y;x=32767;y=x+1;printf(%d,%dn,x,y);return0;运行结果:-32768原因:一个int型变量只能容纳-32768到32767范围内的数,无法表示超过这个范围的数。,(4)整型数据的溢出,2.2常量与变量,2.实型变量(1)实型变量的分类单精度实型:类型说明符为float,在内存中占4个字节,提供7位有效数字。双精度实型:类型说明符为double,在内存中占8个字节,提供1516位有效数字。,例floata;a=111111.111;/*a=111111.1*/doubleb;b=111111.111;/*b=111111.111*/,2.2常量与变量,例2-3实型变量的使用#includeintmain()floatx,y,z;x=10;y=20;z=x+y;printf(“x+y=%fn”,z);return0;运行结果:x+y=30.000000,(2)实型变量的定义与使用,2.2常量与变量,例a=D;/*a=68;*/x=A+5;/*x=65+5;*/s=!+G/*s=33+71;*/,字符变量存放字符ASCII码char与int数据间可进行算术运算,没有字符串变量,用字符数组存放,(3)字符变量,2.2常量与变量,#includeintmain()charc1,c2;/*定义c1,c2为字符型变量*/c1=97;c2=98;/*将整数97和98分别赋给c1和c2*/printf(”%c,%cn”,c1,c2);/*以字符形式输出c1和c2*/printf(”%d,%d”,c1,c2);/*输出c1和c2的ASCII码值*/printf(”%d”,c1+c2);return0;运行结果如下:a,b97,98,2.2常量与变量,例#definePRICE12.5main()intnum=3;floattotal;charch1,ch2=D;total=num*PRICE;ch1=ch2-A+a;printf(“total=%f,ch1=%cn”,total,ch1);,运行结果:total=37.500000,ch1=d,(4)变量的初始化,2.2常量与变量,运算符的分类,2.3运算符与表达式,定义:由常量、变量、函数、运算符和括号组合起来的、符合C语法规则的式子称为表达式。一个表达式有一个值以及其对应的类型表达式求值首先进行优先级高的运算再进行优先级低的运算,然后对于优先级相同的运算按结合方向进行运算。结合方向:左结合、右结合例如:,2.3运算符与表达式,2.3.1算术运算符及算术表达式1.基本算术运算符:+-*/%结合方向:从左向右优先级:(高)-*/%-+-说明:“-”可为单目运算符时,右结合性两整数相除,结果为整数,如果两整数中有一个是负数,舍入规则为“向零取整”如果运算的两个数中有一个是实型,则结果为double型%要求两侧均为整型数据,例5/2=2-5/2.0=-2.55%2=1-5%2=-11%10=15%1=05.5%2(),2.3运算符与表达式,#includeintmain()printf(”10-9/6*5=%d”,109/6*5);return0;运行结果如下:10-9/6*5=5,#includemain()intx=5,y;y=+x;printf(%dn,y);输出结果:6,例2-5计算表达式10-9/6*5,2.3运算符与表达式,例2-6计算表达式10-3.0/2的值#includeintmain()printf(”10-3.0/2=%f”,10-3.0/2);运行结果如下:10-3.0/2=8.500000,2.3运算符与表达式,2.算术表达式定义:用算术运算符和括号将运算对象连接起来的、符合C语法规则的式子称为算术表达式。其中的运算对象包括常量、变量、函数等。例如:x+y、(x*2)/y、sin(x)sin(y)等都是算术表达式。,2.3运算符与表达式,(1)(x+y)h2(2)s(s-a)(s-b)(s-c)(3)(x+1)2+(y-1)2在C语言中,其合法的算术表达式如下:(1)(x+y)*h/2.0(2)s*(s-a)*(s-b)*(s-c)(3)(x+1)*(x+1)+(y-1)*(y-1),例2-7写出下列数学表达式对应的合法的C算术表达式,2.3运算符与表达式,种类:=!=结合方向:自左向右优先级别:关系运算符优先级低于算术运算符,2.3.2关系运算符及关系表达式1.关系运算符,例:ca+b等价于c(a+b)ab!=c(ab)!=ca=bca=(bc),2.3运算符与表达式,关系运算结果:1(真)和0(假)例2-8计算下列关系表达式的值(1)1010(2)10=10(3)1010!=10(4)3*8-9!=5+7%3,2.3运算符与表达式,2.关系表达式关系表达式的值:是逻辑值“真(True)”或“假(False)”,用1或0表示关系表达式例子inta=3,b=2,c=1,d,f;ab(ab)=cb+cbf=abc,/表达式值1,/表达式值1,/表达式值0,/d=1,/f=0,2.3运算符与表达式,种类:!inti;i=10;f=i;则f=10.0,错误:3=x-2*y;a+b=3;,2.赋值表达式,2.3运算符与表达式,赋值表达式的值与变量值相等,且可嵌套。,例:a=12;a+=a-=a*a,/a=-264等价于a=a+(a=a-(a*a),2.3运算符与表达式,复合的赋值运算符在“=”前面加上其他运算符种类+=-=*=/=%=x=10;y=+x;此时,变量y的值为11。如果程序改为:x=10;y=x+;则变量y的值为10。,2.3.5增量运算符,2.3运算符与表达式,一般形式:expr1?expr2:expr3由常量、变量、函数、运算符和括号组合起来的、符合C语法规则的式子称为表达式。执行过程,2.3.6条件运算符及条件表达式,2.3运算符与表达式,结合方向:自右向左例2-13假设变量x=10,y=20,z=30,计算下列条件表达式的值。(1)x10?100:200(2)x10?x+z:y20?y+z:z,2.3运算符与表达式,一般形式:表达式1,表达式2,表达式n结合性:从左向右优先级:15逗号表达式的值:等于表达式n的值例如:1.x=(y=1,y+1);2.y=20;x=(y=y-10,10/y);,2.3.7逗号运算符及逗号表达式,2.3运算符与表达式,例1a=3*5,a*4a=3*5,a*4,a+5例2x=(a=3,6*3)x=a=3,6*a例3a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);,例2-14计算下列逗号表达式的值。(1)x=10,x+10(2)(x=1+2,x+3),x+4,2.3运算符与表达式,求字节数运算符“sizeof”是C语言提供的一种特殊的运算符,是单目运算符。求字节数运算符与操作数结合在一起构成的式子称为求字节数表达式。一般形式sizeof(表达式)或sizeof(数据类型名),例sizeof(int)sizeof(/a)sizeo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年浙江省考a卷申论真题及答案
- 土地买卖合同范本
- 2025瓷砖供应合同范本
- 2025租房定金合同模板
- 会计面试专业真题及答案
- 2025科技公司就业合同范本
- 2025综合维修承包合同
- 2025地基处理工程施工合同
- 个人销售提成合同范例
- 2025年供用电合同范本模板
- 2024年深圳市彩田学校初中部小升初入学分班考试数学模拟试卷附答案解析
- 送快递劳务承揽协议书
- 2024年安徽安庆市交通控股集团有限公司招聘笔试冲刺题(带答案解析)
- 《沙龙培训》课件
- 充电桩四方协议书范本
- 中考英语情景交际和看图写话
- 知道智慧网课《科学社会主义概论》章节测试答案
- 事故调查分析课件
- 《养老护理员》-课件:自然灾害的应对处理知识
- 劳务外包服务方案(技术方案)
- JJG 443-2023燃油加油机(试行)
评论
0/150
提交评论