首页 > 试题广场 >

下列程序的输出结果为: #include int func(

[单选题]
下列程序的输出结果为:
#include<iostream.h>
int func(int n)
{
   if(n<1)
       return 1; 
    else 
       return n+func(n-1); 
    return 0; 
} 
void main() { 
    cout<< func(5) <<endl;
}
  • 0
  • 10
  • 15
  • 16
推荐
答案:D
这是一个求累加和的递归,注意
if(n<1) return 1;
即func(0)的值为1.
func(5)=5+4+3+2+1+1=16
编辑于 2015-02-10 17:42:11 回复(0)
先求func(0)=1 func(1)=1+1=2, func(2)=2+2=4,func(3)=4+3=7 func(4)=4+7=11 func(5)=5+11=16
编辑于 2017-03-18 10:41:52 回复(0)
答案D
func(5)=5+func(4)
func(4)=4+func(3)
func(3)=3+func(2)
func(2)=2+func(1)
func(1)=1+func(0)
func(0)=1
5+4+3+2+1+1=16
发表于 2015-08-30 15:30:40 回复(0)
在进入0后就不递归了
发表于 2016-05-05 11:56:44 回复(0)
D
发表于 2019-10-15 21:19:53 回复(0)
为什么n不能是负的?
发表于 2018-09-26 21:54:55 回复(1)
1也是对应1
发表于 2018-03-05 16:55:57 回复(0)
最后  return 0;没什么卵用
发表于 2017-04-27 14:17:33 回复(1)
5+4+3+2+1+1
发表于 2016-10-16 09:40:33 回复(0)
认栽,,,<1
发表于 2016-05-17 08:43:29 回复(0)