基本数据类型和基本运算解析资料_第1页
基本数据类型和基本运算解析资料_第2页
基本数据类型和基本运算解析资料_第3页
基本数据类型和基本运算解析资料_第4页
基本数据类型和基本运算解析资料_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章 基本数据类型和基本运算,主讲:傅保伟,基本数据类型 常量和变量 运算符和表达式,本章内容提要:,复习引入,问题:计算机内数据的存储(表示)形式? 整数10在计算机内的存储形式 小数 (3.1416)在计算机内的存储形式,整数10, 3.1416 11.00100100001 B, 0.11001001000 210,3.1数据类型及其派生类型,数据类型 数据结构中数值集合及其上允许的操作。表3.1,3.1.1整型,基本数据类型-整型,数值10,(1)与编译器有关(2或4) (2)数据以补码形式存储,整型变量的使用,#include void main() int a=43; short

2、 b=37; long sum=a+b; unsigned int u=5; coutsizeof(sum)endl; coutsizeof(long)endl; ,说明: (1)变量必须“强制类型定义”。 如:int a;long c; unsigned int u; (2)变量在定义时,可以进行初始化。 如:int a=43; (3)C+中变量的定义位置很灵活。,整型数据的处理,边学边练1,利用短整变量计算32767与10的和,查看输出结果,并思考为什么? 提示:使用short 定义短整变量。,/* 参考程序 */ #include void main() int a=43; short

3、b=37; long sum=a+b; unsigned int u=5; coutsizeof(sum)endl; coutsizeof(long)endl; ,整型数据的处理,整型常量的使用,#include void main() int a,b,c; a=123;b=0123;c=0 x123; coutaendl; coutbendl; coutcendl; ,说明: (1)十进制整数:直接使用即可。 (2)八进制整数:以0开头。 (3)十六进制整数:以0 x开头。 (4)整数后加l或L:以长整类型存储。,如何输出十六进制和八进制数?,边学边练2,输出十六进制12与八进制2的和,并测

4、试常量所占内存大小。 提示: 0和0 x sizeof(),3.1.2浮点型,基本数据类型-浮点型 C+中有3种浮点类型:单精度(float)、双精度(double)和长双精度(long double)。 C+中浮点数均为有符号浮点数,没有无符号浮点数,表示精度满足下面的条件:单精度双精度长双精度。,浮点型数据的处理,#include void main() float pi,r; r=13.5; pi=3.14159e-1; ,DEMO:13.5常量在内存占多大字节?13.5f呢?,规范化指数形式: E前有且仅有1位非零整数,浮点型常量表示方法: (1)小数形式:如13.5,-0.123。

5、(2)指数形式:如3e-3,0.3E-2。 注意:e或E前须有数字,e后指数须为整数。,浮点型数据的处理,#include void main() float a,b; double sum; a=4.0;b=0.31415926; sum=a+b; coutsum=sum; ,浮点型变量的分类: (1)float:单精度类型,占4字节,67位有效数字。 (2)double:双精度类型,占8字节,1516位有效数字。 (3)long double:长双精度类型,占8字节,1819位有效数字。,边学边练3,编写程序计算机圆的面积并输出。 提示: 圆周率定义为3.14159。 乘号使用 * 计算公

6、式:s= r 2,/* 参考程序 */ #include void main() float pi,r; r=13.5; pi=3.14159e-1; ,3.1.3字符型,基本数据类型-字符型 C+中有3种字符类型:字符型(char)、有符号字符型(signed char)和无符号字符型(unsigned char)。,字符型数据可以作为整型数据参与算术等运算。,a,97,字符数据的处理,B和B的区别?,如何输出单(双)引号?,#include void main() char a,b; a=A; b=B;/b=B; couta和b中的值为:; couta,bn; ,说明: (1)字符型常量:

7、使用单引号括起一个字符(仅一个)。 (2)转移字符:以开头。 (3)字符串常量:使用双引号括起的字符序列(0结尾)。 (4)字符型变量用char定义。,边学边练4,编写程序加密和解密AB字符串。 提示: 机密原则:A-C,B-D 字符常量A在内存中为字符编码65 字符可以与数进行算术运算,/参考代码 #include void main() char a,b; a=A;b=a+1; coutabendl; cout(int)a(int)bendl; ,3.1.4 布尔型与空值型,布尔型(bool) 表示逻辑数据:true和false。1字节。 布尔型数据可以作为整型数据进行运算: true为整

8、数1,false为整数0; 整型数据也可以作为布尔型数据进行运算: 非0整数为true,整数0为false。 空值型(void) 说明函数及其参数是否为空。 没有返回值的函数说明为void类型的函数 没有参数的函数其形参表可以由void表示,#include void main(void) couthello; ,#include void main() bool a=false,b=true; couta,b+4endl; coutfalse,trueendl; ,3.2常量与变量解析,/* filename:SumApp.c */ #include void main() int a,b,

9、sum; a=123;b=456; sum=a+b; coutsum=sum; ,计算机如何执行这个程序?,程序执行过程解析,a,123,456,579,b,sum,CPU,显示器屏幕,sum=579,内存( RAM ),SumApp.exe,代码存储区 int a,b,sum; a=123;b=456; sum=a+b; coutsum=sum; ,计算机主要利用内存区域暂存数据,常量与变量的概念,变量(Variable):内存中具有特定属性的存储单元。程序运行时其内的数据可以被改变。 常量(Constant):程序运行时其内数据不能改变。,内存地址,存储单元,内存:代码存储区 int a,

10、b,sum; a=123;b=456; sum=a+b; coutsum=sum; ,a b sum,存储的数据,变量三要素:变量名、变量值和变量地址。 常量无名子,只能使用字面值标识(字面值常量)。,特殊变量与常量,常变量(Constant Variable) 格式: =; 例如: const int N=200; 符号常量 (Symbolic Constant ) 用一个标识符来代表。 #define #define PRICE 10,#include Void main() const float PI=3.14; float r,area; area=PI*r*r; coutarea=

11、area; ,#include #define PI 3.14 Void main() float r,area; area=PI*r*r; coutarea=area; ,3.3运算符和表达式,运算符和表达式 表示各种不同运算的符号称为运算符,被处理的数据,也就是参与运算的数据称为操作数。而运算符与操作数组成表达式。一个表达式的类型是由运算符的种类和操作数的类型决定的 。 运算可分为单目运算、双目运算以及三目、多目运算。 例如 优先级 优先级是用来标志运算符在表达式中的运算顺序的。 优先级相同的由结合性决定计算顺序。 结合性 结合性即结合方向是决定运算顺序的一种标志。 从左到右,从右到左,-

12、i a+b x0?-1:1,a+b*c a+b-c a=b=3,1.算术运算符及其表达式,基本算术运算符及其表达式 算术运算符 单目运算符:+,-(正负号) 双目运算符:+, -, *, /, %(求余) 结合方向:从右向左,从左向右 优先级:+-(正负) * / % + - 算术表达式是指由算术运算符、括号将常量、变量、函数、圆括号等连接形成的一个有意义的式子。 (2*x-3)*x+2)*x)-5 或 3*sqrt(x),例:cout5/2; cout5/2.0;,例 :5%2= ? -5%2= ? 5%-2= ? 5.5%2= ?,1.算术运算符及其表达式,自增和自减运算符 及其表达式 作

13、用使变量的值增1或减1 。 种类: 前置 +i,-i (先执行i=i+1或i=i-1,再使用i值作为表达式的值) 后置 i+,i- (先使用i值做为表达式的值,再执行i=i+1或i=i-1),#include void main() int a=10; couta+endl; cout+aendl; int b=11; cout-bendl; coutb-endl; ,1.算术运算符和表达式,自增和自减运算符说明: + - 不能用于常量和表达式 如5+,(a+b)+ + - 结合方向:自右向左 优先级:+ - 与 + - 同级,#include void main() int i; i=2;c

14、out-i+;/(-i)+? -(i+) ? i=3;cout+ii;/ 43? 44? i=3;cout+i+i; / 8? 7? ,2.关系运算符和表达式,关系运算符和关系表达式 对两个量进行比较的运算符称为关系运算符。 , = , , = , = , != 由关系运算符连接形成的表达式为关系表达式。 关系表达式的值是一个逻辑值(真时值为1,假时值为0)。 如:设int a=1,b=20,c=3,则 ab b=c (a+b)!=c,在对两个表达式的值进行是否相等的比较时,要用运算符“=”,而不能写成“=”。,3.逻辑运算符和表达式,逻辑运算符和逻辑表达式 逻辑运算符是对两个逻辑量间进行运算

15、的运算符。 由逻辑运算符将两个表达式连接形成的式子叫逻辑表达式。 参加逻辑运算的操作数系统认为“非0”为真,“0”为假。 而逻辑表达式的结果只能为逻辑真(1)或逻辑假(0)。,3.逻辑运算符和表达式,逻辑运算符和逻辑表达式 逻辑运算真值表,int a=10,b=15,c=14,d=-3; (a+6),#include #include using namespace std; void main() char a=37,b=44; cout(a(b1)endl;,5.赋值运算符和表达式,赋值运算符和赋值表达式 赋值运算符(=)的功能将某个数据的值赋给某个变量。 复合赋值运算符 +=、-=、*=

16、、/=、%= x=10.6; x=A; float a; a=x; x-=a+5;/x=x-(a+5); char c=x; c,6.其他运算符及表达式,条件运算符 三目运算符“ ? :”,一般形式: 表达式1?表达式2 :表达式3,int a=3,b=4; coutb?a:b);,逗号运算符 逗号运算符的运算优先级是最低的。一般形式: 表达式1,表达式2,表达式n,int a=3,b=4; cout(a+,b+,a+b); /9 ? 7 ? couta+,b+,a+b;,6.其他运算符及表达式,指针(取值*和取址,数据类型、运算符和表达式,int *p,a=3; p=,引用 引用:(Refe

17、rence)别名机制。 定义一个引用:类型,int a=3,p,a,1011H,3,a,3,r,6.其他运算符及表达式,函数调用运算符 ( ) 功能:调用函数,执行函数体中的语句。 格式:函数名 ( 参数列表 ),数据类型、运算符和表达式,int add(int x,int y); int z;z=add(5,5);,动态分配运算符 new delete new功能:生成无名动态变量,仅返回变量地址(指针)。 Delete功能:释放生成的无名变量所占用的空间。,int *p;p=new int(1); *p=2;cout*p;delete p;,int add(int x,int y) ret

18、urn x+y;,1,p,7.运算符的优先级与结合性,运算符的优先级与结合性 为便于记忆可参考下面提供的记忆方法:,右结合性(从右到左):单目、三目和赋值。 左结合性(从左到右):按人们习惯的计算顺序。,3.4 复合数据类型-枚举类型,枚举类型:将常数数值与标识名称关联在一起。 定义格式: enum 枚举类型名 成员列表 变量列表; 注意:成员列表为标识名称集合,并对应于整数值。,#include enum colorred,green,blue; void main() enum color ball; ball=red;/0 coutballendl; ,3.4 复合数据类型-结构体,结构体是包含不同数据类型的一种类型,是一种可以自己定义的数据类型。 定义格式: struct 类型名成员列表 变量列表; 注意:成员列表为基本类型变量集合。,struct student int id; unsigned long no; char sex; li,wang; struct student zhang;,占用内存空间多大?,3.4 复合数据类型-共用体,共用体是不同数据类型共享相同存储空间的一种类型,它也是一种可以自己定义的数据类型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论