《第2章简单程序设计精选PPT.ppt》由会员分享,可在线阅读,更多相关《第2章简单程序设计精选PPT.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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博士创建的。博士创建的。
2、C+语言概述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 W
3、elcome 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标识符:是程序员定义的单词,它命名标识符:是程序员定义的单词,它命名程序正文中的一些实体,例如函数名、程序正文中的一些实体,例如函数名、变量名、类名等变量
4、名、类名等C+语言概述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、float、do
6、uble等,参见表等,参见表2-1,p24lISO C+标准没有规定每种数据类型的标准没有规定每种数据类型的字节数和取值范围,只规定了字节大小字节数和取值范围,只规定了字节大小char short int long基本数据类型和表达式10第10页,此课件共38页哦常量常量l常量是在程序运行的整个过程中其值始常量是在程序运行的整个过程中其值始终不变的量。终不变的量。l整型常量:十进制、八进制(整型常量:十进制、八进制(0开头)、开头)、十六进制(十六进制(0 x开头)开头)l实型常量:一般形式和指数形式(实型常量:一般形式和指数形式(E),),例例,3.4E+2基本数据类型和表达式11第11页,
7、此课件共38页哦常量常量l字符常量:用单引号括起来的字符,分字符常量:用单引号括起来的字符,分为可见字符和转义字符,表为可见字符和转义字符,表2-2,p26l字符串常量:用双引号括起来的字符序字符串常量:用双引号括起来的字符序列。例列。例2-1,p27l布尔常量:只有布尔常量:只有false和和true基本数据类型和表达式12第12页,此课件共38页哦变量变量l在程序的执行过程中其值可以变化的量在程序的执行过程中其值可以变化的量称为变量称为变量l变量在使用前需要先声明其类型和名称,变量在使用前需要先声明其类型和名称,p27例如例如l变量的存储类型有变量的存储类型有auto、register、e
8、xtern和和static四种四种基本数据类型和表达式变量的存储类型:变量的存储类型:变量的存储类型:变量的存储类型:autoauto:采用堆栈方式分配内存空间:采用堆栈方式分配内存空间registerregister:存放在通用寄存器中:存放在通用寄存器中externextern:在所有函数和程序段都可以引用:在所有函数和程序段都可以引用staticstatic:在内存中是以固定地址存放的,在整个:在内存中是以固定地址存放的,在整个程序运行期间都有效程序运行期间都有效13第13页,此课件共38页哦符号常量符号常量l即,自定义常量即,自定义常量l例如例如const float PI=3.141
9、5;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
14、 语句语句2;参见图参见图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)语
15、句语句1 1else 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使用使用switchswitch语句应注意下列问题:语句应注意下列问题:lcasec
16、ase分支可包含多个语句,且不用分支可包含多个语句,且不用 。l表达式、判断值都是表达式、判断值都是intint型或型或charchar型。型。l若干分支执行内容相同可共用一组语句。若干分支执行内容相同可共用一组语句。l例例2-42-4,p43p4327第27页,此课件共38页哦循环结构循环结构lwhile语句:语句:while(表达式表达式)语句语句;参见图参见图2-7,p44;例;例2-5,p45ldo while语句:语句:do 语句语句 while(表达式表达式);参见例;参见例2-6,p45算法的基本控制结构28第28页,此课件共38页哦循环结构循环结构lfor语句:语句:for(初
17、始语句初始语句;表达式表达式1;表达表达式式2)语句语句;参见图参见图2-9l关于关于for语句的几点说明:参见语句的几点说明:参见p47-48算法的基本控制结构29第29页,此课件共38页哦循环结构与选择结构的嵌套循环结构与选择结构的嵌套l选择结构的嵌套:即选择结构的嵌套:即if语句的嵌套或语句的嵌套或switch语句的嵌套语句的嵌套l循环结构的嵌套:一个循环体内又可以循环结构的嵌套:一个循环体内又可以包含另一个完整的循环结构,例如包含另一个完整的循环结构,例如p50算法的基本控制结构30第30页,此课件共38页哦循环结构与选择结构的嵌套循环结构与选择结构的嵌套l循环结构与选择结构相互嵌套:
18、选择结循环结构与选择结构相互嵌套:选择结构的任意一个分支中可以嵌套一个完整构的任意一个分支中可以嵌套一个完整的循环结构。例如的循环结构。例如p51l例例2-10,p51算法的基本控制结构31第31页,此课件共38页哦其他控制语句其他控制语句lbreak:出现在:出现在switch语句或循环体中时,使程语句或循环体中时,使程序从循环体和序从循环体和switch语句内跳出,继续执行逻辑上语句内跳出,继续执行逻辑上的下一条语句。的下一条语句。lcontinue:可以出现在循环体中,其作用是结束本:可以出现在循环体中,其作用是结束本次循环,接着开始判断决定是否继续执行下一次循次循环,接着开始判断决定是
19、否继续执行下一次循环环算法的基本控制结构32第32页,此课件共38页哦其他控制语句其他控制语句lgoto:格式为:格式为goto 语句标号语句标号l其中语句标号是用来标识语句的标识符,其中语句标号是用来标识语句的标识符,放在语句的最前面,并用冒号与语句分放在语句的最前面,并用冒号与语句分开开算法的基本控制结构33第33页,此课件共38页哦typedef声明声明ltypedef用于将一个标识符声明称某个数用于将一个标识符声明称某个数据类型的别名,然后将这个标识符当作据类型的别名,然后将这个标识符当作数据类型使用。格式:数据类型使用。格式:typedef 已有类已有类型名型名 新类型名表新类型名表
20、;l例如例如p53自定义数据类型34第34页,此课件共38页哦枚举类型枚举类型enumlenum 枚举类型名枚举类型名 变量值列表变量值列表;例如:例如:enum Weekday SUN,MON,TUR,WED,THU,FRI,SAT;自定义数据类型枚举类型应用说明:枚举类型应用说明:对枚举元素按常量处理,不能对它们赋值对枚举元素按常量处理,不能对它们赋值枚举元素具有默认值,它们依次为枚举元素具有默认值,它们依次为0,1,20,1,2,也可以在声明时另行定义枚举元素的值。也可以在声明时另行定义枚举元素的值。枚举值可以进行关系运算枚举值可以进行关系运算整数值不能直接赋值给枚举变量,如需将整数整数
21、值不能直接赋值给枚举变量,如需将整数赋值给枚举变量,应进行强制类型转换赋值给枚举变量,应进行强制类型转换35第35页,此课件共38页哦变量的实现机制变量的实现机制lC+的目标代码是靠地址来区别不同的的目标代码是靠地址来区别不同的变量变量l参见参见p56,例如,例如深度探索36第36页,此课件共38页哦变量的实现机制变量的实现机制l每种类型的全部特征都蕴涵在它所执行每种类型的全部特征都蕴涵在它所执行的操作中。的操作中。CPU所执行的指令并不对操所执行的指令并不对操作数的类型加以区分,对各个操作数都作数的类型加以区分,对各个操作数都执行相同的操作。编译器需要根据变量执行相同的操作。编译器需要根据变量的数据类型选择适当的指令。的数据类型选择适当的指令。深度探索37第37页,此课件共38页哦C+表达式执行原理表达式执行原理lCPU的大部分读写操作是通过寄存器进的大部分读写操作是通过寄存器进行的。行的。lP59,例子,例子深度探索38第38页,此课件共38页哦
限制150内