




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 C+语言基础 C+语言是对传统C语言进行面向对象的扩充。使用C+语言可以在Visual C+开发环境中开发出功能强大的应用程序。通过本章的学习,读者可以快速回想起C+的语法知识。2.1 什么是面向对象程序设计对象是面向对象程序设计技术的核心,那么到底什么是对象?世界上的一切事物都是对象,都是客观对象。人类大脑中的认识和概念也是对象。可见对象可以是有形的实体,也可以是无形的认识、知识、事件等。概括地说对象就是一个实体,它具有一个名字标志,并且具有自身的状态和功能。在软件设计和实现中,传统的被人们广泛使用的是面向过程的程序设计。随着计算机技术的发展,面向对象的程序设计思想被越来越多的程序员
2、所接受。面向对象的程序设计是一种新型的程序设计方法。这种程序设计方法的特征是:应用程序对象消息。面向对象程序设计的基本元素是对象,而面向对象程序设计中把对象抽象成类,因此在程序设计中就主要包括类的定义和类的使用两部分。在整个完整的软件中就是通过在对象之间进行消息传递从而联系全部的类。面向对象程序设计的核心就是对象和类。对象就是人们认识世界的基本单元,可以是人,可以是物,也可以是抽象的事件等。当然对象可以有若干小的对象组成,例如某个学生可以看作一个对象,那么学生的生活方面,学习方面都可以看成小的对象。而学生由生活方面和学习方面组成。对象都具有区别于其他对象的静态属性和动态行为。静态属性又称为对象
3、的状态,动态属性又称为对象的功能。类是现实世界中具有共同静态属性和动态属性的对象的抽象,类和对象之间的关系就是抽象和具体之间的关系。类是多个对象进行综合抽象的结果,而对象则是类的实例化。 例如:某个学生张三是一个对象,一个个像张三的学生则可以抽象出一个学生类。张三就是学生类的实例化。 消息是向某对象请求服务的一种表达方式。对象内有方法和数据,外部的用户或对象对该对象提出的服务请求,可以称为向该对象发送消息。面向对象的编程方法具有4个基本特征,下面分别进行介绍。1抽象 抽象就是对某些特定实例抽取其共有的性质后所形成的概念,是抽取现实实例所共有的特征。抽象是对系统的简单描述,强调了系统部分属性,忽
4、略了系统的其他部分。2继承 继承是从一种实际事物联系到另外的事物,是一种联结类的层次模型,允许类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,称为原始类的派生类,而原始类称为新类的基类。继承性使得程序设计的代码复用得到充分解决。3封装 封装是面向对象的特征之一,是对象和类概念的主要特性。封装是将事物的数据抽象的外部接口与内部实现的细节隔离。内部数据不可以被随便修改,从而保证程序的安全性。4多态性多态性是指允许不同类的对象收到相同的消息时产生不同的响应。C+语言支持两种多态性,即编译时的多态性和运行时的多态性。编译时的多态
5、性通过重载来实现,而运行时的多态性则通过虚函数来实现。具体概念和实现方法将在后面进行讲解。面向对象是新型的程序设计方法,其思想比过程化的程序设计更先进。掌握面向对象的程序设计需要透彻理解面向对象的基本概念和特性。C+语言作为面向对象的程序设计语言,学习和运用C+语言已经成为现代程序员的基本要求。注意:C+并不是纯面向对象的程序设计语言,它是一种面向过程程序设计和面向对象程序设计的混合程序设计语言。2.2 单一数据的表示数据类型 数据类型就是一类数据的集合。在计算机中,数据以某种特定的形式存储在计算机中,数据类型决定了数据在计算机中的存储形式。2.2.1 数据的指代常量与变量常量是指在程序运行中
6、,数值不能改变的量。例如13、28、a、2.3等,这些量在整个程序运行期间,其值不发生改变。在C+中,定义常量的语法如下所示。#define 标识符 常数其中,#表示这是一个宏定义命令;define为定义符号常量的关键字;标识符为常量的名称;常数为符号常量具体的数值。常量定义中关键字和标识符,以及标识符和常数之间必须留一个以上的空格。【示例2.1】 定义一个名称为PI的符号常量。 #define PI 3.14 分析:上面定义了一个符号常量PI,其值在程序运行期间保持不变,且为3.14。习惯上,符号常量名用大写形式,但并不是必须使用大写。变量则是在程序运行期间其值可以改变的量。一个变量应该有一
7、个名字,在内存占据一定的空间。在该存储空间中存放变量的值。在程序中可以利用变量的名字对变量进行访问,即得到变量的值。在C+中定义变量的语法形式如下所示。数据类型 标识符; 其中,数据类型表示变量的数据类型是什么;标识符为所定义的变量的名称。变量的数据类型和标识符之间必须留一个以上的空格。【示例2.2】 定义两个变量。int a=8;/定义一个整型变量double a;/定义一个双精度实型变量分析:上面第一行代码定义了一个变量,并且赋初值为8。第二行代码只是定义一个变量。习惯上,变量的标识符使用小写形式。关于数据类型将在下面进行介绍。注意:C+规定标识符只能由字母、数字和下划线三种字符组成,且第
8、一个字符必须为字母或下划线。2.2.2 简单数据类型 C+语言中的简单数据类型是指基本的数据类型,即整型、实型、字符型等。下面介绍其特点和用法。1整型整型是程序设计语言中最常用的数据类型,是用来表达整数的数据类型。整型数据包括整型常量和整型变量。整型常量是整数,例如1、100等,整数可以用十进制、八进制和十六进制表示。八进制整数以数字0开头,后面的为八进制数据。十六进制则以0 x开头,后面的为十六进制数据。整型变量是在程序运行期间数据的值可能发生变化的整型量。整型变量又分为基本类型、短整型和长整型。其关键字以及表示数据的范围如表2.1所示。在C+中整型变量的定义为整型类型 标识符;并且整型类型
9、中的signed可以省略。表2.1 整型的分类类类 型型比比 特特 数数数数 据据 范范 围围signed int163276832767unsigned int16065535signed short int163276832767unsigned short int16065535signed long int32 2 1 4 7 4 8 3 6 4 8 2147483647unsigned long int3204294967295【示例2.3】 定义三个整型变量。 int a=10;/定义整型变量a int i,j;/定义整型变量i和j 说明:可以利用关键字int一次说明多个整型变量。
10、注意此时整型变量之间用逗号做分隔符,最后一个变量的后面加“;”例如int I,j,k;。2实型 实型数据类型同样包括实型常量和实型变量。实型是用来表示实数的数据类型。实数又称为浮点数,可以用十进制小数表示,也可以用指数形式表示。实型常量即是实数,例如3.25、5.98等。实型变量又分为单精度,以关键字float表示;双精度以关键字double表示;长双精度以关键字long double表示。三者的区别如表2.2所示。表2.2 实型的分类 在C+中实型变量的定义为float/(long)double实型变量名; 类类 型型比比 特特 数数有有 效效 数数 字字数数 据据 范范 围围float 3
11、2 63.410383.41038double 64151.7103081.710308long double128181.21049321.2104932【示例2.4】 定义两个实型变量。 float f=0.35/定义单精度实型变量f double ff=6.2545/定义双精度实型变量ff3字符型 字符型是用来表达字符的数据类型。字符常量是用单引号括起来的一个字符。如a、9等。字符型变量用来存放字符常量,且只能存放一个字符常量。字符变量的定义以关键字char说明。在C+中字符型变量的定义为char字符型变量名。【示例2.5】 定义字符型变量。 char c=g;/定义字符型变量c cha
12、r p,w;/定义字符型变量p和w2.2.3 字符串常量字符常量是由单引号括起来的单个字符。C+语言同C语言一样,除了字符常量外,还支持字符串常量。字符串常量是由一对双引号括起来的字符序列。如:HELLO WORLD!, Study boy字符串常量和字符常量的区别是,字符串常量在每一个字符串的最后一个字符后面,加上一个字符串结束标志,从而在程序访问时可以判断字符串的字符序列是否结束。2.2.4 构造类型数组 C+语言中除了基本数据类型外,还提供了构造数据类型,即数组。数组是有序数据的组合,数组中的每一个元素都属于同一数据类型,这和C语言中的数组是完全一致的。数组包括一维数组和多维数组。数组的
13、定义格式和引用方式与在C语言中是一致的。【示例2.6】 定义一个数组。 int a3; 分析:上面的语句定义了一个数组,这就是C+语言中构造类型的基本使用方法。关于数组的使用将在2.3节中进行详细介绍。2.2.5 文件类型 C+语言中提供了文件的数据类型,即C+把文件看做是字符序列,文件由一个一个字符数据顺序组成。根据数据结构的组织形式,可以把文件分为文本文件和二进制文件。在C+中若要对文件进行输入输出,必须首先创建一个流,然后将流和文件相关联。即打开文件,此时才可以进行操作,然后关闭文件。由于文件的使用比较复杂,在后面的章节中将详细介绍C+中文件的基本操作。2.2.6 指针类型 C+语言中的
14、指针和C语言中的指针是完全一样的。但是C+语言中提供了特殊的指针,即void型指针。它表示不确定的类型。void型指针是一种通用型指针,也就是说任何类型的指针都可以赋值给void型的指针变量。【示例2.7】 void型指针的使用。void *p;/定义void型指针变量void p;/错误,不可以定义void型变量int i=3;char c=w;p=&i;p=&c; 上面介绍了在C+语言中常用的数据类型,掌握数据类型的基本概念和使用方法是进行程序设计的前提。读者应掌握上面介绍的全部概念。2.3 多个数据的表示数组 数组作为一种构造数据类型,它的使用和基本类型有很大不同。因此有
15、必要对数组这一数据类型进行介绍。2.3.1 一维数组 数组是有序数据的集合。在C+中一维数组的定义方式和C语言中一维数组的定义方式完全相同,并且使用方式以及使用的注意事项都与C语言中基本一致。1一维数组的定义 一维数组定义的基本形式如下: 类型说明符 数组名称常量表达式; 其中,类型说明符指的是数组元素的类型,其是以基本数据类型,例如整型、浮点型等。数组名称指的是该数组的名字。常量表达式则是数组的大小。【示例2.8】 定义一个10个元素大小的整型数组num。int num10; /定义整型数组在定义了一维数组以后,程序中可以对该数组中的元素进行使用,并且在程序中只能对数组的某一个元素进行使用,
16、不能使用整个数组。数组元素的表示形式为:数组名称下标;【示例2.9】 将示例2.8中定义的整型数组的第3个元素初始化为3。 num2=3;/对数组中的第3个元素赋值 说明:在C+中数组元素的下标从0开始,因此第3个元素也就是下标为2的元素。2数组的初始化在定义了数组以后,可以利用上面的形式一个个对数组中的元素进行初始化工作。同时也可以使用下面几种方法对数组进行初始化。(1)定义数组时对数组元素赋初值。其基本形式为:类型说明符 数组名称常量表达式=常量1,常量2,需要注意的是常量必须与类型说明符一致,或者可以进行转换。【示例2.10】 定义一个字符数组,并且进行初始化。char c3=a,b,c
17、;(2)只对数组中的部分进行赋值,当提供的常量个数与常量表达式的数值不相等时,只对数组前面的部分进行赋值。(3)定义数组元素为相等的值,此时可以使用下面的形式。类型说明符 数组名常量表达式=常量;【示例2.11】 定义一个10个元素大小的整型数组,初始化为0。 int num10=0;3一维数组的使用 定义了一维数组以后,就相当于定义了多个数组类型的变量。在应用中可以像使用变量一样使用数组元素。例如保存数据、进行计算等。【示例2.12】 定义一个字符数组,将三个字符变量分别赋值给数组。代码如下:char c1=a;char c2=s;char c3=d;/定义字符变量char c3;/定义字符
18、数组c0=c1;c1=c2;c2=c3;本小节介绍了在C+中一维数组的定义和使用方式。在C+中一维数组的定义和使用与C语言的定义和使用基本相同。2.3.2 二维数组 在C+中二维数组与C语言中的二维数组的定义是一样的。一维数组是一行有序数据的结合,而二维数组则是一个有序数据的一个矩阵。1二维数组的定义 在C+中二维数组的定义形式与一维数组的定义基本相同,其基本形式如下: 类型说明符 数组名称常量表达式1 常量表达式2;【示例2.13】 定义一个整型的二维数组。 int num23; 分析:上面定义了一个2*3的整型数组。实际上二维数组的数据存储也是在内存中按顺序排列的。在定义了二维数组以后,可
19、以对数组元素进行引用。与一维数组一样,二维数组元素的下标从0开始。【示例2.14】 将二维整型数组的第一行、第三列的元素赋值给整型变量i。 int num23;/定义数组 int i=num02;2二维数组的初始化 二维数组的初始化可以与一维数组一样对每个数组元素进行访问,并赋值。除此之外还可以使用下面几种形式对二维数组进行初始化。 (1)分行初始化:分别对二维数组的每行的每个元素进行初始化。【示例2.15】 对二维数组进行初始化。 char c23=a,b,c,d,e,f 分析:上面就是定义一个二维数组,并且进行初始化。 (2)全部初始化:一次性对数组的每个元素进行初始化。【示例2.16】
20、初始化二维数组char c23;。 char c23=a,b,c,d,e,f; 分析:上面的初始化与第一种方法基本一样。它首先初始化第一行,然后初始化第二行。这种方式初始化由于没有界面,容易遗漏。3二维数组的使用 在定义了二维数组以后,在程序中就可以使用该数组。二维数组的使用与一维数组的使用基本相同。即可以利用下标的形式定义到一个具体的数组元素,然后进行访问。【示例2.17】 将一个2*3的整型数组的00位置的元素与12位置的元素进行数据交换。int num23=1,2,3,4,5,6; /定义数组并初始化int i;i=num00;num00=num12;num12=i;上面介绍了在C+中二
21、维数组的定义、初始化和使用的基本方法。读者应掌握二维数组这种构造数据类型。2.3.3 字符型数组 前面已经介绍了在定义一维或者二维数组时,需要指定其类型说明符。类型说明符是基本数据类型,例如整型、浮点型、字符型等。但是字符数组与其他数组有时不同,下面对字符数组的特殊用法进行介绍。1字符数组的定义 字符数组与一般数组的定义是一样的。同时数组的初始化与一般的数组也没什么两样。对数组元素的访问也与普通数组一致。【示例2.18】 定义一个二维字符数组,用来存放3行字符串常量。并且将第2行和第3行对应的元素进行交换。char c33=o,n,e,t,w,o,t,h,r;/定义二维字符数组并初始化char
22、 cc;for(int i=0;ic0c1c2c3;在键盘上输入C h i n a ,此时在c5中保存的是一个乱码,而不是0。因此如果此时输出,则会输出一个乱码。为了消除这种现象,可以在输出时单个输出字符,同时不输出最后元素的字符。 (2)整个字符串一次输入:整个字符串一次输入时,当遇到空格,则默认地作为一个0字符保存在数组中。并且此后输入的字符不再保存。如果还有连续输入的要求则作为下一个输入。【示例2.20】 输入两个字符串,并输出。char c15,c25;cinc1c2;/输入coutc1 c210&b10)/&的使用 a=100;b=100; 分析:上面的代码就是逻辑运
23、算符&的基本使用方法。使用该运算符对常用的逻辑组合判断有很大的作用。2.4.4 关系运算符 关系运算和逻辑运算一样,在程序设计中经常用到。逻辑运算最常用的是判断某种具体值是否属于某类的情况。例如计算1加到100的值,则需要从1加到100,期间需要判断变量是否大于100,从而设计程序。关系判断在程序设计中也是十分重要的运算。【示例2.24】 比较a和b的大小。 if(ab) couta is bigger than bendl; 分析:上面进行的就是大于关系运算,当a大于b时输出语句。2.4.5 位运算符 位运算是在程序设计中不经常使用,但是应用技巧性很强的一类运算。其主要包括“”,“”
24、,“”和“&”。“”是右移运算符,实际上就是变量除2。“”是按位取反运算符,即把变量的二进制取反。“”是把两个变量按位进行异或。“&”是将两个变量按位相与。【示例2.25】 把十进制数据10除2。 int i=10; int b=i1;/除2结果5 分析:所谓的除2运算就是把该数据对应的二进制数据右移一位。例如10的二进制为,对应的右移一位的数据为,即5。2.4.6 逗号运算符 逗号运算符是一类比较特殊的运算符,其是将多个表达式连接起来。逗号运算符又称为顺序求值运算符。【示例2.26】 逗号运算符的使用。int a=9;int b;int c=(b=a+2,b+3);/逗号运算
25、符的使用分析:逗号运算符即把两个表达式进行顺序连接,首先求解第一个表达式的值,然后求解第二个表达式的值,得到整个逗号运算的值。本例中,先计算a+2得b=11,再计算b+3的整个逗号运算的值为14,即c=14。2.5 程序的基本单元表达式和语句 由运算符构成的式子称为C+语言的表达式。常见的表达式有赋值表达式,算术表达式和逗号表达式。 赋值表达式是由赋值运算符构成的表达式,例如int a=10。虽然赋值表达式十分简单,但其应用广泛。函数的返回值可以直接作为赋值表达式右半部分,例如函数int fun(),可以这样写出赋值表达式int i=fun()。逗号表达式即前面讲解的由逗号运算符构成的表达式。
26、程序通过语句向计算机发送命令。但是程序中并不都是语句,声明部分的内容不是语句。例如int i=9;这条赋值语句不能算作一条语句。在C+程序设计中常用的语句包括以下几种。(1)控制语句:在程序设计中最常用的结构类设计语句。例如循环、条件等。(2)函数调用:程序设计中对函数的调用。(3)表达式语句:一个表达式构成的语句。最简单的如赋值语句:int a=0;。(4)空语句:只有一个分号所构成的语句。(5)复合语句:用大括号“”把几条语句放在一起成为复合语句,又称为分程序。2.6 程序控制结构 C+语言中有3种基本的程序控制结构,分别是顺序结构、选择结构和循环结构。几乎所有应用软件都会使用这3种程序控
27、制结构。顺序结构比较简单,程序按照语句的顺序执行。选择结构和循环结构可以完成很多复杂的功能。本节将对这3种控制结构进行分析,讲解操作实例。2.6.1 直肠子程序顺序结构顺序结构是最简单、最常用的程序结构。其典型特点是程序完全按照语句出现的先后次序执行。在顺序结构的程序中,最常用的是赋值语句。其是C+程序中最基本的语句,作用是将表达式的值赋给变量或对象。赋值语句的语法格式如下:name= expression;其中,name为变量或者对象,expression为表达式。顺序结构常见的用法是在程序中和用户的输入进行交互。程序从上到下顺序执行。【示例2.27】 设计一个程序,输入某个学生的语文、数学
28、、英语3门课的成绩后计算其总成绩和平均分。分析:要求3个数相加求其总和并计算平均值,采用顺序设计比较合理,具体代码如下:分析:上面的例子就是顺序程序设计,其中的cin和cout为首的几行是输入输出,具体用法将在下面进行介绍。这里只需了解顺序程序设计的基本结构即可。说明:C+程序设计中注释符为“/”,即“/”后面的内容为注释内容。同时在C+中“/*”和“*/”成对出现,其中的内容也为注释内容2.6.2 有头脑的程序选择结构 选择结构是利用条件语句实现的。根据指定的条件表达式的结果,选择符合条件的某一分支执行相关操作。条件语句中的条件表达式通常是关系表达式、逻辑表达式、数字表达式或者字符串表达式。
29、 选择结构程序设计是应用程序设计过程中较为常用的结构。关系运算符是选择结构中常用的判断语句。在C+语言中常用的是ifelse语句,其最常用的形式有下面3种。1第一种样式 if (关系表达式) 语句1; else 语句2; 分析:上面的选择结构是根据if后面的括号的关系表达式的值进行选择分支。如果关系表达式为真,则执行语句1;否则,执行语句2。【示例2.28】 是一个选择结构示例。下面的代码根据整型变量a的值与3的大小关系进行选择结构的输出。if(a3)/判断a是否大于3,如果大于3,执行下面的语句,否则执行else后面的语句couta is bigger than 3endl;else cou
30、ta is not bigger than 310的关系的真假进行语句选择。如果为真,则执行语句,将x重新赋值为11。否则跳过该语句。 if(x10)x=11; 分析:上面的形式是选择结构中最简单的用法,即根据条件表达式的值进行判断,符合条件则执行语句,否则不执行语句。需要注意的是语句可以是利用大括号括起来的复合语句。3第三种样式 if(表达式1)语句1 else if(表达式2)语句2 else if(表达式m)语句m else 语句m+1 分析:上面的选择结构是一个多项选择结构。其根据表达式的值逐层向下执行,遇到真则执行if后面的语句,否则执行else进入下一层选择结构。【示例2.30】
31、一个选择结构示例。将a的取值分为4个范围,然后根据a的范围,分别输出一句代码。 if(a3)/判断a是否小于3 couta is small than 3endl;/a小于3 else if(a6)/a不小于3,继续判断是否小于6 couta is not small 3,but is small than 6endl; else if(a10)/a不小于6,判断是否小于10 couta is not small 6,but is small than 10endl; else couta is bigger than 10endl; 分析:上面的形式是一种多选择形式。在实际应用中,可能表达式
32、的范围并不可以一分为二,可能会出现多个范围,这就需要多选择语句。例如,邮局的包裹就需要根据不同的重量段进行收费。需要使用多选择语句。 除了if语句外,switch语句也是较为常用的。其是多分支选择语句。当然多分支语句可以用if语句的嵌套进行替换,但是switch更加简单,程序可读性更好。 其形式如下: swith(表达式) case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式3:语句3 case 常量表达式n:语句n default 语句n+1 上面的结构根据switch后面括号内的表达式的选择语句执行。当表达式的值与case后面的常量表达式的值相等时则执行“:
33、”后面的语句。当找不到对应的值时,则执行default后面的语句。【示例2.31】 利用switch语句改写示例2.30,即利用switch语句实现a的取值范围的划定。 switch(a/3)/switch判断 case 0:/a/3为0 couta is small than 3endl;break; case 1: /a/3为1 couta is not small 3,but is small than 6endl;break; case 2:/a/3为2 couta is not small 6,but is small than 9endl;break; default:/a/3不满
34、足上面的取值 couta is not small than 9endl; 分析:上面的选择结构则是根据a/3的值选择语句执行。需要注意的是,执行完一个case语句后,流程会继续执行下一条case语句。因此程序的case语句经常需要添加break跳出整个结构。 上面介绍了常用的几种选择结构。在实际应用中可以根据合适的结构设计选择程序。下面介绍一个选择结构设计的例子。【示例2.32】 设计一个程序,输入一个数据,如果输入数据大于10,则在屏幕输出its greater than 10。如果小于等于10而大于5,则在屏幕输出its greater than 5,but less than 10。如
35、果小于5,则输出its less than 5。分析:要求根据输入数据的区间选择输出,程序需要使用if语句的第三种使用方式,具体程序如下: 分析:上面的程序就是选择结构的设计。根据一个输入的整数值,输出其范围。如果输入的值大于10,则输出一条大于10的语句。如果输入大于5而小于10,则输出其大于5小于10的语句。如果不满足上面的情况则输出小于5的一条语句。2.6.3 死脑筋的程序循环结构 循环程序设计也是程序设计中常用的结构之一。程序中一些代码段需要重复执行以实现某些功能。例如程序中要计算1加到100的值,如果选择顺序结构,那么相加语句至少要写99条。而如果使用循环结构,程序的结构会十分清晰。
36、循环结构中常用的形式是for循环、while循环和dowhile循环,以及goto语句。1for循环 for循环的基本形式如下所示。 for(表达式1;表达式2;表达式3) 语句; 其执行过程如下所述。 (1)先求解表达式1; (2)求解表达式2,若其值为真(值为非0),则执行for循环中的内嵌语句,然后执行步骤(3),否则跳转到步骤(5); (3)求解表达式3; (4)转回到步骤(2); (5)循环结束,顺序向下执行。【示例2.33】 一个for循环示例。语句执行10次,即程序输出10行“study”。 for(i=0;i10;i+)/i从1到10进行10次循环 coutstudy3语句,如
37、果成立则输出a3,然后将a加1,再执行判断a3语句,继续循环执行。 while(a3) cout3endl; a+; 分析:上面的代码中首先比较a与3,然后根据判断结果执行循环体。注意while后面括号内的表达式后面不能添加分号。同时使用while循环时应该在循环体中对while循环条件进行改变,否则程序一直进行循环。3goto语句 goto语句常用的形式是: goto 语句标号; 语句标号用标识符来表示,是由字母、数字和下划线组成,但第一个符号必须是字母或下划线。 goto语句可以和if语句一起构成循环结构。使用goto语句程序可读性差,流程不清晰,因此程序设计中应尽量避免使用goto语句。
38、【示例2.35】 是一个goto语句示例。首先执行print:后面的语句,然后顺序执行。当执行到goto print;时则程序会跳转到print:后面的语句再次执行。 print: coutstudyendl; goto print 需要注意的是语句标号是一个非C+关键字的标识符,在语句标号后面添加一个分号表示语句标号所在位置。 说明:一般情况下不使用goto语句,过多使用goto语句会影响程序可读性和稳定性。4dowhile循环 dowhile循环常用的形式如下: do 循环体语句 while(表达式) 它是这样执行的,首先执行一次循环体,然后判断表达式。如果表达式为真,那么返回重新执行循环
39、体,直到表达式的值为0。【示例2.36】 是一个dowhile循环示例。首先执行大括号内的语句,然后判断a=3,如果成立,则继续执行括号内语句。依次循环,直到while后面括号内的表达式为假时,不再执行。 do coutstudyendl; a+; while(a”配合使用,cin可以连续输入多个数据,但需要注意的是用户输入多个数据时需要在连续输入之间加入空格、回车或Tab键。同时C+语言的输入默认使用了系统默认格式,但是在程序设计中可以对输入输出进行格式控制。例如可以按十六进制、八进制等进行输入输出,具体使用如示例2.37所示。2标准输出 标准输出是指从内存到屏幕的输出。cout和“”配合使
40、用。同时cout可以输出多项,即可以连续使用“”进行输出,输出按从左向右进行输出。cout中定义控制符endl代表回车换行。下面给出一个输入输出的实例。 由于cout和cin定义在头文件iostream.h中,编写程序时需要将此头文件包含在程序中。【示例2.37】 连续输入3个整数,然后把3个数据分别以十进制、八进制、十六进制输出。具体代码如下:2.8 编程实例与调试 前面已经介绍了C+语言的基础知识,下面介绍C+程序设计中代码编写和程序调试的基本方法。2.8.1 编写代码 分析基本问题后,就需要把实际问题抽象成一定的数学模型,然后通过软件设计工具进行描述后,根据此流程图编写程序。 代码编写是
41、程序中的基本工作之一,当把问题的数学模型做好以后,根据数学模型作出程序流程图,剩下的工作就是由编程实现。因此代码编写用数学模型去实现。那么代码编写要注意哪些问题呢? 首先是注意根据程序流程图编写代码。程序流程图是把数学模型进行转化得到的,是程序设计中最重要的一部分。可以说流程图是对程序设计的最强有力的指导。 然后注意代码编写的习惯。无论是注释的添加,还是空格的使用,都需要注意。养成良好的编写代码的习惯是一个程序员最基本的素质。 最后就是注意对代码的重复使用。程序设计中代码的重复利用是十分重要的,C+语言“类”的产生可以说就是为了代码的重复利用问题,因此编写程序时应该把一些常用的代码段保留,做成自己的库文件。 在Visual C+中编写代码首先应该注意代码的格式。同时应该了解一些常用的技巧
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租地押金合同协议书范本
- 个人废品收购合同协议书
- 养鸡雇佣合同协议书范本
- 安装合同协议书范文大全
- 酒厂定制酒合同协议书
- 装修电工施工合同协议书
- 技术合同双方自愿协议书
- 赋能项目合同协议书
- 2024年医院党风廉政教育计划
- 卖买鱼塘合同协议书样本
- 2025年“美好生活民法典相伴”主题宣传月活动总结(2篇)
- 移动通信网络流量分析与优化策略制定
- 16949标准培训课件
- T-CMES 04001-2020 机床装备制造成熟度评价规范
- 国开电大《企业信息管理》形考任务参考答案
- 风力发电运维值班员(高级工)理论考试题库(浓缩400题)
- 常见柜面业务操作考核评分表
- 2023年中国石油招聘考试真题
- DB43 738-2012 建设工程消防设施检测评定规则
- 公司事故隐患内部报告奖励机制
- β内酰胺类抗菌药物皮肤试验指导原则2024课件
评论
0/150
提交评论