(精品)第02章基本C++语言.ppt
《(精品)第02章基本C++语言.ppt》由会员分享,可在线阅读,更多相关《(精品)第02章基本C++语言.ppt(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2章章基本基本C+语言语言 2.1 C+程序结构程序结构 2.2 数据类型和基本输入输出数据类型和基本输入输出 2.3 运算符和表达式运算符和表达式 2.4 基本语句基本语句 作业作业12.5 函数和预处理函数和预处理 2.6 构造类型构造类型 2.7 指针和引用指针和引用 作业作业22.1C+程序结构程序结构 2.1.1几个几个C+程序程序 例例Ex_Simple2Ex_Simple2 在屏幕上输出一个由星号形成的三角形。/输出星号的三角形阵列#include void DoDraw(int num);/声明一个全局函数void main()int num=5;/定义并初始化变量DoDr
2、aw(num);/函数的调用void DoDraw(int num)/函数的定义for(int i=0;inum;i+)/循环语句for(int j=0;j=i;j+)cout*;coutn;2.1C+程序结构程序结构 例例Ex_Simple3Ex_Simple3 用类的概念重写例Ex_Draw。/输出星号的三角形阵列#include class CDrawArray/定义一个类public:void DoDraw(int num);/声明类的公有成员函数;void CDrawArray:DoDraw(int num)/成员函数的实现for(int i=0;inum;i+)for(int j=
3、0;j=i;j+)cout*;coutn;void main()int num=5;CDrawArray myDraw;/定义类的一个对象myDraw.DoDraw(num);/调用此对象的成员函数2.1C+程序结构程序结构2.1.2C+程序的基本组成程序的基本组成 C+程序往往由预处理命令、语句、函数、变量和对象、输入与输出以及注释等几个基本部分组成的。(1)(1)预处理命令在程序的一开始出现含有以“#”开头的命令,它们是预处理命令。三类预处理命令:宏定义命令、文件包含命令和条件编译命令。(2)(2)语句可以是用来判断的条件语句,可以是用来反复运行的循环语句等。(3)(3)函数一个程序由若干
4、个函数组成。有的是系统中所提供的库函数,有的是根据自己需要自己编制设计的函数。程序中必须有一个且只能有一个主函数main。(4)(4)变量和对象变量的类型有整型(int)、字符型(char)以及浮点型(float)等。对象通常是指“类”的实例(具有该“类”类型的变量),如myDraw是类CDrawArray的对象。(5)(5)输入与输出使用输入与输出可以要求键入一些数值或把计算的结果显示在屏幕上。(6)(6)注释程序的目的不仅在于实现某种功能、解决某个问题,而且还在于数据结构和算法的交流。注释能提高程序的可读性,帮助用户对程序的理解。2.1C+程序结构程序结构2.1.3C+程序的书写风格程序的
5、书写风格 标识符命名标识符命名用来标识变量名、函数名、数组名、类名、对象名、类型名、文件名等的有效字符序列。标识符命名的好坏也会影响程序的可读性,命名时注意:(1)(1)合法性标识符由大小写字母、数字字符(09)和下划线组成,第一个字符必须为字母或下划线。任何标识符中都不能有空格、标点符号及其他字符。注注意意,标识符的大小写是有区别的。用户定义的标识符不能和系统的关键字同名。(2)(2)有效性标识符的长度(组成标识符的字符个数)是任意的,最好不超过32个,因为有的编译系统只能识别前32个字符,也就是说前32个字符相同的两个不同标识符被有的系统认为是同一个标识符。(3)(3)易读性在定义标识符时
6、,若能做到“见名知意”就可以达到易读性的目的。2.1C+程序结构程序结构缩进和注释缩进和注释缩进是指程序在书写时不要将程序的每一行都由第一列开始,在适当的地方加进一些空行或空格。它同注释一样,也是为了提高程序的可读性。注释要注意的是:(1)(1)注释应在编程的过程中同时进行,不要指望程序开发完成后再补写注释。那样只会多花好几倍的时间,更为严重的是,时间长了以后甚至会读不懂自己写的程序。(2)(2)必要的注释内容应包含:源程序的总体注释(文件名、作用、创建时间、版本、作者及引用的手册、运行环境等)、函数注释(目的、算法、使用的参数和返回值的含义、对环境的一些假设等)及其他的少量注释。千万不要陈述
7、那些一目了然的内容,否则会使注释的效果适得其反。2.2数据类型和基本输入输出数据类型和基本输入输出 2.2.1基本数据类型基本数据类型使用基本数据类型时需要注意:(1)(1)无符号和有符号的区别在于数值最高位的含义。对signed类型,最高位是符号位,其余各位表示数值大小;unsigned类型的各个位都用来表示数值大小;相同基本数据类型的signed和unsigned的数值范围是不同。(2)(2)char、short、int和long可统称为整型。缺省时,char、short、int和long本身是有符号(signed)的。2.2数据类型和基本输入输出数据类型和基本输入输出2.2.2常量常量
8、整型常量整型常量(1)(1)十进制整型常量:即十进制整数,如34、128等。(2)(2)八进制整型常量:以0开头的数,由0至7的数字组成。(3)(3)十六进制整型常量:以0 x或0X开头的数,由0至9、A至F或a至f组成。需要注意的是:整型常量中的长整型(long)要以L或小写字母l作为结尾。整型常量中的无符号型(unsigned)要以U或u作为结尾。浮点型常量浮点型常量(1)(1)十进制数形式:由整数部分和小数部分组成。(2)(2)指数形式:采用科学表示法,能表示出很大或很小的浮点数。若浮点型常量是以F(或f)结尾的,则表示单精度类型(float),以L(或小写字母l)结尾的,表示长双精度类
9、型(longdouble)。若一个浮点型常量没有任何说明,表示双精度类型(double)。2.2数据类型和基本输入输出数据类型和基本输入输出字符常量字符常量字符常量是用单引号括起来的一个字符。2.2数据类型和基本输入输出数据类型和基本输入输出 例例Ex_Ex_DrawBoxDrawBox 用转义序列符绘制矩形框。#include void DrawBox(int nWidth,int nHeight);void main()DrawBox(20,6);void DrawBox(int nWidth,int nHeight)int i;/绘制矩形框的顶边cout311;/字符的扩展ASCII是3
10、11for(i=1;inWidth;i+)cout315;/字符的扩展ASCII是315cout273n;/字符的扩展ASCII是273/绘制矩形框的两边for(i=1;inHeight;i+)cout272;/字符的扩展ASCII是272for(int j=1;jnWidth;j+)cout;cout272n;cout310;/字符的扩展ASCII是310for(i=1;inWidth;i+)cout315;cout274n;/字符的扩展ASCII是2742.2数据类型和基本输入输出数据类型和基本输入输出字符串常量字符串常量字符串常量是一对双引号括起来的字符序列。可以包含空格、转义序列符或其
11、他字符。由于双引号是字符串的分界符,因此如果需要在字符串中出现双引号则必须用“”表示。例如:“Please press”F1”to help!”这个字符串被解释为:Please press“F1”to help!字符串常量必须在同一行书写,若一行写不下,则需要用来连接,不要将字符常量和字符串常量混淆不清,它们主要的区别如下:(1)(1)字符常量用单引号括起来,占一个字节;字符串常量是用双引号括起来,至少占用两个字节。例如a是字符常量,占有的一个字节用来存放字符a的ASCII码值,而“a”是字符串常量,它的长度不是1而是2,除了字符a之外,它的末尾还有个0字符。每个字符串的末尾都有一个这样的字符
12、。(2)(2)字符常量实际上是整型常量的特殊形式,它可以参与常用的算术运算;而字符串常量则不能。例如:int b=a+3;/结果b为100,这是因为将a的ASCII码值97参与运算2.2数据类型和基本输入输出数据类型和基本输入输出符号常量符号常量 例例Ex_PI1Ex_PI1 用#define定义符号常量。#include#define PI 3.14159void main()double r=100.0,area;area=PI*r*r;cout圆的面积是:area n;例例Ex_PI2 Ex_PI2 用const定义的变量代替符号常量。#include const double PI=3
13、.14159;void main()double r=100.0,area;area=PI*r*r;cout圆的面积是:area n;2.2数据类型和基本输入输出数据类型和基本输入输出2.2.3变量变量 变量的定义变量的定义定义变量是用下面的格式语句进行定义的:;需要说明的是:(1)(1)在同一个程序块中,不能有两个相同的变量名。(2)(2)没有字符串变量类型,字符串是用字符类型的数组或指针来定义的。(3)(3)与其他语言相比,C+变量的定义比较自由。变量的初始化变量的初始化程序中常需要对一些变量预先设置初值,这一过程称为初始化。可以在定义变量时同时使变量初始化,也可以在多个变量的定义语句中单
14、独对某个变量初始化。需要注意的是,一个未初始化的变量不是没有数值,而是取决于变量在系统中的存储形式,它可能是系统的缺省值或无效值。2.2数据类型和基本输入输出数据类型和基本输入输出2.2.4基本输入输出基本输入输出 输出流输出流(cout)通过cout可以输出一个整数、实数、字符及字符串,cout中的插入符“”可以连续写多个,每个后面可以跟一个要输出的常量、变量、转义序列符、对象以及表达式等。为了更好地调整输出格式,有时还可以使用下面的输出函数。(1)(1)width()函数:width()函数有两种格式:int width();int width(int);(2)(2)precision()
15、函数:precision()也有两种格式:int precision();int precision(int);(3)(3)fill()函数:fill()函数也有两种格式:char fill();char fill(char);2.2数据类型和基本输入输出数据类型和基本输入输出 例例Ex_Ex_CoutFrmCoutFrm cout的格式输出。#include void main()intnNum=1234;doublefNum=12.3456789;cout1234567890endl;cout.width(10);coutnNumn;cout.width(10);coutfNumendl;
16、coutcout.precision(4)endl;coutfNumendl;cout.fill(#);cout.width(10);coutfNum .其中,提取符“”可以连续写多个,每个后面跟一个表达式,该表达式通常是获得输入值的变量或对象。格式算子格式算子oct、dec和和hex能分别将输入或输出的数值转换成八进制、十进制及十六进制,例如:例例Ex_AlgorismEx_Algorism 格式算子的使用。#include void main()int nNum;couthexnNum;coutOcttoctnNumendl;coutDectdecnNumendl;coutHexthexn
17、Numendl;程序执行时,结果如下:Please input a Hex integer:7bOct173Dec123Hex7b2.3运算符和表达式运算符和表达式 2.3.1算术运算符算术运算符 算术运算符如下所示:+(正号运算符,如+4,+1.23等)-(负号运算符,如-4,-1.23等)*(乘法运算符,如6*8,1.4*3.56等)/(除法运算符,如6/8,1.4/3.56等)%(模运算符或求余运算符,如40%11等)+(加法运算符,如6+8,1.4+3.56等)-(减法运算符,如6-8,1.4-3.56等)注意:注意:(1)除法运算两个整数相除,结果为整数,如7/5的结果为1,它是将小
18、数部分去掉,而不是四舍五入;若除数和被除数中有一个是浮点数,则进行浮点数除法,结果是浮点型。如7/5.0、7.0/5、7.0/5.0的结果都是1.4。(2)求余运算 求余运算要求参与运算的两个操作数都是整型,结果是两个数相除的余数。例如40%5的结果是0,40%11的结果是7。要理解负值的求余运算,例如40%-11结果是7,-40%11结果是-7,-40%-11结果也是-7。2.3运算符和表达式运算符和表达式(3)(3)优先级和结合性 将表达式的求值中多种运算之间的先后关系(即运算符之间的优先关系)用运算符的优先级表示,优先级的数值越小优先级越高。在算术运算符中,单目运算符的优先级最高,其次是
19、乘、除和求余,最后是加减。优先级相同的运算符,则按它们的结合性进行处理。运算符的结合性是指运算符和操作数的结合方式,有“从左至右”和“从右至左”。“从左至右的结合”指运算符左边的操作数先与运算符相结合,再与运算符右边的操作数进行运算;自右至左的结合次序是将运算符右边的操作数先与运算符相结合。在算术运算符中,除单目运算符外,其余运算符的结合性都是从左至右的。(4)(4)关于书写格式 在使用运算符进行数值运算时,若书写时没有在双目运算符两边加上空格,则有时编译系统会做出与自己想象中不同的理解。书写时,有时有意识地加上一些括号。这样不仅增强程序的可读性,而且,尤其当对优先关系犹豫时,加上括号是保证正
20、确结果的最好方法。(5)(5)溢出处理某数除以0或当其它浮点溢出时,编译系统将报告错误并终止程序运行。但对整数溢出,系统却不认为是一个错误。2.3运算符和表达式运算符和表达式2.3.2赋值运算符赋值运算符 复合赋值复合赋值10种复合赋值运算符:+=,-=,*=,/=,%=,=,|=,=,=注意:注意:(1)(1)在复合赋值运算符之间不能有空格,例如+=不能写成+=。(2)(2)所有运算符高于逗号运算符,复合赋值运算符的结合性是从右至左的。多重赋值多重赋值指在一个赋值表达式中出现两个或更多的赋值符(“=”),例如:nNum1=nNum2=nNum3=100;赋值符的结合性是从右至左,上述赋值的过
21、程:首先对nNum3=100求值,将100赋值给nNum3,同时该赋值表达式取得值100;然后将该值赋给nNum2,该赋值表达式也取得值100;最后将100赋给nNum1。2.3运算符和表达式运算符和表达式2.3.3数据类型转换数据类型转换自动转换自动转换将数据类型从低到高进行转换,例如:10+a+2*1.25-5.0/4L运算:(1)(1)2*1.25的运算,将2和1.25都转换成double型,结果为double型的2.5。(2)(2)长整型4L和5.0转换成double型,5.0/4L结果为double型,值为1.25。(3)(3)进行10+a 的运算,先将a转换成整数97,运算结果为1
22、07。(4)(4)整数107和2.5相加,先将整数107转换成double型,值为109.5。(5)(5)进行109.5-1.25的运算,结果为double型的108.25。强制转换强制转换 强制类型有下列两种格式:()、()。整型(int)无符号整型(unsigned)长整型(long)无符号长整型(unsignedlong)双精度浮点型(double)短整型,字符型(short,char)单精度浮点型(float)图2.1类型转换的顺序2.3运算符和表达式运算符和表达式2.3.4关系运算符关系运算符 是比较两个操作数是否符合给定的条件。若符合条件,则关系表达式的值为“真”,否则为“假”。在
23、编译系统中,往往将“真”表示为“true”或1,将“假”表示为“false”或0。而任何不为0的数被认为是“真”,0被认为是“假”。由于关系运算需要两个操作数,所以关系运算符都是双目运算符。提供了6种关系运算符:(小于),(大于),=(大于等于),=(相等于),!=(不等于)其中,前4种的优先级相同且高于后面的两种。例如:a=b c等效于a=(b c)但关系运算符的优先级低于算术运算符(其他可参见表2.6)。例如:a=bc等效于a=(bc)2.3运算符和表达式运算符和表达式2.3.5逻辑运算符逻辑运算符 将多个关系表达式或逻辑量组成一个逻辑表达式。提供了3种逻辑运算符:!逻辑非(单目):指将“
24、真”变“假”,“假”变“真”。&逻辑与(双目):指两个操作数都是“真”时,结果为“真”,否则为“假”。|逻辑或(双目):指两个操作数中有一个是“真”时,结果为“真”,只有它们都为“假”时,结果才为“假”。“逻辑非”、“逻辑与”和“逻辑或”的优先级依次从高到低,且“逻辑非”的优先级还比算术运算符和关系运算符高,而“逻辑与”和“逻辑或”的优先级却比关系运算符要低。例如:0|2 4-!0表达式的运算过程是这样的:(1)(1)进行“!0”的运算,结果为1(“真”)。(2)(2)进行“8 4-1”的运算,即“8 3”,结果为0(“假”)。(3)(3)进行“0|0”的运算,结果为0(“假”)。表达式的值为
25、0。2.3运算符和表达式运算符和表达式2.3.6 位运算符位运算符 是对操作数按其在计算机内表示的二制数逐位地进行逻辑运算或移位运算,参与运算的操作数只能是整型常量或变量。提供了六种位运算符:(按位求反,单目运算符):将一个二进制数的每一位求反,即0变成1,1变成0。(右移,双目运算符):将左操作数的二进制值向右移动指定的位数,右移后,移出的低位舍弃。无符号数高位补0;有符号数高位补符号位。&(按位与,双目运算符):将两个操作数对应的二进制位进行逻辑与操作。(按位异或,双目运算符):将两个操作数对应的二进制位进行异或操作。|(按位或,双目运算符):将两个操作数对应的二进制位进行逻辑或操作。说明
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 02 基本 C+ 语言
限制150内