第七章画数及变量存贮美型 第七章画数及变量存贮类型 7,1函数基础与C程序结构 72函数的定义和声明 73函数的调用 74函数的嵌套与递归 75变量的存贮类别 BACK
第七章 函数及变量存贮类型 第七章 函数及变量存贮类型 7.1 函数基础与C程序结构 7.2 函数的定义和声明 7.3 函数的调用 7.4 函数的嵌套与递归 7.5 变量的存贮类别
第七章画数及变量存贮美型 71函数基础与C程序结构 711C程序的结构化设计思想 C程序 源程序1 源程序2 源程序n 数据定义 main() 自定义函数 说明部分 执行部分 ≡图7C程序结构示意图
第七章 函数及变量存贮类型 7.1 函数基础与C程序结构 7.1.1 C程序的结构化设计思想 图 7.1 C程序结构示意图 C程序 源程序 1 源程序 2 数据定义 m ai n( ) 源程序 n 自定义函数 说明部分 执行部分 …
第七章画数及变量存贮类型 712函数概述 在C程序设计中,函数是独立的C程序模块,它完成 个特定任务并可选择是否将一个值返回调用程序。在C语言 中,子程序被称为函数,它相应于其它高级语言中的过程 (无返回值的子程序)和函数(通过函数名返回一个值的 子程序)。一个C程序一般由多个函数组成,其中必须有 个且仅有一个名为main的主函数,其余为被main函数或其 它函数调用的函数,无论main函数位于程序中什么位置, C程序总是从main函数开始执行
第七章 函数及变量存贮类型 7.1.2 函数概述 在C程序设计中,函数是独立的C程序模块,它完成一 个特定任务并可选择是否将一个值返回调用程序。在C语言 中, 子程序被称为函数,它相应于其它高级语言中的过程 (无返回值的子程序)和函数(通过函数名返回一个值的 子程序)。一个C程序一般由多个函数组成,其中必须有一 个且仅有一个名为main的主函数,其余为被main函数或其 它函数调用的函数,无论main函数位于程序中什么位置, C程序总是从main函数开始执行
第七章画数及变量存贮美型 main函数可调用其它函数来实现所需的功能。被main函 数调用的函数分为两类:一类是由系统提供的标准库函数, 例如,标准输入输出函数( scanf, printi; getche, putchar,…) 数学计算函数(sin,cos,fabs,sqrt,…)、数据格式转 换函数(atoi,atof, sscanf, sprint,…)、字符串处理函数 ( strlen, strcpy, strcmp,…)和文件读写函数(fead, fwrite, fopen,…)等。这类函数可以由用户程序直接调用; 另一类是用户在自己的程序中定义的函数,即需要由用户自 己编写的函数
第七章 函数及变量存贮类型 main函数可调用其它函数来实现所需的功能。 被main函 数调用的函数分为两类:一类是由系统提供的标准库函数, 例如, 标准输入输出函数(scanf, printf, getche, putchar, …)、 数学计算函数(sin, cos, fabs, sqrt, …)、 数据格式转 换函数(atoi,atof,sscanf,sprintf, …)、 字符串处理函数 (strlen,strcpy,strcmp, …)和文件读写函数(fread, fwrite, fopen, …)等。 这类函数可以由用户程序直接调用; 另一类是用户在自己的程序中定义的函数,即需要由用户自 己编写的函数
第七章画数及变量存贮美型 例71用户自定义函数—求数的平方。 t include ong square(long) /*函数声明* void main( flong in -num, result printf( "Inp put an integer scanf( "%ld",&in -num result=square(in -num) /*函数调用* printf("\ nThe square number of %ld is %ld", in -num, result)
第七章 函数及变量存贮类型 例 7.1 用户自定义函数——求数的平方。 #include long square(long); /* 函数声明 */ void main() { long in -num, result; printf("Input an integer: "); scanf("%ld", &in -num); result=square (in -num); /* 函数调用 */ printf("\nThe square number of %ld is %ld", in -num, result); }
第七章画数及变量存贮类型 long square(long x) /*函数定义* f long -square *说明部分*/ X -square=x'X /*执行部分* returnx -square Input an integer 100 (输入 The square number of 100is10000(输出)
第七章 函数及变量存贮类型 long square (long x) /* 函数定义 */ { long x -square; /* 说明部分 */ x -square=x*x; /* 执行部分 */ return x -square; } Input an integer: 100 (输入) The square number of 100 is 10000 (输出)
第七章画数及变量存贮美型 72函数的定义和声明 721函数的定义 例72计算x的n次方,x=2,-3;(n=1,2,9) #t include int main (void) /*测试 power函数*/ i int i; double power(int, int);/*函数声明*/ for(i=1;i<10;i++) printf( "power(2, %0d)=%84f, power(-3, %d)=%11. 4fn
第七章 函数及变量存贮类型 7.2 函数的定义和声明 7.2.1 函数的定义 例 7.2 计算x的n次方,x=2,-3;(n=1, 2, … 9)。 #include int main(void) /* 测试power函数 * { int i; double power(int, int); /* 函数声明 */ for(i=1; i<10; i++) printf("power(2, %d)=%8.4f, power(-3, %d)=%11.4f\n"
第七章画数及变量存贮美型 1, power(2 (2,1,i, power(-3,1) return O double power(int x,intn)/*函数首部* iint i /*说明部分* double p p /*执行部分* for(il; K<=n; 1++) p*=X return(p /*返回p值*
第七章 函数及变量存贮类型 i, power(2, i), i, power(-3, i)); return 0; } double power(int x, int n) /* 函数首部 */ { int i; /* 说明部分 */ double p; p=1; /* 执行部分 */ for(i=1; i<=n; i++) p*=x; return(p); /* 返回p值 */ }
第七章画数及变量存贮类型 输出 power(2,1)=2.0000, power(-3,1)=-3.0000 power(2,2)=4.0000, power(-3,2)=9.0000 power(2,3)=8.0000, power(-3,3)=-27.0000 power (2, 4) 16.0000, power(-3,4)=81.0000 power(2,5)=32.0000, power(-3,5)=-243.0000 power (2, 6) 64.000, power(-3,6)=729.0000 power(2,7)=128.0000, power(-3,7)=-2187.0000 power(2,8)=256.0000, power(-3,8)=6561.0000 power(2,9)=512.0000, power(-3,9)=19683.0000
第七章 函数及变量存贮类型 输出: power(2, 1)= 2.0000, power(-3, 1)= -3.0000 power(2, 2)= 4.0000, power(-3, 2)= 9.0000 power(2, 3)= 8.0000, power(-3, 3)= -27.0000 power(2, 4)= 16.0000, power(-3, 4)= 81.0000 power(2, 5)= 32.0000, power(-3, 5)= -243.0000 power(2, 6)= 64.0000, power(-3, 6)= 729.0000 power(2, 7)=128.0000, power(-3, 7)= -2187.0000 power(2, 8)=256.0000, power(-3, 8)= 6561.0000 power(2, 9)=512.0000, power(-3, 9)=-19683.0000
第七章画数及变量存贮类型 函数名 power是一个标识符, power函数具有 double类型的 返回值,它有两个int类型的参数x和n。{}括起来的部分是 函数体,其中的说明部分“inti; double p;”说明i、p是在 power函数内部使用的局部变量。执行部分的“ return(p);” 语句将表达式p的值返回给main函数的调用处,p的值就是 power函数的返回值(简称函数值)。 函数定义的一般形式为 存贮类型标识符类型标识符函数名(形式参数表列及类 型说明) {说明部分 语句部分
第七章 函数及变量存贮类型 函数名power是一个标识符,power函数具有double类型的 返回值,它有两个int类型的参数x和n。{ }括起来的部分是 函数体,其中的说明部分“int i; double p; ” 说明i、p是在 power函数内部使用的局部变量。执行部分的“return(p); ” 语句将表达式p的值返回给main函数的调用处,p的值就是 power函数的返回值(简称函数值)。 函数定义的一般形式为: 存贮类型标识符 类型标识符 函数名(形式参数表列及类 型说明) { }