数据类型、运算符与表达式

上传人:宝路 文档编号:48378121 上传时间:2018-07-14 格式:PPT 页数:70 大小:453.43KB
返回 下载 相关 举报
数据类型、运算符与表达式_第1页
第1页 / 共70页
数据类型、运算符与表达式_第2页
第2页 / 共70页
数据类型、运算符与表达式_第3页
第3页 / 共70页
数据类型、运算符与表达式_第4页
第4页 / 共70页
数据类型、运算符与表达式_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《数据类型、运算符与表达式》由会员分享,可在线阅读,更多相关《数据类型、运算符与表达式(70页珍藏版)》请在金锄头文库上搜索。

1、烟台大学光电信息学院建议:认真看书;充分利用网络资源解决实际问题;记录、归纳总结解决问题的方法。答疑:科技馆701室。时间:n数值的表示方法原码、反码和补码n原码:最高位为符号位,其余各位为数值本 身的绝对值n反码:n正数:反码与原码相同n负数:符号位为1,其余位对原码取反n补码:n正数:原码、反码、补码相同n负数:最高位为1,其余位为原码取反, 再对整个数加1原码反码补码+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-0100000001111111100000000(用一字节表示数

2、)3.1 C3.1 C语言的数据类型语言的数据类型整型单精度型基本类型 实型 双精度型字符型数 枚举型据 数组类型类构造类型 结构体类型型 共用体类型指针类型空类型C语言中的数据,有常量和变量之分,它们分别属于上述这 些类型。本章将介绍基本类型中的整型、实型和字符型三种数据。3.2 3.2 常量与变量常量与变量 3.2.1 常量 1.常量的概念在程序运行过程中,其值不能被改变的量称为常 量。常量可以从字面形式即可判断-字面常量或直接常 量。 2.常量的分类 (1)整型常量(如: 12、0、-3)(2)实型常量(如: 4.6、-1.23)(3)字符常量(如: a 、 d )(4)符号常量3. 符

3、号常量有时为了使程序更加清晰和便于修改,用一个标识符来 代表常量,即给某个常量取个 有意义的名字,这种常量称为 符号常量。#define PI 3.1416使用符号常量的好处:( 1)含义清楚、见名知意。( 2)修改方便、一改全改。LL3_1.c #define PI 3.14 main() float area;area=10*10*PI;printf(“area=%f n“,area); 结果: area=314.0000003.2.2 变量1.变量的概念在程序运行过程中,其值可以被改变的量称为变量。2.变量的两个要素(1)变量名。每个变量都必须有一个名字变量名,变量命名遵循标识符命名规则

4、。(2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值。C语言中变量:“先定义,后使用”。也就是说,C要求对所有用到的变量做强制定义。.标识符命名规则(1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。(2)有效长度:随系统而异,但至少前个字符有效。如果超长,则超长部分被舍弃。例如:由于student_name和student_number的前个字符相同,有的系统认为这两个变量,是一回 事而不加区别。在TC V2.0中,变量名(标识符)的有效长度为个字符,缺省值为。(3)C语言的关键字不能用作变量名注意:C语言对英文字母的大小写敏感,即同一 字

5、母的大小写,被认为是两个不同的字符。 习惯上,变量名和函数名中的英文字母用小写,以增 加可读性。思考题:在C语言中,变量名total与变量名 TOTAL、ToTaL、tOtAl等是同一个变量吗? 标识符命名的良好习惯见名知意所谓“见名知意”是指,通过变量名就知道变量值 的含义。通常应选择能表示数据含义的英文单词(或 缩写)作变量名,或汉语拼音字头作变量名。例如,name/xm(姓名)、sex/xb(性别)、 age/nl(年龄)、salary/gz(工资)。3.3 3.3 整型数据整型数据 3.3.1 整型常量的表示法整型常量即整常数,在语言中可用三种形式表示: (1)十进制:(数码取值:07

6、)例如10、36。 (2)八进制:(以数字开头,数码取值:07)。 例如 015(十进制数为13) 0101(十进制数为65) (3)十六进制:(以数字0x 或0X开头,数码取值:0 9,AF或af)。例如 0x15(十进制数为21),-0x2A(十进制数为-42) 课堂练习:判断以下常量是否合法? 9A、0X6G、029,等等3.3.2 整型变量 1.整型数据在内存中的存放形式(二进制形式),每个 整型变量在内存中占两个字节。 例:int i;i=15; i的存放为:注意:数值是以补码表示的 正数的补码为其本身, 负数的补码为其绝对值的二进制形式按位取反再加1。 15补码:符号位,为1,表示

7、负数;为0,表示正数2.整型变量的分类(1)有符号基本整型(signed int) (2)有符号短整型 (signed short int) (3)有符号长整型 (signed long int)(4)无符号整型 (unsigned int) (5)无符号短整型(unsigned short int ) (6)无符号长整型(unsigned long int ) 内的关键字可以省略; 无符号整型变量不能存放负数;整数类型数据 类类型类类型 说说明符比特数 (字节节数)取值值范围围整型signed int16 (2)-32768 +32767-215(2151 )无符号 整型Unsigned i

8、nt16 (2)0+655350(2161)短整型short int16 (2)-32768 +32767-215(2151 )无符号 短整型Unsigned short int16 (2)0+655350(2161)长长整型long int32 (4)-2147483648 +2147483647-231(2311 )无符号 长长整型Unsigned long int32 (4)042949672950(2321)3.整型变量的定义变量说明的一般形式为: 类型说明符 变量名标识符,变量名标识符, . ; 例如:int a; (a为整型变量)long x,y; (x,y为长整型变量)unsig

9、ned int p,q; (p,q为无符号整型变量)不同种类的整型数据可以进行算术运算4.整型数据的溢出 例3.3 include “stdio.h” main() int a,b;a=32767;b=a+1;printf(“%d,%d“,a,b); 结果: 32767,-32768 (TURBO C中结果)3.3.3 整型常量的类型n一个整数,如果其值在-3276832767范围内,认 为它是int型,可以赋给int型或long int型;n一个整数,如果超过了-3276832767范围,而在-21474836482147483647范围内,则为长整型 ,可以赋给long int型;nsho

10、rt int与int型数据在内存中占据的长度相同,则 它的表数范围与int型相同;n一个整型常数后面加一个字母u或U,认为是 unsigned int 型的。 如:123u。n在一个整常量后面加一个字母l或L,则认为是long int 型。如:1234l;12345L。3.4 3.4 实型数据实型数据3.4.1 实型常量的表示方法 实型(浮点型)有两种表示形式:1 十进制小数形式。由数字09和小数点组成(必须有小数点)。 例如:.123、123. 、123.0、0.02 指数形式。格式:aEn、aen 。(a:十进制数 n:阶码(只能为整数,可以带符号) 例如:123e3、123E3都是实数的

11、合法表示。注意:1)字母e或E之前必须有数字,e后面的指数必须为 整数。例如:e3、2.1e3.5、.e3、e都不是合法的指数形 式。2)规范化的指数形式。在字母e或E之前的小数部 分,小数点左边应当有且只能有一位非0数字。用指数 形式输出时,是按规范化的指数形式输出的。例如:2.3478e2、3.0999E5、6.46832e12都属 于规范化的指数形式。3)实型常量都是双精度,如果要指定它为单精度 ,可以加后缀f(实型数据类型参看实型变量部分说明 )。3.4.2 实型变量 1、实型数据在内存中的存放形式一个实型数据一般在内存中占4个字节(32位)实型数据是按照指数形式存储的。系统把一个实型

12、 数据分成小数部分和指数部分,分别存放。指数部分 采用规范化的指数形式。 实数 3.14159 在内存中的存放形式。2、实型变量的分类实型变量分为:单精度(float)、双精度(double) 。(1)单精度型。类型关键字为float,一般占字节( 位)、提供6位有效数字,数值范围为:-3.4E-383.4E+38 ;(2)双精度型。类型关键字为double,一般占个字 节、提供1516位有效数字,其数值范围为-1.7E-3081.7E+308 。(3)长双精度型。类型关键字为long double,一般占 16个字节、提供1819位有效数字,其数值范围为 - 1.2E-49321.2E+19

13、32实型变量说明的格式和书写规则与整型相同。 类型说明符 变量名标识符,变量名标识符,. 例如: float x,y; (x,y为单精度实型量)double a,b,c; (a,b,c为双精度实型量)说明:(1)实型常数不分单、双精度,都按双精度double型处理。(2)实型常量可以赋值给一个float、double、long double型变量。根据变量的类型截取实型常量中相应的有效数字。main( ) float x=7.1234567890; printf(“%20.18fn“,x); 程序运行结结果:7.123456954956054700x被赋值赋值 了一个有效位数为为11位的数字。

14、但由于x 是float类类型的,所以x只能接收7位有效数字。在 printf语语句中,我们们使用了%20.18f这样这样 的格式符 号,这这指示printf语语句在输输出x时总长时总长 度应为应为 20位 ,小数部分占18位。我们们来看一下输输出的结结果,显显 然显显示了20位数,但只有7.123456共7位有效数字 被正确显显示出来,后面的数字是一些无效的数值值。 这这就表明float型的数据只接收7位有效数字。 3 实型数据的舍入误差main( ) double y; y=7.12345678901234567890; printf(“%20.18fn“,y); 程序运行结结果:7.123

15、456789012345250y被赋值赋值 了一个有效位数为为21位的数字。但由于 y是double类类型的,所以x只能接收1516位有效数 字。在printf语语句中,使用了%20.18f,这这指示 printf语语句在输输出x时总长时总长 度应为应为 20位,小数部分 占18位。我们们来看一下输输出的结结果,显显然显显示了20 位数,但只有7.123456789012345共16位有效数 字被正确显显示出来,后面的数字是一些无效的数值值。 这这就表明double型的数据只接收1516位有效数字 。 3.5 3.5 字符型数据字符型数据3.5.1 字符常量n 用单引号“ ”括起来的单个字符。例如:a 、 2 n 在内存中,字符常量占用一个字节,存放的是该字 符对应的ASCII代码值。(P374,ASCII码表)n 例如: a、 A的ASCII代码值分别是97、65。 转义字符特殊形式的字符常量,以“ ”开头的字符序列,后 跟一个或几个字符,具有特定的含义,不同于字符的 原有的意义,故称“ 转义字符”。主要用来表示一般字 符不便于表示的控制代码。控制代码的转义字符例3.5

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

当前位置:首页 > 中学教育 > 教学课件

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