2020年全国计算机二级考试报名已经开始,准备参加这次考试的小伙伴们接下来就要积极准备2020年的考试了。为此,树图网小编为大家整理了全国计算机二级考试C++复习知识点相关信息,希望能够帮助到大家,了解更多计算机二级考试相关信息敬请关注树图网。
树图思维导图提供 2020年全国计算机二级考试C++复习知识点:递归函数 在线思维导图免费制作,点击“编辑”按钮,可对 2020年全国计算机二级考试C++复习知识点:递归函数 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:ddc89a3635cebb5baaa577acac4d0cac
2020年全国计算机二级考试C++复习知识点:递归函数思维导图模板大纲
如果一个函数在其函数体内直接或间接地调用了自己,该函数就称为递归函数。递归是解决某些复杂问题的十分有效的方法。
递归适用以下的一般场合。
(1)数据的定义形式按递归定义。
(2)数据之间的关系(即数据结构)按递归定义,如树的遍历,图的搜索等。
(3)问题解法按递归算法实现,例如回溯法等。
使用递归需要注意以下几点:
(1)用递归编写代码往往较为简洁,但要牺牲一定的效率。因为系统处理递归函数时都是通过压栈/退栈的方式实现的。
(2)无论哪种递归调用,都必须有递归出口,即结束递归调用的条件。
(3)编写递归函数时需要进行递归分析,既要保证正确使用了递归语句,还要保证完成了相应的操作。
变量作用域与生存周期
1C++中变量的存储类型分为如下几种类型:
auto——函数内部的局部变量(auto可省略不写)。
static——静态存储分配,又分为内部和外部静态。
extern——全局变量(用于外部变量说明)。
register——变量存储在硬件寄存器中。
(1)自动变量
①在函数内部定义的局部变量即为自动变量,用于说明自动变量的关键字auto可以省略。
②在函数头部定义的自动变量作用域为定义它的函数;而在块语句中定义的自动变量作用域为所在块。与C不同,C++还允许在变量使用之前才定义变量。
③编译程序不给自动变量赋予隐含的初值,故其初值不确定。因此,每次使用自动变量前,必须明确地赋初值。
④形参可以看成是函数的自动变量,作用域仅限于相应函数内。
⑤自动变量所使用的存储空间由程序自动地创建和释放。当函数调用时为自动变量创建存储空间,函数调用结束时将自动释放为其创建的存储空间。因此,自动变量随函数的调用而存在并随函数调用结束而消失,由一次调用到下一次调用之间不保存值。
(2)外部变量
①在函数外部定义的变量即为外部变量。
②外部变量的作用域是整个程序(全局变量)。
③在C++中,程序可以分别放在几个源文件上,每个文件可作为一个编译单位分别编译。外部变量只需在某个文件上定义一次,其他文件若要引用此变量时,应用extern加以说明。(外部变量定义时不必加extern关键字)。
④在同一文件中,若前面的函数要引用在其后面定义的外部(在函数之外)变量时,也应用extern加以说明。
⑤外部变量是由编译程序在编译时给其分配空间,属于静态分配变量,对于数值型(整型、浮点型和字符型)外部变量来说,其有隐含初值0。
引进外部变量的原因:其一是只要程序运行外部变量的值是始终存在的;其二是外部变量可以在所有函数间共享。
在C++中,可以使用外部变量,但是,必须要清楚使用外部变量的副作用。使用外部变量的函数独立性差,通常不能被移植到其他程序中,而且,如果多个函数都使用到某个外部变量,一旦出现问题,就很难发现问题是由哪个函数引起的。在C++中,尽量不用或少用外部变量,可使用参数在函数间进行数据的传递。
树图思维导图提供 904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查 在线思维导图免费制作,点击“编辑”按钮,可对 904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:10b9a8a2dd2fb4593f8130ef16c320fc
树图思维导图提供 销售经理半年规划 在线思维导图免费制作,点击“编辑”按钮,可对 销售经理半年规划 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:e614d6bcf03e9318109240a18697c5d1