大学计算机基础课件第二章.ppt

上传人(卖家):晟晟文业 文档编号:4106852 上传时间:2022-11-11 格式:PPT 页数:34 大小:817.07KB
下载 相关 举报
大学计算机基础课件第二章.ppt_第1页
第1页 / 共34页
大学计算机基础课件第二章.ppt_第2页
第2页 / 共34页
大学计算机基础课件第二章.ppt_第3页
第3页 / 共34页
大学计算机基础课件第二章.ppt_第4页
第4页 / 共34页
大学计算机基础课件第二章.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、1第二章第二章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式2.1 2.1 数据类型数据类型2.2 2.2 变量和常量变量和常量 2.3 2.3 运算符和表达式运算符和表达式2.4 2.4 指针指针2.5 typedef2.5 typedef语句语句2.6 2.6 应用举例应用举例22.1 2.1 数据类型数据类型程序中要对各种各样的数据进行描述和操作,用到的数据都必须程序中要对各种各样的数据进行描述和操作,用到的数据都必须指明其类型。数据类型的作用:指明其类型。数据类型的作用:指出了应为数据分配的存储空间的大小指出了应为数据分配的存储空间的大小规定了数据所能进行的操作规定了数据所

2、能进行的操作 数据类型数据类型基本类型基本类型 构造类型构造类型 整型整型(int(int)实型实型 字符型字符型(char)(char)布尔型布尔型(bool(bool)空类型空类型(void)(void)单精度型单精度型(float)(float)双精度型双精度型(double)(double)指针指针数组数组结构型结构型(struct(struct)共用体共用体(union)(union)枚举枚举(enum(enum)类类(class)(class)32.2 2.2 变量和常量变量和常量1.变量的定义变量的定义程序运行过程中其值可变的量程序运行过程中其值可变的量,定义方式如下:定义方式如

3、下:C/C+规定:规定:程序中所有变量必须先定义后使用,可及时发现录入错误(如,定程序中所有变量必须先定义后使用,可及时发现录入错误(如,定义的变量为义的变量为data,而程序体中使用变量为,而程序体中使用变量为date),同时还可限制非法运算),同时还可限制非法运算(如:(如:a%b,若若a,b为为float类型则出错)。类型则出错)。C+中变量可随时使用,随时定义。中变量可随时使用,随时定义。例如:例如:int a,b;(定义变量定义变量a和和b为整型为整型)float x,y;(定义变量定义变量x和和y为单精度实型为单精度实型)数据类型数据类型 变量名表变量名表;2.2.1 2.2.1

4、变量变量42.变量的初始化变量的初始化变量必须先有确定的值后才能参与各种相应的操作,变量获取值变量必须先有确定的值后才能参与各种相应的操作,变量获取值的途径有三:的途径有三:通过输入语句输入通过输入语句输入 (如:如:cina;)通过赋值语句赋值通过赋值语句赋值 (如:如:a=3;)通过初始化方式赋初值通过初始化方式赋初值 (如:如:int k=3;)所谓初始化是指在定义变量的同时指定变量的初值,形式有二:所谓初始化是指在定义变量的同时指定变量的初值,形式有二:例如:例如:int k=3,m=3,n(3);()int k=m=n=3;/不允许为多个变量同时初始化不允许为多个变量同时初始化数据类

5、型数据类型 变量名变量名=表达式;表达式;数据类型数据类型 变量名(表达式);变量名(表达式);53.变量引用变量引用C+中增加了中增加了“引用引用”这一概念,许多地方可以代替指针实现这一概念,许多地方可以代替指针实现相应的功能,比指针更安全。相应的功能,比指针更安全。所谓引用即给一个已知变量起个别名,系统不为引用另外开辟所谓引用即给一个已知变量起个别名,系统不为引用另外开辟内存,而是与原变量共享同一段内存,引用好比是一个虚拟的变量内存,而是与原变量共享同一段内存,引用好比是一个虚拟的变量,声明形式为:,声明形式为:数据类型数据类型&引用名引用名=已定义的变量已定义的变量如:如:int a=3

6、,&b=a;/定义定义b为为a的引用的引用b=5;/你知道此时你知道此时a的值为多少吗?的值为多少吗?62.2.2 2.2.2 常量常量在程序运行过程中其值不能改变的量,有值常量和符号常量两种。在程序运行过程中其值不能改变的量,有值常量和符号常量两种。1.整型常量整型常量进制进制形式形式实例实例错例错例十进制十进制以数字以数字19开始开始-3,+5,12045八进制八进制以数字以数字0开始开始(由由07之间数字组成)之间数字组成)023,-010078十六进制十六进制以以0 x或或0X开始开始(由由09及及AF组成)组成)0XAF,-0X510XFG72.实型常量实型常量十进制小数形式:由正负

7、号、数字和小数点组成,十进制小数形式:由正负号、数字和小数点组成,如如1.25、-1.25、17.和和.1 指数形式:由尾数、指数符号指数形式:由尾数、指数符号e(或或E)及指数构成,其中指数必及指数构成,其中指数必 须是十进制整数。如须是十进制整数。如1.25e-5、+1e10、-1.25e5。注意:注意:e前面不能没有数字,前面不能没有数字,e后面的数字必须为整数,也不能加后面的数字必须为整数,也不能加园括号。如园括号。如1E(-3)、E-5、1e2.1都是错误的。都是错误的。83.字符常量字符常量 C/C+提供了两类字符型常量:提供了两类字符型常量:普通字符常量普通字符常量:用单引号括起

8、来的一个字符。如:用单引号括起来的一个字符。如:A、0、?。转义字符常量:以转义字符常量:以“”(反斜杠)开头的用单引号括起来的字符(反斜杠)开头的用单引号括起来的字符 序列。如:序列。如:n 、t 、x61等。等。常用的转义常用的转义 字符见字符见p26。注意:注意:0表示表示ASCII码为码为0的字符的字符,它是一个空字符,注意其与它是一个空字符,注意其与0的区别,的区别,后者表示的是后者表示的是ASCII码为码为48的数字字符。的数字字符。字符型数据在内存中以字符型数据在内存中以ASCII码存储,故整型数据和字符型数据在一码存储,故整型数据和字符型数据在一定范围内可以通用。如:定范围内可

9、以通用。如:x=a +2;printf(%d,a);94.字符串常量字符串常量 字符串常量是用双引号括起来的字符序列字符串常量是用双引号括起来的字符序列,系统在字符串常量系统在字符串常量最后自动加字符串结束符号最后自动加字符串结束符号 0 。例如:例如:字符串字符串“A”的存储形式:的存储形式:字符字符A的存储形式:的存储形式:5.符号常量符号常量是以标识符形式出现的常量,作用是便于程序阅读和修改。是以标识符形式出现的常量,作用是便于程序阅读和修改。C+C+中用中用definedefine命令或关键字命令或关键字constconst定义符号常量定义符号常量,形式如下:形式如下:A 0 A内存中

10、实际存放的是这内存中实际存放的是这些字符的些字符的ASCII码码#define#define 标识符标识符 常量值常量值 const const 数据类型数据类型 标识符标识符 =常量值常量值或:或:10注意:注意:习惯上符号常量名大写,而变量名小写,以示区分。习惯上符号常量名大写,而变量名小写,以示区分。符号常量虽然用标识符来标识,但本质上是常量,具有常符号常量虽然用标识符来标识,但本质上是常量,具有常量值不能改变的性质。量值不能改变的性质。#define PI 3.14 /const double PI=3.14#include iostream.hvoid main()float r=3

11、.0,s,l;l=2*PI*r;s=PI*r*r;coutl=l,s=sendl;例例2-11.演示不同精度圆周率的演示不同精度圆周率的程序运行结果程序运行结果2.观察编译中的观察编译中的“警告警告”对程序运行的影响对程序运行的影响3.消除消除“warning”的方法的方法112.3 2.3 运算符和表达式运算符和表达式2.3.1 基本概念基本概念运算符具有三个属性:运算符具有三个属性:优先级优先级:指运算的先后次序,共分指运算的先后次序,共分15个级别。个级别。(见见p27表表1.2.4)结合性结合性:指相同优先级运算符连续出现时的计算顺序,分自左指相同优先级运算符连续出现时的计算顺序,分自

12、左 向右和自右向左两种,除特别声明外,皆指自左向右。向右和自右向左两种,除特别声明外,皆指自左向右。目目 数数:指运算符要求的操作数的个数,包括单目、双目和三目,指运算符要求的操作数的个数,包括单目、双目和三目,一般目数越少,优先级越高。一般目数越少,优先级越高。表达式:由常量、变量、函数调用和运算符按一定规律组合在一表达式:由常量、变量、函数调用和运算符按一定规律组合在一 起构成的式子。起构成的式子。如:如:a+14/(3+2)-sqrt(17)122.3.2 运算符运算符1.算术运算算术运算种类:种类:+(加法或取正)(加法或取正)-(减法或取负)(减法或取负)*(乘法)(乘法)/(除法)

13、(除法)%(求余数)(求余数)+(自增)(自增)-(自减)(自减)其中:其中:+和和-的结合性则是自右向左的结合性则是自右向左 优先级:优先级:(从高到低从高到低)(+、-、+、-)(*、/、%)(+、-)正、负正、负加、减加、减13说明:说明:在除法运算中,当两个操作数都是整数时,商也为在除法运算中,当两个操作数都是整数时,商也为整数整数,小数部,小数部分一律舍去。如:分一律舍去。如:1/2 0 1.0/2 0.5%(求余运算)要求两个操作数都是(求余运算)要求两个操作数都是整型整型,结果为整除后余下的,结果为整除后余下的整余数。整余数。自增、自减运算符自增、自减运算符(+、-)+i ,-i

14、 (在使用在使用 i之前之前,先使先使i的值加减的值加减1)i+,i-(在使用在使用 i之后之后,使使i的值加减的值加减1)若若 i 的值为的值为3,则:,则:j=+i;j的值为的值为4,i的值为的值为4 j=i+;j的值为的值为3,i的值为的值为4注意注意:自增、自减运算符只能用于变量,而不能用于常量和表达式。自增、自减运算符只能用于变量,而不能用于常量和表达式。()5+、(a+b)+142.关系运算关系运算种类:种类:(小于)、(小于)、(大于)(大于)=(等于)、(等于)、=(大于等于)、(大于等于)、!=(不等于)(不等于)优先级:优先级:(从高到低)(从高到低)(、=)(=、!=)关

15、系运算描述的是一种关系运算描述的是一种“判断关系判断关系”,其结果有,其结果有“真真(true)”和和“假假(false)”两种。用两种。用“1”代表代表“真真”,用,用“0”代表代表“假假”例如:例如:53的结果为的结果为1,a B 的结果为的结果为0思考:思考:x为为0到到100之间的数能否表示为之间的数能否表示为 0=x=100?153.逻辑运算逻辑运算种类:种类:&(逻辑与)、(逻辑与)、|(逻辑或)、(逻辑或)、!(逻辑非)(逻辑非)优先级:优先级:(从高到低从高到低)!&|其中,其中,“!”是单目运算符,优先级高于算术运算符。是单目运算符,优先级高于算术运算符。“”和和“|”低于关

16、系运算符。低于关系运算符。逻辑运算通常用来连接关系运算,逻辑运算符两端的操作逻辑运算通常用来连接关系运算,逻辑运算符两端的操作数如为数如为“非非”,就当作,就当作“真真”来处理,如果是来处理,如果是“”,便当,便当作作“假假”来处理。逻辑运算的结果也只有来处理。逻辑运算的结果也只有 0(false)和和1(true)两种。两种。16运运算算符符 说说明明 优优先先级级 说说明明 例例 结结果果!取取反反 2 当当操操作作数数为为假假时时,结结果果为为真真!0 1&与与 11 操操作作数数均均为为真真时时,结结果果才才为为真真 2&0 5&3 0 1|或或 12 操操作作数数中中有有一一个个为为

17、真真时时,结结果果为为真真 0|1 0|0 1 0 说明:说明:当多个当多个&连续出现时,如表达式连续出现时,如表达式&表达式表达式&表达式表达式从左到右,只要一个操作数为从左到右,只要一个操作数为0,结果就为,结果就为0,不进行后续运算。,不进行后续运算。当多个当多个|连续出现时,如表达式连续出现时,如表达式|表达式表达式|表达式从左到表达式从左到右,只要一个操作数为右,只要一个操作数为1,结果就为,结果就为1,不进行后续运算。,不进行后续运算。17#include iostream.hvoid main()int m,n=10;m=2&n+;coutm=m,n=y?x:y);/将和中较大的

18、一个数赋值给变量将和中较大的一个数赋值给变量max条件运算符的结合性是由右向左条件运算符的结合性是由右向左思考题:思考题:对对n(0)个人进行分班,每班个人进行分班,每班k(0)个人,最后不足个人,最后不足k人也人也编一班,问要编几个班?(试用条件运算符表达)编一班,问要编几个班?(试用条件运算符表达)n%k0?n/k+1:n/k5.赋值运算赋值运算格式:格式:作用:作用:将一个数据赋给一个变量,并以变量的值作为整个式子的值。将一个数据赋给一个变量,并以变量的值作为整个式子的值。变量变量 赋值运算符赋值运算符 表达式表达式19其中赋值运算符可以是其中赋值运算符可以是“=”,也可以是复合赋值运算

19、符也可以是复合赋值运算符,如如“+=”、“-=”、“*=”、“/=”和和“%=”等等。等等。复合赋值运算符的等价形式:复合赋值运算符的等价形式:(以(以“+=”为例)为例)例如:例如:b/=a+2 等价于:等价于:b=b/(a+2)结合性自右向左结合性自右向左若两端类型不同,则系统自动将右端类型转换为左端类型。若两端类型不同,则系统自动将右端类型转换为左端类型。例如:有定义例如:有定义 int a=3.78;则则a中存放的值为中存放的值为3左端只能是变量左端只能是变量(或数组元素或数组元素),不能为表达式或常量,如:,不能为表达式或常量,如:a+2*=b ()a=b+2=c+5 ()变量变量+

20、=表达式表达式变量变量=变量表达式变量表达式是一个整体是一个整体206.逗号运算逗号运算形式:形式:e1,e2,e3,其中其中e1、e2、e3均为表达式,从左向右依次计算各个表均为表达式,从左向右依次计算各个表达式的值,而将最后一个表达式的值作为整个表达式的值,逗达式的值,而将最后一个表达式的值作为整个表达式的值,逗号运算符常用于循环语句的表达式中,将多个表达式连接成一号运算符常用于循环语句的表达式中,将多个表达式连接成一个表达式,如:个表达式,如:for(i=0,j=n;ij;i+,j-)逗号运算符的优先级别最低。逗号运算符的优先级别最低。217.数据类型的转换数据类型的转换数据类型的转换分

21、为显式数据类型的转换分为显式(强制强制)转换和隐式(自动)转换。转换和隐式(自动)转换。强制转换格式:强制转换格式:或:或:将一种数据类型的值强制转换为另外一种数据类型。常用于对将一种数据类型的值强制转换为另外一种数据类型。常用于对函数的参数及返回值的操作。函数的参数及返回值的操作。假设、为假设、为float型数据,则型数据,则(int)(x+y)强行将强行将+的值转换成的值转换成整型,整型,x和和y仍为仍为float型。型。自动转换:自动转换:在不同类型数据进行混合运算时,系统自动进行的类型转换。在不同类型数据进行混合运算时,系统自动进行的类型转换。(类型名类型名)表达式表达式类型名类型名(

22、表达式表达式)22char short int unsigned longunsigned longfloatdoublelong double必定的转换必定的转换混合运算时由低向高转换混合运算时由低向高转换自动转换还包括赋值运算时赋值号右端类型向左端类型的转换自动转换还包括赋值运算时赋值号右端类型向左端类型的转换8.内部函数内部函数 C/C+中提供了多种中提供了多种内部函数供用户编程序时直接调用,只需内部函数供用户编程序时直接调用,只需把包含内部函数的头文件,通过把包含内部函数的头文件,通过#include#include 预处理命令装入到程序预处理命令装入到程序中。例如,程序中要使用平方根

23、函数中。例如,程序中要使用平方根函数sqrtsqrt,应该在程序加入:,应该在程序加入:#include math.h“#include math.h“232.4 指针指针1.基本概念基本概念 每个变量在内存中存放都对应一段地址,第一个字节的地址就是每个变量在内存中存放都对应一段地址,第一个字节的地址就是变量的地址,将存放地址的变量称为指针变量。变量的地址,将存放地址的变量称为指针变量。&求地址求地址 变量的地址在编程阶段是不知道的变量的地址在编程阶段是不知道的 在程序中可以使用在程序中可以使用&运算符求得变量的地址。运算符求得变量的地址。intint x;x;&x&x就是变量的地址就是变量的

24、地址24取内容取内容*(地址地址)表示根据地址取内容表示根据地址取内容如图中所示,如图中所示,*(&x)(&x)的值为的值为4 4指针指针指针是一种变量,存放另一个变量的地址。指针是一种变量,存放另一个变量的地址。intint x=4;x=4;int int *p;p;p=&x;p=&x;p p就是一个指针,存放就是一个指针,存放x x的地址。的地址。p p指向指向x x,*p p的值为的值为4 4,*p p就是就是x x。出现出现x x的地方可以用的地方可以用*p p代替,出现代替,出现 *p p的地方可以用的地方可以用x x代替。代替。10014px252.定义及初始化定义及初始化 定义定

25、义 例如:例如:intint *p p;float float *q;q;指针所指对象的类型。指针所指对象的类型。初始化初始化在定义的同时赋初值,称为指针变量的初始化。在定义的同时赋初值,称为指针变量的初始化。例如:例如:float d=1.5,float d=1.5,*p=&dp=&d;可改写为:可改写为:float d=1.5,float d=1.5,*p;p;p=&d;p=&d;/注意不能写做注意不能写做*p=&dp=&d数据类型数据类型 *标识符;标识符;不是指针名的一部分不是指针名的一部分&d1.5p pd d26 假定有定义:假定有定义:intint *p,a;p,a;p=NULL

26、;p=NULL;指针的值为指针的值为NULL(0)NULL(0)表示不指向任何对象。表示不指向任何对象。p=&a;p=&a;p p指向变量指向变量a a。p1=&a;p1=&a;p2=p1;p2=p1;相同类型的指针变量可以相互赋值相同类型的指针变量可以相互赋值 例例,假设有定义假设有定义:intint a,a,*p;p;float f;float f;则以下形式不允许:则以下形式不允许:()p=&f;p=&f;()p=100;p=100;3.运算运算赋值运算赋值运算27算术运算算术运算p+n(p+n(或或p-n)p-n):p+np+n:指向后面的第个元素。:指向后面的第个元素。p-np-n:

27、指向前面的第个元素。:指向前面的第个元素。p+np+n的值为:的值为:p p的值的值n n*sizeof(psizeof(p指向的类型)指向的类型)如,有定义:如,有定义:intint a,a,*p=&a;p=&a;假设假设a a的地址为的地址为1000,1000,则:则:p p的值为的值为10001000p+3p+3的值为:的值为:1000+31000+3*sizeof(intsizeof(int)=1000+3)=1000+3*4=10124=101228自增(自增(+)和自减()和自减(-)p+p+、+p+p、p-p-、-p-p自增或自减后自增或自减后p p指向前一个或后一个元素指向前一

28、个或后一个元素 指针相减指针相减两个类型相同的指针可以相减,结果为这两个地址差之间能两个类型相同的指针可以相减,结果为这两个地址差之间能够存放的数据个数(数据类型为指针所指的类型)。够存放的数据个数(数据类型为指针所指的类型)。如,有定义:int*p1,*p2;假设p1指向1000,p2指向1008,则p2p1的值为:(1008-1000)/sizeof(int)=2*p+*(p+)*p p +(*p)+*p(*p)+294.new和和deletenew运算符运算符形式形式:指针指针=new 数据类型数据类型;指针指针=new 数据类型数据类型(初值初值);或或30delete运算符运算符用于

29、释放用用于释放用new申请的动态存储空间,形式为:申请的动态存储空间,形式为:delete 指针指针;delete 指针指针;或或无需指明数组长度无需指明数组长度只能释放由只能释放由new申申请的动态变量请的动态变量例:例:int a=3,*p=&a,*q;q=new int(6);delete p;()delete q;312.5 typedef语句语句形式:形式:typedef 数据类型数据类型 新的数据类型名;新的数据类型名;该语句作用是为已有的数据类型定义新的名称,使其更符合该语句作用是为已有的数据类型定义新的名称,使其更符合Windows系统中的相关对象的含义,可以像标准系统中的相关

30、对象的含义,可以像标准C+中的数据类中的数据类型一样使用这些新定义的类型。如:型一样使用这些新定义的类型。如:typedef char CHAR;CHAR c1;/等价于等价于char c1;322.6 应用举例应用举例例例2-3 用代码表达下列命题:用代码表达下列命题:1.能且只能被和中的一个数整除。能且只能被和中的一个数整除。解:解:或或 2.ch是大写字母。是大写字母。解:解:思考思考上述命题可否描述为上述命题可否描述为 A ch=A&ch=Z 33#includeiostream.h#includeiomanip.h#includemath.hvoid main()float a,b,

31、c;double l,s;coutca;b=sqrt(c*c-a*a);/sqrt为内部函数,对其的说明包含在头文件为内部函数,对其的说明包含在头文件math.h中中l=a+b+c;s=a*b/2;cout计算结果:计算结果:endl;coutsetw(8)另一直角边另一直角边=bendlsetw(11)周长周长=lendlsetw(11)面积面积=sx;c4=x=0?+:-;/x的符号存入的符号存入c4x=abs(x);/求整型数求整型数x的绝对值的绝对值c3=x%10;/x%10为个位数字为个位数字x=x/10;c2=x%10;c1=x/10;cout数符数符 百位数百位数 十位数十位数 个位数个位数endl;coutsetw(2)c4setw(8)c1 setw(8)c2setw(8)c3endl;例例2-5 编程输入一个三位整数,依次输出该数的正(负)号和百编程输入一个三位整数,依次输出该数的正(负)号和百位、十位、个位数字。位、十位、个位数字。程序程序分离出符号位后分解各数位分离出符号位后分解各数位

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(大学计算机基础课件第二章.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|