使用VC6打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,补充空出的代码。函数sum(int n)返回1,2,3,…,n的和。其中n大于0。 程序要求使用递归实现上述功能。 注意:不能修改程序的其他部分,只能补充sum函数。 试题程

admin2013-11-15  14

问题 使用VC6打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,补充空出的代码。函数sum(int n)返回1,2,3,…,n的和。其中n大于0。
    程序要求使用递归实现上述功能。
注意:不能修改程序的其他部分,只能补充sum函数。
试题程序:
#include
#include(cmath)
int sum(int n)
{
}
void main()
{
tout<<"1+2+3+…+100="<end1;
return;
}

选项

答案return(n==1)?1:n+sum(n-1);

解析 本题主要考查三目运算符?:的使用和递归函数的编制。程序功能是计算前n个自然数的和,n为参数。程序的运算过程如下,不是一般性,假设n为3,首先执行sum(3),因为3不等于1,所以return语句返回的值为3+sum(3-1),然后执行sum(3-1)即sum(2),2不等于1,所以return语句返回的值为2+sum(2-1),然后执行sum(2-1)即sum(1),因为1等于1,所以return语句返回的值为1,即问号后的值,所以最终结果为3+2+1=6,而题中n为100,所以结果为5050。
转载请注明原文地址:https://kaotiyun.com/show/sXNp777K
0

最新回复(0)