c++3函数讲义.ppt
文本预览下载声明
第3章??????函数 第一节 函数的定义和调用 第二节 函数间的参数传递 第一节 函数的定义与调用 高级语言的函数是结构化程序设计的重要形式,函数通常完成对数据的加工,因此函数有数据的输入输出,函数有几个重要特征:函数名、形式参数、返回值 形式参数:函数加工的数据对象输入; 返回值:函数的加工的结果输出; 函数名:函数调用标志。 函数名、形式参数、返回值决定了函数定义的格式 类型标识符 函数名(形式参数表) { 说明部分 语句; } 类型标识符表示返回值类型, 注:形式参数表和类型标示符均可没有,用void表示,此时,此时,函数只完成一个动作,没有输入或输出。 一、 函数的定义 书写规则 void aaa(void); main() { aaa(); } void aaa(void) { printf(“hello!”); } 二、调用方式 函数名(参数表 ) ; 若有返回值,则可出现在表达式中 若无返值,则可单独出现 例: 在指定位置打印某个信息 void pin (int x, int y); //函数原型 main() { int i=2,j=10; pin(i , j ); } void pin (int x, int y) { gotoxy(x,y); printf(########); } 注意:函数在传值时,既可以传常量值,也可以传变量值。但要类型相符。 三、 函数返回值 通过函数调用使用函数能得到一个确定的值,这就是函数的返回值。如果一个函数需要返回值,必须在定义时标明类型以及在函数体内使用return 返回值。格式为: 或 return 表达式; return (表达式); 如果一个函数只完成一个动作,不需要返回值,在定义时用类型void , 在函数体内无需使用return 例: int max (int x, int y); main( ) {int a, b, c; scanf(%d, %d,, a, b); c=max(a, b); printf(max=%d\n, c); } int max (int x, int y) {int z; z=xy? x:y; return (z); } main ( ) a=printstar( ); b=print_message( ); c=printstar( ); printstar( ) {printf(************\n); } print_message( ) {printf( How do you do!\n);} {int a, b, c; printf(a=%d, b=%d, c=%d\n, a, b, c); } 如: } 四、 函数原型 一个函数实现一个小问题,即:设计函数先要确定问题的数据输入和输出,然后才能写出原型。 课堂练习1:写函数原型 1、函数实现求2个数的最大数; 2、函数求已知勾股的弦; 3、函数向屏幕输出一个数组。 课堂练习2:写函数 1、写一个函数用来判断是否为素数,在主程序中输入一个整数,给出是否素数的信息。 2、写一个函数求一个数的阶乘,进一步写个函数求2个数组合数。 一、数据传递方式之一 --形参与实参 调用时: 实参值 单向 传递 形参。 函数被调用时,临时分配单元给形参,调用完毕, 这些单元被释放。 实参: 出现在调用函数中的参数。 形参: 出现被调用函数中(定义中)的参数。 1、形参与实参 第二节 函数的数据传递 例:参数传递过程 c=max(a, b); 在main主函数中 max(int x, int y) { int z; z=xy? x:y; return(z); } a b c x y z 10 15 15 10 15 15 x y z 例: 阅读下列程序,写出运行结果 swap(int x, int y) {int t; t=x; x=y; y=t; printf(x=%d, y=%d\n, x, y);} main( ) { int a, b; scanf(%d, %d, a, b); if (ab) swap(a, b); printf(a=%d, b=%d\n, a, b); } a b x y t 15 19 15 19 15 19 15 关于函数要注意以下几点: 1、函数与主函数的书写格式; 2、函数有无返回值、返回值的类型、以及如何返回值; 3、函数有
显示全部