当前位置:学者斋 >

计算机 >C语言 >

C语言教学中函数的调用问题

C语言教学中函数的调用问题

导语:C语言在调用时经常会遇到各种各样的问题,下面就由小编为大家介绍一下C语言教学中函数的调用问题,欢迎大家阅读!

C语言教学中函数的调用问题

  1 函数调用问题的提出

本人在教学过程中,出现了多次这种问题。在讲授函数的概念、函数的定义和函数的调用之后,给学生出一道题目用函数来实现,通常情况下,该问题如果不用函数方法而用其他方法做的话,学生可能会做得出来,但让他们必须用自定义函数的方法来实现,他们就感觉无从下手,并不是这个问题本身很难,归根结底,学生对于怎么自定义函数,定义多少个参数,怎么在主调函数中调用自己定义的被调函数不知道如何做。从而导致了用函数解决的问题却用其他方法实现。在这里,我个人通过自己的反复思量,为了提高讲授函数调用的教学效果,自己总结了几条经验

  2 函数调用问题方法讨论

要知道函数怎么调用,首先得知道用户怎么定义函数。

2.1 函数定义的一般格式:

类型标识符[3] 函数名(形式参数列表)

{ 声明部分

语句部分

}

这个格式定义的函数为有参函数,“形式参数列表”中的参数被称为形参,有些函数是无参函数,则“形式参数列表”可以没有,但括弧不能省略,即无参函数。

函数在使用之前要先声明、定义,然后才能调用[1]。

2.2 函数调用的一般形式为:

函数名(实参表列)

函数在程序中出现的位置来分,可以有以下三种函数调用方式[2]:

①函数语句

把函数调用作为一个语句,这种方式不要求函数带回值,如打印图形、显示字符串等。只要函数完成一定的操作。

②函数表达式

函数出现在一个表达式中,这种表达式称为函数表达式。要求函数带回一个确定的值以参加表达式的运算。如:c=10*max(a,b),其中,函数max就是表达式的一部分。

③函数参数

函数调用作为一个函数的实参,如:printf(“%d”,max(a,b));是把max(a,b)作为printf函数的一个参数。

2.3 函数问题案例讲解

①首先从库函数的调用案例着手讲授,学生自然就很轻松上手。

众所周知,库函数中的数学函数学生从高中就经常接触到,在计算机教学的`其他课程里面也会经常出现,如excel里面就有数学函数,学生们已经很熟悉了,如下面一道编程题就需要调用库函数解决。

用C语言求14+24+34+……94+104之和。

#include"math.h"

main()

{int n=10,k=4;

long y=0;

for(i=1;i<=n;i++)

y=y+pow(i,k);

printf("%d",y);

}

其中,pow(i,k)就是系统自带的数学函数,i和k是它自带的两个参数,其功能是计算i的k次方。通过这个系统数学函数的调用程序的编写及调试,学生们很轻松就知道库函数怎么调用,即函数名加上函数括号里面的参数。

另外大家使用库函数的时候,一定要在本文件开头用#include命令,将调用有关库函数时所需用到的信息“包含”到本文件中来。该程序开头用语句# include"math.h",即可将数学库函数“包含”到主函数中来。

②用大家熟悉且简短的函数编程案例入手讲解。

典型小案例教学具有很强的启发性,既有利于学生学习,也有利于老师教授。

用C语言函数实现1+2+3+……+20之和。

long fnsum(int n)

{int i;

long y=0;

{for(i=1;i<=n;i++)

y=y+i;}

return y;

}

main()

{

int n=20;

printf("%d",fnsum(n));

}

在这个程序代码中,程序行long fnsum(int n)是自定义函数,fnsum是函数名,n是定义的一个形参,也仅需要一个,表示1+2+……+20共有多少个数求和。由于fnsum函数代码写在main()函数之前,可以不进行声明。反之,若fnsum函数代码写在main()函数之后,必须用代码long fnsum(int n);进行声明。fnsum函数功能即是题目要完成的功能实现,最后通过main()主函数定义一个实参n并赋值20,在printf函数中通过代码printf("%d",fnsum(n)),调用了自定义函数fnsum,并将实参n=20传递给自定义函数fnsum(int n)中的形参n,最终将结果打印输出。

在main()主函数中,fnsum这个函数调用也可以改成如下:

main()

{

int n=20,sum;

sum=fnsum(n);

printf("%d",sum);

}

这个是通过函数表达式的方法进行函数调用,通过这个自定义函数的简单案例讲解,学生很轻松能够理解函数怎么自定义并在main()主函数中调用。

  • 文章版权属于文章作者所有,转载请注明 https://xuezhezhai.com/jsj/cyuyan/zxlnk.html