首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序: #include 〈iestream〉 using namespace std; int f(int n) { if(n==1) return 1; else
有以下程序: #include 〈iestream〉 using namespace std; int f(int n) { if(n==1) return 1; else
admin
2013-05-30
25
问题
有以下程序: #include 〈iestream〉 using namespace std; int f(int n) { if(n==1) return 1; else return f(n-1)+1; } int main() { int i,j=0; for(i=1;i<3;i++) j+=f(i); cout<
选项
A、4
B、3
C、2
D、1
答案
2
解析
本题考查的知识点是递归函数的调用。根据程序代码逐步分析:
①f(n)用来计算n+(n-1)…+1,在f(n)定义内部又调用f(n)自身,这就是递归函数。
②f(n)=f(n-1)+1,因此必须先计算出f(n-1),而f(n-1)=f(n-2)+1,又必须计算f(n-2)。
由此类推,直到n=1,返回后可以此计算出f(n),f(n-1),…f(1)。
③第1次调用f(n)时,形参n接收的值为1,进入函数体后,由于满足“n==1”,执行return语句得到1。第2次调用f(n)时,n的值为2,不满足条件“n==1”,执行 return f(n-1)+1,在这条语句中又调用f(n-1)即f(1),从而得到f(2)的返回值为2。所以j=1+2=3。
转载请注明原文地址:https://jikaoti.com/ti/LJE0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下函数模板定义:template<typenameT1,inta2,inta3>T1sum(T1a1){return(a1+a2+a3);}则以下调用中正确的是()。
在下面的类定义中,错误的语句是()。classSample{public:Sample(intval);//①~Sample();//②private:
判断字符型变量ch是否为大写英文字母,应使用表达式()。
设有关系R和S,关系代数表达式为R-(R-S)表示的是()。
C++中,对于结构中定义的成员,其默认的访问权限为()。
下面程序的输出结果是()。#include<iostream>usingnamespacestd;intmain(){inta=2,b=-1,c=2;if(a<b)
语句int*p=&Ak;定义了指针p,与这个语句等效的语句序列是()。
定义如下枚举类型:enumNumber{one=1,two=2,four=4,eight=8),则下列语句正确的是()。
结构化程序设计的主要特征是()。
下列描述中,()是抽象类的特性。
随机试题
[*]
=_______________.
实际工作中的“一刀切”的工作方法是由于忽视了【】
对泌尿系阳性结石,应选何种检查为宜
根据施工合同示范文本规定,()属于发包人应完成的工作。
下列关于信托财产的叙述,错误的是()
(2013年)下列各项中,属于将生产费用在完工与在产品之间进行分配的方法有()。
布洛卡中枢即()。
实施可持续发展战略必须正确处理经济发展与()的关系。
ResponseTimeIsCriticalYou,yesyou,areresponsibleforensuringthatyouareaninteresting,funpersontohave【C1】__
最新回复
(
0
)