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

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+=powers(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)明日计划:去南区涨见识,帮忙,整理下思想,继续接下来的学习。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值