首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include <iostream> using namespace std; class Sample { friend long fun(Sample s); public: Sampl
有如下程序: #include <iostream> using namespace std; class Sample { friend long fun(Sample s); public: Sampl
admin
2017-10-17
48
问题
有如下程序: #include <iostream> using namespace std; class Sample { friend long fun(Sample s); public: Sample(long a) {x=a;} private: long x; }; long fun(Sample s) { if(s.x < 2) return 1; return s.x * fun(Sample(s.x-1)); } int main() { int stun = 0; for (int i=0; i<6; i++) {sum += fun(Sample(i));} cout << sum; return 0; }运行时输出的结果是
选项
A、120
B、16
C、154
D、34
答案
C
解析
本题考查的知识点是:友元函数、递归函数。友元函数不是当前类的成员函数,而是独立于当前类的外部函数,但它可以访问该类的所有对象的成员,包括私有成员、保护成员和公有成员。本题中的fun函数就被声明为Sample类的友元函数了。因此,在fun函数中可以直接访问Sample类对象的私有成员x。主函数中通过一个for循环依次以临时构造的Sample类对象为参数,调用fun函数,构造参数依次为0~5。如果一个函数在其函数体内直接或间接地调用了自己,该函数就称为递归函数。本题中的fun()函数直接调用了自身,所以它又是递归函数,不难分析其递归性质如下:
因为Sample类的构造函数只是简单的将构造参数a赋给成员x,故可省略不看。通过上述递归定义不难看出,n取0~5时,fun(n)的值依次为:1,1,2,6,24,120。累加之后结果为154,故本题应该选择C。
转载请注明原文地址:https://kaotiyun.com/show/HPAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
一个类的友元函数能够访问该类的
关于常成员函数,下列说法中错误的是
以下程序的执行结果是______.#include
C++定义了类库实现数据的输入和输出,______为根基类。
以下四种说法中,正确的一项是()
有如下程序:#include<iostream>usingnamespacestd;Classx{protected:inta;public:x(){
C++语言是以()语言为基础逐渐发展演变而成的一种程序设计语言。
有如下类声明:classXA{intx;public:XA(intn){x=n;}};classXB:publicXA{inty;
在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是,
数据独立性是数据库技术的重要特点之一。所谓数据独立性是指
随机试题
在小说《透明的红萝卜》中,主人公黑孩的主要特征是()
《始得西山宴游记》一文的写作线索是()
正式提出了无产阶级领导权和工农联盟思想的会议是
A.ST段弓背向上抬高B.ST段弓背向下抬高C.ST段呈先下斜型压低D.ST段呈抛物线型下移E.T波直立急性心包炎
下列关于喷墨打印技术的叙述不正确的是
胃热患者,其口气为( )。
巨大肾积水为成人。肾积水容量超过()
项目风险管理中最重要的步骤是()。
公安机关是人民民主专政的重要工具,这是公安机关的阶级属性,也是它的根本属性,公安机关的这一阶级属性表明()。
Thehumancriterionforperfectvisionis20/20forreadingthestandardlinesonaSnelleneyechartwithoutahitch.Thescore
最新回复
(
0
)