C课件chap3datatypeoperatorandexpression

上传人:E**** 文档编号:91276465 上传时间:2019-06-27 格式:PPT 页数:47 大小:530KB
返回 下载 相关 举报
C课件chap3datatypeoperatorandexpression_第1页
第1页 / 共47页
C课件chap3datatypeoperatorandexpression_第2页
第2页 / 共47页
C课件chap3datatypeoperatorandexpression_第3页
第3页 / 共47页
C课件chap3datatypeoperatorandexpression_第4页
第4页 / 共47页
C课件chap3datatypeoperatorandexpression_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《C课件chap3datatypeoperatorandexpression》由会员分享,可在线阅读,更多相关《C课件chap3datatypeoperatorandexpression(47页珍藏版)》请在金锄头文库上搜索。

1、,第3章,数据类型、运算符与表达式,本章要点( Targets ),掌握三种基本数据类型,以及它们的变量、常量的定义、性质 掌握表达式中各种运算符的功能和特点 了解数据类型的相互转换规则,主要内容( Contents ),3.1 C语言的数据类型 3.2 常量与变量 3.3 整型数据 3.4 浮点型数据 3.5 字符型数据,主要内容( Contents ),3.变量赋初值 3.7 各类数值型数据间的混合运算 3.8 算术运算符和算术表达式 3.9 赋值运算符和赋值表达式 3.10 逗号运算符和逗号表达式,一、数据类型概述,C语言的基本数据类型,常量:指在程序运行中,其数值不能被改变的量。,变量

2、:指以标识符为名字,其值可以改变的量。,变量 代表计算机内存中的某一存储空间,变量的类型决定了该存储空间的长度和其中存放数据的编码方式及存储格式。 变量的类型也决定了该存储空间中存放数据的数据形式和取值范围。,常量变量,二、整型数据 (采用定点整数的存储格式,只能表示纯整数),1、整型常量:,(1) 十进制形式:与数学上的整数表示相同; 例如: 12, -100, 0 (2) 八进制形式:在数码前加数字0; 例如: 012=1*81+2*80=10(十进制) (3) 十六进制形式:在数码前加0X(数字0和字母X)。 例如: 0x12=1*161+2*160=18(十进制),注意:八进制的数码范

3、围为07;十六进制的数码除了数字09外,还使用英文字母a f (或A F)表示1015。 例1:判断常量的表示是否正确? 018 0x1e,2、整型变量的分类:,根据数据所占的存储长度的不同分为:int、short、long; 同样存储长度的数据又分unsigned、signed; 故可组合出六种类型。,3、整型变量的值域:,由机器中数据的存储长度决定。,如Turbo C中,有 short(2字节)int(2字节) long(4字节) 关键字 所占位数 取值范围 short 16 -3276832767 unsigned short 16 065535 int 16 -3276832767 u

4、nsigned 16 065535 long 32 -21474836482147483647 unsigned long 32 04294967295,思考:int a=20000,b=20000,c; c=a+b; c的值为多少? 如何解决能得出正确结果?,三、浮点型(实型)数据,1、浮点型(实型)常量: (1) 十进制小数形式:由数字和小数点组成; 例如: 3.4, 4., .3。 (2) 指数形式:“十进制小数”+“ e(或E)”+“十进制数整数”。 例如: 12.5e-6 表示12.510-6 。,注意:小数点不能单独出现;e或E的两边必须有数,且其后面必须为整数。 例2:判断常量的

5、表示是否正确? 0. .0 . 6E0.2 e5,关键字 字节数 取值范围 精度(位) float 4 3.410-38 3.41038 7 double 8 1.710-308 1.710308 15,2、浮点型(实型)变量的分类及值域:,四、字符型数据,1、字符型常量: (1) 用单引号括起来的一个字符;如: A 、 1 、? 等。 (2) 用单引号括起来的由反斜杠()引导的转义字符。,字符形式 功能 n 换行 t 横向跳格 b 退格 r 回车 反斜杠字符 单引号字符 ddd 8进制数表示的ASCII码对应的字符 xhh 16进制数表示的ASCII码对应的字符,特殊字符表,例3:字符A可以

6、表示为 A 、 x41 、 101 。 因为字符A的ASCII码为:65D(十进制)=41H(十六进制)=101O(八进制),2、字符型变量的分类: char 和 unsigned char;,3、值域(字符型可参与数学运算,也可看成一种一字节的整型变量) 每个字符型数据在内存中占一个字节;包括ASCII字符表中的所有字符(可显示字符和非显示字符)。,4、字符串常量: 是用一对双引号括起来的字符序列。 注意:每个字符串的后面都有一个0结束符(在内存中)。 如:“SHANGHAI”,“AbcdeFGHijk”,“How are you”。,例4:判断常量的表示是否正确? a “a”,常量与变量,

7、一、 常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量 常量又可分为直接常量和符号常量。,1、直接常量:是在程序中直接引用的数据。,120 、 -100、 0 0120、 072 0xFFFF、 0x1e、0X28AF,0XED4 3.14、 -3.1、 5.12E-6 a 、#、n、101 099、12f、 0xg 、48EA 019.5 、1e-08 2.1E10.2、E-6、6.4E+4.8 “changsha” 、“+?ab” 、ab,请判断这些常量正确与否?,浮点型常量只能用十进制形式表示,2、符号常量 是用标识符来表示一个数据;在程序不能给它赋值。 定义形式: #def

8、ine 标识符 常量数据 例如: #define PI 3.14159 在程序预处理时,凡是出现标识符PI的地方都将用数据3.14159来替换。 如: 2*2.3*PI 就等价于 2*2.3*3.14159。,二、变量和变量定义, 变量是指以标识符为名字,其值可以改变的量。 变量代表计算机内存中的某一存储空间,该存储空间中存放的数据就是变量的值。 在同一程序块中,变量不能被重复定义。 使用变量时必须“先定义,后使用”。,1、变量定义形式: 类型标识符 变量名1 ,变量名2,变量名3.;,自己设定,满足标识符的规定。,如:int, float,char,;不可省,例如:int a,b,c ; f

9、loat x,y; char c1,c2; 或 int c1,c2; 定义变量就是在内存中划出一块相应类型的存储空间存放该变量的值。,2、变量初始化 在定义变量的同时给变量一个初始值。,例5:判断下面式子正确与否? (1) int a=3, b=3; (2) int a=b=3; (3) int a,b; a=b=3;,main( ) int x,y,z,w; /*定义x,y,z,w为整型变量*/ int k=30; /*定义k为无符号整型变量并初始化*/ x=10;y=-20; z=x+k;w=y+k; printf(“x+k=%d,y+k=%dn”,z,w); ,例6:整型变量定义及赋初值

10、。,程序运行结果为:x+k=40,y+k=10,变量根据作用域的不同可分为局部变量和全局变量,根据存储方式的不同可分为静态存储变量和动态存储变量,这些我们将在第八章中详细介绍。,三、 运算符与表达式,运算符:就是表示某种运算功能的符号。 按操作功能运算符大致可分为:算术运算符、关系运算符、逻辑运算符、赋值运算符、条件运算符、逗号运算符以及按位运算符等。,表达式:是由操作数和运算符组成的序列。 如:1+2*3-4 、 35-7 、a=b%2 等都是C语言中的表达式。,在数学里当多个运算符一起组成一个表达式时,我们规定 了优先级(先乘除后加减)和结合规则(从左至右)。 同样,在C语言中,我们也规定

11、了每个运算符的结合规则 及运算符之间的优先级。,(一)算术运算符和算术表达式,1、 运算符 +(加):3+4、 +3 -(减):3-5、 -5 *(乘):3*5 /(除):5/2、5.0/2 (注意,此二种形式,结果不同),%(取余):取余运算的操作数只能是整数,且结 果的符号与前一操作数的符号相同,注意: 5%3的值为2; -5%3的值为-2; 5%(-3)的值为2; -5%(-3)的值为-2; 12.3%3 a%b =0,则有a能被b整除。,2、算术表达式 用算术运算符和括符将操作数连接起来的式子。 优先级:() *、/、% +、- 结合性:从左至右; 表达式的值: 数值型(int、lon

12、g、float、double);,例7:已知: float a=2.0; int b=6,c=3; 求解: a*b/c-1.5+a+fabs(-5)=?,float a=2.0; int b =6,c =3; a*b/c -1.5 +a +fabs(-5),12.0/3,5,4.0 - 1.5,2.5 + 97(int),99.5 + 5,104.5(float),思考 : int a=1,b=2;表达式a/b+3的结果是多少?,例7:,等价于:j=i;i+; 所以i的值为4,j的值为3,等价于:i+;j=i; 所以i的值为4,j的值为4,(1) i=3; j=i+; (2) i=3; j=+

13、i;,3、自增与自减运算符 (+ 、-), +i,-i:使用之前使i的值增1(或减1);, i+,i-:使用之后使i的值增1(或减1);,分析下面几种情况中i与j的值:,当+、 -不与其他运算符混合使用时,+i与i+都等价于 i=i+1, -i与i-都等价于 i=i-1。,例8:i = 2; j = -i+; 求执行完这两句后i与j的值分别是多少?, 结合性:自右至左。,分析:“+”与”-“是同优先级,且都高于“=”;按结合规则,等价于:j=-(i+);结果:i的值为3,j的值为-2。,1、6种关系运算符:= = != 2、关系表达式:用关系运算符将表达式连接起来的式子。 优先级: (= )(

14、 = != ) 结合性:自左至右; 表达式的值: 若为真,则结果为1;若为假,则结果为0。,(1)35 值为: (2)3+(43)*4 值为: 3+43*4 值为:,(二)关系运算符和关系表达式,例9:求下面关系表达式的值:,0,3,1,注意,不能用数学里习惯的关系运算符连用表示区间关系!,2、逻辑表达式:用逻辑运算符将表达式连接起来的式子。 优先级: ! & | 结合性:自左至右; 表达式的值:若为真,则结果为1;若为假,则结果为0。,(三)逻辑运算符和逻辑表达式,1、3种逻辑运算符: & | !,参与逻辑运算的操作数叫逻辑量。,逻辑量可以是整型、实型、字符型和指针类型, 其中,0,0.0,0,NULL代表假,其余逻辑量代表真。,已知 int a=5; float b=3.5; !a ( ) !(a 0) ( ) (a 0) ( ),0,1,1,0,0,0,1,1,0,0,0,1,例10:求下面表达式的值:,例如:表达式运算如下:,混合优先级: ! 高

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号