函数参数返回值总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

函数的参数、返回值总结

(一)参数

◆函数分:

有参函数:函数名(实参列表)

无参函数:函数名()

◆有参函数调用语句中的实参应与被调函数中的形参在个数、类型、顺序上一致。

◆参数传递时,实参向形参一一对应进行单向的值传递。值:可是数值(变量或数

组元素)或数值的地址值(指针或数组名)。

(二)返回值

函数的返回值即为函数调用后的结果,可有如下返回结果的方法:

(1)通过return语句返回一个值;

(2)利用地址做参数返回一个或多个值;

(3)利用全局变量返回一个或多个值。

(三)例

1、170页实验内容(1):打印由正三角和倒三角组成的图形。

有一个参数,无返回值。实参向形参传递一个数值。

#include

/* 有一个参数,无返回值的函数,打印正三角 */

void f1(int n) /* 形参只能是变量,用来接收实参传来的数值 */

{ int i,j,k;

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

{for(i=1;i<=10-k;i++)

printf(" ");

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

printf(" *");

printf("\n");}

}

/* 有一个参数,无返回值的函数,打印倒三角*/

void f2(int n)

{int i,j,k;

for(k=n;k>=1;k--)

{for(i=1;i<=10-k;i++)

printf(" ");

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

printf(" *"); /*双引号内应为“空格加半角星号”*/

printf("\n");}

}

main()

{ int n;

scanf("%d",&n);

f1(n); /* 实参可以是常量、变量或表达式,将一个确定的数值传给形参 */ f2(n-1); /* 无返回值函数的调用形式 */

printf("\n");

f2(n);

f1(n);

}

2、171页实验内容(2):调用两个函数,求两个整数的最大公约数与最小公倍数。

有两个参数,有一个返回值。实参向形参传递两个数值。

#include

/* 有两个参数,有返回值的函数,求两个整数的最大公约数 */

int f1(int a,int b) /* 形参只能是变量,用来接收实参传来的数值 */ { int t,k=1;

if(b>a){t=a;a=b;b=t;}

while(k!=0)

{ k=a%b;

a=b;

b=k; }

return a;

}

int f2(int a,int b)

{ int i;

for(i=1;i

if(i*a%b==0)break;

return i*a;

}

main()

{ int a,b,c;

scanf("%d,%d",&a,&b);

/*有返回值函数调用形式1:结果直接输出 */

printf("%d和%d的最大公约数是%d\n",a,b, f1(a,b));

/*有返回值函数调用形式2:结果赋给变量 */

c=f2(a,b);

printf("%d和%d的最小公倍数是%d\n",a,b, c);

}

3.编写一函数:求两个整数的和及平均值,并返回调用函数。

有三个参数,a和b用于传递要处理的两个数,指针p用于返回平均值;

有两个返回值,一个返回值通过return语句返回,另一个返回值通过指针返回。

#include

int fun(int a,int b,float *p)

{ int sum;

sum=a+b;

*p=(a+b)/2.0;

return sum;

}

main()

{ int a,b,c;

float avg;

scanf("%d,%d",&a,&b);

/* 传递变量avg的地址,使指针p指向avg,带回平均值 */

c=fun(a,b,&avg);

printf("%d和%d的和是:%d,平均值为:%f\n",a,b,c,avg);

}

4、171页实验内容(3):编写一函数,用来计算具有10数的一维数组中元素的最大值,最小值与平均值。

平均值通过return语句返回,最大值和最小值通过全局变量返回。

通过数组名做参数,使实参和形参数组中元素一一对应。

#include

int max,min;

float func(int a[],int n) /* 形参也应该是数组,名+[] */

{ int i,sum=a[0];

float avg;

max=a[0];min=a[0];

for (i=1;i

{if (a[i]>max)max=a[i];

if (a[i]

sum=sum+a[i];}

avg=sum/n;

return(avg);

}

void main()

{ float average;

int i,b[10];

for (i=0;i<10;i++)

scanf("%d",&b[i]);

average=func(b,10); /* 实参数组名,不带[] */

printf("max=%d,min=%d,average=%.2f",max,min,average);

}

5、函数m的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和,和通过

相关文档
最新文档