當前位置:才華齋>計算機>C語言>

C語言教學中函式的呼叫問題

C語言 閱讀(2.01W)

導語: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()主函式中呼叫。