文档介绍:1第9章函数与程序结构编程模块化,从上到下逐步细化C语言程序由一个主函数或一个主函数与若干其它函数构成每个函数是独立的模块§ ()函数1函数2函数m函数11函数mq函数1q函数m12例9-1设计一个常用圆形体体积的计算器。采用对话方式输入1、2、3分别计算球体、圆柱体、圆锥体的体积,并输入相应的计算参数结构化考虑main()cal()vol_ball()vol_cylind()vol_cone()#include<>#define PI vol_ball(){double r; printf("球半径:");scanf("%lf",&r); retrun 4*PI*r*r*r/3;} double vol_cylind(){double r,h; printf("圆柱半径和高:");scanf("%lf%lf",&r,&h); retrun PI*r*r*h;}double vol_cone(){double r,h; printf("圆锥底半径和高:");scanf("%lf%lf",&r,&h); retrun PI*r*r*h/3;}voidcal(int sel){switch(sel) {case 1:printf("球体积=%f\n",vol_ball());break; case 2:printf("圆柱体积=%f\n",vol_cylind());break; case 3:printf("圆锥体积=%f\n",vol_cone());}}void main(){int sel; while(1) {printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); scanf("%d",&sel); if(sel<1||sel>3)break;else cal(sel);}} 函数的嵌套调用函数嵌套在被调用函数体中又调用另一个函数如main() a函数b函数{ { {调用a函数调用b函数} } }例9-1mainabvoid main(){int sel; while(1) {… cal(sel); }}void cal(int sel){switch(sel) { ……. }}double vol_ball(){……} double vol_cylind(){……}double vol_cone(){……} 函数与程序文件模块C程序源程序文件1源程序文件2源程序文件n预编译命令函数1函数m注?C程序由一个或多个源程序文件组成,每个源程序文件由一个或多个函数构成。?一个源程序文件是一个编译单位,分别编译,然后连接成执行文件。?多个源程序文件中只能一个主函数main()。5多个源程序文件组合例9-1分别存储在2个源文件中。#include<>void cal(int sel);void main(){int sel; while(1) {printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); scanf("%d",&sel); if(sel<1||sel>3)break;else cal(sel);}}void cal(int sel){switch(sel) {case 1:printf("球体积=%f\n",vol_ball()); break; case 2:printf("圆柱体积=%f\n",vol_cylind()); break; case 3:printf("圆锥体积=%f\n",vol_cone());}}源文件1:#define PI double vol_ball(){double r; printf("球半径:");scanf("%lf",&r); return 4*PI*r*r*r/3;} double vol_cylind(){double