一、目标:
1.掌握函数的定义、声明、调用
2.理解形参和实参概念
3.掌握函数调用时的值传递和地址传递的区别
4.掌握数组元素和数组名作参数的不同用法
二、学习内容
- 程序1
1.1 用C编写 int max(int a,int b)函数,和主函数。完成主函数输入的3个整数,调用max函数计算并输出最大数。
1.2 参考代码:
#include <stdio.h>
void main( )
{
int max(int a,int b);
int x,y,z,m;
printf("Please enter three numbers: ");
scanf("%d%d%d",&x,&y,&z);
m=max(max(x,y),z);
printf("The max is %d.\n",m);
}
int max(int a,int b)
{
int c;
if(a>b)
c=a;
else
c=b;
return (c);
}
- 程序2
2.1 编写C程序,输入三角形三边a、b、c,通过调用float area(float a, float b, float c)计算三角形面积。
注意:sqrt()开平方函数,需要include <math.h>
2.2 参考代码
#include <stdio.h>
#include <math.h>
void main( )
{
float area(float a,float b,float c);
float x,y,z,ts;
printf("Please enter x,y and z: ");
scanf("%f,%f,%f",&x,&y,&z);
if(x>0 && y>0 && z>0
&& x+y>z
&& y+z>x
&&x+z>y)
{
ts=area(x,y,z);
printf("area=%f\n",ts);
}
else
printf("data error!\n");
}
float area(float a,float b,float c)
{
float s,p,area;
s=(a+b+c)/2;
p=s*(s-a)*(s-b)*(s-c);
area=sqrt(p);
return (area);
}
- 程序3
3.1 编写C程序,输入一个整数n,输出一个n行的三角形金字塔。如下图
3.2 参考代码
#include <stdio.h>
void main( )
{
void trangle(int n);
int n;
printf("请输入一个整数值:");
scanf("%d",&n);
printf("\n");
trangle(n);
}
void trangle(int n)
{
int i,j;
for(i=0; i<n; i++)
{
for(j=0; j<=n-i; j++) putchar(‘ ’);
for(j=0; j<=2*i; j++) putchar(‘*’);
putchar(‘\n’);
}
}
- 程序4
4.1 编C程序,定义数组存放一个学生的5门课程的成绩,输入成绩,并通过调用aver函数求平均成绩。
注意:函数名作参数。
4.2 参考代码
#include <stdio.h>
void main( )
{
float aver(float a[ ]);
int i;
float score[5],average;
printf("请输入该学生5门课程的成绩:\n");
for(i=0; i<5; i++)
scanf("%f",&score[i]);
average=aver(score);
printf("平均成绩是%5.2f\n",average);
}
float aver(float a[ ])
{
int i;
float ave,sum=0;
for(i=0; i<5; i++)
sum=sum+a[i];
ave=sum/5;
return ave;
}