《第2章简单程序设计精.ppt》由会员分享,可在线阅读,更多相关《第2章简单程序设计精.ppt(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第2章简单程序设计章简单程序设计第1页,本讲稿共38页第第2章章 C+简单程序设计简单程序设计lC+语言概述语言概述l基本数据类型和表达式基本数据类型和表达式l数据的输入与输出数据的输入与输出l算法的基本控制结构算法的基本控制结构l自定义数据类型自定义数据类型2第2页,本讲稿共38页C+的产生的产生lC+是在是在C语言的基础上发展而来的语言的基础上发展而来的lC语言是贝尔实验室的语言是贝尔实验室的Dennis Retchie在在B语言的基础上开发而来的语言的基础上开发而来的lC+是是1980年由年由AT&T贝尔实验室的贝尔实验室的Bjarne Stroustrup博士创建的。博士创建的。C+
2、语言概述3第3页,本讲稿共38页C+的特点的特点lC+尽量兼容尽量兼容C它保持了C的简洁、高效和接近汇编语言等特点对C的类型系统进行了改革和扩充C+也支持面向过程的程序设计,不是一个纯正的面向对象的语言l支持面向对象的方法支持面向对象的方法C+语言概述4第4页,本讲稿共38页C+程序实例程序实例l一个简单的一个简单的C+程序,参见程序,参见p20,例,例2-1#include#include using namespace std;using namespace std;int main()int main()cout Hello!endl;cout Hello!endl;cout Welco
3、me to c+!endl;cout Welcome to c+!endl;return 0;return 0;C+语言概述5第5页,本讲稿共38页字符集字符集l字符集是构成字符集是构成C+语言的基本元素,包语言的基本元素,包括英文字母、数字字符、特殊字符例如!括英文字母、数字字符、特殊字符例如!、#、%等等C+语言概述6第6页,本讲稿共38页词法记号词法记号l关键字:关键字:C+预先声明的单词,即保留预先声明的单词,即保留字字l标识符:是程序员定义的单词,它命名标识符:是程序员定义的单词,它命名程序正文中的一些实体,例如函数名、程序正文中的一些实体,例如函数名、变量名、类名等变量名、类名等C
4、+语言概述C+C+C+C+标识符构成的规则标识符构成的规则标识符构成的规则标识符构成的规则:以大写字母、小写字母或下划线开始以大写字母、小写字母或下划线开始可以由大写字母、小写字母、下划线或数字可以由大写字母、小写字母、下划线或数字0909组成组成大写字母和小写字母、下划线或数字组成大写字母和小写字母、下划线或数字组成大写字母和小写字母代表不同的标识符大写字母和小写字母代表不同的标识符不能使不能使C+C+的关键字的关键字7第7页,本讲稿共38页词法记号词法记号l文字:是在程序中直接使用符号表示的文字:是在程序中直接使用符号表示的数据,例如数据,例如3.14、false、trur、zl操作符:即
5、运算符,是用于实现各种运操作符:即运算符,是用于实现各种运算的符号算的符号l分隔符:用于分割各个词法记号或程序分隔符:用于分割各个词法记号或程序征文,例如征文,例如()、,、:、,、:、;C+语言概述8第8页,本讲稿共38页词法记号词法记号l空白:是空格、制表符、垂直制表符、空白:是空格、制表符、垂直制表符、换行符、回车符和注释的总称换行符、回车符和注释的总称l注释:对程序进行注释和说明。行注释,注释:对程序进行注释和说明。行注释,即即/.;段注释;段注释,/*.*/C+语言概述9第9页,本讲稿共38页基本数据类型基本数据类型lC+的基本数据类型有的基本数据类型有bool、char、int、f
6、loat、double等,参见表等,参见表2-1,p24lISO C+标准没有规定每种数据类型的标准没有规定每种数据类型的字节数和取值范围,只规定了字节大小字节数和取值范围,只规定了字节大小char short int long基本数据类型和表达式10第10页,本讲稿共38页常量常量l常量是在程序运行的整个过程中其值始常量是在程序运行的整个过程中其值始终不变的量。终不变的量。l整型常量:十进制、八进制(整型常量:十进制、八进制(0开头)、开头)、十六进制(十六进制(0 x开头)开头)l实型常量:一般形式和指数形式(实型常量:一般形式和指数形式(E),),例例,3.4E+2基本数据类型和表达式1
7、1第11页,本讲稿共38页常量常量l字符常量:用单引号括起来的字符,分字符常量:用单引号括起来的字符,分为可见字符和转义字符,表为可见字符和转义字符,表2-2,p26l字符串常量:用双引号括起来的字符序字符串常量:用双引号括起来的字符序列。例列。例2-1,p27l布尔常量:只有布尔常量:只有false和和true基本数据类型和表达式12第12页,本讲稿共38页变量变量l在程序的执行过程中其值可以变化的量在程序的执行过程中其值可以变化的量称为变量称为变量l变量在使用前需要先声明其类型和名称,变量在使用前需要先声明其类型和名称,p27例如例如l变量的存储类型有变量的存储类型有auto、regist
8、er、extern和和static四种四种基本数据类型和表达式变量的存储类型:变量的存储类型:变量的存储类型:变量的存储类型:autoauto:采用堆栈方式分配内存空间:采用堆栈方式分配内存空间registerregister:存放在通用寄存器中:存放在通用寄存器中externextern:在所有函数和程序段都可以引用:在所有函数和程序段都可以引用staticstatic:在内存中是以固定地址存放的,在整个:在内存中是以固定地址存放的,在整个程序运行期间都有效程序运行期间都有效13第13页,本讲稿共38页符号常量符号常量l即,自定义常量即,自定义常量l例如例如const float PI=3.
9、1415;l符号常量在使用前需要声明符号常量在使用前需要声明l符号常量在声明时一定要赋初值,并且符号常量在声明时一定要赋初值,并且在程序运行期间不能改变其值在程序运行期间不能改变其值基本数据类型和表达式14第14页,本讲稿共38页运算符与表达式运算符与表达式l表达式是用于计算的公式表达式是用于计算的公式l算术运算符与算术表达式:包括基本算算术运算符与算术表达式:包括基本算术运算符和自增自减运算符,由算术运术运算符和自增自减运算符,由算术运算符、操作数和括号构成的表达式称为算符、操作数和括号构成的表达式称为算术表达式,算术表达式,p29例如例如基本数据类型和表达式15第15页,本讲稿共38页运算
10、符与表达式运算符与表达式l赋值运算符与赋值表达式:带有赋值运赋值运算符与赋值表达式:带有赋值运算符算符=的表达式称为赋值表达式的表达式称为赋值表达式lP30,例如,例如l逗号运算和逗号表达式,逗号运算和逗号表达式,p30例如例如基本数据类型和表达式16第16页,本讲稿共38页运算符与表达式运算符与表达式l逻辑运算符与逻辑表达式:逻辑运算符与逻辑表达式:p30例如、例如、p31表表2-3l条件运算符与条件表达式:表表达式条件运算符与条件表达式:表表达式1?表达式表达式2:表达式:表达式3lsizeof运算符:用于计算某种类型的对运算符:用于计算某种类型的对象在内存中所占的字节数象在内存中所占的字
11、节数基本数据类型和表达式17第17页,本讲稿共38页运算符与表达式运算符与表达式l位运算:仅整数有效。参见位运算:仅整数有效。参见p32-34l运算符优先级与结合性:表运算符优先级与结合性:表2-4l混合运算时数据类型的转换:混合运算时数据类型的转换:1)隐含转)隐含转换,换,p35例如;例如;2)显示转换,)显示转换,p36例如例如基本数据类型和表达式18第18页,本讲稿共38页语句语句l程序的执行流程是由语句来控制的,执程序的执行流程是由语句来控制的,执行语句便会产生相应的效果。行语句便会产生相应的效果。lC+语言没有赋值语句也没有函数调用语言没有赋值语句也没有函数调用语句,赋值语句和函数
12、调用语句功能是语句,赋值语句和函数调用语句功能是通过表达式来实现的。通过表达式来实现的。基本数据类型和表达式19第19页,本讲稿共38页I/O流流l在在C+中,将数据从一个对象到另一个中,将数据从一个对象到另一个对象的流动抽象为对象的流动抽象为“流流”。lcin用来处理标准输入,即键盘输入;用来处理标准输入,即键盘输入;cout用来处理标准输出,即屏幕输出。用来处理标准输出,即屏幕输出。数据的输入与输出20第20页,本讲稿共38页预定义的插入符和提取符预定义的插入符和提取符l在在C+中,中,是预定义的提取符,作用在流对象是预定义的提取符,作用在流对象cin上便可实现最一般的键盘输入。例如,上便
13、可实现最一般的键盘输入。例如,int a,b;cinab;数据的输入与输出21第21页,本讲稿共38页简单的格式控制简单的格式控制l即,控制输入输出格式,例如即,控制输入输出格式,例如setw是设是设置域宽,置域宽,setsprecision是设置浮点数的是设置浮点数的小数位数小数位数lI/O格式控制,需要在源程序开头包含格式控制,需要在源程序开头包含iomainp头文件头文件l常用的常用的I/O流类库操纵符参见表流类库操纵符参见表2-6,p38数据的输入与输出22第22页,本讲稿共38页用用if语句实现选择结构语句实现选择结构l格式:格式:if(表达式表达式)语句语句1 else 语句语句2
14、;参见图参见图2-5,例,例2-2,p40算法的基本控制结构算法的基本控制结构有算法的基本控制结构有3 3种:顺序结构、选择结种:顺序结构、选择结构和循环结构构和循环结构23第23页,本讲稿共38页多重选择结构多重选择结构l嵌套的嵌套的if语句:语句:if(表达式表达式1)if(表达式表达式2)语句语句1 else 语句语句2 else if(表达式表达式3)语句语句3 else 语句语句4;参见例参见例2-3算法的基本控制结构24第24页,本讲稿共38页多重选择结构多重选择结构算法的基本控制结构Ifelse ifIfelse if语句:语句:if(if(表达式表达式1)1)语句语句1 1el
15、se if(else if(表达式表达式2)2)语句语句2 2else if(else if(表达式表达式3)3)语句语句3 3 else else 语句语句 n n25第25页,本讲稿共38页多重选择结构多重选择结构算法的基本控制结构lswitchswitch语句语句switch (表达式)case 常量表达式 1:语句1 case 常量表达式 2:语句2 case 常量表达式 n:语句n default:语句n+1 26第26页,本讲稿共38页多重选择结构多重选择结构算法的基本控制结构l使用switch语句应注意下列问题:lcase分支可包含多个语句,且不用。l表达式、判断值都是int型或
16、char型。l若干分支执行内容相同可共用一组语句。l例2-4,p4327第27页,本讲稿共38页循环结构循环结构lwhile语句:语句:while(表达式表达式)语句语句;参见图参见图2-7,p44;例;例2-5,p45ldo while语句:语句:do 语句语句 while(表达式表达式);参见例;参见例2-6,p45算法的基本控制结构28第28页,本讲稿共38页循环结构循环结构lfor语句:语句:for(初始语句初始语句;表达式表达式1;表达表达式式2)语句语句;参见图参见图2-9l关于关于for语句的几点说明:参见语句的几点说明:参见p47-48算法的基本控制结构29第29页,本讲稿共3
17、8页循环结构与选择结构的嵌套循环结构与选择结构的嵌套l选择结构的嵌套:即选择结构的嵌套:即if语句的嵌套或语句的嵌套或switch语句的嵌套语句的嵌套l循环结构的嵌套:一个循环体内又可以循环结构的嵌套:一个循环体内又可以包含另一个完整的循环结构,例如包含另一个完整的循环结构,例如p50算法的基本控制结构30第30页,本讲稿共38页循环结构与选择结构的嵌套循环结构与选择结构的嵌套l循环结构与选择结构相互嵌套:选择结循环结构与选择结构相互嵌套:选择结构的任意一个分支中可以嵌套一个完整构的任意一个分支中可以嵌套一个完整的循环结构。例如的循环结构。例如p51l例例2-10,p51算法的基本控制结构31
18、第31页,本讲稿共38页其他控制语句其他控制语句lbreak:出现在:出现在switch语句或循环体中时,使程序从语句或循环体中时,使程序从循环体和循环体和switch语句内跳出,继续执行逻辑上的语句内跳出,继续执行逻辑上的下一条语句。下一条语句。lcontinue:可以出现在循环体中,其作用是结束本:可以出现在循环体中,其作用是结束本次循环,接着开始判断决定是否继续执行下一次循环次循环,接着开始判断决定是否继续执行下一次循环算法的基本控制结构32第32页,本讲稿共38页其他控制语句其他控制语句lgoto:格式为:格式为goto 语句标号语句标号l其中语句标号是用来标识语句的标识符,其中语句标
19、号是用来标识语句的标识符,放在语句的最前面,并用冒号与语句分放在语句的最前面,并用冒号与语句分开开算法的基本控制结构33第33页,本讲稿共38页typedef声明声明ltypedef用于将一个标识符声明称某个数用于将一个标识符声明称某个数据类型的别名,然后将这个标识符当作据类型的别名,然后将这个标识符当作数据类型使用。格式:数据类型使用。格式:typedef 已有类已有类型名型名 新类型名表新类型名表;l例如例如p53自定义数据类型34第34页,本讲稿共38页枚举类型枚举类型enumlenum 枚举类型名枚举类型名 变量值列表变量值列表;例如:例如:enum Weekday SUN,MON,T
20、UR,WED,THU,FRI,SAT;自定义数据类型枚举类型应用说明:枚举类型应用说明:枚举类型应用说明:枚举类型应用说明:对枚举元素按常量处理,不能对它们赋值对枚举元素按常量处理,不能对它们赋值枚举元素具有默认值,它们依次为枚举元素具有默认值,它们依次为0,1,20,1,2,也可以在声明时另行定义枚举元素的值。也可以在声明时另行定义枚举元素的值。枚举值可以进行关系运算枚举值可以进行关系运算整数值不能直接赋值给枚举变量,如需将整整数值不能直接赋值给枚举变量,如需将整数赋值给枚举变量,应进行强制类型转换数赋值给枚举变量,应进行强制类型转换35第35页,本讲稿共38页变量的实现机制变量的实现机制l
21、C+的目标代码是靠地址来区别不同的的目标代码是靠地址来区别不同的变量变量l参见参见p56,例如,例如深度探索36第36页,本讲稿共38页变量的实现机制变量的实现机制l每种类型的全部特征都蕴涵在它所执行每种类型的全部特征都蕴涵在它所执行的操作中。的操作中。CPU所执行的指令并不对操所执行的指令并不对操作数的类型加以区分,对各个操作数都作数的类型加以区分,对各个操作数都执行相同的操作。编译器需要根据变量执行相同的操作。编译器需要根据变量的数据类型选择适当的指令。的数据类型选择适当的指令。深度探索37第37页,本讲稿共38页C+表达式执行原理表达式执行原理lCPU的大部分读写操作是通过寄存器进的大部分读写操作是通过寄存器进行的。行的。lP59,例子,例子深度探索38第38页,本讲稿共38页