您的位置:首页 > 其它

函数调用继续前进,题目练习

2016-11-06 00:32 288 查看
1620-7  唐大智《2016年11月5日》[连续第三十六天总结]

标题:函数调用继续前进,题目练习

关键词:函数调用80%,题目练习二个;

内容:(A)

(1)函数的嵌套调用:c++程序中任一函数的定义均是独立的,函数之间是平等且平行的,因此不允许在函数体内再定义另一个函数,即不允许嵌套定义。但C++允许函数的嵌套调用,即可在函数体内调用另一个函数,甚至调用去自身。

(2)函数的递归调用:C++中一个函数可以在它的函数体内直接调用自身或通过其他函数间接调用自身,这种函数调用方式称为递归调用,在递归调用过程中,主调函数同时又是被掉函数。

(B)题目:

(1)计算sum=1^k+2^k+……+n^k,并以n=6,k=5进行测试。

#include<iostream.h>

const
int k(5);

const
int n(6);

int sum(int,int),powers(int m,int n); 
//sum函数和powers函数调用在前,定义在后,因此需要做原型说明

void main()

{

cout<<"sum of "<<k<<"powers of integers from 1 to"<<n<<"=";

cout<<sum(k,n)<<endl;

}

int sum(int k,int n)
//累加求和函数

{

int s=0;
//变量s作为累加器,其初始值应该设置为0

for(int i;i<=n;i++)

s+=po
aec4
wers(i,k);

return s;

}

int power(int i,int k)

{

int j,p=1;
//powers函数中变量p为累加器,初始值设置为1

for(j=1;j<=k;j++)

p*=i;

return p;

}

(2)用递归法求n!。

#include<iostream.h>

long int f(int n)
//求n!的递归函数

{

int b;

if(n==1||n=0)
//递归条件结束

b=1;

else

b=n*f(n-1);
//递归调用函数f

cout<<"n"<<n<<'\t'<<"n!="<<b<<endl;

return b;
//返回n!的值

}

void main()

{

int a;

cout<<"请输入一个整数:";

cin>>a;
//输出a!的值

cout<<a<<"!="<<f(a)<<endl;

}

(C)明日计划:去南区涨见识,帮忙,整理下思想,继续接下来的学习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: