首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Sample { friend long fun(Sample s); public: Sample(long a){x=
有如下程序: #include using namespace std; class Sample { friend long fun(Sample s); public: Sample(long a){x=
admin
2020-04-07
25
问题
有如下程序:
#include
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 sum=0;
for(int i=0;i<6;i++){sum+=fun(Sample(i));}
cout<
return 0;
}
运行时输出的结果是( )。
选项
A、120
B、16
C、154
D、34
答案
C
解析
此题考查的是友元函数和递归函数。因为fun函数是Sample类的友元函数,所以fun函数可以直接访问Sample类对象的私有成员x。主函数调用fun函数,构造参数为0~5。当n小于2时,fun函数返回1,其余返回值为n*fun(n-1)。n取0~5的值时fun(n)依次为1,1,2,6,24,120,累加结果为154。
转载请注明原文地址:https://kaotiyun.com/show/pA8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下数组声明:intnum[10];,下标值引用错误的是
将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是
执行语句序列intx=10,&r=X;cout<<x<<’-’,<<r<<endl;输出结果为【】。
有以下程序#include<iostream.h>floatfun(intx,inty){return(x+y);}voidmain(){inta=2,b=5,c=8;cout<<fun((int)
有如下程序:#include<iostream>usingnamespacestd;classBase1{public:Base1(intD){cout<<d;}~Base1(){}};
将x+y*z中的“+”用成员函数重载,“*”用友元函数重载应写为()。
下列定义中p指向的地址可更改,但*p不能够更改的是
若要把函数voidf()定义为aClass的友元函数,则应该类aClass的定义中加入的语句是()。
operator是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为______ 的。
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,补充空出的代码。函数IsPalindromes(char*string)实现的功能是判定给定的字符串是否构成回文字符串,如果是则返回1,否则返回0。例如:abcdc
随机试题
美声唱法产生于17世纪的()
慢性充血性心力衰竭康复治疗最重要的机制是
下列各项,不属于《中药品种保护条例》中所指的中药品种保护范围的是
成人颅内压的正常值是
在维生素C注射液处方中,不可加入的辅料是
保证项目能够满足原来设定的各种要求的管理工作,这指的是( )。
下列关于公路工程交工验收主要工作内容的表述中,不正确的是()。
上海是全国最大的港口和最大的综合性城市,北京是全国最大的商业城市和外贸基地,是中国第一大城市。()
Thisarticleiswellwrittenbecausespecialattention________tothechoiceofwordsandstyleofwriting.
Acupuncture(针灸)isbasedontheideathatenergyflowsthroughthehumanbodyalong12linesormeridians(经脉).Thesemeridians【B1
最新回复
(
0
)