有如下程序: #include using namespace std; class Sample { friend long fun(Sample s); Sample(10ng a){x=a;} priv

admin2014-08-29  26

问题 有如下程序:
    #include
    using namespace std;
    class Sample
    {
friend long fun(Sample s);
    Sample(10ng a){x=a;}
    private:
    long x;
    );
    long fun(Sample S)
    {
    if(s.x<2)return l:
    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、16
B、154
C、34

答案C

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

最新回复(0)