有如下程序: #inc1ude <iostream> using namespace std; c1ass Samp1e { friend long fun (Samp1e s); public: S

admin2019-04-01  28

问题 有如下程序:
    #inc1ude <iostream>
    using namespace std;
    c1ass Samp1e
    {
    friend long fun (Samp1e s);
    public:
    Samp1e (long a){x=a;}
    private:
    long x;
    );
    long fun (Samp1e s)
    {
    if (s.x<2)return 1:
    return s.x*fun(Samp1e(s.x—1)):
    }
    int main()
    {
    int sum=0;
    for(int 1=0;  1<6;  1++){sum+=fun(Samp1e(i));}
    cout<<sum,
    return O;
    }
    运行时输出的结果是(    )。

选项 A、120
B、16
C、154
D、34

答案C

解析 此题考查的是友元函数和递归函数。因为fun函数是Samp1e类的友元函数,所以fun函数可以直接访问Samp1e类对象的私有成员x。主函数调用fun函数,构造参数为0~5。当n小于2时,fun函数返回1,其余返回值为n*fun(n—l)。n取0—5的值时fun(n)依次为1,1,2,6,24,120,累加结果为154。
转载请注明原文地址:https://jikaoti.com/ti/njt0FFFM
0

最新回复(0)