win环境下c语言05
2014-03-04 20:55
183 查看
函数的调用有两个很重要的形式,一个是嵌套调用,一个是递归调用:
函数的嵌套调用时,一个函数调用另一个函数,另一个函数又调用另一个函数,最后求出结果;函数的递归调用就是函数自己调用自己,但是这个函数最后必须要有一个停止递归调用的条件,不然函数递归调用就会无限制的调用下去——死循环;
函数的参数有实参和形参,见名知意,实参是参量,形参是变量。形参出现在函数声明和函数定义部分,而实参定义在函数的调用部分,并用“值传递”的方法传递给函数;形参可以使int 、float等基本数据类型,也可以是数组(构造类型数据),在调用的时候传递的不是值,而是地址,这个和将来要学习的指针变量类似,就是说函数参数也可以用指针变量表示,用传送地址的方法进行函数调用,被调用函数中变量值的变化可以传到main函数或者其他主调用函数体重。
练习程序:
1.有一只猴子在了很多水果,第一天吃了所有的一半+1个水果,第二天也是吃了一半+1个水果,到了第十天要吃的是,只剩下1个水果,算出共摘了多少水果,就是以第一天吃之前有多少水果;
源代码如下:
#include <stdio.h>
int main ()
{
int fruit (int days);
int days;
for(days=1;days<11;days++)//输入这十天,每天的水果库存量
{
printf("第%d天没有吃之前,还有%d个水果。\n",days,fruit(days));
}
printf("小猴子共摘了%d水果.\n",fruit(1));
return 0;
}
//定义循环调用函数 fruit,计算days当天没有吃之前还有多少水果
int fruit(int days)
{
int sum;
if(days==10)
sum=1;
else if(days>=0)
sum=2*fruit(days+1)+2;
return sum;
}
运行结果:
2.输入一个数,打印多少个星形长度的棱形
源代码:
#include <stdio.h>
int main()
{
int length;
int printfstart1(int length1);
int printfstart2(int length2);
scanf("%d",&length);//输入星行形的边长有几个星
printfstart1(length);
printfstart2(length);
return 0;
}
//正向输入星号
int printfstart1(int length1)
{
int i,j;
for(i=1;i<=length1;i++)//打印几行星号
{
for(int k=1;k<=2*(length1-i);k++)//输出空格
{
printf(" ");
}
for(j=1;j<=2*i-1;j++)//每行输出多少个星号
{
printf("* ");//每个星号后面都空一格
}
printf("\n");//每行结束换行
}
return 0;
}
//反向输出星号+(length1-1)
int printfstart2(int length2)
{
int i,j;
for(i=1;i<length2;i++)
{
for(int k=1;k<=2*i;k++)
{
printf(" ");
}
for(j=1;j<=2*(length2-i)-1;j++)
{
printf("* ");
}
printf("\n");
}
return 0;
}
输出结果:
函数的嵌套调用时,一个函数调用另一个函数,另一个函数又调用另一个函数,最后求出结果;函数的递归调用就是函数自己调用自己,但是这个函数最后必须要有一个停止递归调用的条件,不然函数递归调用就会无限制的调用下去——死循环;
函数的参数有实参和形参,见名知意,实参是参量,形参是变量。形参出现在函数声明和函数定义部分,而实参定义在函数的调用部分,并用“值传递”的方法传递给函数;形参可以使int 、float等基本数据类型,也可以是数组(构造类型数据),在调用的时候传递的不是值,而是地址,这个和将来要学习的指针变量类似,就是说函数参数也可以用指针变量表示,用传送地址的方法进行函数调用,被调用函数中变量值的变化可以传到main函数或者其他主调用函数体重。
练习程序:
1.有一只猴子在了很多水果,第一天吃了所有的一半+1个水果,第二天也是吃了一半+1个水果,到了第十天要吃的是,只剩下1个水果,算出共摘了多少水果,就是以第一天吃之前有多少水果;
源代码如下:
#include <stdio.h>
int main ()
{
int fruit (int days);
int days;
for(days=1;days<11;days++)//输入这十天,每天的水果库存量
{
printf("第%d天没有吃之前,还有%d个水果。\n",days,fruit(days));
}
printf("小猴子共摘了%d水果.\n",fruit(1));
return 0;
}
//定义循环调用函数 fruit,计算days当天没有吃之前还有多少水果
int fruit(int days)
{
int sum;
if(days==10)
sum=1;
else if(days>=0)
sum=2*fruit(days+1)+2;
return sum;
}
运行结果:
2.输入一个数,打印多少个星形长度的棱形
源代码:
#include <stdio.h>
int main()
{
int length;
int printfstart1(int length1);
int printfstart2(int length2);
scanf("%d",&length);//输入星行形的边长有几个星
printfstart1(length);
printfstart2(length);
return 0;
}
//正向输入星号
int printfstart1(int length1)
{
int i,j;
for(i=1;i<=length1;i++)//打印几行星号
{
for(int k=1;k<=2*(length1-i);k++)//输出空格
{
printf(" ");
}
for(j=1;j<=2*i-1;j++)//每行输出多少个星号
{
printf("* ");//每个星号后面都空一格
}
printf("\n");//每行结束换行
}
return 0;
}
//反向输出星号+(length1-1)
int printfstart2(int length2)
{
int i,j;
for(i=1;i<length2;i++)
{
for(int k=1;k<=2*i;k++)
{
printf(" ");
}
for(j=1;j<=2*(length2-i)-1;j++)
{
printf("* ");
}
printf("\n");
}
return 0;
}
输出结果:
相关文章推荐
- win环境下c语言06
- win环境下c语言01
- win环境下c语言03
- 转载和积累系列 - win下安装c语言开发环境
- win环境下c语言02
- win环境下c语言04
- Linux环境下学C语言开发要学些什么
- 搭建C语言开发环境
- Win7下的C语言开发环境
- 在c语言环境下实现 C++中的getline函数 即在c语言中按行读取
- C语言调用Lua----Lua环境搭建
- PyDev+Eclipse win环境搭建
- eclipse c语言开发环境遇到的问题与解决
- linux下的C语言开发(静态库) 05
- windows下安装Python虚拟环境virtualenvwrapper-win
- win 下 安装 iphone 环境
- Android JNI编程(一)——JNI概念以及C语言Dev-C++开发环境搭建、编写HelloWorld
- 02、老徐教你学C语言基础篇2——C语言摩拳擦掌齐上阵(环境篇)——Linux编程软件
- “C语言” 读书札记(六)之[Linux下C语言编程环境Make命令和Makefile]
- 简单的C语言编译环境