C++程序设计教程.docx





《C++程序设计教程.docx》由会员分享,可在线阅读,更多相关《C++程序设计教程.docx(132页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章C+程序设计初步C+是在C语言的基础之上发展起来的。它既适合于编写面向过程的程序,也适合于编 写面向对象的程序。在C语言推出之前,操作系统等系统软件主要是用汇编语言编写的。由于汇编语言依赖 于计算机硬件,因此程序的可移植性和可读性就较差。但汇编语言也有它的好处,它能对硬 件直接进行操作,速度快,效率高,一般高级语言没有这种功能。于是,1973年,贝尔实 验室的Thompson和Ritchie开发了 C语言,并用它重写了 UNIX的大部分代码。C语言是面向过程的程序设计语言,随着面向对象技术的成熟,贝尔实验室的 Stroustrup又在C的基础上推出了 C+语言,使之可以支持面向对象的程序
2、设计。目前较为流行的C+版本为Visual C+6.0,它既可以支持DOS下的程序设计,也可以 用来开发Windows环境下的应用程序。1.1 C+的基本结构1.1.1 一个简单的C+程序首先,我们来看一个C+例程。例L L 1/* filename:exll1. cpp这是个求两个数和的例程/#i ncludeint main()int x=0, y=0, sum=0; 声明三个整型变量,其中,sum初始化为coutEnter 2 integers separated by space cinxy;sum=x+y;coutThe sum is ”sumendl;return 0;)C+程序具
3、有与c程序相同的结构形式,每个C+程序由注解、编译预处理和程序主体 三部分组成。C+除了支持原先的/* . */”注释外,又提供了一种新的注释方法“/”。注意, “/*. */”是按段注释,/只支持按行注释。iostream. hw是C+的标准输入输出头文件,cin、cout是iostream. hw中定义的 C+标准输入输出设备标识符。C+的程序入口必须从main。开始,称为主函数,其返回类型默认为整型。每个C+语句以“:”作为个语句的结束。C+程序文件名以CPP作为扩展名。C+所有过程都用函数来实现,每个函数都有一个名字,函数体用对花括号括起来。1.1.2 C+的基本数据类型在C+中,任何
4、数据在使用之前都要进行数据类型的定义,然后才能使用。所谓基本数据类型是种程序设计语言预先定义好的数据类型。C+的基本数据类型分 为三大类,即整型、浮点型和无值型。表1. 1 C+所提供的各种基本数据类型及其值的范围类 型说 明二进制位值 域char字符型8-128-127signed char有符号字符型8-128127unsigned char无符号字符型8255int整型16-3276832767signed int有符号整型16-3276832767unsigned int无符号整型1665535short int短整型16-3276832767signed short int有符号短整
5、型16-3276832767unsigned short int无符号短整型1665538long int长整型32-231-(23 -1)signed long int有符号长整型32-2羽(2 -1)unsigned long int无符号长整型32-1)float浮点数327位有效位double双精度型6415位有效位long double长双精度型8019位有效位1.1.3 C+的标识符C+的标识符只能由下边三种字符组成:大小写字母下划线数字9标识符只允许字母或下划线打头,长度不限,但只有前32个字符有效。C+对字母的大 小写是有区别的。通常也不常用下划线打头。例如:DrawCircl
6、e, DrawRectangle、varl23, i v !等都是合法的标识符。标识符主要用来 标识常量、变量以及函数等等。1.2 常量与变量1.2.1 常量常量是指在程序运行过程屮保持不变的量。常用的有字面常量和符号常量。字面常量又称直接常量,C+有如下几种常量:整型常量、实型常量、字符常量、字符 串常量。整型常量如2、100、-1等。实型常量如3. 14159、2.0、1.0等。字符型常量如,A la l0 7、n,、 a,等。带斜杠的为转义字符,表示特殊的含义。如、表示换行,a,表示响铃等,见表1.2。字符串常量也简称字符串,它们是括在双引号内的字符序列。如The area is :、
7、“Beijing、“Hello, World !n”等。符号常量是用标识符表示的常量,用关键字const声明。如:const double Pi=3. 14159;const int MAXINT=32767;例 1. 2. 1/filename:ex2_l. cpp#includevoid main()(const double Pi=3. 1415926, r=2. 0;double area, circum;area=Pi*r*r;cout=% 二+4-=逻辑运算符!、&、II位运算符1&赋值运算符=条件运算符? :逗号运算符*指针运算符*&字长运算符sizeof强类型转换运算符(类型)
8、分量运算符.-下标运算符 口其它如函数调用运算符1.3.1 算术运算符1 .双目算术运算符双目算术运算符有+-*/%。如:a=b+c;d=e%f;应注意、%的优先级比+、-高。2 .自反运算符自反运算符是种简化的特殊运算符,有+= -= *= /= %=,分别称为自反加赋值、 日反减赋值、日反乘赋值、白反除赋值和自反模赋值。如:a+=b;/Z 等同于 a=a+ba-=b;/Z 等同于 a=a-bC+的自反运算符虽然简洁,但阅读起来困难,应少用为好。3 .增量和减量运算符增量和减量运算符属于单目运算符,有+、。如:int i=0;i+;增量和减量运算符有前缀形式和后缀形式。如:int i=0;i
9、+;/ /int j=0;+j;这两种形式的运算结果是样的,但在某些表达式中却有可能不一样。如:int i=5;x=i+; / x的运算结果为5/ /int i=5;x=+i! x的运算结果为6个是先引用后增量,个是先增量后引用。但在实际使用时,一般也应尽量避免这种 写法,以免造成不必要的错误。可以将其拆成两句,如:int i=5;x=i;i+;/ x的运算结果为5应该注意的是,增量和减量运算符的作用对象只能是变量。如5+、(a+b)+都是错误 的,因为作用对象都不是变量。4 .正负号运算符正负号运算符也属于单目运算符,有+和一,如:-a*b,相当于(O-a)*b。正号一般不写, 没有太大意义
10、。1.3.2 关系运算符关系运算符是指对两个操作数之间的大小进行比较。C+中提供的关系运算符有: = c; / a 的值为 关系运算符常用在条件语句中,如:if (ab)else1.3.3 逻辑运算符C+有三个逻辑运算符,它们是:逻辑与&逻辑或| 逻辑非!为单日运算符,其运算方向是自右向左结合的;&和I丨为双目运算符,其运算方向是 自左向右结合的。例1.3写出描述点A(x,y)落在图1.1中阴影部分的C表达式。解:-2x & x2 & -2y & yl1.3.4 条件运算符条件运算符是种在两个表达式的值中选择一个的操作。它的一般形式为:el?e2:e3其操作过程为:若el为真,则此条件表达式的
11、值为e2;若el为假,则表达式取e3的值。 条件运算符是C+中唯一的三元运算符。例如:max=ab?a:b;1.3.5 位运算符位运算是C+的一大特色,使它兼有了低级语言的功能,而其它许多高级语言没有。C+ 中的位运算符有以下两类:按位逻辑运算符:位与(&)、位或(I)、位取反、位异或。)移位运算符:左移()、右移)位运算只能对整型和字符型的数据进行运算,而不能对浮点型的数据进行运算。例如:a=0x67J即进制数 01100111a;求反后a的值为10011000移位运算是将一个操作中的各位都向左或右移动几位,后面的用填补。例如:若 a=10001101,则经过a3的操作后,a的值就变成011
12、01000。应注意到移位运算的以下特 点,左移一位相当于乘2,右移一位相当于除2。1.4 语句及其流程控制1.4.1 语句语句是源语言级的操作指令。C+中语句可分为如下5种: 表达式语句如a=2. O*Pi*r;声明语句如int a=l;空语句如只有一个分号块语句由一对花括号括起来的一段复合语句流程控制语句用以控制程序的执行顺序,常用的有顺序结构、循环结构、选择结构。 下面重点讨论。1.4.2 if .else 选择结构基本结构:if (判断表达式) “真”语句;else“假”语句;例 1. 4. 1/ filename:ex 141. cpp/返回两数较大者的程序#include int m
13、ain()(int x, y;cout Enter 2 integers separated by a space :;cinxy;cout“The max is :;if(xy)coutxendl;elsecoutyendl;return 0;:if . else结构也可以嵌套,请看下面的例子。例L 4.2/ filename:ex 142. cpp/返回三个数中较大个的程序#include int main() int x, y, z;coutyz;couty) if(xz)coutxendl; elsecoutzz)coutyendl;elsecoutzendl;return 0;1.4
14、.3 switch选择结构switch (开关表达式)(case常量1:语句序列;case常量2: 语句序列;default:语句序列:例1.43/ filename:exl43.cpp/Z测试输入的字符是否数字的程序#includeint main()char c;coutuEnter a character:n;cinc;coutIt is a:;switch(c)casecase *r: case casecase2:casecase case case 8:case 9:cout,digiter.,endl;break;default: coutvv”nondigiter.v vend
15、l;break;return 0;)1.4.4 while重复结构while (条件表达式)语句:/ fi1 ename:ex 144. cpp/Z计算1到100的整数和的程序#includeint main()int i=0;int sum=0;while(i+100)sum+=i;coutThe sum is: sumendl;return 0;例L4.5欧几里德算法:求两个非负整数m,n的最大公因子。解:求两个非负整数m,n的最大公因子,可用迭代相除法。我们用u表示被除数,v表 示除数,r表示余数,迭代相除法可以描述为u=m; v=n;当r=u%v不为0时,u=v; v=r;输出v;如m
16、=36, n=21,计算过程为u: 3621156v: 211563r:15630/ filename:ex 145. cpp/Z计算非负整数m和n的最大公约数程序#inc1udeint main()(int m, n, u, v, r;cout“Enter two positive integers:cinmn;u=m; v=n;if(u*v!=0)while(r=u%v)( u=v; v=r;coutThe ged is: vendl;)elsecoutDivided by zero! endl;return 0;例 1. 4. 6 Fibonacci 问题。&=1ax =1% =*+ %
17、求第n项的值。/ f i1ename:f i bonacc i. cpp/ Fibonacci 数列#includeint main()(unsigned int fib,fibl, fib2;unsigned int number,n=0;cout,rEnter a number of Fibonacci terms: cinnumber;coutThe Fibonacci series are:;while(+n=number)if(n3)fib=fibl=fib2=l;else(fib=fibl+fib2;fibl=fib2;fib2=fib;)coutfib,;)coutendl;re
18、turn 0;1.4.5 do . while 重复结构do语句:while(条件表达式);do . while结构的特点是先执行,后判断。例 L4.7/ f ilename:ex 14I. cpp/Z求!到100的和#includeint main()(int i=l;int sum=0;dosum+=i;while(i+100);cout“The sum is: sumendl;return 0;1.4.6 for循环结构for (表达式1I表达式2I表达式3) 语句;例 1.4. 8int main()int i, j;/Z打印表头cout( Ifor(i=l;i=9;i+) couti
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 教程

限制150内