大学C++程序设计教程-杨国兴及例题-课件PPT
收藏
资源目录
压缩包内文档预览:(预览前20页/共34页)
编号:21836152
类型:共享资源
大小:1.57MB
格式:ZIP
上传时间:2019-09-06
上传人:QQ24****1780
认证信息
个人认证
王**(实名认证)
浙江
IP属地:浙江
25
积分
- 关 键 词:
-
大学
C++
程序设计
教程
杨国兴
例题
课件
ppt
- 资源描述:
-
大学C++程序设计教程-杨国兴及例题-课件PPT,大学,C++,程序设计,教程,杨国兴,例题,课件,ppt
- 内容简介:
-
第2章 数据类型与表达式,2.1 基本数据类型 2.2 常量与变量 2.3 运算符与表达式 2.4 位运算符 2.5 C+ 的构造类型,2.1 基本数据类型,2.1.1 整型数据 除以上三种整型数据外,还有三种对应的无符号(unsigned)整型数据,用于保存正整数,取值范围也相应变化。编程时可根据用到数据的大小决定采用哪种数据类型存放数据。,第2章 数据类型与表达式,2.1 基本数据类型,2.1.2 实型数据,第2章 数据类型与表达式,2.1 基本数据类型,2.1.3 字符型数据 字符型数据(char)占1个字节。字符型数据也可以分为有符号字符型数据和无符号字符型数据,有符号字符型数据的取值范围为-128127(指字符的ASCII码),无符号字符型数据的取值范围为0255。 2.1.4 bool型数据 bool型数据(bool)占1个字节。取值只有true(真)和false(假)。 sizeof运算符:用于获得指定数据类型或指定变量占用内存的字节数。 sizeof(数据类型或变量名),第2章 数据类型与表达式,例2.1 检测基本数据类型所占的字节数,#include void main() cout “int: “ sizeof(int) endl; cout “short: “ sizeof(short) endl; cout “long: “ sizeof(long) endl; cout “float: “ sizeof(float) endl; cout “double: “ sizeof(double) endl; cout “long double: “ sizeof(long double) endl; cout “char: “ sizeof(char) endl; cout “bool: “ sizeof(bool) endl; ,第2章 数据类型与表达式,2.2 常量与变量,2.2.1 常量 常量:在程序运行中,其值不能被改变的量称为常量。常量又分为直接常量和符号常量两种。 1. 直接常量:直接使用数值或文字表示的值 (1)整型常量 如:10、-20、0 还可以八进制或十六进制表示:如034、0x23 不带后缀的整型常量为 int 型,带后缀 L 或 l 可表示长整型常量,带后缀 U 或 u 表示无符号整型常量 (2)实型常量 如:2.18、-5.6、2.3E+2、-3.12E-2 不带后缀的实型常量为 double 型,带后缀 F 或 f 可表示单精度实型常量,第2章 数据类型与表达式,2.2 常量与变量,2.2.1 常量(续一) (3)字符型常量 以单引号括起来的单个字符:如a、3、* 转义字符:键盘不便于直接输入的字符,如回车符、制表符等,通常以 “ ” 开头 表2.3 转义字符,第2章 数据类型与表达式,例2.4 用转义字符输出字符,#include void main() cout 101 n; cout x41 n; cout t t n; cout “ n; cout n; cout n; ,第2章 数据类型与表达式,程序执行结果为: A A t “ ,2.2 常量与变量,2.2.1 常量(续二) (4)bool型常量 bool常量只有两个:true(真)、false(假) 在内存中占有一个字节的存储空间 (5)字符串常量 由一对双引号括起来的若干字符,如“abc” 字符串常量的末尾自动加入结束标志 0,因此字符串在内存中占有的字节数为 字符个数+1 若字符串中包含特殊字符,如 、回车、制表符等,也应以他们对应的转义字符形式表示,第2章 数据类型与表达式,2.2 常量与变量,2.2.1 常量(续三) 2. 符号常量:直接使用符号表示的常量值,包括宏定义和const定义的符号常量。 (1)宏定义 语法形式:#define 宏名 字符串 如: #define PI 3.14 程序编译前会自动用字符串取代程序中出现的宏名 (2)const定义 语法形式:const 类型说明符 常量名=常量值; 如: const float pi = 3.14 ; 宏定义在预编译时,只进行简单的替换,不做语法检查 宏定义没有数据类型,而const定义的符号常量是有数据类型的。,第2章 数据类型与表达式,2.2 常量与变量,2.2.2 变量 1. 变量:程序运行中值可以被改变的量。变量必须先定义再使用。 (1)变量定义的一般形式 语法形式:数据类型 变量名1, 变量名2, , 变量名n; 如: int a, b, c; (2)变量的初始化 含义:定义变量的同时为其赋初值 两种形式:用赋值号(“=”) 或用括号 如: float a = 3.14 ; 或 float a(3.14);,第2章 数据类型与表达式,2.2 常量与变量,2.2.2 变量(续) 2. 标识符:程序中的变量名、数组名和函数名统称为标识符。 标识符的定义应遵循以下规则: (1)有效字符 标识符只能由数字、字母或下划线组成,以字母或下划线开头。 如: a, _str, c1都是有效的,而1a, a?b, x+y都是无效的。 (2)区分大小写 C+中的大写字母和小写字母表示不同的标识符。 如: Pi 和 pi 是两个不同的标识符。 (3)C+的关键字不能用作标识符,第2章 数据类型与表达式,2.3 运算符与表达式,2.3.1 算术运算符与算术表达式 1. 五种基本算术运算符:+、-、*、/、%(求余) 注意:对于除号(“/”),若两个整数相除,结果仍为整数 求余运算符%,要求两个操作数必须为整型数据 2. 自增自减运算符:+、-(仅用于整型或字符型变量) 运算符前置:先将变量值增1(或减1),再使用变量的值 运算符后置:先使用该变量的值,再将变量值增1(或减1),第2章 数据类型与表达式,例1: int i=10, j; j = i+;,例2: int i=10, j; j = +i;,执行后: j =10 ,i = 11,执行后: j =11 ,i = 11,2.3 运算符与表达式,2.3.1 算术运算符与算术表达式(续一) 3. 运算符的优先级与结合性: 优先级:运算符参与运算的先后顺序 结合性:当一个操作数两侧的运算符具有相同的优先级时,该操作数是先与左边的运算符结合,还是先与右边的运算符结合。自左至右的结合方向,称为左结合。反之,称为右结合性。 在进行C+程序设计时,并不需要记住所有运算符的优先级和结合性,可以适当使用括号来显示指定运算的先后顺序,而且使用括号可以增加程序的可读性。,第2章 数据类型与表达式,2.3 运算符与表达式,2.3.1 算术运算符与算术表达式(续二) 4. 数据类型转换: (1)数据类型的自动转换 运算符两侧数据类型不同时会发生自动类型转换,转换规则为 低类型转化为高类型 类型高低顺序: double, float, unsigned long, long, unsigned, int, short, char 高 低 (2)强制类型转换 将表达式的结果强制转换为类型说明符所指定的类型 语法形式:类型说明符(表达式) 或 (类型说明符)(表达式),第2章 数据类型与表达式,例2.7 强制类型转换的应用,#include void main() float s1,s2,a,h; a=4.0; h=5.0; s1 = 1/2*a*h; s2 = float (1)/2*a*h; cout s1 endl; cout s2 endl; ,第2章 数据类型与表达式,程序执行结果为: 0 10,整数相除,结果仍为整数。舍去小数后,此处结果为0,将1强制类型转换为实数,再和2相除,结果为实数0.5,2.3 运算符与表达式,2.3.2 赋值运算符与赋值表达式 1. 赋值运算:= 赋值表达式的一般形式: 变量 = 表达式 若表达式值的类型与变量类型不一致,会自动将表达式类型转换为变量类型后再赋值 2. 复合赋值运算:+=、-=、*=、/=、%=、=、&=、 |=、= 含义: 例: a += 10 等价于 a = a+10 a *= 10 等价于 a = a*10 a %= 10 等价于 a = a % 10,第2章 数据类型与表达式,2.3 运算符与表达式,2.3.3 关系运算符与关系表达式 6个关系运算符:、=、=、!= 优先级高 优先级低 关系运算符优先级低于算术运算符、高于赋值运算符 注意区分“等于”运算符 “=” 与“赋值”运算符 “=” 关系表达式的结果类型为bool,值只能为 true 或 false 如: int a = 4, b = 10; a b, a=b, a=b, a!=b 的结果分别为:true, true, false, false, false, true,第2章 数据类型与表达式,2.3 运算符与表达式,2.3.4 逻辑运算符与逻辑表达式 3个逻辑运算符: | 、&、! 优先级:低 高 逻辑表达式:用逻辑运算符连接进行逻辑运算的式子,逻辑表达式的结果类型为bool,值只能为 true 或 false 如: (a=60) & (a90) | (b85) / a大于90,或者b大于85,结果为true,条件成立 ! (a= =100) / a不等于100时,条件成立,第2章 数据类型与表达式,2.3 运算符与表达式,2.3.4 逻辑运算符与逻辑表达式(续) 逻辑运算符的运算规则 逻辑与&:当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。 逻辑或 | :当且仅当两个运算量的值都为“假”时,运算结果为“假”,否则为“真”。 逻辑非! :当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。,第2章 数据类型与表达式,2.3 运算符与表达式,2.3.5 条件运算符 条件运算符: ?: 条件表达式:表达式1 ? 表达式2 : 表达式3 运算规则:如果“表达式1”的值为真(非0),则整个表达式的值等于表达式2的值,否则,整个表达式的值等于表达式3的值。 如: ab ? a : b / 如ab,结果为a,否则为b,可求两数中较大者 ab ? a : b / 如ab,结果为a,否则为b,可求两数中较小者,第2章 数据类型与表达式,2.3 运算符与表达式,2.3.6 sizeof运算符 sizeof运算符用于计算指定数据类型或指定变量占用内存的字节数 用法: sizeof(数据类型) 或 sizeof(表达式) 如: sizeof ( int ) / 结果为4 sizeof ( 3.3 +20 ) / 结果为8,第2章 数据类型与表达式,2.4 位运算符,2.4.1 位运算符 C+使用位运算符可以对数据按二进制位进行操作。 1. 按位与(&):将两个操作数对应的每一位分别进行逻辑与 如:9&7 9: 00001001 7: 00000111 9&7: 00000001 9&7结果为1 2. 按位或(|) :将两个操作数对应的每一位分别进行逻辑或 3. 按位异或() :将两个操作数对应的每一位分别进行异或,第2章 数据类型与表达式,2.4 位运算符,2.4.1 位运算符(续) 4. 按位取反():单目运算符,对二进制的每一位取反 5. 左移位() :使运算符左侧操作数的各位右移指定位数,溢出的低位舍弃,对无符号数和有符号中的正数,高位补0,对于有符号数中的负数,有些系统补0(称为逻辑右移),有些系统补1(称为算术右移)。如 72的结果是1。,第2章 数据类型与表达式,7,72,2.4 位运算符,2.4.2 位运算符应用举例 例2.10 输入变量a,b的值,并将变量a的低4位置为0,将变量b的低4位置为1。 #include void main() int a,b; cin a; cin b; a = a ,第2章 数据类型与表达式,0xf为十六进制数,它的后四位为1,其他位均为0。取反后后四位为0,其他位均为1。,若输入25和23,程序执行结果为: 16 31,2.5 C+的构造类型,2.5.1 结构 1. 结构:将不同数据类型但相互关联的一组数据组成一个有机整体,如一个学生可包含学号、性别、年龄、成绩等不同类型的数据,这些数据是相互关联的一个整体。 2. 结构类型定义的形式 : struct 结构名 如:struct student 数据类型1 成员名1; int no; 数据类型2 成员名2; char sex; int age; 数据类型n 成员名n; float score; ; ;,第2章 数据类型与表达式,2.5 C+的构造类型,2.5.1 结构(续) 3. 结构变量的定义: 结构名 结构变量名; 如 student s1, s2; 也可以在定义结构类型的同时定义结构变量,如: struct student s1, s2; 4. 结构变量的引用: 结构变量名. 成员名 5. 结构变量所占字节:总是最大成员所占字节的倍数,可由sizeof 运算符求出。,第2章 数据类型与表达式,例2.11 结构变量的定义和使用,#include struct student int no; char sex; int age; float score; ;,第2章 数据类型与表达式,程序执行结果为: 9901001 m 20 90 16 16,void main() student s1; s1.no = 9901001; s1.sex = m; s1.age = 20; s1.score = 90; cout s1.no endl; cout s1.sex endl; cout s1.age endl; cout s1.score endl; cout sizeof(student) endl; cout sizeof(s1) endl; ,2.5 C+的构造类型,2.5.2 联合 1. 联合:与结构类似,但其所有成员共同占有同一内存空间。 2. 联合类型定义的形式 : union 联合名 如:union data 数据类型1 成员名1; int i; 数据类型2 成员名2; char ch; float f; 数据类型n 成员名n; ; ;,第2章 数据类型与表达式,2.5 C+的构造类型,2.5.2 联合(续) 3. 联合变量的定义: 联合名 联合变量名; 如 data d1, d2; 4. 联合变量的引用: 联合变量名. 成员名 5. 结构变量所占字节:最大成员所占字节数,可由sizeof 运算符求出。如联合类型data所占字节数为4。,第2章 数据类型与表达式,例2.12 联合变量的定义和使用,#include union data int i; char ch; float f; ;,第2章 数据类型与表达式,程序执行结果为: 100,d,1.4013e-043 65,A,9.10844e-044 1113456640, ,55.5 4 4,void main() data d; d.i = 100; cout d.i “,“ d.ch “,“ d.f endl; d.ch = A; cout d.i “,“ d.ch “,“ d.f endl; d.f = 55.5; cout d.i “,“ d.ch “,“ d.f e
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。