一、内容总结
(一)函数定义形式:数据类型 函数名(形参表)
{
函数体 //执行语句
}
注:(1)数据类型是函数的返回值类型(若数据类型为void;则无返回值)
(2)形参表可以是空的,也可以有多个形参,形参间用逗号隔开,不管有无参数,函数名后的圆括号都必须有。形参必须有类型说明,形参可以是变量名,数组名或指针名。
(3)函数不允许嵌套定义,但允许嵌套使用。
(二)函数的声明和调用
1、函数的声明
调用函数之前先要声明函数原型。在主调函数中或所有函数定义之前按如下形式声明:
类型说明符 被调函数名(含类型说明的形参表)
注:在主调函数中声明仅在这个函数内部有效,在所有函数定义之前声明在本程序中任何地方都有效。
2、函数的调用
函数名(实参表)
注:(1)实参与形参必须在个数、类型、位置上一一对应。
(2)实参可以是常量、表达式、变量、数组或指针名,但都要有确定值。
3、函数的返回值
return(表达式);
注:(1)返回值类型即为所在函数的函数类型。
(2)return;这时函数无返回值,只把流程转向主调函数。
(三)函数的传值调用
1、传值调用
将实参数据值传递给形参。
2、传址调用
将实参变量的地址传递给形参。
二、题型总结
(一)有返回值型
1、求任意两个自然数的最大公约数 2、将一个偶数分解成两素数之和
int gys(int x,int y) int ss(int n)
{ {
int r; if(n==1) return 0;
r=x%y; for(int i=1 ; i<=sqrt(n) ; i++)
while(r!=0) if(n%i==0) return 0;
{ return 1;
x=y; }
y=r;
r=x%y;
}
return y;
}
(二)无返回值型
1、一个整数有几个奇数字,几个偶数字
void jos(long long x)
{
int p , q=0 , r=0;
while(x!=0)
{
p=x%10;
if(p%2!=0) q++;
if(p%2==0) r++;
x/=10;
}
cout<<q<<endl;
cout<<r;
}
三、心得感悟
经过这段时间对函数部分的了解和学习,函数在我脑海中留下了深刻的印象,它让我了解到了更多程序语言的魅力,下面几点是我对函数部分学习的心得和感悟:
1、函数优化了整个程序的结构,使得编码看上去更加的条理美观,更容易把握整个程序的主线,也不会觉得主程序有那么繁琐。
2、函数可以具体实现某一功能,若在某程序中要多次重复使用该功能,便可用函数的方式大幅度减少代码长度。
3、函数的调用方式便捷,但功能可随着人的意愿多种多样。
4、在编写函数的过程中,要注意问题的初值以及通过什么样的方式得到什么样的返回值,从而达到一个函数的作用。
5、函数对于应用各种实际问题有着极其广阔的空间,它不仅可以作一套极其复杂的运算后得到某一数值,也可以对一组数据作想要的处理等。
6、函数在一定程度上也反映出了该问题所包含的某一固定“套路”,理清问题从开始到结束的过程,有助于更快的编写出处理该问题的函数。