《Visual C++程序设计》-王永国-电子教案 第2章

上传人:E**** 文档编号:89402380 上传时间:2019-05-24 格式:PPT 页数:37 大小:247.50KB
返回 下载 相关 举报
《Visual C++程序设计》-王永国-电子教案 第2章_第1页
第1页 / 共37页
《Visual C++程序设计》-王永国-电子教案 第2章_第2页
第2页 / 共37页
《Visual C++程序设计》-王永国-电子教案 第2章_第3页
第3页 / 共37页
《Visual C++程序设计》-王永国-电子教案 第2章_第4页
第4页 / 共37页
《Visual C++程序设计》-王永国-电子教案 第2章_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《《Visual C++程序设计》-王永国-电子教案 第2章》由会员分享,可在线阅读,更多相关《《Visual C++程序设计》-王永国-电子教案 第2章(37页珍藏版)》请在金锄头文库上搜索。

1、1,第2章 数据类型、运算符和表达式,2.1 数据类型 2.2 常量、变量和函数 2.3 运算符和表达式 2.4 数据类型转换 2.5 应用举例,2,程序中要对各种各样的数据进行描述和操作,用到的数据都必须指明其类型。数据类型的作用: 指出了应为数据分配的存储空间的大小 规定了数据所能进行的操作,数据类型,基本类型,构造类型,整型 (int),实型,字符型(char) 布尔型(bool) 空类型(void) 指针,单精度型(float) 双精度型(double),数组 结构型(struct) 共用体(union) 枚举(enum) 类(class),2.1 数据类型,3,不同类型的数据占用的内

2、存字节数、表示的数据范围都是不同的。表2-1中列出了Visual C+中支持的基本数据类型以及占用的字节数和和范围。,表2-1 基本数据类型及其占用的字节数和和范围,4,2.2 常量、变量和函数,2.2.1 常量 在程序运行过程中其值不能改变的量,有值常量和符号常量两种。 1. 逻辑常量 逻辑常量只有两个取值:true和false,主要用在逻辑运算中。例如,对于两个整数a和b: bool x=(a=b); 如果a和b 相等,则x的值为true,否则为false。此外,由于逻辑值对应着整数1和0,因此它也能像其它整数一样出现在表达式中,参与各种整数运算,这一点与其它语言有所区别。,5,2.整型常

3、量,整型常量就是整型常数,简称整数,它有十进制、八进制和十六进制三种形式。 (1)十进制整型常量 形式:n n为09数字。十进制整数不能以0开始,以0开始的为八进制整数。例如0、+16、124、-127等。 (2)八进制整型常量 形式:0n n为07数字。例如0、016、0124等。 (3)十六进制整型常量 形式:0xn 以0x(或0X)开头, n 为 09 数字和字母AF或af组成。例如0x0、0x55、0x1cd等。 此外,C+中整型数据还允许给它们添加后缀u或l(大小写均可),来表示无符号整数或长整数。,6,3. 实型常量 (1)单精度实型常量 形式:n.nf n为由09数字组成的若干位

4、整数。如果不加字母f默认为双精度实型常量。例如1.36、-17.、.1和41.9等。 (2)双精度实型常量 形式:n.nEn 其中:n为09数字,符号E(或e)表示指数部分,+号可省。例如:1.37、34.0、 1.25e-5、-1.25e23 等均为合法双精度实型常量。 注意:e前面不能没有数字,e后面的数字必须为整数,也不能加园括号。如1E(-3)、E-5、1e2.1都是错误的。,7,4. 枚举常量,枚举常量是枚举类型中定义的值,即枚举值。这种类型的变量值只能是给定的若干个名字之一。是一种有限状态的集合,以整型值代表。如:颜色,星期等。枚举类型属于构造类型,用关键字enum表示。用户通常利

5、用枚举类型定义程序中需要使用一组相关符号常量。 声明形式:enum ; 例如:enum daysun,mon,tue,wed,thu,fri,sat ; 说明:(1)enum是关键字,标志枚举类型; (2)在定义枚举类型时,花括号中的一些名字如sun、mon是程序设计者指定的,与标识符的命名规则相同,但名字不是变量,不能改变其值;(如sun=1;非法) 枚举变量的说明和引用:enum day day1,day2 ; 或 enum daysun,mon,tue,wed,thu,fri,sat day1, day2;,8,1)枚举变量只能取该类型中的一个元素。例如:day1=sat ; 2)枚举元

6、素如果不赋值,自动取0n-1整数值; 3)在定义时,可以对某个枚举元素赋值,其后的元素按此值自动加一递增。 如enum colorred=3,yellow,blue,green=8,black;则yellow为4 4)一个整数不能直接赋给一个枚举变量,应进行强制类型转换;如day2=2;是错误的; 5)枚举常量可以进行比较; 6)枚举常量不是字符串。,注意:,9,5. 字符常量 C+提供了两类字符型常量: 普通字符常量:用单引号括起来的一个字符。如:A、0、?。 转义字符常量:以 (反斜杠)开头的用单引号括起来的字符序列。如:n 、t 、x61等。常用的转义字符见教材P26。 注意: 0表示A

7、SCII码为0的字符,它是一个空字符,注意其与0的区别,后者表示的是ASCII码为48的数字字符。 字符型数据在内存中以ASCII码存储,故整型数据和字符型数据在一定范围内可以通用。如: x= a +2;,10,6. 字符串常量 字符串常量是用双引号括起来的字符序列, 系统在字符串常量最后自动加字符串结束符号0 。 例如: 字符串“A“的存储形式:,A,内存中实际存放的 是这些字符的ASCII码,#define 标识符 常量值 const 数据类型 标识符 = 常量值;,或,7. 符号常量 是以标识符形式出现的常量,作用是便于程序阅读和修改。C+中用define命令或关键字const定义符号常

8、量,形式如下:,字符A的存储形式:,11,注意:,习惯上符号常量名大写,而变量名小写,以示区分。 符号常量虽然用标识符来标识,但本质上是常量,具有常量值不能改变的性质。,#include “iostream.h“ #define PI 3.14 void main( ) float r=3.0,s,l; l=2*PI*r; s=PI*r*r; cout“l=“l“,s=“ sendl; ,【例2-1】,1.演示不同精度圆周率的程 序运行结果 2.观察编译中的“警告”对程 序运行的影响 3.消除“warning”的方法,12,1.变量的定义 程序运行过程中其值可变的量, 定义方式如下:,C+规定

9、: 程序中所有变量必须先定义后使用,这样可及时发现录入错误(如:定义的变量为data,而程序体中使用变量为date),同时还可限制非法运算(如:a%b , 若a,b为float类型则出错)。 C+中变量可随时使用,随时定义。,例如: int a, b; (定义变量a和b为整型) float x,y ; (定义变量x和y为单精度实型),数据类型 变量名表 ;,2.2.2 变量,13,2.变量的初始化,数据类型 变量名=表达式; 数据类型 变量名(表达式);,例如: int k=3,m=3, n(3); () int k=m=n=3; /不允许为多个变量同时初始化,变量必须先有确定的值后才能参与各

10、种相应的操作,变量获取值的途径有三: 通过输入语句输入 (如:cina;) 通过赋值语句赋值 (如:a=3; ) 通过初始化方式赋初值 (如:int k=3;) 所谓初始化是指在定义变量的同时指定变量的初值,形式有二:,14,3.变量引用,C+中增加了“引用”这一概念,许多地方可以代替指针实现相应的功能,比指针更安全。 所谓引用即给一个已知变量起个别名,系统不为引用另外开辟内存,而是与原变量共享同一段内存,引用好比是一个虚拟的变量,声明形式为:,数据类型 &引用名=已定义的变量,如: int a=3, /你知道此时a的值为多少吗?,说明: (1)引用运算符与地址操作符使用了相同的符号,但含义不

11、一样; (2)引用被创建时,必须立即初始化,且一旦一个引用被初始化为一个对象的引用,就不能再被改变为另一个对象的引用,另外也不能有NULL引用,所以这点和以后学的指针不一样。,15,4typedef语句,为了增加程序的可读性和可移植性,C+提供了typedef 语句,用于为已有的数据类型定义一个新的名称。 形式:typedef 数据类型 新的数据类型名; 例如: typedef float FLOAT; / FLOAT可当作float用 FLOAT k, j; /用FLOAT定义k和j为float类型 注意:typedef语句并没有真正地定义新的数据类型,它只是相当于给某个已有的数据起了一个别

12、名。,16,2.2.3 标准函数,函数是一个可以独立完成某个功能的语句块。在C+中函数分为标准函数和用户自定义的函数。表2-3中列出了常用的数学函数。,所有的标准函数都被放在不同的函数库中,并有一个与之对应的头文件。在使用标准函数时,应把包含标准函数的头文件,通过 #include 预处理命令装入到程序中,例如,要使用上述数学函数,应该在程序加入: #include “math.h “ 或 #include “cmath“ using namespace std;,又如: #include “stdlib.h“ 中含有的随机函数rand是用于产生032767之间的一个整数,如需产生a,b之间的

13、整数,只需用:rand()%(b-a+1)+a即可。,17,2.3 运算符和表达式,2.3.1 基本概念,运算符具有三个属性: 优先级:指运算的先后次序,共分15个级别。(见书表2-4) 结合性:指相同优先级运算符连续出现时的计算顺序,分自左 向右和自右向左两种,除特别声明外,皆指自左向右。 目 数: 指运算符要求的操作数的个数,包括单目、双目和三目, 一般目数越少,优先级越高。,表达式:由常量、变量、函数调用和运算符按一定规律组合在一 起构成的式子。 如:a+14/(3+2)-sqrt(17) (-b+sqrt(b*b-4*a*c)/(2*a),18,符号: + (加法或取正) - (减法或

14、取负) * (乘法) / (除法) % (求余数) + (自增) - (自减) 其中:+和-的结合性则是自右向左 优先级:(从高到低) (+、-、+、-) (*、/、%) (+、-),2.3.2 运算符 1.算术运算,正、负,加、减,19,说明: 在除法运算中,当两个操作数都是整数时,商也为整数,小数部分一律舍去。如: 1/2 0 1.0 /2 0.5,若 i 的值为3,则: j=+i; j的值为4, i的值为4 j=i+; j的值为3, i的值为4,注意:增、自减运算符只能用于变量,而不能用于常量和表达式。 () 5+、(a+b)+,%(求余运算)要求两个操作数都是整型,结果为整除后余下的整

15、余数,符号与被除数相同。 自增、自减运算符(+、- -) +i , -i (在使用 i之前,先使i的值加减1) i+ , i- (在使用 i之后, 使i的值加减1),20,2 .关系运算,符号: (大于) = =(等于)、 =(大于等于)、 !=(不等于) 优先级: (从高到低) ( 、 = ) ( = = 、 != ) 关系运算描述的是一种“判断关系”,在C+中为了提高程序的可读性,引入了bool类型,其结果有true和false两种。为了保持与C的兼容可以用“1”代表“真”,用 “0” 代表“假” 例如:53的结果为true , aB的结果为false 思考: x为0到100之间的数能否表示为 0=x=100?,21,3.逻辑运算,种类: &(逻辑与)、 |(逻辑或)、!(逻辑非) 优先级: (从高到低) ! & |,其中,“!” 是单目运算符,优先级高于算术运算符。“” 和 “|” 低于关系运算符。 逻辑运算通常用来连接关系运算,逻辑运算符两端的操作数如为“非”,就当作“真”来处理,如果是“”,便当作“假”来处理。逻辑运算的结果也只有false (0)和true (1)两种。,22,说明: 当多个&连续出现时,如:表达式& 表达式&表达式。从左到右,只要一个操作数为0,结果就为0,不进行后续运算。 当多个

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号