C语言程序设计第02章-数据类型、运算符和表达式.ppt
《C语言程序设计第02章-数据类型、运算符和表达式.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计第02章-数据类型、运算符和表达式.ppt(102页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第2 章 基本数据类型l2.1 C的数据类型的数据类型l2.2 常量与变量常量与变量l2.3 整型整型l2.4 字符型字符型l2.5 浮点型浮点型(Floating Point)数据数据l2.6 字面值常量字面值常量l2.7 变量赋初值变量赋初值(Initialization)l2.8 各类数值型数据间的混合运算各类数值型数据间的混合运算l小结、作业及实验小结、作业及实验1 1第2章 基本数据类型l在实际问题中,可能会遇到各种各样的数据。这在实际问题中,可能会遇到各种各样的数据。这些数据都以某种特定的形式存在着。些数据都以某种特定的形式存在着。n年龄年龄:22 整数整数 n工资工资:2381.
2、85 实数实数n姓名姓名:Hussein Sadam 字符串字符串l为了方便地表示这些不同种类的数据,为了方便地表示这些不同种类的数据,C语言提供语言提供了丰富的数据类型。了丰富的数据类型。l本章仅介绍基本数据类型本章仅介绍基本数据类型 2 22.1 C的数据类型(Data Types)数据类型数据类型 C C语言要求,必须为出语言要求,必须为出现在程序中的所有数据现在程序中的所有数据指定数据类型。指定数据类型。由于由于C C语言把程序中的数语言把程序中的数据又分为据又分为变量变量和和常量常量两大两大类,因此,不论是常量数类,因此,不论是常量数据还是变量数据据还是变量数据,都要指都要指定数据类
3、型。定数据类型。C语言根据什么把数语言根据什么把数据分为变量和常量?据分为变量和常量?3 32.2 常量与变量l计算机处理的数据都要存储,存储就要有空间。计算机处理的数据都要存储,存储就要有空间。l若空间中的数据被可以修改,这个空间就称为若空间中的数据被可以修改,这个空间就称为变量空间变量空间,简称,简称变量变量。l若空间中的数据不能被修改,这个空间就称为若空间中的数据不能被修改,这个空间就称为常量空间常量空间,简称,简称常量常量。l空间的大小和数据的存储格式由数据类型来决定空间的大小和数据的存储格式由数据类型来决定。l若需要一个变量空间,一般需要通过定义来要求系统分配,定义时要若需要一个变量
4、空间,一般需要通过定义来要求系统分配,定义时要指出变量(空间)的类型,并给出变量(空间)的名称,也称指出变量(空间)的类型,并给出变量(空间)的名称,也称变量变量(空间)标识符(空间)标识符。n这个名称由用户指定,但要符合命名规则。这个名称由用户指定,但要符合命名规则。n通过变量名读写变量空间数据的方式称为直接引用方式。通过变量名读写变量空间数据的方式称为直接引用方式。l变量定义的格式为:数据类型变量定义的格式为:数据类型 标识符标识符 变量名变量名;nint m,n;/定义两个普通整型变量定义两个普通整型变量m 和和nnfloat x;/定义一个单精度浮点实型变量定义一个单精度浮点实型变量x
5、nchar ch;/定义一个字符型变量定义一个字符型变量ch4 4标识符(Identifier)l标识符标识符n变量名、符号常量名、函数名、类型名变量名、符号常量名、函数名、类型名l标识符命名规范标识符命名规范n由字母、数字、下划线由字母、数字、下划线(Underscore,_)组成组成n第一个字符必须为字母或下划线第一个字符必须为字母或下划线nC语言标识符是大小写敏感的语言标识符是大小写敏感的l关于标识符应注意以下方面:关于标识符应注意以下方面:n大小写敏感,大小写敏感,sum,Sum,SUM是是3个不同的标识符。个不同的标识符。n关键字不能作为标识符。关键字不能作为标识符。n一般不要使用以
6、下划线开头的标识符一般不要使用以下划线开头的标识符nANSI C未规定标识符的最大长度,未规定标识符的最大长度,TC最多允许最多允许32个个字符。字符。n应尽量做到应尽量做到“见名知意见名知意”5 5标识符示例l正确的标识符正确的标识符nstudent、num1、_SUM、_1_2_3nMyName、myname、my_namel错误的标识符错误的标识符nroom3-1包含了其他字符(减号)包含了其他字符(减号)n2men以数字开头以数字开头nlong与关键字重复与关键字重复nMr.Zhu 包含了其他字符(小数点)包含了其他字符(小数点)6 6常量(Constants)l常量常量n程序运行过程
7、中,其值不能被改变的量程序运行过程中,其值不能被改变的量n例如:例如:12、-6.7、an常量不仅能以字面常量的形式出现在程序中,还能以符常量不仅能以字面常量的形式出现在程序中,还能以符号常量的形式出现在程序里。号常量的形式出现在程序里。l常量与变量举例常量与变量举例nint a;nfloat b;na=-90;nb=3.14*2.1;变量变量变量变量常量常量常量常量7 7常量示例:例2_补_1.c#define PRICE 30#define NUM 12void main().total=NUM*PRICE;total2=84*PRICE2;printf(total=%d,total);.
8、不会被替换=total=12*30;常量符号常量8 8符号常量(Symbolic Constants)l概念概念n符号常量,就是用符号符号常量,就是用符号(标识符标识符)代表的一个常量。代表的一个常量。l定义方式:定义方式:#define 符号名符号名 常量值常量值l作用作用n相当于把标识符用一个常量简单替换下来相当于把标识符用一个常量简单替换下来n标识符是一个整体,不要试图拆开来替换标识符是一个整体,不要试图拆开来替换l在程序中,适当使用符号常量的好处:在程序中,适当使用符号常量的好处:n能起到能起到“见名知意见名知意”的作用,比直接写个常量直观。的作用,比直接写个常量直观。n能做到能做到“
9、一改全改一改全改”。l关于符号常量再强调以下几点:关于符号常量再强调以下几点:n符号常量名习惯上常用大写;符号常量名习惯上常用大写;n符号常量是常量而不是变量,不允许用赋值运算等改变符号常量是常量而不是变量,不允许用赋值运算等改变它的值。它的值。9 9符号常量l 所谓符号常量,就是用符号代表的一个常量。所谓符号常量,就是用符号代表的一个常量。l符号常量的定义方式为:符号常量的定义方式为:#define 符号名符号名 常量常量值值#define PI 3.14#define SNO 1001 L=2*PI*1.5;s=PI*0.6*0.6;符号常量符号常量符号常量符号常量file1.c l如果在
10、程序中某处定义了符如果在程序中某处定义了符号常量(以号常量(以PI为例),为例),l从此往后,本文件中凡是出从此往后,本文件中凡是出现现PI的地方都代表的地方都代表3.14;PI可可以和常量以和常量3.14一样参加运算一样参加运算.。l为什么要用符号来表示一个为什么要用符号来表示一个常量呢?常量呢?l这样做有什么好处?这样做有什么好处?1010符号常量l在程序中,适当使用符号常量在程序中,适当使用符号常量的好处在于:的好处在于:n能起到能起到“见名知意见名知意”的作用,的作用,比直接写个常量直观。比直接写个常量直观。n能做到能做到“一改全改一改全改”。l关于符号常量再强调以下几点关于符号常量再
11、强调以下几点n符号常量名习惯上常用大写;符号常量名习惯上常用大写;n符号常量是常量而不是变量,符号常量是常量而不是变量,不允许用赋值运算等改变它的值不允许用赋值运算等改变它的值#define PI 3.14#define SNO 1001 L=2*PI*1.5;s=PI*0.6*0.6;1111变量(Variables)l内存内存(memory):n每台计算机都要有内存,程每台计算机都要有内存,程序只有装入内存中,才可能序只有装入内存中,才可能被执行。被执行。从逻辑上看,内存是由一从逻辑上看,内存是由一个个的字节构成的。个个的字节构成的。每个字节可以容纳每个字节可以容纳8位二进位二进制数。制数
12、。每个字节都有唯一的内存每个字节都有唯一的内存地址。地址。201202203204205206207内存地址内存地址内存00001111一个字节一个字节34一一个个二二进进制制位位1212变 量 所谓变量,就是在程序执行过程中,其值可以被改变的量。所谓变量,就是在程序执行过程中,其值可以被改变的量。通俗地讲,变量就像高档饭店的房间,这体现在以下几个方面:通俗地讲,变量就像高档饭店的房间,这体现在以下几个方面:对某个房间来说,一拨客对某个房间来说,一拨客人走后,另一拨客人可以进来人走后,另一拨客人可以进来,虽然房间不变,但里头吃饭的虽然房间不变,但里头吃饭的人在变。人在变。在在C C程序中,变量
13、就是建立程序中,变量就是建立在内存里的房间,它用来存储不在内存里的房间,它用来存储不断变化的信息。存放在变量中的断变化的信息。存放在变量中的信息称为信息称为变量值变量值。为了区分不同的房间,人为了区分不同的房间,人们为每个房间起一个名字,比们为每个房间起一个名字,比如百合厅、玫瑰厅等。如百合厅、玫瑰厅等。每个变量也有变量名。每个变量也有变量名。房间有大小、档次之分。房间有大小、档次之分。变量有类型之分,变量的数变量有类型之分,变量的数据类型决定了可以容纳的信息种据类型决定了可以容纳的信息种类,也决定了所占单元的大小。类,也决定了所占单元的大小。每个房间有自己的房间号每个房间有自己的房间号,而且
14、房间名与房间号有对应关而且房间名与房间号有对应关系。系。每个变量有自己的存储地址每个变量有自己的存储地址,而且变量名与存储地址有对应关而且变量名与存储地址有对应关系。系。总之,变量具有名字、类型、值、地址等属性。总之,变量具有名字、类型、值、地址等属性。1313下面结合例子来理解变量的这些属性。下面结合例子来理解变量的这些属性。#include void main()int a;a=10;a=50;a=a*2;printf(”a=%dn”,a);在在C C程序中,变量都是先定义、后使用程序中,变量都是先定义、后使用变量的定义格式:数据类型变量的定义格式:数据类型 变量名;变量名;对于程序中定义
15、的每个变量,对于程序中定义的每个变量,TCTC会根据变量的数据类型,为会根据变量的数据类型,为它分配一定大小的存储单元。它分配一定大小的存储单元。同时,也在变量名与变量的内同时,也在变量名与变量的内存地址之间建立了对应关系。存地址之间建立了对应关系。该赋值语句会把该赋值语句会把1010存放到变量存放到变量a a中中,于是于是a a的值变为了的值变为了1010。变量(Variables)下面结合例子来理解变量的这些属性。下面结合例子来理解变量的这些属性。1414程序举例程序举例程序举例程序举例2.12.1:定义变量,检验变量空间大小和地址,给变量赋值,并在显:定义变量,检验变量空间大小和地址,给
16、变量赋值,并在显:定义变量,检验变量空间大小和地址,给变量赋值,并在显:定义变量,检验变量空间大小和地址,给变量赋值,并在显示器上显示变量的值示器上显示变量的值示器上显示变量的值示器上显示变量的值(参见演示参见演示参见演示参见演示)#include /包含包含printf 的原型的原型int main()int m,n;/定义两个整型变量定义两个整型变量 float x;/定义一个单浮点型变量定义一个单浮点型变量 char ch;/定义一个字符型变量定义一个字符型变量 printf(“%d,%d,%dn”,sizeof(m),sizeof(x),sizeof(ch);/按十进制输出变量值按十进
17、制输出变量值 printf(%x,%x,%x,%xn,&m,&n,&x,&ch);/按十六进制输出变量空间地址按十六进制输出变量空间地址 m=70;/用常量给变量赋值,用常量给变量赋值,70 表示普通整型常量表示普通整型常量 x=3.14F;/用常量给变量赋值,用常量给变量赋值,3.14F 表示单浮点型常量表示单浮点型常量 ch=A;/用常量给变量赋值,用常量给变量赋值,A表示字符型常量表示字符型常量 n=m;/把变量把变量m 的值赋给变量的值赋给变量n printf(%d,%d,%f,%cn,m,n,x,ch);/输出变量的值输出变量的值 printf(“m=%d,n=%d,x=%f,ch=
18、%cn”,m,n,x,ch);/另一种输出变量值的格式另一种输出变量值的格式 return(0);ll4,4,1l12ff7c,12ff78,12ff74,12ff70l70,70,3.140000,Alm=70,n=70,x=3.140000,ch=A1515说明:l主函数框架主函数框架nint main()nn 一组程序语句一组程序语句n return(0);nlmain 是主函数名,相当于机器语言程序的入口地址。是主函数名,相当于机器语言程序的入口地址。n一对大括号是函数体,包括一组程序语句(简称语句),语句相当于机器一对大括号是函数体,包括一组程序语句(简称语句),语句相当于机器语言指
19、令,每条语句以分号结束。语言指令,每条语句以分号结束。l“/”是注释部分,说明语句功能,便于理解,它不是程序语句。是注释部分,说明语句功能,便于理解,它不是程序语句。n如果一个注释有多行,每行前都要加如果一个注释有多行,每行前都要加“/”。例如:。例如:n注释行也常常采用注释行也常常采用“/*/”的形式,的形式,l一条语句可以同时定义几个变量,变量名彼此用逗号分隔,一条语句可以同时定义几个变量,变量名彼此用逗号分隔,n例如:例如:int m,n;一行可以书写几条语句,一行可以书写几条语句,n例如:例如:int m,n;float x;char ch;一条语句如果很长,可以分几行书写,但一条语句
20、如果很长,可以分几行书写,但是变量名或函数名不能分行写。是变量名或函数名不能分行写。1616说明:l变量初始化变量初始化n变量可以在定义的同时赋值,称为初始化:变量可以在定义的同时赋值,称为初始化:int m=70;/初始化初始化n变量初始化与赋初值是不同的:初始化是在变量定义的变量初始化与赋初值是不同的:初始化是在变量定义的同时赋值,赋初值是指变量定义之后的第一次赋值。初同时赋值,赋初值是指变量定义之后的第一次赋值。初始化等于赋初值,但是赋初值不等于初始化。始化等于赋初值,但是赋初值不等于初始化。n下面的例子是赋初值,但不是初始化:下面的例子是赋初值,但不是初始化:int m,n;m=70;
21、/给给m 赋初值赋初值n=m;/给给n 赋初值赋初值1717说明:l赋值操作符赋值操作符n变量位于赋值操作符变量位于赋值操作符“=”左端,表示给变量赋值或写左端,表示给变量赋值或写入,位于右端,表示从变量取值或读取。入,位于右端,表示从变量取值或读取。l文件包含命令文件包含命令n#include是文件包含命令,是文件包含命令,stdio.h 是库文件,是库文件,含有包括系统函数含有包括系统函数printf 在内的输入输出函数的原型。在内的输入输出函数的原型。n如果不包含这个命令而调用如果不包含这个命令而调用printf 函数,系统视为非法。函数,系统视为非法。系统报错:系统报错:printfu
22、ndefined(printf 没有定义)没有定义)1818格式输出函数printfl前面的例题中我们已多次用过这个函数。前面的例题中我们已多次用过这个函数。l函数的一般形式:函数的一般形式:nprintf(“格式控制字符串格式控制字符串”,输出表列,输出表列)l函数功能:函数功能:n对于对于任意类型数据任意类型数据按用户指定的数据按用户指定的数据格式输出格式输出到显示器到显示器屏幕上。屏幕上。l返回值返回值n若成功,返回输出的字节数,包括换行符若成功,返回输出的字节数,包括换行符n若失败,返回若失败,返回EOF(End of File)l参数说明(见下一页)参数说明(见下一页)1919函数p
23、rintf的参数说明l格式控制字符串:格式控制字符串:n由包括由包括“格式说明格式说明”和和“普通字符普通字符”组成,用于指定输出格式。组成,用于指定输出格式。n“格式说明格式说明”:由:由%和和“格式字符格式字符”组成,以说明输出数据的类型、组成,以说明输出数据的类型、形式、长度、小数位数等。形式、长度、小数位数等。n“普通字符普通字符”:在输出时原样照印,在显示中起提示作用:在输出时原样照印,在显示中起提示作用l输出列表输出列表n给出了需要输出的数据项给出了需要输出的数据项n可以是变量、常量、表达式、函数调用等可以是变量、常量、表达式、函数调用等n输出数据项与输出数据项与“格式说明格式说明
24、”在数量和类型上应该一一对应在数量和类型上应该一一对应nprintf(“格式控制字符串格式控制字符串”,输出表列,输出表列)2020函数printf的格式举例printf(a=%d b=%d,a,b);格式说明普通字符输出列表输出结果:a=3 b=4格式字符串其一般形式为:格式字符串其一般形式为:标志标志输出最小宽度输出最小宽度.精度精度长度长度 类类型型其格式符和意义如下所示:其格式符和意义如下所示:2121表表2.1 格式字符格式字符格式说明符格式说明符输出形式输出形式举例举例输出结果输出结果%d(%i)十进制整型十进制整型int a=123;printf(%d,a);123%x(%X)十
25、六进制整型十六进制整型int b=123;printf(%x,b);7b%o八进制整型八进制整型int c=123;printf(%o,c);173%u无符号十进制无符号十进制整型整型unsigned d=123;printf(%u,d);123%c(%C)单个字符单个字符char ch=A;printf(%c,ch);A%f浮点十进制,浮点十进制,默认小数默认小数6 位位float x=123.5;printf(%f,x);123.500000%g(或或G)浮点十进制,浮点十进制,舍无效舍无效0float y=123.5;printf(%g,y);123.52222表表2.1 格式字符格式字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 02 数据类型 运算 表达式
限制150内