2021计算机二级C++考点及试题汇编.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2021计算机二级C++考点及试题汇编.docx》由会员分享,可在线阅读,更多相关《2021计算机二级C++考点及试题汇编.docx(135页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2021计算机二级C+考点及试题汇编计算机二级C+函数考点1函数定义在标准C+中,函数的定义形式为:返回类型函数名(形参列表)(V函数体V函数名一般是标识符,个程序只有一个main函数, 其他函数名可随意取(当然,必须避免使用C+的关键字),好的 程序设计风格要求函数名最好是取有助于记忆的名字,如 getchar函数,通过函数的名字可以知道函数的功能,这无疑会 增加程序的可读性。V形参列表是由逗号分隔的,分别说明函数的各个参数。 形参将在函数被调用时从调用函数那里获得数据。在C+中,函 数形参列表可以为空,即个函数可以没有参数。但即使函数形 参列表为空,括起函数参数的对圆括号也不允许省略。返回
2、类型又称函数类型,表示一个函数所计算(或运行) 的结果值的类型。如果一个函数没有结果值,如函数仅用来更新 (或设置)变量值、显示信息等,则该函数返回类型为void类型。 个没有返回值的函数类似于些程序语言(如pasca!语言)中的过程(procedure)由一对花括号括起来的函数体,是语句的序列,它定义了 函数应执行的具体操作。需要注意的是,C+不允许函数定义嵌套,即在一个函数体 内不能包含有其他函数的定义。2函数调用C+中函数调用的一般形式为:V函数名(实参表)当调用个函数时,其实参的个数、类型及排列次序必须与 函数定义时的形参相一致,也就是说实参与形参应该对一地匹 配。当函数定义时没有形参
3、,则函数调用时,实参表亦为空。依据对函数返回值的使用方式,函数的调用方法可分为以下 几种:(1)语句调用,这通常用于不带返回值的函数。这种情况下, 被调用函数作为个独立的语句出现在程序中。(2)表达式调用。将被调用函数作为表达式的一部分来进行 调用。它适用于被调用函数带有返回值的情况。(3)参数调用。被调用函数作为另个函数的个参数进行 调用。3函数原型在C+中,函数在使用之前要预先声明。这种声明在标准C+ 中称为函数原型(functionprototype),函数原型给出了函数名、返回类型以及在调用函数时必须提供的参数的个数和类型。函数 原型的语法为:V返回类型函数名(V形参列表);(注意在函
4、数原型后要有分号)实际上函数原型说明有两种形式:(1)直接使用函数定义的头部,并在后面加上一个分号。(2)在函数原型说明中省略参数列表中的形参变量名,仅给 出函数名、函数类型、参数个数及次序。注意:在C+中,在调用任何函数之前,必须确保它已有原 型说明。函数原型说明通常放在程序文件的头部,以使得该文件 中所有函数都能调用它们。实际上,标准函数的原型说明放在了 相应的头文件中,这也是为什么在调用标准函数时必须要包含相 应的头文件的原因之一。在了解了函数定义、函数调用和函数原型之后,就可以写出 个完整的C+程序,并可将其编译和运行。4函数返回类型根据函数是否带有参数以及函数是否有返回值,可以将函数
5、 分为如下四类。1带参数的有返回值函数定义形式为:返回类型函数名(参数列表)语句序列2不带参数的有返回值函数定义形式为:V返回类型,函数名()(语句序列3带参数的无返回值函数定义形式为:voidV函数名(参数列表)(语句序列4不带参数的无返回值函数定义形式为:voidV函数名()(语句序列)5函数参数C+中,函数之间传递参数有传值和传地址两种传递方式。此外,C+还提供了默认参数机制,可以简化复杂函数的调用。1参数的传递方式(1)传值传值是将实参值的、副本传递(拷贝)给被调用函数的形参。 它是C+的默认参数传递方式,在此之前的多数函数参数传递都 是传值。由于传值方式是将实参的值复制到形参中,因此
6、实参和形参 是两个不同的变量,有各自的存储空间,可以把函数形参看作是 函数的局部变量。传值的最大好处是函数调用不会改变调用函数 实参变量的内容,可避免不必要的副作用。(2)传地址有时我们确实需要通过函数调用来改变实参变量的值,或通 过函数调用返回多个值(return语句只能返回一个值),这时仅 靠传值方式是不能达到目的。2默认参数在C+中,可以为参数指定默认值,在函数调用时没有指定 与形参相对应的实参时就自动使用默认值。默认参数可以简化复 杂函数的调用。默认参数通常在函数名第一次出现在程序中的时候,如在函 数原型中,指定默认参数值。指定默认参数的方式从语法上看与 变量初始化相似。6函数重载如果
7、能用同一个函数名字在不同类型上做相类似的操作就 会方便很多,这种情况即为函数重载。其实这技术早已用于 C+的基本运算符。例如加法操作只有一个运算符+,但它却可以 用来做整型数、浮点数和指针的加法运算。将这一思想推广到函 数,即为函数重载。7内联函数C+引入内联(inline)函数的原因是用它来取代C中的预处 理宏函数。内联函数和宏函数的区别在于,宏函数是由预处理器 对宏进行替换,而内联函数是通过编译器来实现的,因此内联函 数是真正的函数,只是在调用的时候,内联函数像宏函数一样的 展开,所以它没有一般函数的参数压栈和退栈操作,减少了调用 开销,因此,内联函数比普通函数有更高的执行效率。在C+中使
8、用inline关键字来定义内联函数。inline关键 字放在函数定义中函数类型之前。不过,编译器会将在类的说明 部分定义的任何函数都认定为内联函数,即使它们没有用 inline 说明。8递归函数如果一个函数在其函数体内直接或间接地调用了自己,该函 数就称为递归函数。递归是解决某些复杂问题的十分有效的方 法。递归适用以下的一般场合。(1)数据的定义形式按递归定义。(2)数据之间的关系(即数据结构)按递归定义,如树的遍历,图的搜索等。(3)问题解法按递归算法实现,例如回溯法等。使用递归需要注意以下几点:(1)用递归编写代码往往较为简洁,但要牺牲一定的效率。 因为系统处理递归函数时都是通过压栈/退栈
9、的方式实现的。(2)无论哪种递归调用,都必须有递归出口,即结束递归调 用的条件。(3)编写递归函数时需要进行递归分析,既要保证正确使用 了递归语句,还要保证完成了相应的操作。9变量作用域与生存周期1C+中变量的存储类型分为如下几种类型:auto函数内部的局部变量(auto可省略不写)static静态存储分配,又分为内部和外部静态。extern全局变量(用于外部变量说明)。register变量存储在硬件寄存器中。(1)自动变量在函数内部定义的局部变量即为自动变量,用于说明自动 变量的关键字auto可以省略。在函数头部定义的自动变量作用域为定义它的函数;而在 块语句中定义的自动变量作用域为所在块。
10、与C不同,C+还允 许在变量使用之前定义变量。编译程序不给自动变量赋予隐含的初值,故其初值不确定。因此,每次使用自动变量前,必须明确地赋初值。形参可以看成是函数的自动变量,作用域仅限于相应函数 内。自动变量所使用的存储空间由程序自动地创建和释放。当 函数调用时为自动变量创建存储空间,函数调用结束时将自动释 放为其创建的存储空间。因此,自动变量随函数的调用而存在并 随函数调用结束而消失,由一次调用到下一次调用之间不保存 值。(2)外部变量在函数外部定义的变量即为外部变量。外部变量的作用域是整个程序(全局变量)。在C+中,程序可以分别放在几个源文件上,每个文件可 作为个编译单位分别编译。外部变量只
11、需在某个文件上定义 次,其他文件若要引用此变量时,应用extern加以说明。(外部 变量定义时不必加extern关键字)。在同一文件中,若前面的函数要引用在其后面定义的外部 (在函数之外)变量时,也应用extern加以说明。外部变量是由编译程序在编译时给其分配空间,属于静杰 分配变量,对于数值型(整型、浮点型和字符型)外部变量来说, 其有隐含初值。引进外部变量的原因:其是只要程序运行外部变量的值是 始终存在的;其二是外部变量可以在所有函数间共享。在C+中,可以使用外部变量,但是,必须要清楚使用外部 变量的副作用。使用外部变量的函数独立性差,通常不能被移植 到其他程序中,而且,如果多个函数都使用
12、到某个外部变量,一 旦出现问题,就很难发现问题是由哪个函数引起的。在C+中, 尽量不用或少用外部变量,可使用参数在函数间进行数据的传 递。基本控制结构1C+语句C+语句按照不同功能大体分为6种类型,它们是:(1)声明语句:用于对程序中的各种实体进行声明、定义及 初始化。(2)表达式语句:用于对程序中的数据进行具体操作和处理。(3)选择语句:用于实现程序的选择结构。(4)循环语句:用于实现程序的循环结构。(5)跳转语句:用于实现程序执行流程的转移。(6)复合语句:用于表示程序中的语句块概念。应当指出的是,C+中并不存在赋值语句和函数调用语句, 赋值和函数调用都属于表达式而不是语句。2顺序结构1声
13、明语句声明语句又称为说明语句,它可以用来对程序中出现的各种名称进行声明。这些名称通常是表示变量、常量、函数、结构、 类、对象等实体的标识符。在C+程序中,一个名称在使用之前 必须先被声明。声明的目的是告诉编译器某个名称所指代的实体 类型。使用声明语句能够在程序中进行如下操作:(1)变量声明(2)常量声明(3)函数声明(4)类型声明声明语句可以完成的工作不仅局限于为名称指定类型,同时 也是定义语句。另外,使用声明语句还可以在定义变量时对其进行初始化。2表达式语句C+中所有对数据的操作和处理工作都是通过表达式语句来 完成的。表达式语句的语法格式为:V表达式;(1)赋值操作。(2)复合赋值操作。(3
14、)增量、减量操作。(4)函数调用操作。(5)输入输出操作。3基本输入输出个程序通常会向用户输出些信息,一般也会要求用户输入些信息。C+程序的输入输出操作是通过标准库中的输入/ 输出流对象来完成的。在头文件iostream中定义了代表屏幕的标准输出流对象 cout和代表键盘的标准输入流对象cino cin和cout具有强大 的输入输出功能和极为灵活的用法。在程序中使用cin和cout 之前,应首先加入预处理命令:#include,以包含 标准头文件iostreamo使用cout进行数据输出操作的一般格式为:coutV语句2 V语句n其中,V语句i (i = l, 2, n)可以是声明语句、表达式
15、语句、选择语句、循环语句或跳转语句等任何合法的C+语句, 当然,也可以是个复合语句。分隔符“ ”和“ ”的作用是 把若干条语句组成的序列包围起来,使它们在逻辑上成为一条语 句。复合语句可以出现在程序中任何需要语句的.地方,但在通 常情况下复合语句可以作为以下成分出现在程序中。(1)函数的函数体;(2)循环语句的循环体;(3) if语句的分支;(4) switch语句的执行部分。实际上,空语句是种特殊的表达式语句。其语法格式为: ;即空语句只由一个分号组成。3选择结构1语句if语句又称为条件语句,它是程序设计语言中最常见的 种选择语句。(1)基本if语句基本if语句的功能是根据给定条件是否成立来
16、决定要不要 执行一条语句或语句块,它的语法格式如下:if (V条件)V语句其中,if为关键字;条件通常是个表达式且必须用 圆括号包围起来;语句称为if子句,它可以是任何类型的 语句(包括复合语句和空语句)。基本if语句的执行过程是:首先计算V条件的值,如果 此值不为 (真),则执行语句;如果此值为 (“假”), 则忽略语句(即不执行)而继续执行if语句之后的下一条 语句。说明:C+中规定:如果条件是个表达式,则当此表达式 的值不为时,条件结果为“真”;只有当此表达式的值为 时,条件结果才为“假”。条件也可以是一条声明语句,其中必须定义一个变量 并对它进行初始化。这时,若此变量的值不为0,则条件
17、结果为 “真”;若此变量的值为0,则条件结果为“假”。(2) if ,else 语句if-else语句是基本if语句的扩展,其功能是根据给定条 件是否成立来决定执行两部分语句中的哪一部分,其语法格式如 下:if(条件)语句1else语句2其中,if和else为关键字;语句1称为if子句,语 句2称为else子句,它们可以是单条语句或复合语句。if-else语句的执行过程是:首先计算条件的值,如果此值不为 (真),则执行语句1,然后忽略语句 2而去执行if语句之后的下一条语句;如果此值为0(“假”), 则忽略语句1,执行语句2,然后继续执行if语句之后 的下一条语句。(3) if语句的嵌套if子
18、句和else子句可以是任何类型的C+语句,当然也可 以是if-else语句本身。通常将这种情况称为if语句的嵌套。2switchswitch语句又称为开关语句,它也是种选择语句。switch 语句的功能是根据给定表达式的不同取值来决定从多个语句序 列中的哪个开始执行,其语法格式如下:switch(V表达式)caseV常量表达式1:语句序列1caseV常量表达式2:语句序列2 caseV常量表达式n:V语句序列ndefault:V语句序列n+l其中,switch, case和default为关键字;V表达式的 值必须属于整型、字符型或枚举型。常量表达式i(i=l, 2- n)是取值互不相同的整型
19、常量、字符常量或枚举常量,其具体类 型应与V表达式的值相一致。V语句序列i(i=l,2-n,n+l) 可以是任意多条语句。switch语句的执行过程是:(1)首先计算出V表达式的值,设此值为E;(2)然后计算每个V常量表达式i的值,设它们分别为C1, C2,,Cn;(3)将E依次与Cl, C2,,Cn进行比较。如果E与某个值 相等,则从该值所在的case标号语句开始执行各个语句序列, 在不出现跳转语句的情况下,将一直执行到switch语句结束。(4)如果E与所有值都不相等且存在default标号,则从 default标号语句起开始向下执行,直到switch语句结束(同 样,在不出现跳转语句的情
20、况下)。(5)如果E与所有值都不相等且不存在default标号,则 switch语句不会执行任何操作。说明:(1)多个case标号可以共用组语句序列,以实现对于几个 常量值都执行同一操作。(2)default标号语句是可选的。当default不出现时,如果表达式的值与所有常量表达式i(i=l, 2n)的值都 不相等,则程序执行流程会跳过switch语句。(3)switch语句是可以嵌套的。case和default标号只与包 含它们的最内层的switch组合在起。(4)当需要针对表达式的不同取值范围进行不同处理时,使 用ifelseif阶梯结构比较方便。因为switch语句只能对相 等关系进行测
21、试,而if语句却可以用关系表达式对个较大范 围内的值进行测试。4循环结构lfor语句for语句是C+中最常用且功能最强的循环语句,其语法格 式如下:for (表达式1; V表达式2; V表达式3)V语句其中,for为关键字;表达式1是for循环的初始化部 分,它一般用来设置循环控制变量的初始值;表达式2是for 循环的条件部分,它是用来判定循环是否继续进行的条件;表 达式3是for循环的增量部分,它一般用于修改循环控制变量 的值;语句称为for循环的循环体,它是要被重复执行的代 码行,for循环体可以是单条语句,也可以是由花括号包围起来 的复合语句。for语句的执行过程是:(1)计算表达式1的
22、值;(2)计算V表达式2的值,如果此值不等于0(即循环条件 为“真),则转向步骤(3);如果此值等于 (即循环条件 为“假”),则转向步骤(5);(3)执行一遍循环体语句:(4)计算V表达式3的值,然后转向步骤(2);(5)结束for循环。C+中for语句的书写格式非常灵活,这主要表现为:(1)表达式1可以是变量声明语句,即循环控制变量可 在其中定义。(2) V表达式1可以省略。这时,应在for语句之前给循 环控制变量赋初始值。注意:省略表达式1时,其后的分号 不能省略。(3)表达式2可以省略。这时,for语句将不再判断循环 条件,循环会无限次地执行下去。这种情况通常称为“死循环”。(4)V表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2021 计算机 二级 C+ 考点 试题 汇编
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内