第2讲数据与运算298403986.ppt

上传人:本田雅阁 文档编号:2497365 上传时间:2019-04-03 格式:PPT 页数:44 大小:1.07MB
返回 下载 相关 举报
第2讲数据与运算298403986.ppt_第1页
第1页 / 共44页
第2讲数据与运算298403986.ppt_第2页
第2页 / 共44页
第2讲数据与运算298403986.ppt_第3页
第3页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第2讲数据与运算298403986.ppt》由会员分享,可在线阅读,更多相关《第2讲数据与运算298403986.ppt(44页珍藏版)》请在三一文库上搜索。

1、第二讲 数据与运算,清华大学 郑 莉,教材:C+语言程序设计(第4版)第2章 2.12.3,目录,2.1 C+语言概述 2.2 基本数据类型和表达式 2.3 数据的输入与输出 2.4 小结,2,2.1.1 C+的产生,C+是从C语言发展演变而来的,首先是一个更好的C 引入了类的机制,最初的C+被称为“带类的C” 1983年正式取名为C+ 从1989年开始C+语言的标准化工作 于1994年制定了ANSI C+标准草案 于1998年11月被国际标准化组织(ISO)批准为国际标准,成为目前的C+,3,2.1 C+语言概述,2.1.2 C+的特点,兼容C 它保持了C的简洁、高效和接近汇编语言等特点 对

2、C的类型系统进行了改革和扩充 C+也支持面向过程的程序设计,不是一个纯正的面向对象的语言 支持面向对象的方法,4,2.1 C+语言概述,2.1.3 C+程序实例例2-1(教材例2-1 ),5,2.1 C+语言概述,#include using namespace std; int main() cout “Hello!“ endl; cout “Welcome to c+!“ endl; return 0; 运行结果: Hello! Welcome to c+!,2.1.4 C+字符集,大小写的英文字母:AZ,az 数字字符:09 特殊字符: ! # % . , : ? ( ) ,6,2.1

3、C+语言概述,2.1.5词法记号,关键字 C+预定义的单词 标识符 程序员声明的单词,它命名程序正文中的一些实体 文字 在程序中直接使用符号表示的数据 操作符 用于实现各种运算的符号 分隔符 () , : ; 用于分隔各个词法记号或程序正文 空白符 空格、制表符(TAB键产生的字符)、垂直制表符、换行符、回车符和注释的总称,7,2.1 C+语言概述,标识符的构成规则,以大写字母、小写字母或下划线(_)开始。 可以由以大写字母、小写字母、下划线(_)或数字09组成。 大写字母和小写字母代表不同的标识符。,8,2.1 C+语言概述 2.1.5 词法记号,2.2.1 基本数据类型,9,2.2 基本数

4、据类型和表达式,2.2.2 常量,所谓常量是指在程序运行的整个过程中其值始终不可改变的量,也就是直接使用符号(文字)表示的值。例如:12,3.5,A都是常量。,10,2.2 基本数据类型和表达式,整数常量,以文字形式出现的整数,包括正整数、负整数和零。 十进制形式:若干个09的数字 符号加若干个09的数字,但数字部分不能以0开头,正数前边的正号可以省略。 八进制形式:0开头,若干个07的数字 十六进制形式:0x 开头,若干个09的数字及AF的字母(大小写均可) 由于八进制和十六进制形式的整型常量一般用来表示无符号整数,所以前面不应带正负号。 后缀字母L(或l)表示长整型,后缀字母U(或u)表示

5、无符号型,也可同时后缀L和U(大小写无关)。,11,2.2 基本数据类型和表达式表达式 2.2.2 常量,实数常量,以文字形式出现的实数。 一般形式: 例如,12.5,-12.5等。 指数形式: 例如,0.345E+2,-34.4E-3 字母E可以大写或小写。 整数部分和小数部分可以省略其一 实数常量缺省为double型,如果后缀F(或f)可以使其成为float型,例如:12.3f。,12,2.2 基本数据类型和表达式表达式 2.2.2 常量,整数和实数类型常量举例,13,2.2 基本数据类型和表达式表达式 2.2.2 常量,#include using namespace std; int

6、main() const int PRICE = 30; int num, total; double 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; return 0; ,字符常量,字符常量 单引号括起来的一个字符, 如:a, D, ?, $ C+转义字符列表,14,2.2 基本数据类型和表达式 2.2.2 常量,2.2.3 变量,变量的声明和定义 声明语句形式如下: 数据类型 变量名1, 变量名2, ., 变量名n

7、; 在定义一个变量的同时,也可以给它赋以初值 例如: int a = 3; 变量的存储类型 auto:采用堆栈方式分配内存空间,属于暂时性存储,其存储空间可以被若干变量多次覆盖使用。 register:存放在通用寄存器中。 extern:在所有函数和程序段中都可引用。 static:在内存中是以固定地址存放的,在整个程序运行期间都有效。,15,2.2 基本数据类型和表达式,2.2.4 符号常量,符号常量在声明时一定要赋初值,而在程序中间不能改变其值。 const 数据类型说明符 常量名=常量值; 或: 数据类型说明符 const 常量名=常量值; 例: const float PI = 3.1

8、415926;,16,2.2 基本数据类型和表达式,算术运算符与算术表达式,基本算术运算符 + - * /(若整数相除,结果取整) %(取余,操作数为整数) 优先级与结合性 先乘除,后加减,同级自左至右 +, -(自增、自减) 例:i+; -j;,17,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,赋值运算符和赋值表达式 简单的赋值运算符“=“,举例 n = n + 5 表达式的类型 赋值运算符左边对象的类型 表达式的值 赋值运算符左边对象被赋值后的值,18,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,赋值运算符和赋值表达式 复合的赋值运算符,有10种复合运算符: +

9、=, -=, *=, /=, %=, =, &=, =, |= 例 a += 3 等价于 a = a + 3 x *= y + 8 等价于 x = x * (y + 8),19,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,赋值运算符和赋值表达式 赋值表达式举例,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

10、a += a -= a * a 相当于 a = a + (a = a - a * a),20,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,逗号运算和逗号表达式,格式 表达式1,表达式2 求解顺序及结果 先求解1,再求解2,最终结果为表达式2的值 例 a = 3 * 5 , a * 4 最终结果为60,21,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,关系运算与关系表达式,关系运算是比较简单的一种逻辑运算,优先次序为: = = != 优先级相同(高) 优先级相同(低) 关系表达式是一种最简单的逻辑表达式 其结果类型为 bool,值只能为 true 或 false。 例

11、如:a b,c = a + b,x + y = 3,22,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,逻辑运算与逻辑表达式,逻辑运算符 !(非) &(与) |(或) 优先次序: 高 低 逻辑表达式 例如:(a b) & (x y) 其结果类型为 bool,值只能为 true 或 false,23,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,逻辑运算与逻辑表达式(续),“&” 的“短路特性” 表达式1 & 表达式2 先求解表达式1 若表达式1的值为false,则最终结果为false,不再求解表达式2 若表达式1的结果为true,则求解表达式2,以表达式2的结果作为最终

12、结果 “|”也具有类似的特性,24,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,条件运算符与条件表达式,一般形式 表达式1?表达式2:表达式3 表达式1 必须是 bool 类型 执行顺序 先求解表达式1, 若表达式1的值为true,则求解表达式2,表达式2的值为最终结果 若表达式1的值为false,则求解表达式3,表达式3的值为最终结果 例: x = a b ? a : b;,25,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,条件运算符与条件表达式(续),注意: 条件运算符优先级高于赋值运算符,低于逻辑运算符 表达式2、3的类型可以不同,条件表达式的最终类型为 2

13、和 3 中较高的类型。 例: x = a b ? a : b;,26,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,sizeof 运算符,语法形式 sizeof (类型名) 或 sizeof 表达式 结果值: “类型名”所指定的类型或“表达式”的结果类型所占的字节数。 例: sizeof(short) sizeof x,27,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,位运算按位与(&),运算规则 将两个运算量的每一个位进行逻辑与操作 举例:计算 3 ,28,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,位运算按位或(|),运算规则 将两个运算量的每一个位

14、进行逻辑或操作 举例:计算 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;,29,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,位运算按位异或(),运算规则 两个操作数进行异或: 若对应位相同,则结果该位为 0, 若对应位不同,则结果该位为 1, 举例:计算 071052 071: 0 0 1 1 1 0 0 1 052: () 0 0 1 0 1 0 1 0 071052 :

15、0 0 0 1 0 0 1 1,30,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,位运算按位异或()(续),用途: 使特定位翻转(与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,31,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,位运算取反(),单目运算符,对一个二进制数按位取反。 例: 025:0000000000010101 025:1111111111101010,32,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,位运

16、算移位,左移运算() 右移后, 低位:舍弃 高位:无符号数:补0 有符号数:补“符号位”,33,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,运算符优先级,() +,-,sizeof *, /, % +, - =, != 位运算 & | ?: 赋值运算 逗号运算,34,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,低,高,混合运算时数据类型的转换 隐含转换,一些二元运算符(算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符)要求两个操作数的类型一致。 在算术运算和关系运算中如果参与运算的操作数类型不一致,编译系统会自动对数据进行转换(即隐含转换),基本原则是将低类

17、型数据转换为高类型数据。 char,short,int,unsigned,long,unsigned long,float,double 低 高,35,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,混合运算时数据类型的转换 隐含转换(续),当参与运算的操作数必须是bool型时,如果操作数是其它类型,编译系统会自动将非0数据转换为true,0转换为false。 位运算的操作数必须是整数,当二元位运算的操作数是不同类型的整数时,也会自动进行类型转换, 赋值运算要求左值与右值的类型相同,若类型不同,编译系统会自动将右值转换为左值的类型。,36,2.2 基本数据类型和表达式 2.2.5 运

18、算符与表达式,混合运算时数据类型的转换 显式转换,语法形式(3种): 类型说明符(表达式) (类型说明符)表达式 类型转换操作符(表达式) 类型转换操作符可以是: const_cast、dynamic_cast、 reinterpret_cast、static_cast 显式类型转换的作用是将表达式的结果类型转换为类型说明符所指定的类型。 例:int(z), (int)z, static_cast(z) 三种完全等价,37,2.2 基本数据类型和表达式 2.2.5 运算符与表达式,2.2.6 语句,空语句 声明语句 表达式语句 选择语句 循环语句 跳转语句 复合语句 标号语句,38,2.2 基

19、本数据类型和表达式,表达式语句,格式: 表达式; 举例 赋值表达式语句 a = b; 插入/提取运算表达式语句 cout y;,39,2.2 基本数据类型和表达式 2.2.6 语句,复合语句,将多个语句用一对大括号包围,便构成一个复合语句 例如 sum=sum+i; i+; ,40,2.2 基本数据类型和表达式 2.2.6 语句,2.3.1 I/O流,在C+中,将数据从一个对象到另一个对象的流动抽象为“流”。流在使用前要被建立,使用后要被删除。 从流中获取数据的操作称为提取操作,向流中添加数据的操作称为插入操作。 数据的输入与输出是通过I/O流来实现的,cin和cout是预定义的流类对象。ci

20、n用来处理标准输入,即键盘输入。cout用来处理标准输出,即屏幕输出。,41,2.3 数据的输入和输出,2.3.2 预定义的插入符和提取符,“ 表达式 表达式. 在输入语句中,提取符可以连续写多个,每个后面跟一个表达式,该表达式通常是用于存放输入值的变量。例如: int a, b; cin a b;,42,2.3 数据的输入和输出,2.3.3 简单的I/O格式控制,43,2.3 数据的输入和输出,常用的I/O流类库操纵符,例:cout setw(5) setprecision(3) 3.1415;,2.4小结,主要内容 C+语言概述、基本数据类型和表达式、数据的输入与输出 达到的目标 掌握C+语言的基本概念和基本语句,能够编写简单的程序段。,44,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1