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

上传人:今*** 文档编号:106906110 上传时间:2019-10-16 格式:PPT 页数:50 大小:919.50KB
返回 下载 相关 举报
第3章 数据类型、运算符与表达式_第1页
第1页 / 共50页
第3章 数据类型、运算符与表达式_第2页
第2页 / 共50页
第3章 数据类型、运算符与表达式_第3页
第3页 / 共50页
第3章 数据类型、运算符与表达式_第4页
第4页 / 共50页
第3章 数据类型、运算符与表达式_第5页
第5页 / 共50页
点击查看更多>>
资源描述

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

1、第3章 数据类型、运算符与表达式,程序=算法+数据结构+程序设计方法+语言工具和环境,3.1 C的数据类型,数据类型,基本类型,构造类型,指针类型(),空类型(void),字符型(char),数值类型,枚举类型(enum),数组类型( ),结构体类型(struct),共用体类型(union),整型(short,int,long,unsigbed),实型,单精度型(float),双精度型(double),3.2 常量与变量,常量的分类 1)整型常量(如12、0、-3为整型常量) 2)实型常量(4.6、-1.23为实型常量) 3)字符常量( a、d字符常量) 4)符号常量(具有含义清楚、见名知意、

2、修改方便、一 改全改的优点 )。,常量 程序运行过程中不能被改变的量。,在程序运行过程中,其值可以被改变的量称为变量。 变量代表内存中具有特定属性的一个存储单元,它用来存放数据,这就是变量的值,在程序运行期间,这些值是可以改变的。 变量名实际上是一个以一个名字对应代表一个地址,在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。,每个变量都必须有一个名字变量名, 变量命名遵循标识符命名规则。,变量命名的规定:语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。 例: sum,_

3、total, month, Student_name, lotus_1_2_,BASIC, li_ling M.D.John, ¥123,3D64,ab,注意: 编译系统将大写字母和小写字母认为是两个不同的字符。 建议变量名的长度最好不要超过8个字符。 在选择变量名和其它标识符时,应注意做到“见名知意”,即选有含意的英文单词 (或其缩写)作标识符。 要求对所有用到的变量作强制定义,也就是“先定义,后使用” 。,整形数据,1整型常量,整型常量即整常数。整常数有三种表示形式: 1)十进制;2)八进制;以0头的数是八进制数。 3)十六进制 以0x开头的数是16进制数。,2.整形变量,整型数据在内存中

4、的存放形式(二进制),根据占用内存字节数的不同,整型变量又分为类:,1)基本整型(类型关键字为int)。 2)短整型(类型关键字为short int)。 3)长整型(类型关键字为long int)。 4)无符号整型。,整型变量的分类,注意:括号表示其中的内容是可选的。,共六种,有符号基本整型 有符号短整型 有符号长整型 无符号基本整型 无符号短整型 无符号长整型,(signed)int (signed)short (int ) (signed) long (int) unsigned int unsigned short (int) unsigned long (int),3.3 整型数据,整

5、数类型的有关数据:,类型 类型说明符 长度 数的范围 基本型 int 2字节 -3276832767 短整型 short 2字节 -215215-1 长整型 long 4字节 -231231-1 无符号整型 unsigned 2字节 065535 无符号短整型 unsigned short 2字节 065535 无符号长整型 unsigned long 4字节 0(232-1),整型变量的定义,变量说明的一般形式为: 类型说明符 变量名标识符,变量名标识符,.;,int a,b,c; (a,b,c为整型变量) long x,y; (x,y为长整型变量) unsigned int p,q; (p

6、,q为无符号整型变量),例3.2 整型变量的定义与使用 #include void main() int a,b,c,d; /*指定、为整型变量* unsigned ; *指定为无符号整型变量* 12;-24;10; ; printf(,); ,运行结果: ,,例3.3 整型数据的溢出 #include void main() int a,b; a=32767; b=a+1; printf(“%d,%dn”,a,b); ,说明:数值是以补码表示的。一个整型变量只能容纳-3276832767范围内的数,无法表示大于32767或小于-32768的数。遇此情况就发生“溢出”。,运行结果: 32767

7、,-32768,3.4 浮点型数据,3.4.1浮点型常量的表示方法,两种表 示形式,小数 指数,0.123 3e-3,注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数:,1e3、1.8e-3、-123e-6、-.1e-3 e3、2.1e3.5、.e3、e,3.4 浮点型数据,规范化的指数形式: 在字母e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字。 例如: 123.456可以表示为: 123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e 其中的1.23456e3称为“规范

8、化的指数形式”。,3.4 浮点型数据,3.4.2 浮点型变量 (1)浮点型数据在内存中的存放形式 一个浮点型数据一般在内存中占4个字节(32位)。与整型数据的存储方式不同,浮点型数据是按照指数形式存储的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。指数部分采用规范化的指数形式。,3.4 浮点型数据,(2) 浮点型变量的分类 浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(long double)三类形式。,例3.4 浮点型数据的舍入误差 #include void main() float a,b; a = 123456.789e5; b = a + 20

9、 ; printf(“%fn”,b); ,说明:一个浮点型变量只能保证的有效数字是7位有效数字,后面的数字是无意义的,并不准确地表示该数。应当避免将一个很大的数和一个很小的数直接相加或相减,否则就会“丢失”小的数,运行结果: 123456.789e5,3.4 浮点型数据,3.4.3 浮点型常量的类型 C编译系统将浮点型常量作为双精度来处理。 例如:f = 2.45678 * 4523.65 系统先把2.45678和4523.65作为双精度数,然后进行相乘的运算,得到的乘也是一个双精度数。最后取其前7位赋给浮点型变量f。如是在数的后面加字母f或F(如1.65f, 654.87F),这样编译系统就

10、会把它们按单精度(32位)处理。,3.5 字符型数据,3.5.1 字符常量 (1)用单引号包含的一个字符是字符型常量 (2)只能包含一个字符,例,a,A, 1 abc、“a”,字符型数据,用一对单引号括起来的单个字符,称为字符常量,字符可以是字符集中任意字符。但数字作为字符型参与数值运算时数字的值就不是它的ASCII值。,语言还允许使用一种特殊形式的字符常量,就是以反斜杠“ ”开头的转义字符。,字符变量的类型关键字为char,一般占用1字节内存单元。,字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。可作为整数和字符两

11、种形式输出,可对字符进行整数运算( ASCII码值)。,其它如下表:,字符形式,n,t,v,b,r,f,ddd,xxh,功能,换行,横向跳格(即跳到下一个输出区),竖向跳格,退格,回车,走纸换页,反斜杠字符“ ”,单引号(撇号)字符,1到3位8进制数所代表的字符,1到2位16进制数所代表的字符,例3.6 向字符变量赋以整数。 #include void main() char c1,c2; c1=97; c2=98; printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); ,说明:在第和第4行中,将整数和分别赋给c1和c2,它的作用相当于以下两个赋值语句

12、: c1;c2; 因为a和b的ASCII码为和,运行结果: 97 98,例3.7 大小写字母的转换 #include void main() char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; printf(“c c,c1,c2); ,说明:程序的作用是将两个小写字母a和b转换成大写字母A和B。从代码表中可以看到每一个小写字母比它相应的大写字母的码大。语言允许字符数据与整数直接进行算术运算。,运行结果: ,3.5 字符型数据,说明: 有些系统(如Turbo C)将字符变量定义为signed char型。其存储单元中的最高位作为符号位,它的取值范围是-1281

13、27。如果在字符变量中存放一个ASCII码为0127间的字符,由于字节中最高位为0,因此用%d输出字符变量时,输出的是一个正整数。如果在字符变量中存放一个ASCII码为128255间的字符,由于在字节中最高位为1,用%d格式符输出时,就会得到一个负整数。,字符串常量,字符串常量是用一对双引号括起来的若干字符序列。,C语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个0作为字符串的结束标志。,a是字符常量,而“a”是字符串常量。,不能将一个字符串赋给一个字符变量。,C中没有字符串变量,需要用字符数组存放字符串。,C规定,可以在定义变量的同时给变量赋初值。,3.6 变量赋初值,(1)语言

14、允许在定义变量的同时使变量初始化。 如: int a=3; / 指定为整型变量,初值为 float f=3.56; / 指定为浮点型变量,初值为.56 char c= a; / 指定为字符变量,初值为a,3.6 变量赋初值,(2)可以使被定义的变量的一部分赋初值。 如: int a,b,c=5; 表示指定、为整型变量,但只对初始化,c的初值为 (3)如果对几个变量赋以同一个初值, 应写成:int a=3,b=3,c=3; 表示、的初值都是。 不能写成 int a=b=c3;,注意:初始化不是在编译阶段完成的而是在程序运行时执行本函数时赋初值的,相当于有一个赋值语句。,各类数值型数据间的混合运算

15、,整型、单精度型、双精度型数据可以混合运算。 不同类型的数据要先转换成同一类型,然后进行运算。转换规则如图:,箭头只表示转换方向,并不是依次转换。转换过程是自动完成的。,3.8 C运算符简介,运算符:狭义的运算符是表示各种运算的符号。 C语言运算符丰富,范围很宽,把除了控制语句和输入/输出以外的几乎所有的基本操作都作为运算符处理,所以C语言运算符可以看作是操作符。C语言丰富的运算符构成C语言丰富的表达式(是运算符就可以构成表达式)。运算符丰富、表达式丰富、灵活。 在C语言中除了提供一般高级语言的算术、关系、逻辑运算符外,还提供赋值运算符,位操作运算符、自增自减运算符等等。甚至数组下标,函数调用都作为运算符。,运算符类别,C中各类运算符的优先级:,初等运算符 ( )、 、,单目运算符 !、+ +、 、+ 、 、(类型),算术运算符 、/ 、% ,+、 ,关系运算符 、= ,= =、! =,逻辑运算符 &、,条件运算符 ? :,赋

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

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

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