1 / 54

第二章 数据类型和表达式

第二章 数据类型和表达式. 2.1 数据类型、常量与变量 2.2 运算符与表达式 2.3 各类数据之间的混合运算. 第二章 数据类型和表达式. 教学目标 : 1. 了解基本数据类型及其常量的表示法; 2. 掌握变量的定义及初始化方法; 3. 掌握运算符与表达式的概念 ; 4. 领会 C++ 语言的类型转换、赋值的概念。 教学重点 : 1. 数据类型与理解变量定义实质; 2. 运算符的结合性与优先级。 教学难点 : C++ 语言的类型转换、赋值的概念. 2.1 数据类型、常量与变量. 2.1.1 基本数据类型

lucine
Download Presentation

第二章 数据类型和表达式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第二章 数据类型和表达式 • 2.1 数据类型、常量与变量 • 2.2 运算符与表达式 • 2.3 各类数据之间的混合运算

  2. 第二章 数据类型和表达式 • 教学目标: 1.了解基本数据类型及其常量的表示法; 2.掌握变量的定义及初始化方法; 3.掌握运算符与表达式的概念 ; 4.领会 C++ 语言的类型转换、赋值的概念。 • 教学重点: 1.数据类型与理解变量定义实质; 2.运算符的结合性与优先级。 教学难点: C++ 语言的类型转换、赋值的概念

  3. 2.1 数据类型、常量与变量 2.1.1 基本数据类型 2.1.2 常量 2.1.3 变量

  4. 数据类型—整型数据及取值范围 基本数据类型和表达式 类型 说明符 位数 数值范围 短整 short 16 -32768~32767 基本 int 32 -231~(231-1) 长整 long 32 -231~(231-1) 无符号unsigned short 16 0~65535 unsigned [int] 32 0~(232-1)unsigned long 32 0~(232-1)

  5. 数据类型——整型数据 基本数据类型和表达式 • #include<iostream.h> • void main(void) • { • int int10,int8,int16; //定义3个整型变量 • int10=10; //默认为十进制 • int8=010; //八进制 • int16=0x10; //十六进制 • cout<<int10<<endl; • cout<<int8<<endl; • cout<<int16<<endl; • }

  6. 实型数据 基本数据类型和表达式 • 实型数又称浮点数,有两种表示方式: • 1)十进制形式: 23.0 24.5 3.56789 • 指数形式: 23E1 145e-1 356789e1 e前有数字,后面必须是整数。 实型变量分单精度 float 和双精度 double 两种形式: float:占四个字节,提供7~8位有效数字。 double: 占八个字节,提供15~16位有效数字。 举例说明

  7. 数据类型——实型数据 基本数据类型和表达式 • #include<iostream.h> • void main(void) • { float a, b; • double c, d; • a=0.01; • b=3.45678e-2; • c=3.45678e-2; • d=9.7654e-5; • cout<<"a="<<a<<'\t'<<"b="<<b<<endl; • cout<<"c="<<c<<'\t'<<"d="<<d<<endl; • } a=0.01 b=0.0345678 c=0.0345678 d=9.7654e-005 Press any key to continue

  8. 数据类型——字符型数据(一) 基本数据类型和表达式 • 字符常量 • 单引号括起来的一个字符,如:'a', 'D', '?', '$' • 字符变量 • 用来存放字符常量例:char c1,c2; c1='a'; c2='A'; • 字符数据在内存中的存储形式 • 以ASCII码存储,占1字节,用7个二进制位 Page 8

  9. char grade; grade=65; 以下的赋值形式均是等同的。 grade='A'; grade=65 ; grade=0x41; grade=0101; #include<iostream.h> void main(void) { char a,b; a=‘A’; //输入ASCII码 b=65; //输入十进制数 cout<<a<<endl; cout<<b<<endl; } 输出: a=A b=A 即在内存中的表示均是相同的

  10. C H I N A \0 a\0 a 数据类型——字符型数据(二) 基本数据类型和表达式 • 字符数据的使用方法 • 字符数据和整型数据之间可以运算。 • 字符数据与整型数据可以互相赋值。 • 字符串常量 例:"CHINA" "a" 'a' 所以:char c; c="a"; Page 10

  11. 非打印字符 有些ASCII的字符代表某些操作,不能打印出来,如回车、退格等,可用两种方式表示这些字符。 1)用ASCII码的形式char re=13; 2)用转义字符char re=‘\n’; 基本数据类型和表达式

  12. 转义字符 含 义 ASCII代码 \a 响铃 7 \n 换行,将当前位置移到下一行开头 10 \t 水平制表(跳到下一个tab位置) 9 \b 退格,将当前位置移到前一列 8 \r 回车,将当前位置移到本行开头 13 \f 换页,将当前位置移到下页开头 12 \ v 竖向跳格 8 \\ 反斜杠字符“\” 92 \′ 单引号(撇号)字符 39 \" 双引号字符 34 \0 空字符 0 \ddd 1到3位8进制数所代表的字符 \xhh 1到2位16进制数所代表的字符 2014/10/2 12

  13. 数据类型——布尔型数据 基本数据类型和表达式 • 布尔型变量的说明:例:bool flag; • 布尔型数据的取值:只有 false和 true两个值

  14. 常量与变量 常量:在程序运行过程中,其值一直保持不变的量为常量。 常量也区分不同的类型:30,40 为整型,30.0,40.0为实型,编辑器只是根据其表面形式来判断其类型。 变量:在程序运行过程中,其值可以改变的量为变量。 变量在程序的执行中能够赋值,发生变化。变量有一个名字,并在使用之前要说明其类型,一经说明,就在内存中占据与其类型相应的存储单元。

  15. 变量 • 在程序的执行过程中,其值可以改变的量称为变量。 • 变量名必须用标识符来标识。 • 变量根据其取值的不同值域,分为不同类型的变量:整型变量、实型变量、字符型变量、构造型变量、指针型变量等等。

  16. 变量 4) 对于任一变量,编译程序要为其分配若干个字节(连续的)的内存单元,以便保存变量的取值。 5) 当要改变一个变量的值时,就是把变量的新的取值存放到为该变量所分配的内存单元中;用到一个变量的值时,就是从该内存单元中取出数据。 6) 不管什么类型的变量,通常均是变量的说明在前,使用变量在后。

  17. 数据类型——变量初始化 基本数据类型和表达式 在定义变量的同时给变量赋值,即在内存中开辟出一个空间后马上给此空间赋值。 但这个空间的值并不是固定不变的,在程序的运行中一样可以改变。 int a=4; //定义语句,在开辟空间后马上为空间赋值 a=6; //重新为该空间赋值 char a='\x64', b='d'; int a1=6, a2=98; a=‘A’; b=‘\n’; a1=011; a2=121; Page 17

  18. 数据类型——变量初始化 基本数据类型和表达式 例:int a=3; double f=3.56; char c='a'; int c(5); Page 18

  19. 变量先声 明后使用 符号常量 常量 变量 数据类型——常量与变量 基本数据类型和表达式 #include <iostream> using namespace std; void main(void) { const int PRICE=30; int num,total; float v ,r,h; num=10; total=num*PRICE; cout<<total <<endl; r=2.5; h=3.2; v=3.14159*r*r*h; cout<<v <<endl; } Page 19

  20. 数据类型—混合运算时的类型转换 基本数据类型和表达式 • 不同类型数据进行混合运算时,C++编译器会自动进行类型转换。 • 为了避免不同的数据类型在运算中出现类型问题,应尽量使用同种类型数据。 • 可以采用强制类型转换: 例如:float c;int a,b;c=float(a)/float(b); 或 c= (float)a/(float)b;

  21. 标识符常量 基本数据类型和表达式 在C++中有二种方法定义标识符常量,一种是使用编译预处理指令;另一种是使用C++的常量说明符const。 Page 21

  22. 标识符常量 基本数据类型和表达式 例如: #define PRICE 30 //在程序中凡是出现PRICE均用30替代 #define PI 3.1415926 #define S “China” const float pi=3.1415926; //将变量pi定义为不可变的常量 Page 22

  23. 标识符常量 基本数据类型和表达式 • #include<iostream.h> • #define PI 3.14156 • #define S "China" • void main(void) • { • const float pi=3.14156; //变量作为常量使用 • cout<<"PI="<<PI<<endl; • cout<<"10*PI="<<10*PI<<endl; • cout<<S<<endl; • // PI=PI+3; • // pi=pi+4; • cout<<"PI="<<PI<<endl; • cout<<"pi="<<pi<<endl; • } Page 23

  24. 标识符常量 基本数据类型和表达式 下列常量的表示在C++中是否合法?若不合法,指出原因;若合法,则指出常量的数据类型。 32767 35u 1.25e3.4 3L 0.0086e-32 “Computer System”“a”‘a’ -0 +0 .5 -.567 Page 24

  25. 2.2 运算符与表达式 2.2.1 运算符介绍 2.2.2 各种运算符举例

  26. 2.2.1运算符与表达式 基本数据类型和表达式 计算机:利用内存中的数据进行计算,通过计算得出的结果(值)来帮助人们进行生产和生活。 Page 26

  27. 运算符与表达式 基本数据类型和表达式 • 运算符:进行某种运算的符号。 • 运算数:参与运算的常量、变量和函数。 • 表达式:在计算机程序中,表达式是计算求值的基本单位,是由运算符和运算数所组成的式子。每一个表达式都有一个值!!!Page 28 Page 27

  28. 算术运算符与算术表达式 基本数据类型和表达式 • 基本算术运算符 + - * / (若整数相除,结果取整) %(取余,操作数为整数) • 优先级与结合性 先乘除,后加减,同级自左至右 • ++, --(自增、自减)Page29 例:i++; -- j; Page 28

  29. 赋值运算符和赋值表达式简单的赋值运算符"=" 基本数据类型和表达式 • 举例n=n+5 • 表达式的类型等号左边对象的类型 • 表达式的值等号左边对象被赋值后的值 Page 29

  30. 赋值运算符和赋值表达式简单的赋值运算符"=" 基本数据类型和表达式 赋值运算符和赋值表达式 • "="左边必须是变量名。 • 若“= ”两边变量类型不同,在赋值时要进行类型转换。 • 转换原则:根据左边变量的类型转换。 bmw=2002 Page 30

  31. 赋值运算符和赋值表达式复合的赋值运算符 基本数据类型和表达式 • 有10种复合运算符:+=, -=, *=, /=, %=,<<=,>>=,&=,^=,|= • 例a+=3 等价于 a=a+3x*=y+8 等价于 x=x*(y+8)

  32. 赋值运算符和赋值表达式——赋值表达式举例 基本数据类型和表达式 a=5 表达式值为?? a=b=c=5 表达式值为?? ,a,b,c均为?? a=5+(c=6) 表达式值为?? ,a为?? ,c为?? a=(b=4)+(c=6) 表达式值为?? ,a为?? ,b为??,c为?? a=(b=10)/(c=2) 表达式值为5,a为?? ,b为?? ,c为?? a+=a-=a*a 相当于 ?? Page 32

  33. 赋值运算符和赋值表达式——赋值表达式举例 基本数据类型和表达式 a=5 表达式值为5 a=b=c=5表达式值为5,a,b,c均为5 a=5+(c=6)表达式值为11,a为11,c为6 a=(b=4)+(c=6) 表达式值为10,a为10,b为4,c为6 a=(b=10)/(c=2) 表达式值为5,a为5,b为10,c为2 a+=a-=a*a 相当于a=a+(a=a-a*a) Page 33

  34. 逗号运算和逗号表达式 基本数据类型和表达式 • 格式 表达式1,表达式2 • 求解顺序及结果 先求解1,再求解2,最终结果为表达式2的值 • 例 a=3*5 , a*4最终结果为60 Page 34

  35. 关系运算与关系表达式 基本数据类型和表达式 • 关系运算是比较简单的一种逻辑运算,优先次序为:< <= > >=== != 优先级相同(高) 优先级相同(低) • 关系表达式是一种最简单的逻辑表达式 其结果类型为 bool,值只能为 true 或 false。 • 例如:a>b,c<=a+b,x+y==3

  36. 逻辑运算与逻辑表达式 基本数据类型和表达式 • 逻辑运算符!(非) &&(与) ||(或)优先次序: 高 → 低 • 逻辑表达式 例如:(a>b)&&(x>y)其结果类型为 bool,值只能为 true 或 false

  37. 逻辑运算符 • 运算符 与&&或 || 非! && | | ! A B 结果 0 0 0 0 1 0 1 0 0 1 1 1 有0出0,全1出1 A,B同时成立 A B 结果 0 0 0 0 1 1 1 0 1 1 1 1 有1出1,全0出0 A或B有一个成立 A 结果 0 1 1 0 有0出1, 有1出0

  38. 逻辑运算与逻辑表达式 基本数据类型和表达式 • 例如:两个条件:江苏籍 男生 海口籍的男生 海口籍的学生和所有男生 非海口籍的学生 海口籍&&男生 海口籍||男生 !海口籍 注意:1.优先级:!&&| | !算术关系逻辑赋值逗号

  39. 逻辑运算与逻辑表达式 基本数据类型和表达式 注意: 1.优先级:!&&| | !算术关系逻辑赋值逗号 2.作为条件,所有非0值均为真;作为结果,只有0或1两种。 5>3 && 2 || 8<4-!0 3.不可写为 1<x<10 应为:1<x && x<10

  40. 逻辑运算与逻辑表达式 基本数据类型和表达式 注意: 4.当前面的表达式可以得出整个表达式的结果时,不必再求后面的表达式。 a&&b&&c 当a为0时,表达式为0,不必求b与c。 a||b||c 当a为1时,表达式为1,不必求b与c。

  41. 条件运算符与条件表达式 基本数据类型和表达式 • 一般形式 表达式1?表达式2:表达式3 表达式1 必须是 bool 类型 • 执行顺序 • 先求解表达式1, • 若表达式1的值为true,则求解表达式2,表达式2的值为最终结果 • 若表达式1的值为false,则求解表达式3,表达式3的值为最终结果 • 例: x=a>b? a:b;

  42. 条件运算符与条件表达式 基本数据类型和表达式 • 注意: • 条件运算符优级高于赋值运算符,低于逻辑运算符 • 表达式2、3的类型可以不同,条件表达式的最终类型为 2 和 3 中较高的类型。 • 例: x=a>b? a:b; ① ②

  43. sizeof 运算符 基本数据类型和表达式 • 语法形式sizeof (类型名)或 sizeof (表达式) • 结果值:“类型名”所指定的类型或“表达式”的结果类型所占的字节数。 • 例: sizeof(short) sizeof(x)

  44. 位运算——按位与(&) 基本数据类型和表达式 • 运算规则 • 将两个运算量的每一个位进行逻辑与操作 • 举例:计算 3 & 5 3: 0 0 0 0 0 0 1 1 5:(&) 0 0 0 0 0 1 0 1 3 & 5: 0 0 0 0 0 0 0 1 • 用途: • 将某一位置0,其它位不变。例如:将 char 型变量 a 的最低位置 0: a = a & 0376; • 取指定位。例如:有 char c; int a; 取出 a 的低字节,置于 c 中:c = a & 0377;

  45. 位运算——按位或(|) 基本数据类型和表达式 • 运算规则 • 将两个运算量的每一个位进行逻辑或操作 • 举例:计算 3 | 5 3: 0 0 0 0 0 0 1 1 5:(|) 0 0 0 0 0 1 0 1 3 | 5: 0 0 0 0 0 1 1 1 • 用途: • 将某些位置1,其它位不变。例如:将 int 型变量 a 的低字节置 1 :a = a | 0xff;

  46. 位运算——按位异或(^) 基本数据类型和表达式 • 运算规则 两个操作数进行异或:若对应位相同,则结果该位为 0,若对应位不同,则结果该位为 1, • 举例:计算 071^052 071: 0 0 1 1 1 0 0 1 052: (^) 0 0 1 0 1 0 1 0 071^052 : 0 0 0 1 0 0 1 1

  47. 位运算——按位异或(^) 基本数据类型和表达式 • 用途: • 使特定位翻转(与0异或保持原值,与1异或取反) 例如:要使 01111010 低四位翻转: 0 1 1 1 1 0 1 0 (^) 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1

  48. 位运算——取反(~) 基本数据类型和表达式 单目运算符,对一个二进制数按位取反。 例: 025:0000000000010101 ~025:1111111111101010

  49. 位运算——移位 基本数据类型和表达式 • 左移运算(<<) 左移后,低位补0,高位舍弃。 • 右移运算(>>) 右移后,低位:舍弃 高位:无符号数:补0 有符号数:补“符号位”

  50. 运算符优先级 基本数据类型和表达式 括号 ++,--,sizeof *, /, % +, - ==, != 位运算 && || ?: 赋值运算 逗号运算 高 低

More Related