C语言新教材PPT课堂课件-第3章基本数据类型与表达式.ppt
《C语言新教材PPT课堂课件-第3章基本数据类型与表达式.ppt》由会员分享,可在线阅读,更多相关《C语言新教材PPT课堂课件-第3章基本数据类型与表达式.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章数据类型、运算符与表达式 3.1 C语言的数据类型语言的数据类型C数据类型丰富,分为:基本类型构造类型指针类型空类型整型字符型实型单精度双精度数组结构体共用体数据有常量、变量之分,均为其中一种类型。枚举数据类型在程序中对用到的所有数据都必须指定其数据类型。3.2 常量与变量常量与变量3.2.1 常量与符号常量常量与符号常量 C语言的数据有常量和变量之分。语言的数据有常量和变量之分。常量常量 程序运行过程中不能被改变的量。程序运行过程中不能被改变的量。如程序中:20、-5 整型常量 15.8、1.2 实型常量 a 字符常量常量一般从字面形式既可判断。这种常量称为直接常量或字面常量。例:#d
2、efine PRICE 30 main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);还可用一个标识符表示一个常量 符号常量符号常量(一般用大写,以区分变量)习惯上,符号常量名用大写,变量名用小写,以示区别。使用符号常量的好处是:(1)含义清楚;(2)在需要改变一个常量时能做到“一改全改”。#define PRICE 303.2.2 变量变量变量变量 在程序运行过程中,其值可以改变的量。在程序运行过程中,其值可以改变的量。一个变量应该有一个名字,在内存中占据一定的一个变量应该有一个名字,在内存中占据一定的存储单元。在该
3、存储单元中存放变量的值。(存储单元。在该存储单元中存放变量的值。(注意注意区分变量名和变量值这两个不同的概念区分变量名和变量值这两个不同的概念),),变量名变量名 实际上是一个符号地址,在对程序编译连接时由系实际上是一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内存地址。在程序中从统给每一个变量名分配一个内存地址。在程序中从变量中取值,实际上是通过变量名找到相应的内存变量中取值,实际上是通过变量名找到相应的内存地址,从其存储单元中读取数据。地址,从其存储单元中读取数据。用来标识变量名、符号常量名、函数名、数组名、用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符
4、序列称为类型名、文件名的有效字符序列称为标识符标识符。简单。简单地说,标识符就是一个名字。地说,标识符就是一个名字。C语言规定标识符只能由语言规定标识符只能由字母、数字和下划线字母、数字和下划线三种字符组成,三种字符组成,且第一个字符必须为字母或下划且第一个字符必须为字母或下划线。线。下面列出的是合法的标识符,也是合法的变量名:下面列出的是合法的标识符,也是合法的变量名:sum,_total,month,_123,BASIC;下面是不合法的标识符和变量名:下面是不合法的标识符和变量名:M.D.John,#123,3D64,ab注意:在注意:在C语言中,大写字母和小写字母被认为是语言中,大写字母
5、和小写字母被认为是两个不同的字符。因此,两个不同的字符。因此,sum和和SUM是两个不同是两个不同的变量名。一般,变量名用小写字母表示。同时,的变量名。一般,变量名用小写字母表示。同时,在在C语言中,关键字不能作为标识符合变量名的。语言中,关键字不能作为标识符合变量名的。也不能和用户编制的函数或也不能和用户编制的函数或C C语言库函数同名。语言库函数同名。在在C语言中,要求所有变量都要语言中,要求所有变量都要“先定义,后使先定义,后使 用用”,这样做的目的是:,这样做的目的是:(1)凡未被事先定义的,不作为变量名,这就能保证凡未被事先定义的,不作为变量名,这就能保证程序中变量名使用的正确。程序
6、中变量名使用的正确。(2)每一个变量被指定为一确定类型,在编译时就能每一个变量被指定为一确定类型,在编译时就能为其分配相应的存储单元。为其分配相应的存储单元。(3)指定每一变量属于一个类型,这就便于在编译时,指定每一变量属于一个类型,这就便于在编译时,据此检查该变量所进行的运算是否合法。据此检查该变量所进行的运算是否合法。例例:int a,b;a%b 可以得到可以得到a除以除以b的余数,如果将的余数,如果将a和和b定义成定义成实型变量,就不能进行求余运算。实型变量,就不能进行求余运算。3.3 整型数据整型数据 整型常量即整常数。整型常量即整常数。C语言整型常量可以写成十进制、语言整型常量可以写
7、成十进制、八进制、十六进制三种形式。具体形式如下:八进制、十六进制三种形式。具体形式如下:(1)十进制整数。如:十进制整数。如:123,-456,0。(2)八进制整数。以数字八进制整数。以数字0开头的数是八进制数。如开头的数是八进制数。如0123表示八进制数表示八进制数123,其等于十进制数,其等于十进制数83。(3)十六进制整数。以十六进制整数。以0 x开头的数是十六进制数。如开头的数是十六进制数。如0 x123,代表十六进制数,代表十六进制数123,即等于十进制数,即等于十进制数291。3.3.1 整型常量的表示方法整型常量的表示方法1.整型数据在内存中的存放形式整型数据在内存中的存放形式
8、 大家都知道,数据在内存中是以二进制形式来存放的,那么如何来存放一个整型变量呢?一个整型变量在计算机内存中占两个字节,以补码的形式来存放的,占十六位。3.3.2 整型变量整型变量2.整型变量的分类整型变量的分类 整型变量的基本类型符为int。根据数值的范围将变量定义为基本整型、短整型和长整型三种。如下表示:1.基本整型:用“int”表示2.短整型:用“short int”或“short”表示3.长整型:用“long”或“long int”表示 在C语言中,一个int型变量的值的范围 ,即3276832767,但有的变量的值却是正的,因此在C中,可以将变量定义为“无符号”类型,用修饰符unsig
9、ned。有符号用signed修饰符,如果不指定为unsigned,则默认为signed型。因此,加上有符号和无符号,整型变量就有6种形式,其如下所示:有符号基本整型 int 无符号基本整型 unsigned int 有符号短整型 short int 无符号短整型 unsigned short int 有符号长整型 long int 无符号长整型 unsigned long int 对于这6种整型变量,在计算机内存中,所占用的内存空间不一样,下面是这6种所占的位数。表2.1 Turbo C所支持的整型数据类型关键字关键字所占位数所占位数最小取值范围最小取值范围int16-3276832767un
10、signed int16065535unsigned short int16065535signed short int16同同 intlong int 32-21474836482147483647unsigned long int32042949672953.整型变量的定义整型变量的定义 例:整型变量的定义和使用。main()int a,b,c,d;/*a,b,c,d为整型变量*/unsigned u;/*u为无符号整型*/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=-143.4 实
11、型数据实型数据 实数又称为浮点数。实数有两种表示形式:(1)十进制小数形式。它由数字和小数点组成(注意必须有小数点)。如:0.123,1.23,12.3等。(2)指数形式。如123e3或123E3,都是123000。但注意字母e(或E)之前必须有数字,且e后面的指数必须为整数。一个实数可以有多种指数表示形式,因此规定了规范化的指数形式,即在字母e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字。如:1.23e3。一个实数在用指数形式输出时,是按规范化的指数形式输出的。3.4.1 实型常量的表示方法实型常量的表示方法1.实型变量的分类实型变量的分类 C实型变量可以分为单精度
12、(实型变量可以分为单精度(float)型、双精度()型、双精度(double)型和长双精度(型和长双精度(long double)型三种。)型三种。3.4.2 实型变量实型变量类型所占位数有效数字数值范围float3267P46double641516同上long double1281819同上 2.实型数据的舍入误差实型数据的舍入误差 由于实型变量是用有限的存储单元存储的,因此能提供的有效数字总是有限的,在有效位以外的数字将被舍去。由此可能会产生一些误差。如下面的例子。例:实型数据的舍入误差。main()float a,b;/*定义a和b为单精度型的*/a=123456.789e5;b=a+
13、20;printf(“%f,b);结果a和b的值都相等。3.5 字符型数据字符型数据 C语言的字符常量是用单撇号括起来的一个字符。如x,+,n,101都是合法的字符常量。注意,a和A是不同的字符常量。字符数据在内存中是以ASCII码存储,它的存储形式与整数的存储形式类似。因此可以通用。除了以上形式的字符常量外,C还允许用一种特殊形式的字符常量,就是以一个“”开头的字符序列。例如,在前面遇到过的n,它代表一个“换行”符。这是一种“控制字符”,在屏幕上是不能显示的。在程序中也无法用一个一般形式的字符表示,只能采用特殊形式来表示。3.5.1 字符常量字符常量常用的以开头的特殊字符如表2.3所示。字符
14、形式字符形式功功 能能n换行换行t横向跳格(跳到下一个输出区)横向跳格(跳到下一个输出区)v竖向跳格竖向跳格b退格,将当前位置移到前一列退格,将当前位置移到前一列r回车,将当前位置移到本行开头回车,将当前位置移到本行开头f走纸换页,将当前位置移到下页开头走纸换页,将当前位置移到下页开头反斜杠字符反斜杠字符“”单引号字符单引号字符双引号字符双引号字符a报警报警0空值空值ddd1到到3位位8进制数所代表的字符进制数所代表的字符xhh1到到2位位16进制数所代表的字符进制数所代表的字符例:转义字符的使用例:转义字符的使用 main()printf(“_ab_ct_derftgn”);printf(“
15、htibbj_k”);字符型变量用来存放字符常量,请注意只能放一个字符,不要以为在一个字符变量中可以放一个字符串(包括若干个字符)。字符变量的定义形式如下:char c1,c2;它表示c1和c2为字符型变量,各可以放一个自符,因此在本函数中可以用下面语句对c1、c2赋值:c1=a;c2=b;在所有的编译系统中都规定以一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。3.5.2 字符变量字符变量 将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。例如字符a的ASCII代码为97,b为98,在内存中是将97,9
16、8的二进制数存放到内存。字符数据以ASCII码存储,它的存储形式就与整型的存储形式类似。这样是字符数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整型形式输出。以字符形式输出时,需要先将存储单元中的ASCII码转换成相应字符,然后输出。以整数形式输出时,直接将ASCII码作为整数输出。也可以对字符数据进行算术运算,此时相当于对它们的ASCII码进行算术运算。3.5.3 字符数据在内存中的存储形式及其使用方法字符数据在内存中的存储形式及其使用方法 例:向字符变量赋以整数。main()char c1,c2;/*c1,c2为字符变量*/c1=97;c2=98;printf(“%
17、c%cn”,c1,c2);/*%c是字符输出的格式*/printf(“%d%dn”,c1,c2);输出结果:a b 97 98例:大小写字母的转换例:大小写字母的转换 main()char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(“%c%c”,c1,c2);输出结果:输出结果:A B 字符常量是由一对单撇号括起来的单个字符。C语言除了允许使用字符常量外,还允许使用字符串常量。字符串常量是一对双撇号括起来的字符序列。如:“How do you do.”,“CHINA”,“a”,“$123.45”等。都是字符常量。可以输出一个字符串,如:printf(“H
18、ow do you do.”);不要将字符常量与字符串常量混淆。a是字符常量,而“a”是字符串常量,二者是不相同的。例:char c;c=a;是正确的 c=“a”;不正确 因为不能把一个字符串赋给一个字符变量。3.5.4 字符串常量字符串常量字符常量与字符串的区别:(1)字符常量在内存中占一个字节,而字符串不)字符常量在内存中占一个字节,而字符串不是;是;(2)C规定:在每一个字符串的结尾加一个规定:在每一个字符串的结尾加一个“字符字符串结束标志串结束标志”,以便系统据此判断字符串是否结,以便系统据此判断字符串是否结束。束。C语言以语言以0作为字符串结束标志。即是作为字符串结束标志。即是一个一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 新教材 PPT 课堂 课件 基本 数据类型 表达式
限制150内