版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息科学与工程学院信息科学与工程学院罗罗 芳芳Email:Email:引引 言言什么是计算机程序设计程序设计方法程序设计语言本课程学习目标课外资源什么是计算机程序设计程序设计方法程序设计语言本课程学习目标课外资源什么是计算机程序设计程序执行过程输入输出程序程序是什么?怎程序是什么?怎么设计的?么设计的?计算机程序实例二程序实例二程序实例一程序实例一什么是计算机程序设计程序设计方法程序设计语言本课程学习目标课外资源什么是计算机程序设计存放数据(数据结构)存放数据(数据结构).内存内存78a3421操作数据(算法)操作数据(算法)存放数据需要解决的问题:存放数据需要解决的问题:1、内存单元如何标识
2、?、内存单元如何标识?2、存放单元的大小如何确、存放单元的大小如何确定?定?3、多个相关数据怎么组织?、多个相关数据怎么组织?操作数据需要解决的问题:操作数据需要解决的问题:1、简单的数据操作有哪些?、简单的数据操作有哪些?2、操作的步骤怎么描述?、操作的步骤怎么描述?3、怎样确立操作步骤?、怎样确立操作步骤?程序设计过程什么是计算机程序设计计算机程序设计就是为计算机编制程序的过程。计算机程序设计就是为计算机编制程序的过程。1、明确问题2、确定数据结构和算法3、用某种语言进行编程4、测试与调试即如何组织数据和操作数据?组织和操作数据的方法不同,就有不同的程序设计方法。什么是计算机程序设计程序设
3、计方法程序设计语言本课程学习目标课外资源什么是计算机程序设计程序设计方法程序设计语言本课程学习目标课外资源程序设计方法目前,程序设计方法有两种:目前,程序设计方法有两种:1、面向过程的程序设计方法、面向过程的程序设计方法2、面向对象的程序设计方法、面向对象的程序设计方法什么是计算机程序设计程序设计方法程序设计语言本课程学习目标课外资源程序设计方法问题:组织和处理几个数据与组织和处理几千个数据采取的方法是一样的吗?程序设计方法面向过程的程序设计方法什么是计算机程序设计程序设计方法程序设计语言本课程学习目标课外资源公司负责人程序设计员以一个公司的运作与管理为例:当公司员工只有几个人时以一个公司的运
4、作与管理为例:当公司员工只有几个人时数据数据(员工员工).子程序(公子程序(公司业务)司业务)程序设计方法数据数据.子程序子程序面向过程的程序设计方法图1.1 面向过程设计方法示意图什么是计算机程序设计程序设计方法程序设计语言本课程学习目标课外资源 以功能为中以功能为中心、基于功心、基于功能分解能分解 程序程序 = =数据结构数据结构+ +算法算法程序设计方法面向对象的程序设计方法什么是计算机程序设计程序设计方法程序设计语言本课程学习目标课外资源对象(部门)对象(部门)消息(部消息(部门协作)门协作)当公司员工增加到一定数量以后程序设计方法对象对象消息消息面向对象的程序设计方法图1.2 面向对
5、象设计方法示意图什么是计算机程序设计程序设计方法程序设计语言本课程学习目标课外资源 以对象为中心、以对象为中心、基 于 数 据 抽 象基 于 数 据 抽 象(把数据及其操(把数据及其操作作为一个整体作作为一个整体构成对象)构成对象) 程序程序 = = 对象对象 + + 对象对象 + + + + 对象对象 对象对象 = = 数据数据 + + 操作操作什么是计算机程序设计程序设计方法程序设计语言本课程学习目标课外资源程序设计语言程序如何能被计算机所接受并执行程序如何能被计算机所接受并执行,需要程序设计语言来描述。,需要程序设计语言来描述。程序设计语言的分类程序设计语言的分类程序设计语言 u低级语言
6、低级语言 机器语言机器语言汇编语言汇编语言u高级语言高级语言 u 解释解释 翻译翻译u编译编译 词法分析词法分析语法分析语法分析代码优化代码优化 代码生成代码生成什么是计算机程序设计程序设计方法程序设计语言本课程学习目标课外资源程序设计语言语言模型语言模型任何一种程序设计语言可用下面的模型描述任何一种程序设计语言可用下面的模型描述图1.3 语言模型什么是计算机程序设计程序设计方法程序设计语言本课程学习目标课外资源程序设计语言C+程序设计语言 高级语言高级语言 面向对象程序设计语言面向对象程序设计语言B B语言语言C C语言语言C+C+语语言言C#C#语语言言图1.4 C+语言发展历程什么是计算
7、机程序设计程序设计方法程序设计语言本课程学习目标课外资源程序设计语言本课程使用的开发环境是本课程使用的开发环境是Visual C+6.0。Visual C+是是Microsoft公司开发,是基于公司开发,是基于 Windows环境的可视化集成开发环境。环境的可视化集成开发环境。什么是计算机程序设计程序设计方法程序设计语言本课程学习目标课外资源什么是计算机程序设计程序设计方法程序设计语言本课程学习目标课外资源本课程学习目标1、学习、学习C+基本词法、语法规则以及基本词法、语法规则以及不同的程序设计方法等知识。不同的程序设计方法等知识。2、培养知识运用能力;培养读写简、培养知识运用能力;培养读写简
8、单程序的能力;培养计算思维能力。单程序的能力;培养计算思维能力。什么是计算机程序设计程序设计方法程序设计语言本课程学习目标课外资源课外资源一、参考书籍一、参考书籍1、C + Primer Plus(第第6版版)中文版中文版2、C+程序设计(谭浩强编著)程序设计(谭浩强编著)二、精品网站二、精品网站1、编程中国:http:/ VC知识库: http:/ http:/ http:/ C+基础知识基础知识C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式一个应用程序的开发过程本章小结导言本章解决的问题:本章解决的问题:C+中有哪些字符?有哪些单词?数据存储单元如何标识?大小如
9、何确定?对数据可执行什么样的操作?C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式一个应用程序的开发过程本章小结#include /预处理命令预处理命令#define PI 3.14159 /宏定义宏定义float sum(float x); /对对sum函数作声明函数作声明void main() /主函数首部主函数首部 float r,s; /定义变量定义变量r,s coutr; /输入输入r的值的值 s=sum(r); /调用调用sum函数函数 coutr=r s= sendl; /输出输出r,s的值的值 float sum(float x) /定义定义sum函数
10、函数 return PI*x*x; /返回函数值返回函数值 C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.2 C+程序的基本结构引例1.1 键盘输入圆的半径,求圆的面积.声明区函数区声明区:声明区:(1)包含文件)包含文件(2)宏定义)宏定义(3)函数声明)函数声明(4)条件编译)条件编译(5)全局变量声明()全局变量声明(6)结构体)结构体等的定义等的定义(7)类的定义)类的定义程序的注释可在任何一个区内插入1.2.1 C+程序结构函数区:函数区:(1)由)由1个主函数个主函数main()和多个和多个(或(或0个)其他函数组成。个)其他函数组
11、成。(2)每个函数都是由函数声明)每个函数都是由函数声明部分与函数体(函数的定义)部部分与函数体(函数的定义)部分组成。分组成。(3)程序的执行从)程序的执行从main()函数函数开始。开始。(4)函数声明部分包括函数返)函数声明部分包括函数返回值类型、函数名、函数的形式回值类型、函数名、函数的形式参数。参数。(5)函数体部分是用一对花括)函数体部分是用一对花括号号括起来的完成该函数所表达括起来的完成该函数所表达的功能的语句的集合。的功能的语句的集合。(6)语句可以是数据描述语句)语句可以是数据描述语句或数据操作语句。或数据操作语句。1.2 C+程序的基本结构(1)每行一般书写一条语句(2)每
12、条语句以“;”分号结束(3)使用向右缩进方法表达程序中的层次 结构(4)可使用多行注释或单行注释以增 强程序的可读性1.2.2 程序的书写格式参见教材P4-5C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程(1)26个小写字母:az。(2)26个大写字母:AZ。(3)10个数字:09。(4)标点和特殊字符:(5)空字符1.4 C+的词法规则ASCII为为0的字的字符(符(null:即:即空操作字符空操作字符 ),用作字符串,用作字符串的结束符的结束符1.4.1 C+的字符集组成参见教材P9-10C+程序的基本结构C+的词法规则 C+基本数据类型常量与
13、变量运算符与表达式应用程序的开发过程+ - * / , : ; ? ” | ! # % & ( ) 空格。空格。1.4 C+的词法规则1.4.2 单词及其构词规则l用来命名C+程序中的常量、变量、函 数、语句标号及类型定义符等。参见教材P101 1、标识符、标识符C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.4 C+的词法规则1.4.2 单词及其构词规则l关键字(又称保留字)是被系统定义 了的已具有特定含义的标识符。l系统常见关键字见教材P10单词由若干合法字符组成,常见单词有:参见教材P102、关键字、关键字C+程序的基本结构C+的词
14、法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.4 C+的词法规则1.4.2 单词及其构词规则l运算符与操作数连接组成表达式。单目单目运算符:连接一个操作数的运算符;双目双目运算符:连接两个操作数的运算符;三目三目运算符:连接三个操作数的运算符;参见教材P10单词由若干合法字符组成,常见单词有:3、运算符、运算符C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.4 C+的词法规则l常量是在程序中不改变的量。C+程序中的常量有:整型常量、浮点型常量、字符常量和字符串常量4种。将在1.6节中详细介绍。参见教材P11单词由若干合法字
15、符组成,常见单词有:4、常量、常量1.4.2 单词及其构词规则C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.4 C+的词法规则l变量是在程序中可以改变的量。某个变量的值被改变后,将一直保持到下一次被改变。变量是一种标识符,其命名完全与标识符相同。将在1.6节中详细介绍其特性。参见教材P111.4.2 单词及其构词规则单词由若干合法字符组成,常见单词有:5、变量、变量C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.4 C+的词法规则l注释符的作用是在程序中标识注释信息多行注释以“/*”开始,以“*/
16、”结束,占据多行。单行注释以“/”开始,占据一行。参见教材P111.4.2 单词及其构词规则单词由若干合法字符组成,常见单词有:6 6、注释符、注释符C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.4 C+的词法规则空格符:常作为单词与单词之间的分隔符。逗号(,):多作多个变量或多个参数之间的分隔符;分号(;):主要用于for语句的for关键字后的圆括号内,作分隔符;冒号(:):用来标识语句标号和开关语句,常用于switch的case关键字后。 C+常用的分隔符:参见教材P11C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表
17、达式应用程序的开发过程1.4.2 单词及其构词规则单词由若干合法字符组成,常见单词有:7、分隔符、分隔符1.5 C+基本数据类型参见教材P11 重点C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.5 C+基本数据类型数据类型数据类型数据型符数据型符占用字节占用字节数数基本整型基本整型intint4 4短整型短整型shortshort2 2长整型长整型longlong4 4无符号整型无符号整型unsigned int unsigned int 4 4无符号短整型无符号短整型unsigned unsigned shortshort2 2无符号长整型无
18、符号长整型unsigned longunsigned long4 4单精度实型(单精度实型(有效数字有效数字6767位)位)floatfloat4 4双精度实型(双精度实型(有效数字有效数字15161516位)位)doubledouble8 8字符型字符型charchar1 1C+常用基本数据类型参见教材P12 重点C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.6 常量与变量1.6.1 常量常量是在程序中不改变的量。uC+程序中有5种常量: 整型常量定义格式:int const 常量名=常量值;例如, int const x=10;x=20;
19、x是整型常量吗? 整型常量有3种形式:十进制: 123 -35 32767 0八进制: 05 012 01十六进制: 0 x10 0XFF 0 x8? 参见教材P12-13C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1 1、整型常量、整型常量1.6 常量与变量 浮点型常量又称实型常量,分为十进制数形式和指数形式两种表示方法。(1)十进制数形式的浮点型常量的书写格式: .其中小数点不能省略。如1.2345、1.0、1.、.12345均是合法的浮点型常量。(2)指数形式的浮点型常量的书写格式: .EE 其中,指数形式表示符“E”大小写均可。.部分允许
20、不含小数点的,或含小数点的,必须是整数。如12E-3、0.1E2、.12345E6、0E0等均是合法的。 参见教材P13C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.6.1 常量2 2、浮点型常量、浮点型常量1.6 常量与变量 字符常量是一个用单引号括起来的字符。 单引号是字符常量的定界符,单引号本身表示成。在C+中,字符常量具有整数值,其值是该字符的ASCII码。一个字符常量可以与整数进行加减运算。参见教材P14C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.6.1 常量3 3、字符常量、字符常
21、量1.6 常量与变量 双引号是字符串常量的定界符,双引号本身表示成“”。“”是一个空字符串,空字符串中没有任何有效字符,只有一个字符串结束符。在C+程序中,任何一个字符串常量都有一个结束符,该结束符是ASCII码值为0的空字符,表示为0。 字符串常量是用双引号括起来的若干个字符组成的字符序列。例如:“CHINA”。参见教材P14C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.6.1 常量4 4、字符串常量、字符串常量1.6 常量与变量转义字符转义字符又称反斜线字符,这些字符常量总是以一个“”开头,后跟特定的字符来代表某一个特定的ASCII字符。
22、字符形式字符形式功功 能能字符形式字符形式功功 能能aa响铃符响铃符00空字符(空字符(NULLNULL)bb退一格退一格 双引号双引号ff换页换页单引号单引号nn换行换行斜杠斜杠()()rr回车回车dddddd1313位八进制数所代表的位八进制数所代表的字符字符vv垂直跳格垂直跳格xhhxhh1212位十六进制数所代表位十六进制数所代表的字符的字符tt水平跳格水平跳格补充内容C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.6.1 常量1.6 常量与变量例如“string”,长度为6,在内存中占7个字节? 以下哪个是字符串?A “house” H
23、ow do you do. $abc求字符串 “mx42tp101qy” 的长度? x42、t、101为转义字符,字符长度为8C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.6.1 常量补充内容1.6 常量与变量比较字符常量和字符串常量的不同:(1)表示形式不同。前者用单引号括起来,后者用双引号括起来。(2)存放它们的对象不同。前者存放在字符变量中,后者存放在字符数组或字符指针指定的位置。如,char c=A, s5=ABCD;(3)存放字符串常量时要加一个结束符,而存放字符常量则不需要。所以A与“A”不同。且其占用的内存空间也不同,A占1个字节
24、;“A”占2个字节,前一字节存放字符A,后一字节存放结束符。(4)对它们进行的运算也不同。字符与字符、字符与整数间可作加减运算;而字符串只能作连接运算。 参见教材P14C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.6.1 常量1.6 常量与变量(1)增强程序的可读性。标识符可以定义得有意义,如用PI表示圆周率。(2)书写简单,不易出错。有的常量直接书写很长,容易出错,如圆周率3.141 592 6用PI代之,既简单又不容易出错。(3)修改程序方便。 参见教材P15C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序
25、的开发过程5 5、符号常量、符号常量1.6.1 常量1.6 常量与变量1.6.2 变量变量是在程序中可以改变的量参见教材P16变量有名字、类型和值三个要素变量的命名规则与用户标识符相同C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.6 常量与变量1.6.2 变量变量的类型包括存储类和数据类型两个方面变量的值被改变后,将一直保持到下一次被改变参见教材P16 重点C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程定义变量的格式: ;例如: int x ;int y;或int x,y; char ch; 内存表
26、示变量必须先定义后使用。其目的是: 为变量分配存储空间 规定变量可适用的运算参见教材P16 重点C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.6 常量与变量1.6.2 变量1 1、变量的定义、变量的定义变量的基本数据类型有:整型、浮点型和字符型。变量的构造数据类型称自定义类型。它由若干个数据类型相同或不相同的变量所构成的类型。如数组、结构体、共用体、类都是构造数据类型。参见教材P17 重点C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.6 常量与变量1.6.2 变量2 2、变量的数据类型、变量的数
27、据类型变量的存储类定义变量的有效性范围,即作用域。C+中有4类: 自动存储类(auto) 寄存器存储类(register) 静态存储类(static) 外部存储类(extern)存储类为存储类为autoauto称为称为动态变量。动态变量。动态变量是在函数动态变量是在函数被调用执行时被调用执行时, ,才才分配单元分配单元, ,随着函随着函数被执行而分配数被执行而分配, ,随着函数执行结束随着函数执行结束而释放而释放,auto,auto关键关键字可以省略字可以省略寄存器变量是请寄存器变量是请求计算机把此变求计算机把此变量放入量放入CPUCPU的寄存的寄存器内器内, ,但如果没有但如果没有寄存器可使
28、用寄存器可使用, ,或或系统不支持此功系统不支持此功能能, ,则此变量等同则此变量等同于动态变量于动态变量静态变量是在程静态变量是在程序编译连接时就序编译连接时就分配的内存单元分配的内存单元, ,在整个程序运行在整个程序运行期间使用固定的期间使用固定的存储单元存储单元, ,直到整直到整个程序退出对应个程序退出对应单元才释放单元才释放外部变量在所有外部变量在所有函数和程序段中函数和程序段中都可引用。生存都可引用。生存期是整个程序,期是整个程序,在程序结束时才在程序结束时才释放内存。释放内存。参见教材P16-17 重点C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程
29、序的开发过程1.6 常量与变量1.6.2 变量3 3、变量的存储类(、变量的存储类(具体使用详见函数一章具体使用详见函数一章)变量的值是变量三要素之一。可以在定义变量时对变量赋初值(变量初始化),也可以在引用变量时通过其他方法(赋值表达式、cin、scanf函数等)对变量赋值。变量初始化格式:变量初始化格式:=,=,;例如:static int a=1,b=2;参见教材P17-18 重点C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.6 常量与变量1.6.2 变量4 4、变量的值、变量的值外部类和静态类变量没有初始化,则由编译程序赋以“零值”(数
30、值型变量赋数值0,字符型变量赋空字符)。自动类和寄存器类变量不进行初始化,那么它们不具有有意义的值,必须通过赋值后才能引用。例如:例如:int a,b; int a,b; a=b+4; a=b+4;参见教材P18 重点C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.6 常量与变量1.6.2 变量4 4、变量的值、变量的值变量有定义和引用两个方面。变量的定义涉及变量名称、存储类和数据类型。引用即使用,通常先定义,后使用。引用变量时可通过赋值表达式、cin函数等方式对变量赋值。参见教材P18 重点C+程序的基本结构C+的词法规则 C+基本数据类型常量
31、与变量运算符与表达式应用程序的开发过程1.6 常量与变量1.6.2 变量4 4、变量的值、变量的值表达式x=x+1,在数学中成立吗?在计算机程序中成立吗?为什么?深入思考深入思考原因一:数学公式中的“=”和程序中的含义不一样。程序中的“=”是赋值的含义。原因二:数学公式中的变量和程序中的含义不一样。程序中的变量表示的是存储单元。结论:用计算机求解问题有别于数学的方法,要考虑机器的具体状况。补充内容C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.6 常量与变量1.6.2 变量1.7 运算符与表达式C+的表达式包括算术表达式、关系表达式、逻辑表达式、
32、赋值表达式、条件表达式和逗号表达式。参见教材P18 重点C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.7 运算符与表达式1.7.1 算术运算符与算术表达式运算运算符符含义含义例例备注备注+ +加加5+2 5+2 7 7- -减减5-2 5-2 3 3* *乘乘5 5* *2 2 10 10/ /除除5/2 5/2 2 2正斜线正斜线%取余取余5%2 5%2 1 1,5%-2 ,5%-2 -1-1只适用于整型数只适用于整型数+自增自增y=x+ ; y=x+ ; y=x , x=x+1y=x , x=x+1y=+x ; y=+x ; x=x+1 ,
33、 y=xx=x+1 , y=x适用于整型变量适用于整型变量-自减自减y=x- ; y=x- ; y=x , x=x-1y=x , x=x-1y=-x ; y=-x ; x=x-1 , y=xx=x-1 , y=x适用于整型变量适用于整型变量参见教材P18-20C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程单目运算符的优先级高于双目运算符的优先级,双目运算符中的 *、/、% 的优先级高于 +、- 的优先级。+(增1)运算可写在变量前或变量后,分别称作前缀运算和后缀运算。如果定义一个变量i,前缀运算记为:+i,后缀运算记为:i+。a=+i等同于 i=i
34、+1 a=ia=i+等同于 a=i i=i+1参见教材P19C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.7 运算符与表达式1.7.1 算术运算符与算术表达式取余运算只能用于两个整型数的运算。功能是求两个整型数相除的余数。用下面的公式:余数=被除数-商除数注意:5%-3=2,而-5%3=-2。程序的运行结果如下:程序的运行结果如下: a=2 b=-2a=2 b=-2例如:取余运算。例如:取余运算。程序代码如下:程序代码如下:#include #include using namespace std;using namespace std;voi
35、d main()void main() int a,b; int a,b;a=5%-3;a=5%-3;b=-5%3; b=-5%3; couta=atb=couta=atb=bendl;bendl; 参见教材P19C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.7 运算符与表达式1.7.1 算术运算符与算术表达式例如例如, ,#include #include using namespace std;using namespace std;void main()void main() int x,y,z; int x,y,z;x=10;x=10;
36、 y=x+; y=x+; z=+x; z=+x; z=(x+)+(x+)+(x+); z=(x+)+(x+)+(x+);coutx+x+endl;coutx+x+=大于等于大于等于20=20,10=2020=20,10=20同级同级( (高高) ) 大于大于2020,20102020,2010 小于小于2030,20102030,2010=小于等于小于等于20=30,20=1020=30,200时,表达式“x+yx”是永真的。但在用计算机语言判断关系表达式“x+yx”时,可能会得出不真的结论。这种情况往往出现在x和y两个数差别很大,一个很大,另一个则小到了语言表达精度以下,以致这个很小的数对相
37、加结果不产生影响。 参见教材P20C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.7 运算符与表达式1.7.2 关系运算符与关系表达式? 设设a=3,b=5,c=4, a=3,b=5,c=4, 以下关系运算的值是多少?以下关系运算的值是多少?ababa+bb+ca+bb+c(a=3)(b=5)(a=3)(b=5)abaa)(cb)(ba)(cb)参与关系运算的数据可以是整型、实型、字符参与关系运算的数据可以是整型、实型、字符型数据型数据补充内容C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.7 运算
38、符与表达式1.7.2 关系运算符与关系表达式逻辑运算符用于一个或两个条件是否满足的判断参与运算的数是逻辑值(非零或0), 运算的结果也是逻辑值(1或0)运算符运算符含义含义举例举例优先级优先级! !逻辑非逻辑非!20,!0!20,!0高高&与与20&45,20&020&45,20&0|或或20|0,0|020|0,0|0低低参见教材P21C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.7 运算符与表达式1.7.2 关系运算符与关系表达式 与运算当且仅当参与运算的两个数都为真时,结与运算当且仅当参与运算的两个
39、数都为真时,结果为真,否则为假果为真,否则为假 或运算当参与运算的两个数都为假时,结果为假或运算当参与运算的两个数都为假时,结果为假,否则为真,否则为真? x0 & x0 & xx0 ( 10 x0 ( ) ) ch=A & ch=A & ch=65 & ch=65 & ch=90补充内容C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.7 运算符与表达式1.7.2 关系运算符与关系表达式1.7 运算符与表达式1.7.3 逻辑运算符与逻辑表达式逻辑运算的优先级!(非)&(与) |(或)逻辑运算
40、符与其他运算符的优先级:!算术运算符关系运算符&和|赋值运算符高高低低参见教材P21C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程位运算的对象是二进制数,对二进制数进行按位运算1100110010101010 1000 1000&1100110010101010 1110 1110| |1100110010101010 0110 0110 00101 00101 00101 0001 0001参见教材P22-23C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.7 运算符与表达式1.7.
41、3 逻辑运算符与逻辑表达式1.7 运算符与表达式1.7.5 赋值运算符与赋值表达式基本赋值运算符(1个)= 基本赋值运算符(注意与等号“=”的区别)参见教材P23-24C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程复合赋值运算符(10个) +=+=、-=-=、* *= =、/=/=、%=%=分别为加、减、乘、除、取余赋值运算符&=&=、=、|=|=分别为按位与、按位异或、按位或赋值运算符=分别为位左移、右移赋值运算符赋值表达式的一般形式为: = 例如:int a,b,c;int w;w=56;a=b=c=1; /该表达式值为1,变量
42、a、b、c的值为1参见教材P24C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.7 运算符与表达式1.7.5 赋值运算符与赋值表达式复合赋值运算符由赋值号“=”前加上其他运算符构成例如:a+=3等价于 a=a+3x*=y+8等价于 x=x*(y+8)功能:是右侧表达式的值与左侧变量先进行“=”前的运算符的计算,再赋给左边的变量。参见教材P24C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.7 运算符与表达式1.7.5 赋值运算符与赋值表达式1.7 运算符与表达式C+只有一个三目运算符。三目条件表达式
43、格式如下:运算时先对第一个表达式进行检验,如果为真,取表达式2的值;为假,取表达式3的值。 例如: a=(b0)?b:-b; 当b0时,a=b;当b=0时,a=-b;1.7.6 三目运算符与三目表达式参见教材P25C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.7 运算符与表达式用逗号串联起来的若干个表达式称为逗号表达式。 , , , 各表达式按从左至右顺序执行, 并将最后一个表达式的值作为整个逗号表达式的值。1.7.7 逗号运算符与逗号表达式例如: b=1,c=2,d=3;则逗号表达式: a=4+4,b=ba=4+4,b=b* *b+c,d=d
44、b+c,d=d* *a+b;a+b;其求值过程为:先将8赋给a,再将3赋给b,最后一个表达式d=3*8+3=27,整个逗号表达式的值为27.参见教材P26C+程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程取内容运算符:*1.7 运算符与表达式指针运算实际上是地址运算。指针运算有两个运算符1.7.8 指针运算运算符 & 后跟变量名或数组元素,后面不能跟常量、表达式或数组名。功能是取变量的地址。&a、&b分别表示取变量a、b的地址值。运算符 * 后跟一个地址值(包括地址表达式值),表示取一个地址中存放的数据。参见教材P26-27C+
45、程序的基本结构C+的词法规则 C+基本数据类型常量与变量运算符与表达式应用程序的开发过程1.7 运算符与表达式运算符的优先级和结合性是确定表达式计算顺序的重要依据。1.7.9 运算符的优先级和结合性(1)():圆括号,用于改变优先级,圆括号内的 部分首先计算。(2):数组元素的下标运算符或数组大小定 义运算符,其内的部分首先计算。(3). 和-:用于结构体、共用体变量。(4)sizeof:计算一数据类型或一表达式占用 内 存的字节数。例如,sizeof(int) 或 sizeof()(5)强制类型:作用于一表达式,使表达式的 类型强制性转换为指定类型。例如,int a=1, b=2;cout(int)(a+b+1.234567)endl;参见教材P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024燃气输配网络建设项目代建合同书3篇
- 2024年车展场地租赁协议
- 2025年度信息安全保密管理合同3篇
- 教育之光:塑造未来
- 2025年度特色餐厅与旅行社文化体验合作框架协议3篇
- 专业化汽车配件供应及服务采购协议书版
- 2025年度智慧社区物业管理系统开发合同示范2篇
- 绿色金融产品开发协议
- 2024版人工智能语音助手开发合同(标的:语音识别技术)
- 2024新版房贷合同:个人住房贷款合同速览版
- DB43∕T 1591-2019 锂电池正极材料单位产品能源消耗限额及计算方法
- 征信合规知识线上测试题库征信知识竞赛题库(题目+答案)
- 贵州省贵阳市2021-2022学年苏教版四年级上册期末数学试卷(含答案)
- 新教材高中历史选择性必修一全册知识点总结
- 2017英语专业八级改错真题及答案持续更新部分详解文字答案校对版
- 室内蒸汽供热系统
- 小型塑料注射成型机液压系统设计
- 《干部廉政档案》2022年最新模板
- 高支模方案(专家论证定稿)
- 城投集团年度安全管理工作计划
- 美术课教案《线造型》
评论
0/150
提交评论