文档介绍:【】阅读实例程序,了解C语言程序的执行过程。
返回
#include <>
#include <>
#define PI
float sup_area(float r);
float volume(float r);
main()
{ float a=-5,b,c,d;
b=fabs(a);
c=sup_area(b);
d=volume(b);
printf("c=%f,d=%f\n",c,d);
}
预处理命令
函数原型说明
主函数
float sup_area(float r)
{ float s;
s=4*PI*r*r;
return s;
}
float volume (float r)
{ float v;
v=*PI*r*r*r;
return v;
}
sup_area函数的定义(计算球的表面积)
volume函数的定义(计算球的体积)
运行结果:c=,d=
……
fabs函数
……
其它函数
a=-5;
b=fabs(a);
c=sup_area(b);
d=volume(b);
……
主函数
①
②
③
④
s=4*PI*r*r;
return s;
sup_area函数
⑤
⑥
⑦
v=*PI*r*r*r;
return v;
volume函数
形参与实参
形式参数:定义函数时函数名后面括号中的变量名
实际参数:调用函数时函数名后面括号中的表达式
c=max(a,b);
(main 函数)
(max 函数)
max(int x, int y)
{ int z;
z=x>y?x:y;
return(z);
}
例比较两个数并输出大者
main()
{ int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("Max is %d",c);
}
max(int x, int y)
{ int z;
z=x>y?x:y;
return(z);
}
形参
实参
说明:
实参必须有确定的值
形参必须指定类型
形参与实参类型一致,个数相同
若形参与实参类型不一致,自动按形参类型转换———函数调用转换
形参在函数被调用前不占内存;函数调用时为形参分配内存;调用结束,内存释放
形参与实参
形式参数:定义函数时函数名后面括号中的变量名
实际参数:调用函数时函数名后面括号中的表达式
、函数参数及其传递方式
值传递方式
方式:函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值
特点:
形参与实参占用不同的内存单元
单向传递
、函数参数及其传递方式
7
11
x:
y:
调用前:
调用结束:
7
11
x:
y:
/**/
#include <>
main()
{ int x=7,y=11;
printf("x=%d,\ty=%d\n",x,y);
printf("swapped:\n");
swap(x,y);
printf("x=%d,\ty=%d\n",x,y);
}
swap(int a,int b)
{ int temp;
temp=a; a=b; b=temp;
}
调用:
7
11
a:
b:
7
11
x:
y:
swap:
7
11
x:
y:
11
7
a:
b:
temp
例交换两个数
课堂练习:调用自定义函数计算1~n的和
编写程序,输入n的值,并调用自己编写的函数计算1至n的和。
主模块
计算1至n的和
开始
定义n和a
输入n的值
调用自编函数计算1至n之和
输出结果
结束
主函数的流程图
主函数框架:
main()
{ int n=0,a=0;
printf("Input n:");
scanf("%d",&n);
a=1至n的和
printf("%d\n",a);
}