200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > c语言数据类型ppt C语言基本数据类型.ppt

c语言数据类型ppt C语言基本数据类型.ppt

时间:2021-05-24 15:36:14

相关推荐

c语言数据类型ppt C语言基本数据类型.ppt

C语言基本数据类型.ppt

第 2章 基本数据类型、运算符与表达式,2.1 C语言的数据类型 2.2 常量与变量 2.3 整型数据 2.4 实型数据 2.5 字符型数据 2.6 各类数据混合运算 2.7 C语言的运算符与表达式 2.8 运算符的优先级及其结合性,Return,本章学习目标 熟悉C语言的数据分类 掌握常量的表示方法与变量赋初值的方法 掌握不同类型数据间的混合运算 掌握基本运算符及其表达式的使用,第 2章 基本数据类型、运算符与表达式,Return,本章学习目标 先做好预习 认真听课 自己上机练习实践 多用多记 在后续内容学习中重复巩固,2.1 C语言的数据类型,C语言提供了以下一些主要数据类型,说明 C语言为每个类型定义了一个标识符,称为类型名。例如整型用int标识、字符型用char标识等。一个类型名由一个或几个关键字组成,仅用于说明数据属于哪一种类型。, 对于基本数据类型,按取值是否可改变分为常量和变量两种。在程序执行过程中,其值不发生改变的量称为常量,取值可变的量称为变量。它们可与数据类型结合起来分类。例如,可分为整型常量、整型变量、字符常量、字符变量等。在程序中,常量是可以不经过说明而直接引用的,而变量则必须先说明后使用。,Return,在程序运行中,其值不改变的量称为常量。常量区分为不同的类型,如 5、0、-7为整型常量 3.2、-4.68为实型常量 a、f为字符常量 常量从字面形式即可判别。也可用一个标识符代表一个常量,称为符号常量。习惯上,符号常量名用大写,变量名用小写字母表示,以示区别,例如 define PI 3.1415926,2.2 常量与变量,Return,2.2.1 常量,【例2-1】符号常量的使用。,已知圆半径为r,求圆周长c和圆面积s的值。 define PI 3.1415926 main float r,c,s; scanf“f”, ,在该程序中,用define命令行定义PI,PI为定义的符号常量代表3.1415926,此后凡在程序中出现的PI都代表3.1415926。,f表示以小数或者指数形式输入实型数据从上面的例子可以看出使用符号常量的好处 一是含义清楚、见名知意。 看程序时从PI就可以知道它代表圆周率; 二是修改方便,一改全改。 如要“ define PI 3.1415927”,则在程序中 所有出现PI的地方值全部改为3.1415927。,Return,在程序运行时其值可以改变的量称为变量。 变量是由变量名、变量值和存储单元组成的。,2.2.2 变量,1变量名的命名规则,变量名用标识符表示。在C语言中,用来对变量、符号常量、函数、数组等数据对象命名的有效字符序列统称为标识符。 C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须是字母或下划线。,下面列出的是合法的标识符,可作为变量名 abc, sum,f4,student_1,下面是不合法的标识符 8h 以数字开头 -5 以减号开头 A* 出现非法字符* xy 出现非法字符,在使用标识符时须注意以下几点,(1)建议变量名的长度最好不要超过8个字符。 (2)标识符大小写是有区别的。 (3)标识符命名时应尽量有相应的含义,增加程序的可读性。,2变量的定义,在C语言中,要求对所有用到的变量必须先定义。 定义格式 类型说明符 变量1,变量2,; 其中,类型说明符是C语言中的一个有效的数据类型,如整型类型说明符int、字符型类型说明符char等。,例如 int a, b, c ; char cc ; 在C语言中,要求对所有用到的变量作强制定义,也就是“先定义,后使用”。,Return,2.3.1 整型常量,2.3 整型数据Return,整型常量即整常数。C语言中的整常数可用以下3种形式表示 (1)十进制整常数。 十进制整常数没有前缀,其数码为09。 如123、-234、0 (2)八进制整常数。 八进制整常数以数字0作为前缀。 如0123、-0234,后面只能是有效的八进制数字07,若写成09就错了。 (3)十六进制整常数。 十六进制整常数的前缀为0X或0 x。其数码取值为09,AF或af。如0 x19A、-0 x2f。,2.3.2 整型变量,1.整型数据在内存中的存放形式 整型数据在内存中是以二进制形式存放的。 例如,定义了一个整型变量a int a ; /*定义a为整型变量*/ a 25 ; /*给a赋以整数25*/,十进制数25的二进制形式为11001,Turbo C 2.0和Turbo C 3.0为一个整型变量在内存中分配2个字节的存储单元(不同的编译系统为整型数据分配的字节数是不相同的),在这里我们假定每一个整型变量在内存中占2个字节。,2.3.2 整型变量,1个字节(Byte)由8个二进制位(bit)构成. 每一个字节有一个地址,2.整型变量的分类 整型变量的基本类型符为int。 可以根据数值的范围将变量定义为基本整型、短整型或长整型。,有以下3类整型变量 基本整型,以int表示。 短整型,以short int表示。 长整型,以 long int表示。,整数(Integer,在int前可以加上以下类型修饰符,用来改变和扩充基本类型的含义,long 长 short 短 signed 有符号 unsigned 无符号,这些修饰符与int可以组合成以下6种整型变量。即,有符号的基本整型 signed int 无符号的基本整型 unsigned int 有符号的短整型 signed short int 无符号的短整型 unsigned short int 有符号的长整型 signed long int 无符号的长整型 unsigned long int,上面的方括号表示其中的内容是可选的。,【例2-2】下图保存了整数14的各种整型数据类型。,字节Byte通常将可表示常用英文字符8位二进制称为一字节,。,字节Byte 通常将可表示常用英文字符8位二进制称为一字节 位一位二进制数为一位。,3.整型变量的定义 在C语言程序中所有用到的变量都必须在程序中定义。,格式 数据类型名 变量名;,【例2-3】变量的定义与使用。,/*exam2_3*/ main int a, b, c, sum ; /* 定义整型变量a、b、c、sum */ a3, b-4, c9 ; /* a、b、c分别赋初值 */ sum abc ; /* 求a、b、c的和赋给变量sum*/ printf“nsum d”, sum ; /* 换行输出变量sum的值*/ ,程序运行结果,sum8,演示,4.整型数据的溢出 一个int型变量的最大允许值为32767,如果再加1,那么结果会是什么样的呢我们看下面这个例子。,【例2-4】整型数据的溢出。,/*exam2_4*/ main int a, b ; a32767 ; ba1 ; printf“nad, a1dn“, a, b ; a-32768 ; ba-1 ; printf“nad, a-1dn“, a, b ; ,程序运行结果,a32767, a1-32768 a-32768, a-132767,演示,可以认为是时钟循环,5.整型常量的类型,(1)一个整数如果其值在-3276832767范围内,则认为是int型,可以赋给int型和long int型变量。 (2)一个整数如果其值超过了上述范围,在-21474836482147483647内,则认为是long int型,可赋给long int型变量。 (3)如果所使用的C语言版本确定short int和int型数据在内存中占据长度相同,则其表示范围与int型相同。因此一个int型的常量也同时是一个short int型常量,可以赋给int型或short int型变量。 (4)常量中无unsigned型,但可以将一个非负值且在取值范围内的整数赋给unsigned型变量。 (5)在一个整常量后面加一个字母l或L,则认为是long int型常量。,2.4 实型数据,1实型常量的表示方法,2.4.1 实型常量,C语言中的实数(浮点数)有两种表示形式 1十进制小数形式 由数字09和小数点和正负号组成(必须有小数点)。 2指数形式 也称为科学计数法,以幂的形式表示,以字母e或E后跟一个以10为底的幂数。其一般形式为aeb,表示a10b,其中a是十进制数,可以是整数或是小数,字母e或E之前必须要有数字,且字母e或E后面的指数b必须为整数,字母e或E的前后及数字之间不得有空格。,Return,2实型常量的类型,许多C编译系统将实型常量作为双精度实数来处理。这样可以保证较高的精度,缺点是运算速度降低(Win-TC是)。可以在实数的后面加字符f或F,如1.65f、654.87F,使编译系统按单精度处理实数。 实型常量可以赋值给一个float、double、long double型变量。根据变量的类型截取实型常量中相应的有效数字。,【例2-5】显示个人微机上不同类型变量所占的字节数。,/*exam2_5*/ include main printf“the bytes of the variables aren”; printf“intd bytesn”,sizeofint; printf“chard bytesn”,sizeofchar; printf“shortd bytesn”,sizeofshort; printf“longd bytesn”,sizeoflong; printf“floatd bytesn”,sizeoffloat; printf“doubled bytesn”,sizeofdouble; printf“long doubled bytesn”,sizeoflong double; ,程序运行结果,the bytes of the variables are int2 bytes char1 bytes short2 bytes long4 bytes float4 bytes double8 bytes long double10 bytes,演示,1实型数据在内存中的存放形式,2.4.2 实型变量,一个实型数据一般在内存中占4个字节32位。与整数存储方式不同,实型数据是按照指数形式存储的。系统将实型数据分为小数部分和指数部分,分别存放。,2. 实型变量的分类,语言的实型变量,分为两种,(1)单精度型。 类型关键字为float,一般占字节(32位)、提供位有效数字(小数后面6位小数)。 (2)双精度型。 类型关键字为double,一般占个字节、提供1516位有效数字。,3实型数据的舍入误差,实型变量是由有限的存储单元组成的,因此提供的有效数字总是有限的。在有效位以外的数字将被舍去。由此可能会产生一些误差。,【例2-6】实型数据的舍入误差。,/*exam2_6*/ main float x,y; x123456.789e5; yx20; printf“xf,yfn“,x,y; ,程序运行结果,x12345678848.000000,y12345678848.000000,演示,【例2-7】实型数据的定义和使用。,/*exam2_7*/ main float x ; double y ; x123456.1234; y123456.1234 ; printf“xf,ylfn”,x,y; ,程序运行结果,x 123456.125000, y 123456.123400,演示,字符型常量是用一对单引号()即撇号括起来的一个字符。只能用单引号括起来,不能用双引号或其它括号。 字符常量只能是单个字符,不能是字符串。 注意a和A是不同的字符常量。 例如 d, R, , , 等都是合法字符常量。 小结 “ 双单 ”,2.5 字符型数据,2.5.1 字符常量,1. 定义,Return,2. 转义字符,转义字符是一种特殊的字符常量,是以反斜杠开头的字符序列。,【例2-8】转义字符的使用。,/*exam2_8*/ main printf“x4Fx4B”; ,OK,程序运行结果为,演示,1. 变量值的存储,2.5.2 字符变量,字符变量的定义形式如下 char a1,a2;,它表示a1和a2为字符型变量,各可以放一个字符,因此在本函数中可以用下面语句对a1、a2赋值 a1x; a2y;,2. 特性,(1)一个字符型数据,既可以字符形式输出,也可以整数形式输出。,(2)允许对字符数据进行算术运算,此时就是对它们的ASCII码值进行算术运算。,/*exam2_10*/ main char ch1,ch2; ch1a; ch2b; printf“ch1c,ch2cn”,ch1,ch2; printf“ch1d,ch2dn”,ch1,ch2; ,【例2-10】用字符形式和整数形式输出字符变量。,程序运行结果,ch1a,ch2b ch197,ch298,演示,【例2-11】字符数据的算术运算。,/*exam2_11*/ main char ch1,ch2; ch1a; ch2B; printf“ch1c,ch2cn”,ch1-32,ch232; /*字母的大小写转换*/ ,程序运行结果,ch1A,ch2b,演示,2.5.3 字符串常量,1.字符串常量的概念和字符串长度,字符串常量是用一对双引号“ ”括起来的若干字符序列。这里的双引号仅起到字符串常量边界符的作用,它并不是字符串常量的一部分。 字符串中字符的个数称为字符串长度。长度为0的字符串(即一个字符都没有的字符串)称为空串,表示为“”(一对紧连的双引号)。,2.字符串的存储,C语言规定在存储字符串常量时,由系统在字符串的末尾自动加一个0作为字符串的结束标志。,如有一个字符串为“CHINA”,则它在内存中的 实际存储如下图所示存储长度为6,Return,2.6 各类数据混合运算,整型、实型、字符型数据之间可以混合运算。 运算规则不同类型的数据先转换成同一类型,然后进行计算。 转换方法自动转换(隐式转换)、强制转换。,Return,自动转换(隐式转换) 自动转换发生在不同类型数据进行混合运算时,由编译系统自动完成。 自动转换规则类型不同,先转换为同一类型,然后进行运算。,(1) 图中纵向的箭头表示当运算对象为不同类型时转换的方向。 (2) 图中横向向左的箭头表示必定的转换。,2. 强制转换通过类型转换运算来实现。,格式(类型说明符)表达式 功能把表达式的结果强制转换为类型说明符所表示的类型。,例如 doublea /*将变量a的值转换成double型*/ intxy /*将xy的结果转换成int型*/,【例2-12】强制类型转换。,/*exam2_12*/ main() float x; int i; x3.6; iintx; printf“xf,id”,x,i; ,程序运行结果,x3.600000, i3x的类型仍为float型,值仍等于3.6。,演示,2.7 C语言的运算符与表达式,运算符表示各种运算的符号。 表达式使用运算符将常量、变量、函数连接起来的式子。,算术运算符 ( - * / ) 关系运算符 ( ) 逻辑运算符 ( ) 位运算符 ( | i430; hi/60; mi-60*h; printf“nd minutes d hour d minutes”,i,h,m; ,程序运行结果,430 minutes 7 hour 10 minutes,演示,【例2-14】求表达式2d-10的值。(设a64,d6),/*exam2_14*/ include /*调用标准数学函数,注意添加*/ main float a,d,s; a64,d6; s2*sqrtad-10; printf“n6.2f”,s; ,程序运行结果,12.00,演示,2.7.2 自增与自减运算符,1. 功能 自增运算符的作用是使变量的值增,自减运算符的作用是使变量的值减。 2. 用法与运算规则 自增、自减运算符都有两种用法,(1)前置运算运算符放在变量之前变量、变量 (2)后置运算运算符放在变量之后变量、变量,【例2-16】自增、自减运算符的用法。,/*exam2_16*/ main int x6, y ; printf“xdn“,x ; /*输出x的初值*/ yx ; /*前置运算*/ printf“yx xd,ydn“,x,y ; yx ; /*后置运算*/ printf“yx xd,ydn“,x,y ; ,程序运行结果,x6 yx x7,y7 yx x6,y7,演示,注意在表达式中,连续使同一变量进行自增或自减运算时,很容易出错,所以最好避免这种用法。,Return,2.7.3 赋值运算符和赋值表达式,1. 赋值运算符 赋值运算符为 “”,它的作用是将一个数据赋给一个变量。,转换原则先将赋值号右边表达式类型转换为左边变量的类型,然后赋值。,【例2-17】赋值运算中类型转换的规则。,/*exam2_17*/ main int i5 ; /*说明整型变量i并初始化为5*/ float a3.5, a1; /*说明实型变量a和a1并初始化a*/ double b123456789.123456789 ; /*说明双精度型变量b并初始化*/ char cA ; /*说明字符变量c并初始化为A*/ printf“id, af, bf, ccn“, i, a, b, c ; /*输出i,a,b,c的初始值*/ a1i; ia; ab; ci; /*整型变量i的值赋值给实型变量a1*/ /*实型变量a的值赋给整型变量i*/ /*双精度型变量b的值赋值给实型变量a*/ /*整型变量i的值赋值给字符变量c */ printf“id, af, a1f, ccn“, i, a, a1, c ; /*输出i,a,a1,c赋值以后的值*/ ,程序运行结果,i5,a3.500000,b123456789.123457,cA i3,a123456792.000000,a15.000000,c,演示,2. 复合的赋值运算符,在赋值符“”前加上某些运算符,可以构成复合赋值运算符。即 , -, *, /, , , ab*d; b-c/d; printf“d,d,d,dn“,a,b,c*2*a,dc ; getch ; ,2. 复合的赋值运算符,在赋值符“”前加上某些运算符,可以构成复合赋值运算符。即 , -, *, /, , , 执行赋值运算,将5b的值赋给变量a,同时整个表达式的值就是刚才所赋的值。 赋值运算符的功能一是计算,二是赋值。,Return,2.7.4 关系运算符及其表达式,1. 关系运算符 C语言提供了6种关系运算符 大于 大于或等于 等于 不等于,2. 关系表达式 用关系运算符将两个操作数连接起来的合法的C语言式子,称为关系表达式。,例如,关系表达式”12”的值为“假”, “43”的值为“真”。 在C语言中以0表示逻辑假,以1表示逻辑真。 当输出结果为逻辑真时,显示1; 当输出结果为逻辑假,显示0。,Return,2. 关系表达式,include “stdio.h“ main int a,b,c,x17,y16,z13; axyz; bx-yz; cxy; printf“nxd,yd,zdn“,x,y,z; printf“nad,bd,cdn“,a,b,c; getch ; ,Return,2.7.5 逻辑运算符及其表达式,1. 逻辑运算符 C语言提供三种逻辑运算符 逻辑或(相当于“OR”) 逻辑与(相当于“AND”) 逻辑非(相当于“NOT”),逻辑运算符的运算规则,当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。 当且仅当两个运算量的值都为“假”时,运算结果为“假”,否则为“真”。 当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。 C语言中的“或”符号怎么输入shift ,逻辑运算符的优先级,“逻辑非”的优先级最高 “逻辑与”次之 “逻辑或”最低 “与数字电路一致”,2. 逻辑表达式,逻辑表达式是指用逻辑运算符将1个或多个表达式连接起来,进行逻辑运算的式子。在C语言中,用逻辑表达式表示多个条件的组合。 注意判断一个数据的“真”和“假时”,以“0”和“非0”为依据。,Return,2. 逻辑表达式,include “stdio.h“ include “string.h“ include “math.h“ main int a,b,c; scanf“d,d,d“, ,Return,2.7.6 逗号运算符,及其表达式,逗号运算符的结合方向是“从左向右”,它的优先级是所有运算符中最低的。 用逗号运算符连接起来的表达式称为逗号表达式。 它的一般形式为表达式1,表达式2表达式n 逗号表达式的运算过程是 先算表达式1,再算表达式2,依次计算直到表达式n。整个逗号表达式的值是表达式n的值。,2.7.7 位运算符及其表达式,位运算符是位运算使用的运算符;位运算是指针对二进制位进行的运算。 C语言提供以下6种位运算符,位运算符优先级别 , 高 | 低Return,提示符号 是英文状态下 shift6,2.8 运算符的优先级及其结合性,1. 运算符的优先级 一般而言,单目运算符优先级较高,赋值运算符优先级低,算术运算符优先级较高。 2 .运算符的结合性 多数运算符具有左结合性,单目运算符、赋值运算符和复合赋值运算符为右结合性。,Return,作业与实验 作业习题二 上机操作实验二,Return,

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。