首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
34
问题
有如下程序: #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://www.kaotiyun.com/show/HPAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若有以下定义和语句 int a=4,b=3,*p, *q, *w; p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是
C++定义了类库实现数据的输入和输出,______为根基类。
下列关于运算符重载的描述中,正确的是()。
结构化程序设计的一种基本方法是()。
在数据库逻辑结构的设计中,将ER模型转换为关系模型应遵循相关原则。对于三个不同实体集和它们之间的多对多联系m:n:p,最少可转换为【】个关系模式。
以下程序的执行结果为()。#include<iostream.h>Classsample{intn;public:sample(inti){n=i;}operato
已知类Sample中的一个成员函数说明如下:voidSet(Sample&a);其中,Sample&a的含意是()。
下列对字符数组进行初始化的语句正确的是
数据库概念设计中由分散到集中的设计方法是
C++模板包括( )。
随机试题
与DSA影像质量无关的是
腹股沟斜疝与直疝最有意义的鉴别点是
下列不符合腹型过敏性紫癜临床表现的是
证券公司应加强投资银行项目的集中管理和控制,对投资银行项目实施合理的项目进度跟踪、项目投入产出核算和项目利润分配等措施。()
记名股票是指在()上记载股东姓名的股票。Ⅰ.股份公司的股东名册Ⅱ.招股说明书Ⅲ.股票票面Ⅳ.公司章程
甲公司使用存货模型确定最佳现金持有量。根据有关资料分析,2015年该公司全年现金需求量为8100万元,每次现金转换的成本为0.2万元,持有现金的机会成本率为10%。要求:计算最佳现金持有量下的相关总成本。
组织结构的主要构成部分包括()。
经济萧条时期,央行可以选择的货币政策有()。
右图中甲、乙、丙分别代表热带雨林生态系统中三大功能类群。下列说法正确的是()。
学习者通过观察其他人实施某种行为后所得到的结果来决定自己的行为指向,这是一种()。
最新回复
(
0
)