单选题
有如下程序: #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 sum=0; for(int i=0;i<6;i++){sum+=fun(Sample(i));} cout<<sum; return 0; } 运行时输出的结果是( )。
【正确答案】
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。