计算机二级

请编写一个函数inline long sum(int n),用递归函数完成运算:sum(n)=1*1+2*2+…n*n,递归表达式为 sum(n)=sum(n-1)+n2。注意:部分源程序已存在文件test10_2.cpp中。请勿修改主函数main和其他函数中的任何内容,仅在函数sum的花括号中填写若干语句。文件test10_2.cpp的内容如下:include<iostream.h>inline long sum(int n){}void main(){int n;cout<<"输入n:";cin>>n

题目

请编写一个函数inline long sum(int n),用递归函数完成运算:sum(n)=1*1+2*2+…n*n,递归表达式为 sum(n)=sum(n-1)+n2。

注意:部分源程序已存在文件test10_2.cpp中。

请勿修改主函数main和其他函数中的任何内容,仅在函数sum的花括号中填写若干语句。

文件test10_2.cpp的内容如下:

include<iostream.h>

inline long sum(int n)

{

}

void main()

{

int n;

cout<<"输入n:";

cin>>n;

cout<<"结果为:"<<sum(n)<<endl;

}

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

已有变量定义和函数调用语句int a,b; b=sum(a);函数sum用来求1+2+3+…+n,请编写sum函数。 int sum(int n){ }


D

第2题:

【其它】编写求阶乘的递归函数,并调用它计算表达式1!+3!+5!+...+n!(n为奇数)的值。


int fact(int n)

第3题:

7、下面的函数利用递归实现了求1+2+3…..+n的功能: int sum(int n){ if(n==0 ) return 0; else return n+sum(n-1); } 在执行sum(10)的过程中,递归调用sum函数的次数是()。

A.9

B.10

C.11

D.8


9

第4题:

17、关于函数的递归调用,下列哪些表述是正确的:

A.递归函数中没有任何参数;

B.递归函数中不需要递归出口;

C.所谓函数的递归调用,是指:在函数f的定义中有调用f的语句;

D.在编写一个递归函数时,函数体内一定要有结束条件,即有递归出口;

E.函数的递归调用,特别适合于完成类似阶乘的运算,即f(n)=n*f(n-1)这样的运算。

F.递归函数不需要保存在一个文件中;


ABCD

第5题:

关于函数的递归调用,下列哪些表述是正确的:

A.递归函数中没有任何参数;

B.递归函数中不需要递归出口;

C.所谓函数的递归调用,是指:在函数f的定义中有调用f的语句;

D.在编写一个递归函数时,函数体内一定要有结束条件,即有递归出口;

E.函数的递归调用,特别适合于完成类似阶乘的运算,即f(n)=n*f(n-1)这样的运算。

F.递归函数不需要保存在一个文件中;


D

第6题:

编写递归函数,计算n!。要求n值从主函数输入,n为正整数。


用基本运算乘法的运算次数作为衡量时间复杂度的量当n=0时,程序执行if(n==0) return 1;,并没有做乘法,故T(0)=0;当n>=1时程序执行n*Func(n-1);此时T(n)= T(n-1)+1故: 替换法: T(0)=0,T(1)=1,T(2)=2-----总结得到:T(n)=n;归纳法证明:(1),当n=0时,T(0)=0,结论成立;(2)假设当k所以,对所有n>=0有T(n)=n;成立.迭代法:T(n)=T(n-1)+1=(T(n-2)+1)+1=((T(n-3)+1)+1)+1=....=T(0)+1+1......+1(n个1)=n

第7题:

关于下面函数,哪一个是错误描述?n为整数defsum(n):ifn<=0:return0returnn+sum(n-1)

A.功能等价于下面的函数#n为整数defsum2(n):return(1+n)*n/2

B.sum(5)是函数调用

C.是递归函数

D.求任意两个数值n和n-1的和


正确答案:D

第8题:

请编写一个函数int sum(int n),该函数完成1+2+3+…+n的运算,并返回运算结果,其中n>0。注意:请使用递归算法实现该函数。

注意:部分源程序已存在文件:test11.cpp中。

请勿修改主函数main和其他函数中的任何内容,仅在函数sum的花括号中填写若干语句。

文件test11_2.cpp的内容如下:

include<iostream.h>

int sum(int n)

{

}

void main()

{

int n;

cout<<"输入n:";

cin>>n;

int result;sum(n);

cout<<"结果为:"<<result<<endl;

}


正确答案:int sum(int n) { if(n==1) return 1; else return n + sum(n-1); }
int sum(int n) { if(n==1) return 1; else return n + sum(n-1); } 解析:本题考查的是考生对于递归函数的熟练应用。递归的终止条件为n=1时,返回值为1

第9题:

( 9 )下面的函数利用递归实现了求 1+2+3+ …… +n 的功能:

int sum ( int n ) {

if ( n==0 )

return 0;

else

return n+sum ( n-1 ) ;

}

在执行 sum ( 10 )的过程中,递归调用 sum 函数的次数是【 9 】 。


正确答案: