内容正文:
第6章 函数
6.1函数概述
6.2函数的定义和说明
6.3函数的调用
6.4函数的参数
6.6变量的存储类型
6.5函数的嵌套调用与递归调用
大学C/C++语言程序设计程序设计 第6章 函数
提出问题
例1:编程求下面公式 的值,如何设计算法使程序更加高效?
例3:每个偶数都可以分解成2个素数之和
例2:求100以内的素数。
大学C/C++语言程序设计程序设计 第6章 函数
算法的设计
步骤1:编写一段程序来实现阶乘的求解,取名为f;
步骤2:三次调用 f,分别求得m!, n!, (m-n)!;
步骤3:主函数main中求得
大学C/C++语言程序设计程序设计 第6章 函数
程序设计时,我们可以将复杂的问题进行分解。编写一段小程序就能解决一个小问题,然后将这些小程序拼装起来就能解决非常大而复杂的问题。在 C 中,这些小程序统称为函数。
6.1函数概述
复杂问题
main()
函数1
函数2
函数3
函数4
函数5
大学C/C++语言程序设计程序设计 第6章 函数
从函数定义的角度看,函数可分为库函数和用户定义函数两种。
① 库函数:由C系统提供,只需在程序前写出包含有该函数原型的头文件即可在程序中直接调用。
比如: fabs(x), pow(2,3), sqrt(16)
② 用户定义函数:由用户按需要编写的函数。对于用户自定义函数,不仅要在程序中定义函数本身,而且还必须在主调函数模块中对该被调函数进行函数类型说明,然后才能调用。
6.1.2 函数分类
函数分类1
大学C/C++语言程序设计程序设计 第6章 函数
从函数是否带参数角度来划分:
函数又可分为无参函数和有参函数
函数分类2
getchar(); 无参函数
pow(2,5); 有参函数
大学C/C++语言程序设计程序设计 第6章 函数
6.2.1 函数定义
C语言函数定义格式如下:
[函数返回值的类型名] 函数名([类型名 形式参数1,类型名 形式参数2,…])
{
[内部变量说明部分;]
[语句执行部分;]
}
其中[ ]内为可选项。注意:函数名、一对圆括号和花括号不能省!
6.2 函数的定义
函数首部
函数体
大学C/C++语言程序设计程序设计 第6章 函数
1.无参函数的一般形式
函数返回值的类型名 函数名( void )
{ [内部变量说明语句部分;]
[可执行语句部分;]
}
例 : 构造一个输出一行”*”的函数:
printstar(void)
{ printf(“******************
”);}
大学C/C++语言程序设计程序设计 第6章 函数
2.有参函数
例:编写函数求2个数的最大值;
大学C/C++语言程序设计程序设计 第6章 函数
例:编写函数求2个数的最大值;
double max(double a,double b)
{ double z;
z=a>b?a:b;
printf(“z=%lf
”,z);
}
不能写成:
double max(double a,b)
{ double z;
z=a>b?a:b;
printf(“z=%lf
”,z);
}
函数返回值类型
函数名
形式参数类型说明
及参数列表
形式参数一定
要分别说明其类型
大学C/C++语言程序设计程序设计 第6章 函数
注 意:
1. 在同一程序中,函数名必须唯一;
2.定义函数时没有写明函数返回值类型,则默认为int类型;
大学C/C++语言程序设计程序设计 第6章 函数
6.2.2 函数的返回值
大学C/C++语言程序设计程序设计 第6章 函数
函数的返回值相关选择题(6)
返回语句
形式: