欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    计算机二级C++考点.pdf

    • 资源ID:90915089       资源大小:4.98MB        全文页数:31页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机二级C++考点.pdf

    计算机二级C+考点计算机二级C+考点:C+语言概述1.1 C+语言的发展C+起源于C语言。1 9 8 0 年贝尔实验室的B j a r n e S t r o u s t r u p 和他的同事们开始对C语言进行改进和扩充,把 S i m u l a 6 7 (一种早期的面向对象语言)中类的概念引入到C语言,并将改进后的C语言称为“带类的Cw(C w i t hc l a s s)o 1 9 8 3 年夏,“带类的C”被正式命名为“C+”,并于同年7月首次对外发表。L 2 C+语言的特点1 C+是一种面向对象的程序设计语言(1)抽象数据类型。(2)封装和信息隐藏。(3)以继承和派生方式实现程序的重用。(4)以运算符重载和虚函数来实现多态性。(5)以模板来实现类型的参数化。2 C+是程序员和软件开发者在实践中创造的C+往往从编写实际程序的角度出发,为程序员提供了各种实用、灵活、高效的语言特性。3 C+是 C语言的超集能够很好地兼容C语言正是C+取得成功的原因之一,这是因为:(DC+继承了 c语言简明、高效、灵活等众多优点。(2)以前使用C语言编写的大批软件可以不加任何修改,直接在C+开发环境下维护。(3)C语言程序员只需要学习C+扩充的新特性,就可以很快地使用C+编写程序。1.3面向对象程序设计C+是一种面向对象的程序设计语言,它充分支持面向对象思想中的三个主要特征是:1封装性封装性是指将数据和算法捆绑成一个整体,这个整体就是对象,描述对象的数据被封装在其内部。如果需要存取数据,可以通过对象提供的算法来进行操作,而无需知道对象内部的数据是如何表示和存储的。这种思想被称为信息隐藏。2继承性继承性是指一种事物保留了另一种事物的全部特征,并且具有自身的独有特征。C+语言采用继承来支持重用,程序可以在现有类型的基础上扩展功能来定义新类型。新类型是从现有类型中派生出来的,因此被称为派生类。3多态性多态性是指当多种事物继承自一种事物时,同一种操作在它们之间表现出不同的行为。C+语言中使用函数重载、模板、虚函数等概念来支持多态性。C+语言主要包括面向过程和面向对象两部分内容。学习C+语言时,应该先学习其面向过程部分,再学习面向对象部分。L4C+语言的基本符号C+语言中的 基本符号可以分为3类:1字母。包括大写英文字母和小写英文字母共5 2个符号。2数字3特殊符号。包括:+-/=,_:;?=I !#%&()口 和“空格”共3 0个符号。这三类符号共计9 2个,它们组成了 C+语言的基本符号集合。L5C+语言的词汇1关键字关键字也称为保留字,它是由C+语言本身预先定义好的一类单词。表1ANSIC标准规定的关键字a ut o b r e a k c a s e c ha rconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile表2ANSIC+标准补充的关键字boolcatchclassconst_castdynamic_castexplicitfalsefriendinlinemutablenamespacenewoperatorprivateprotectedpublicreinterpret_casestatic_casttemplatethisthrowtruetrytypeidtypenameusingvirtualwchar_t2标识符标识符是用户为程序中各种需要命名的“元素”所起的名字。标识符的组成要符合一定的规则:(D标识符是一个以字母或下划线开头的,由字母、数字、下划线组成的字符串。(2)标识符不能与任意一个关键字同名。(3)标识符中的字母区分大小写。(4)标识符不宜过长。C+语言一般设定一个标识符的有效长度为3 2 个字符。3字面常量常量是指在程序中固定不变的值。常量一般有两种表示形式,即符号常量和字面常量。C+语言中符号常量的名字就是一个标识符,而字面常量却是一类特殊的单词。字面常量分为整型、浮点型、字符型和字符串型四类。4运算符运算符是对程序中的数据进行操作的一类单词。C+语言中运算符的种类非常丰富,其中有:(1)单字符组成的运算符。(2)双字符组成的运算符。(3)三个字符组成的运算符。(4)关键字运算符。5 标点符号标点符号是在程序中起分割内容和界定范围作用的一类单词。表 3 C+语言的标点符号标点符号描述(空格)语句中各成分之间的分割符;(分号)语句的结束符(单引号)字符常量的起止标记符(双引号)字符串常量的起止标记符#(井字号)预处理命令的开始标记符(左花括号)复合语句的开始标记符(右花括号)复合语句的结束标记符(双斜杠)行注释的开始标记符/*(斜杠和星号)块注释的开始标记符*/(星号和斜杠)块注释的结束标记符L6C+程序的基本框架由于C+语言既支持结构化程序设计,又支持面向对象程序设计,所以它同时具有结构化程序设计和面向对象程序设计两种基本框架。1结构化程序设计框架在C+的结构化程序设计框架中,函数是程序的基本组成单元。程序的主体通常由若干函数定义构成。函数是程序中完成一定功能的模块。各个函数之间通过参数、返回值和全局变量来进行数据通信。当编写一个较大的程序时,可以把它按照功能逐级划分成许多相对独立的小模块。每个小模块的功能由一个函数实现,再通过适当的方法将这些函数组织在一起协同工作,就能够完成整个程序所规定的任务。这种方法体现出了结构化程序设计中“功能分解,逐步求精”的思想。使用结构化程序设计方法编写出的C+程序包括一个主函数和若干用户定义函数。主函数由操作系统调用,它是整个程序的入口。在主函数中调用其他函数,其他函数之间也可以相互调用,并且同一个函数可以被一个或多个函数调用任意多次。在 C+中一个函数被调用之前必须先被声明。函数声明和函数体放在一起组成函数定义;函数体是用花括号括起来的若干语句,它们完成了一个函数的具体功能。一般地,一个C+程序的结构化程序设计框架可以表示为:函数1 的声明函数2的声明,函数n的声明,V 主 函 数 m a i n ()函数1 的定义函数2的定义函数n的定义2面向对象程序设计框架在 C+的面向对象程序设计框架中,类成为程序的基本组成单元。程序的主体通常由若干类的定义构成。类可以把数据和函数封装在一起,用以描述事物的属性和对事物的操作。类与类之间一方面通过封装而具有明确的独立性;另一方面又通过成员、友元、参数、继承和派生等关系,达到相互通信和联络的目的,从而形成一个有机的整体。在结构化程序设计中,除了主函数之外,所有函数之间一 律“平等”,没有层次关系可言,当程序规模稍大时,就会使整体结构变得相当混乱。相反,在面向对象程序设计中,类与类之间能够按照逻辑关系组成有条理的层次结构,从而使一个复杂程序变得有“纲”可循。这正体现出面向对象思想的优越性。一般地,一个C+程序的面向对象程序设计框架可以表示为:类1的定义,类2的定义,类n的定义V 主 函 数main。类1的成员函数定义类2的成员函数定义,类n的成员函数定义,1.7C+程序的开发过程开发一个C+程序的过程通常包括编辑、编译、链接、运行和调试等步骤。1 编辑在 VC 6 集成开发环境中,用户可以使用编辑窗口来进行C+程序的编辑工作。VC 6 的编辑窗口是专门为编辑C+程序而设计的,它提供了包括语法亮色、调用提示、自动缩进、查找和替换等在内的一系列功能,使用起来十分方便。当用户完成了 C+程序的编辑时,应将输入的程序文本保存为以cp p 为扩展名的文件(保存C+头文时应以h为扩展名)。2编译在 VC 6 集成开发环境中,用户可以使用编译(C o mp i le)命令将一个以cp p 为扩展名的C+源程序文件转换成一个以o bj为扩展名的目标文件。如果一个C+程序由多个源程序文件组成,应将它们分别进行编译形成多个目标文件。3链接在 VC 6 集成开发环境中,用户可以使用生成(B u i ld)命令来进行目标文件的链接工作。另外,在源程序文件没有被编译的情况下直接使用此命令,可以使编译和链接工作一起完4运行和调试在编译和链接工作成功地完成之后可以运行得到的可执行程序,观察程序是否符合我们所期望的运行结果。在 VC 6集成开发环境中,用户可以使用执行(E xecu t e)命令来运行程序。如果程序的运行结果不是我们所期望的,说明源程序文件中存在着语义错误。这时,需要使用调试器对可执行程序进行跟踪调试来查找错误发生的原因。在 VC 6 集成开发环境中,用户可以很方便地进入调试状态,对程序进行设置断点、单步执行、观察变量等操作。计算机二级C+考点:基本控制结构1 C+语句C+语句按照不同功能大体分为6种类型,它们是:(1)声明语句:用于对程序中的各种实体进行声明、定义及初始化。(2)表达式语句:用于对程序中的数据进行具体操作和处理。(3)选择语句:用于实现程序的选择结构。(4)循环语句:用于实现程序的循环结构。(5)跳转语句:用于实现程序执行流程的转移。(6)复合语句:用于表示程序中的语句块概念。应当指出的是,C+中并不存在赋值语句和函数调用语句,赋值和函数调用都属于表达式而不是语句。2顺序结构1 声明语句声明语句又称为说明语句,它可以用来对程序中出现的各种名称进行声明。这些名称通常是表示变量、常量、函数、结构、类、对象等实体的标识符。在 C+程序中,一个名称在使用之前必须先被声明。声明的目的是告诉编译器某个名称所指代的实体类型。使用声明语句能够在程序中进行如下操作:(1)变量声明(2)常量声明(3)函数声明(4)类型声明声明语句可以完成的工作不仅局限于为名称指定类型,同时也是定义语句。另外,使用声明语句还可以在定义变量时对其进行初始化。2表达式语句C+中所有对数据的操作和处理工作都是通过表达式语句来完成的。表达式语句的语法格式为:V 表 达 式,;(1)赋值操作。(2)复合赋值操作。(3)增量、减量操作。(4)函数调用操作。(5)输入输出操作。3基本输入输出一个程序通常会向用户输出一些信息,一般也会要求用户输入一些信息。C+程序的输入输出操作是通过标准库中的输入/输出流对象来完成的。在头文件i o st r e a m 中定义了代表屏幕的标准输出流对象co u t 和代表键盘的标准输入流对象ci no ci n 和 co u t 具有强大的输入输出功能和极为灵活的用法。在程序中使用ci n 和co u t 之前,应首先加入预处理命令:#i n cl u d e,以包含标准头文件i o st r e a mo使用co u t 进行数据输出操作的一般格式为:co u t 语句2 V 语 句 n 其中,语句i (i =l,2,n)可以是声明语句、表达式语句、选择语句、循环语句或跳转语句等任何合法的C+语句,当然,也可以是一个复合语句。分隔符“”和“”的作用是把若干条语句组成的序列包围起来,使它们在逻辑上成为一条语句。复合语句可以出现在程序中任何需要语句的地方,但在通常情况下复合语句可以作为以下成分出现在程序中。(1)函数的函数体;(2)循环语句的循环体;(3)i f 语句的分支;(4)sw i t ch 语句的执行部分。实际上,空语句是一种特殊的表达式语句。其语法格式为:;即空语句只由一个分号组成。3选择结构1 语句i f 语句又称为条件语句,它是程序设计语言中最常见的一种选择语句。(1)基本i f 语句基本i f 语句的功能是根据给定条件是否成立来决定要不要执行一条语句或语句块,它的语法格式如下:i f(V 条件)V 语句其中,i f 为关键字;V 条件,通常是一个表达式且必须用圆括号包围起来;V 语 句 称 为 i f 子句,它可以是任何类型的语句(包括复合语句和空语句)。基本i f 语句的执行过程是:首先计算V 条件的值,如果此值不为0 (“真”),则执行语句;如果此值为0(“假”),则忽略V 语句(即不执行)而继续执行i f 语句之后的下一条语句。说明:C+中规定:如果V 条件是一个表达式,则当此表达式的值不为0时,条件结果为“真”;只有当此表达式的值为 0时,条件结果才为“假”。V 条件,也可以是一条声明语句,其中必须定义一个变量并对它进行初始化。这时,若此变量的值不为0,则条件结果为“真”;若此变量的值为0,则条件结果为“假”。(2)i f e ls e 语句i f e ls e 语句是基本i f 语句的扩展,其功能是根据给定条件是否成立来决定执行两部分语句中的哪一部分,其语法格式如下:i f(V条件)语句1 e ls e语句2 其中,i f 和 e ls e 为关键字;V 语 句 1 称为i f 子句,语句2 称为e ls e 子句,它们可以是单条语句或复合语句。i f e ls e 语句的执行过程是:首先计算V 条件的值,如果此值不为0 (“真”),则执行语句1,然 后 忽 略 V语句2 而去执行i f 语句之后的下一条语句;如果此值为0(“假”),则忽略语 句 1 ,执 行 V 语 句 2 ,然后继续执行i f 语句之后的下一条语句。(3)i f 语句的嵌套i f 子句和e ls e 子句可以是任何类型的C+语句,当然也可以是i f-e ls e 语句本身。通常将这种情况称为i f 语句的嵌套。2 s w i t c hs w i t c h 语句又称为开关语句,它也是一种选择语句。s w i t c h 语句的功能是根据给定表达式的不同取值来决定从多个语句序列中的哪一个开始执行,其语法格式如下:s w i t c h(V表达式)c a s e V 常量表达式1:语句序列1 c a s e V 常量表达式2:语句序列2 c a s e V 常量表达式n:V 语 句 序 列 n d e f a u lt:V 语句序列n+l其中,s w i t c h,c a s e 和 d e f a u lt 为关键字;V 表达式的值必须属于整型、字符型或枚举型。常量表达式i(i=l,2 n)是取值互不相同的整型常量、字符常量或枚举常量,其具体类型应与表达式的值相一致。V 语 句 序 列 i(i=l,2 n,n+1)可以是任意多条语句。s w i t c h 语句的执行过程是:(1)首先计算出V 表达式的值,设此值为E;(2)然后计算每个V 常量表达式i 的值,设它们分别为C l,C 2,C n;(3)将 E依次与C l,C 2,C n进行比较。如果E与某个值相等,则从该值所在的c a s e 标号语句开始执行各个语句序列,在不出现跳转语句的情况下,将一直执行到s w i t c h 语句结束。(4)如果E与所有值都不相等且存在d e f a u lt 标号,则从d e f a u lt 标号语句起开始向下执行,直到s w i t c h 语句结束(同样,在不出现跳转语句的情况下)。(5)如果E与所有值都不相等且不存在d e f a u lt 标号,则s w i t c h 语句不会执行任何操作。说明:(1)多个c a s e 标号可以共用一组语句序列,以实现对于几个常量值都执行同一操作。(2)d e f a u lt 标号语句是可选的。当d e f a u lt 不出现时,如果表达式的值与所有常量表达式i(i=l,2 n)的值都不相等,则程序执行流程会跳过s w i t c h 语句。(3)s w i t c h 语句是可以嵌套的。c a s e 和 d e f a u lt 标号只与包含它们的最内层的s w i t c h 组合在一起。(4)当需要针对表达式的不同取值范围进行不同处理时,使用i f e ls e i f 阶梯结构比较方便。因为s w i t c h 语句只能对相等关系进行测试,而 i f 语句却可以用关系表达式对一个较大范围内的值进行测试。4循环结构I f or 语句f or 语句是C+中最常用且功能最强的循环语句,其语法格式如下:f o r(V 表达式1;V 表 达 式 2;V 表 达 式 3)V 语 句 其中,f o r为关键字;V 表 达 式 1 是 f o r循环的初始化部分,它一般用来设置循环控制变量的初始值;V 表 达 式 2 是 f o r循环的条件部分,它是用来判定循环是否继续进行的条件;V 表 达 式 3 是 f o r循环的增量部分,它一般用于修改循环控制变量的值;V 语 句 称为f o r循环的循环体,它是要被重复执行的代码行,f o r循环体可以是单条语句,也可以是由花括号包围起来的复合语句。f o r语句的执行过程是:(1)计算V 表达式1 的值;(2)计算表达式2 的值,如果此值不等于0 (即循环条件为“真”),则转向步骤(3);如果此值等于0 (即循环条件为“假”),则转向步骤(5);(3)执行一遍循环体V 语句:(4)计算V 表达式3 的值,然后转向步骤(2);(5)结束f o r循环。C+中f o r语句的 书写格式非常灵活,这主要表现为:U)V表达式1 可以是变量声明语句,即循环控制变量可在其中定义。(2)V表达式1 可以省略。这时,应在f o r语句之前给循环控制变量赋初始值。注意:省略表达式1 时,其后的分号不能省略。(3)V表达式2 可以省略。这时,f o r语句将不再判断循环条件,循环会无限次地执行下去。这种情况通常称为“死循环”。(4)V表达式3 可以省略。这时,应在循环中对循环控制变量进行递增或递减操作,以确保循环能够正常结束。(5)三个表达式可同时省略。这时,f o r语句显然也是一个“死循环”。(6)V表达式1、V 表 达 式2 和 V 表 达 式3 都可以是任何类型的C+表达式。2 w h i l e语句w h i l e 语句是一种形式较为简单的循环语句,其语法格式如下:w h i l e(V 表达式)V 语 句,其 中,w h i l e 为关键字:V表达式是吐门6循环的条件,它用于控制循环是否继续进行;V 语 句 称为w h i l e 循环的循环体,它是要被重复执行的代码行;w h i l e 循环体可以是单条语句,也可以是由花括号括起来的复合语句。实际上,w h i l e 语句是f o r语句省略掉表达式1 和表达式3的特殊情况。w h i l e 语句的执行过程是:(1)计算表达式的值,如果此值不等于0 (即循环条件 为“真”),则转向步骤(2);如果此值等于0 (即循环条件为“假”),则转向步骤(4);(2)执行一遍循环体V 语句;(3)转向步骤(1);(4)结束w h i l e 循环。从中可以看出,w h i l e 语句将在V 表达式,成立的情况下重复执行语句;如果在第一次进入w h i l e 循环时V 表达式,就不成立,则语句一次也不会执行。注意:(1)由于w h i l e 语句中缺少对循环控制变量进行初始化的结构,因此在使用w h i l e 循环之前对循环控制变量进行初始化显得很重要。(2)在 w h i l e 循环体中不要忘记对循环控制变量的值进行修改,以使循环趋向结束。3 do w h i l e 语句;do w h i l e 语句也是一种循环语句,它的功能类似于w h i l e 语句,只是将循环的判定条件移到了循环体之后,其语法格式如下:d o V 语句w h i l e (V 表达式);其中,do 和 w h i l e 为关键字;V 语 句 称为do w h i l e循环的循环体,它是要被重复执行的代码行,do w h i l e 循环体可以是单条语句,也可以是由花括号包围起来的复合语句;V 表达式是(1 0 w h i l e 循环的条件,它用于控制循环是否继续进行。注意:在 do w h i l e 语句中最后的分号不能丢掉,它用来表示do.w h i l e 语句的结束。do.w h i l e 语句的执行过程是:(1)执行一遍循环体语句;(2)计算表达式的值,如果此值不等于0 (即循环条件 为“真”),则转向步骤(D;如果此值等于0 (即循环条件为“假”),则转向步骤(3);(3)结束 do e,w h i l e 循环。注意:(1)在使用do-w h i l e 循环之前同样需要对循环控制变量进行初始化;在 do-w h i l e 循环中仍然不要忘记对循环控制变量进行修改,以使循环趋向结束,避免死循环的发生。(2)do w h i l e 循环与w h i l e 循环的不同之处在于:do w h i l e 循环的循环体在前,循环条件在后,因此do w h i l e 循环体在任何条件下(即使不满足循环条件)都至少被执行一次。而 w h i l e 循环条件在前,循环体在后,当条件不满足时,循环体有可能一次也不会执行。这一点正是在构造循环结构时决定使用w h i l e 语句还是do w h i l e 语句的重要依据。循环的嵌套在一个循环结构中又完整地包含着另一个循环结构称为循环的嵌套。C+中三种类型的循环语句都可以相互嵌套,并且嵌套的层数没有限制。程序设计中有许多问题需要使用循环结构的嵌套来解决。5 跳转语句C+中有4种跳转语句,它们是:b r ea k 语句、c o n t i n u e语句、r et u r n 语句和go t o 语句。Ib r ea k 语句b r ea k 语句又称为跳出语句,其语法格式如下:b r ea k;即由关键字b r ea k 加上一个分号构成。b r ea k 语句只能用在s w i t c h 语句和循环语句中。在s w i t c h 语句中,b r ea k 用来使执行流程跳出s w i t c h 语句,而继续执行s w i t c h 后面的语句。在循环语句中,b r ea k 用来使执行流程无条件地跳出本层循环体。另外,b r ea k 语句还经常用于使执行流程跳出死循环。2 c o n t i n u e 语句c o n t i n u e语句又称为继续语句,其语法格式如下:c o n t i n u e;即由关键字c o n t i n u e加上一个分号构成。c o n t i n u e语句仅用在循环语句中,它的功能是:结束本次循环,即跳过循环中尚未执行的语句,接着进行下一次是否执行循环的条件判定。在 w h i l e和 d o w h i l e循环中,c o n t i n u e语句将使执行流程直接跳转到循环条件的判定部分,然后决定循环是否继续进行。在 fo r 循环中,当遇到c o n t i n u e时,执行流程将跳过循环中余下的语句,而转去执行fo r 语句中的V 表达式3,然后根据V 表达式2进行循环条件的判定以决定是否继续执行fo r 循环体。3 r et u r n 语句r et u r n 语句又称为返回语句,它具有两种语法格式:(1)r et u r n;(2)r et u r n V 表达式;其中,r et u r n 为关键字,第 2种格式中的表达式可以是任何类型的C+表达式。r et u r n 语句只能用在函数体中。在返回类型为v o i d 的函数体中,若想跳出函数体,将执行流程转移到调用该函数的位置,应使用r et u r n 语句的第1 种格式。在返回类型不是v o i d 的函数体中,应使用r et u r n 语句的第2种格式,使执行流程转移到调用该函数的位置,并将表达式的值作为函数的返回值。对于非v o i d 返回类型的函数来说,其函数体中必须至少具有一条r et u r n 语句。4 go t o 语句goto语句又称为转向语句,其语法格式如下:gotoV 标号;其中,goto为关键字;V 标 号 是一个由用户命名的标识符。在 goto语句所处的函数体中必须同时存在一条由标号标记的语句,其格式为:V 标 号:V 语句即在V 标号和 V 语 句 之间使用一个冒号分隔,这种语法结构称为标号语句。标号语句中的V 标号应与goto语句中的V 标号,相同,V 语句,可以是任何类型的C+语句。注意:某个goto语句和相应的标号语句必须位于同一函数体内。goto语句的功能是使执行流程跳转到V 标号所标记的V 语 句 处(即对应的标号语句处)。计算机二级C+函数考点1 函数定义在标准C+中,函数的定义形式为:返回类型函数名(V 形参列表)(V 函 数 体,函数名一般是标识符,一个程序只有一个m a i n 函数,其他函数名可随意取(当然,必须避免使用C+的关键字),好的程序设计风格要求函数名最好是取有助于记忆的名字,如 get c h a r 函数,通过函数的名字可以知道函数的功能,这无疑会增加程序的可读性。V 形参列表是由逗号分隔的,分别说明函数的各个参数。形参将在函数被调用时从调用函数那里获得数据。在 C+中,函数形参列表可以为空,即一个函数可以没有参数。但即使函数形参列表为空,括起函数参数的一对圆括号也不允许省略。V 返回类型又称函数类型,表示一个函数所计算(或运行)的结果值的类型。如果一个函数没有结果值,如函数仅用来更新(或设置)变量值、显示信息等,则该函数返回类型为v o i d类型。一个没有返回值的函数类似于一些程序语言(如p a s ca l 语言)中的过程(p r o ce du r e)。由一对花括号括起来的V 函数体是语句的序列,它定义了函数应执行的具体操作。需要注意的是,C+不允许函数定义嵌套,即在一个函数体内不能包含有其他函数的定义。2函数调用C+中函数调用的一般形式为:V 函数名(实参表)当调用一个函数时,其实参的个数、类型及排列次序必须与函数定义时的形参相一致,也就是说实参与形参应该一对一地匹配。当函数定义时没有形参,则函数调用时,实参表,亦为空。依据对函数返回值的使用方式,函数的调用方法可分为以下几种:(1)语句调用,这通常用于不带返回值的函数。这种情况下,被调用函数作为一个独立的语句出现在程序中。(2)表达式调用。将被调用函数作为表达式的一部分来进行调用。它适用于被调用函数带有返回值的情况。(3)参数调用。被调用函数作为另一个函数的一个参数进行调用。3函数原型在 C+中,函数在使用之前要预先声明。这种声明在标准C+中称为函数原型(f u n ct i o n p r o t o t y p e),函数原型给出了函数名、返回类型以及在调用函数时必须提供的参数的个数和类型。函数原型的语法为:返回类型函数名(形参列表);(注意在函数原型后要有分号)实际上函数原型说明有两种形式:(1)直接使用函数定义的头部,并在后面加上一个分号。(2)在函数原型说明中省略参数列表中的形参变量名,仅给出函数名、函数类型、参数个数及次序。注意:在 C+中,在调用任何函数之前,必须确保它已有原型说明。函数原型说明通常放在程序文件的头部,以使得该文件中所有函数都能调用它们。实际上,标准函数的原型说明放在了相应的头文件中,这也是为什么在调用标准函数时必须要包含相应的头文件的原因之一。在了解了函数定义、函数调用和函数原型之后,就可以写出一个完整的C+程序,并可将其编译和运行。4函数返回类型根据函数是否带有参数以及函数是否有返回值,可以将函数分为如下四类。1 带参数的有返回值函数定义形式为:返回类型函数名(V 参 数 列 表,)(语句序列2不带参数的有返回值函数定义形式为:返回类型V 函数名()(语句序列)3带参数的无返回值函数定义形式为:v o i dV 函 数 名,(V 参 数 列 表,)语句序列4不带参数的无返回值函数定义形式为:v o i dV 函数名()V 语句序列5函数参数C+中,函数之间传递参数有传值和传地址两种传递方式。此外,C+还提供了默认参数机制,可以简化复杂函数的调用。1 参数的传递方式(1)传值传值是将实参值的副本传递(拷贝)给被调用函数的形参。它是C+的默认参数传递方式,在此之前的多数函数参数传递都是传值。由于传值方式是将实参的值复制到形参中,因此实参和形参是两个不同的变量,有各自的存储空间,可以把函数形参看作是函数的局部变量。传值的最大好处是函数调用不会改变调用函数实参变量的内容,可避免不必要的副作用。(2)传地址有时我们确实需要通过函数调用来改变实参变量的、值,或通过函数调用返回多个值(r e t u r n 语句只能返回一个值),这时仅靠传值方式是不能达到目的。2 默认参数在 C+中,可以为参数指定默认值,在函数调用时没有指定与形参相对应的实参时就自动使用默认值。默认参数可以简化复杂函数的调用。默认参数通常在函数名第一次出现在程序中的时候,如在函数原型中,指定默认参数值。指定默认参数的方式从语法上看与变量初始化相似。6函数重载如果能用同一个函数名字在不同类型上做相类似的操作就会方便很多,这种情况即为函数重载。其实这一技术早已用于C+的基本运算符。例如加法操作只有一个运算符+,但它却可以用来做整型数、浮点数和指针的加法运算。将这一思想推广到函数,即为函数重载。7内联函数C+引入内联(i n l i n e)函数的原因是用它来取代C中的预处理宏函数。内联函数和宏函数的区别在于,宏函数是由预处理器对宏进行替换,而内联函数是通过编译器来实现的,因此内联函数是真正的函数,只是在调用的时候,内联函数像宏函数一样的展开,所以它没有一般函数的参数压栈和退栈操作,减少了调用开销,因此,内联函数比普通函数有更高的执行效率。在 C+中使用i n l i n e 关键字来定义内联函数。i n l i n e 关键字放在函数定义中函数类型之前。不过,编译器会将在类的说明部分定义的任何函数都认定为内联函数,即使它们没有用i n l i n e 说明。8递归函数如果一个函数在其函数体内直接或间接地调用了自己,该函数就称为递归函数。递归是解决某些复杂问题的十分有效的方法。递归适用以下的一般场合。(1)数据的定义形式按递归定义。(2)数据之间的关系(即数据结构)按递归定义,如树的遍历,图的搜索等。(3)问题解法按递归算法实现,例如回溯法等。使用递归需要注意以下几点:(1)用递归编写代码往往较为简洁,但要牺牲一定的效率。因为系统处理递归函数时都是通过压栈/退栈的方式实现的。(2)无论哪种递归调用,都必须有递归出口,即结束递归调用的条件。(3)编写递归函数时需要进行递归分析,既要保证正确使用了递归语句,还要保证完成了相应的操作。9 变量作用域与生存周期1 C+中变量的存储类型分为如下几种类型:a u t o函数内部的局部变量(a u t。可省略不写)。s t a t i c 静态存储分配,又分为内部和外部静态。e xt e r n全局变量(用于外部变量说明)。r e gi s t e r-变量存储在硬件寄存器中。(1)自动变量在函数内部定义的局部变量即为自动变量,用于说明自动变量的关键字a u t o可以省略。在函数头部定义的自动变量作用域为定义它的函数;而在块语句中定义的自动变量作用域为所在块。与 C不同,C+还允许在变量使用之前才定义变量。编译程序不给自动变量赋予隐含的初值,故其初值不确定。因此,每次使用自动变量前,必须明确地赋初值。形参可以看成是函数的自动变量,作用域仅限于相应函数内。自动变量所使用的存储空间由程序自动地创建和释放。当函数调用时为自动变量创建存储空间,函数调用结束时将自动释放为其创建的存储空间。因此,自动变量随函数的调用而存在并随函数调用结束而消失,由一次调用到下一次调用之间不保存值。(2)外部变量在函数外部定义的变量即为外部变量。外部变量的作用域是整个程序(全局变量)。在C+中,程序可以分别放在几个源文件上,每个文件可作为一个编译单位分别编译。外部变量只需在某个文件上定义一次,其他文件若要引用此变量时,应用e xt e m加以说明。(外部变量定义时不必加e xt e r n关键字)。在同一文件中,若前面的函数要引用在其后面定义的外部(在函数之外)变量时,也应用e xt e r n加以说明。外部变量是由编译程序在编译时给其分配空间,属于静态分配变量,对于数值型(整型、浮点型和字符型)外部变量来说,其有隐含初值0。引进外部变量的原因:其一是只要程序运行外部变量的值是始终存在的;其二是外部变量可以在所有函数间共享。在 C+中,可以使用外部变量,但是,必须要清楚使用外部变量的副作用。使用外部变量的函数独立性差,通常不能被移植到其他程序中,而且,如果多个函数都使用到某个外部变量,一旦出现问题,就很难发现问题是由哪个函数引起的。在 C+中,尽量不用或少用外部变量,可使用参数在函数间进行数据的传递。

    注意事项

    本文(计算机二级C++考点.pdf)为本站会员(无***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开