有如下程序: #include<iostream> using namespace std; class Sample { friend long>>fun(Sample s); public: Sample(long a){x==a;} private:

admin2020-07-30  16

问题 有如下程序:
#include<iostream>
using namespace std;
class Sample
{
friend long>>fun(Sample s);
public:
Sample(long a){x==a;}
private:
};
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));}
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/WPyp777K
0

最新回复(0)