13.3 函数
考点8 函数的定义、调用及参数传递
1.函数的定义
格式:类型标识符 函数名([形参列表]){
声明部分
语句部分
}
2.函数参数和返回值
函数的参数分为形式参数和实际参数。在定义函数时,函数名后面括号中的变量称为形式参数(简称“形参”);在主调函数中,函数名后面括号中的参数(可以是一个表达式)称为实际参数(简称“实参”)。形式参数与实际参数应该类型相同且个数相等。
函数的返回值是通过函数调用使主调函数能得到一个确定的值。返回值的类型应与函数类型标识符相同。
3.函数的调用
格式:函数名(实参列表)
函数的调用的方式:
函数语句:把函数调用作为一条语句,此时该函数不要求有返回值,只需要执行一定的操作。
函数表达式:函数出现在一个表达式中,称为函数表达式。因为要参与表达式的计算,所以要求函数有对应数据类型的返回值。
函数参数:函数调用作为一个函数的实参。
4.参数的传递
传递值:
函数名(实参列表)
传递引用:
函数名(&参数,…)
它们的区别:在值传递时,参数在函数执行过程中所产生的变化不被记录,即形式参数中值的变化不会影响实际参数的值,而在引用传递时,则恰好相反。
题型剖析:
1.函数的定义在上机考试中比较简单,其考查形式如下:
(1)函数类型的考查,要求根据主调函数的调用形式,写出被调用函数的类型标识符,如:___ fun(inta)。其类型可以是基本类型,也可以是用户自定义类型。要确定函数的类型,只需要确定函数应返回的类型即可,如果函数不返回值,则为void型。
(2)参数类型的考查,要求根据实参类型填写被调函数的形参类型,如:intfun(inta,___c)。这里要记住形参与实参一一对应。
2.函数的参数和返回值属于必考知识点,函数调用时经常需要返回值,所以要特别注意。
(1)函数的形参和实参,该考点考查形式比较灵活,除了在定义时其个数和类型要一一对应外,还要根据具体程序确定变量的名称。
(2)函数返回值,根据函数调用后要返回主调函数的值填写返回值变量名,如:return___。
考点9 迭代算法和递归算法
迭代算法:使用计算机解决问题的一种基本方法,它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出一个新值。迭代算法常用来求方程的近似根。
递归算法:在调用一个函数的过程中直接或间接调用其函数本身的方法,称为函数的递归调用。最常用的递归调用有:求n!、遍历树等。
题型剖析:求n!、Fibonacci数列、递归输出回文等是递归算法的典型应用,在填空题、改错题、编程题中均有出现,具体考查形式不固定,多是对算法中关键步骤的考查。
例:求10!。
#include<stdio.h>
longfun(intn)
{ if(n>1) return(n*fun(n-1));
return1;
}
main()
{printf("10!=%ld\n",fun(10));}