首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include <iostream> using namespace std; class Sample { friend long fun(Sample s); public: Sampl
有如下程序: #include <iostream> using namespace std; class Sample { friend long fun(Sample s); public: Sampl
admin
2017-10-17
45
问题
有如下程序: #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 stun = 0; for (int i=0; i<6; i++) {sum += fun(Sample(i));} cout << sum; return 0; }运行时输出的结果是
选项
A、120
B、16
C、154
D、34
答案
C
解析
本题考查的知识点是:友元函数、递归函数。友元函数不是当前类的成员函数,而是独立于当前类的外部函数,但它可以访问该类的所有对象的成员,包括私有成员、保护成员和公有成员。本题中的fun函数就被声明为Sample类的友元函数了。因此,在fun函数中可以直接访问Sample类对象的私有成员x。主函数中通过一个for循环依次以临时构造的Sample类对象为参数,调用fun函数,构造参数依次为0~5。如果一个函数在其函数体内直接或间接地调用了自己,该函数就称为递归函数。本题中的fun()函数直接调用了自身,所以它又是递归函数,不难分析其递归性质如下:
因为Sample类的构造函数只是简单的将构造参数a赋给成员x,故可省略不看。通过上述递归定义不难看出,n取0~5时,fun(n)的值依次为:1,1,2,6,24,120。累加之后结果为154,故本题应该选择C。
转载请注明原文地址:https://kaotiyun.com/show/HPAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下面是类MyClass的定义,对定义中各语句描述正确的是()。classMyClass{private:intx,y,z;public:voidMyClass(intA){
以下程序的执行结果为()。#include<iostream.h>Classsample{intn;public:sample(inti){n=i;}operato
下列对模板的声明中,正确的是()。
友元运算符。obj1>obj2被C++编译器解释为()。
对下列语句正确的描述是()。constint*x;∥(1)int*constx;∥(2)
以下有关析构函数的叙述不正确的是
利用成员函数对双目运算符重载,其左操作数为______,右操作数为______。
关于运算符重载,下列表述中正确的是( )。
下列关于函数模板实参不能省略的情况说明不正确的是
下列选项中合法的用户标识符是()。
随机试题
以下程序的输出结果是()main(){intk=18;printf("%d,%0,%x\n",k,k,k);}
请从所给的四个选项中选择最合适的一个填入问号处,使之呈现一定的规律。()
(2007)砌体结构房屋的墙和柱应验算高厚比,以符合稳定性的要求,下列何种说法是不正确的?
某工作网络计划中,N工作的最早开始时间和最早完成时间分别为第5天和第7天,最迟开始时间和最迟完成时间分别为第8天和第10天,则N工作的总时差是()天。
施工进度目标的逐层分解是从(),逐步地由宏观到微观,由粗到细编制深度不同的进度计划的过程。
下列各项中,符合会计职业道德“廉洁自律”要求的有()。
创造性思维是人类思维的高级过程,其特征是思维过程及其产品的()
氢气是重要的工业燃料,下列关于氢气的说法正确的是()。
下列关于运算符函数的叙述中,错误的是()。
Apersoncanbegoodatcriticalthinking,meaningthatthepersoncanhavetheappropriatedispositionsandbeadeptatthecog
最新回复
(
0
)