- 相關(guān)推薦
C語(yǔ)言教學(xué)中函數(shù)的調(diào)用問(wèn)題
導(dǎo)語(yǔ):C語(yǔ)言在調(diào)用時(shí)經(jīng)常會(huì)遇到各種各樣的問(wèn)題,下面就由小編為大家介紹一下C語(yǔ)言教學(xué)中函數(shù)的調(diào)用問(wèn)題,歡迎大家閱讀!
1 函數(shù)調(diào)用問(wèn)題的提出
本人在教學(xué)過(guò)程中,出現(xiàn)了多次這種問(wèn)題。在講授函數(shù)的概念、函數(shù)的定義和函數(shù)的調(diào)用之后,給學(xué)生出一道題目用函數(shù)來(lái)實(shí)現(xiàn),通常情況下,該問(wèn)題如果不用函數(shù)方法而用其他方法做的話,學(xué)生可能會(huì)做得出來(lái),但讓他們必須用自定義函數(shù)的方法來(lái)實(shí)現(xiàn),他們就感覺(jué)無(wú)從下手,并不是這個(gè)問(wèn)題本身很難,歸根結(jié)底,學(xué)生對(duì)于怎么自定義函數(shù),定義多少個(gè)參數(shù),怎么在主調(diào)函數(shù)中調(diào)用自己定義的被調(diào)函數(shù)不知道如何做。從而導(dǎo)致了用函數(shù)解決的問(wèn)題卻用其他方法實(shí)現(xiàn)。在這里,我個(gè)人通過(guò)自己的反復(fù)思量,為了提高講授函數(shù)調(diào)用的教學(xué)效果,自己總結(jié)了幾條經(jīng)驗(yàn)。
2 函數(shù)調(diào)用問(wèn)題方法討論
要知道函數(shù)怎么調(diào)用,首先得知道用戶怎么定義函數(shù)。
2.1 函數(shù)定義的一般格式:
類型標(biāo)識(shí)符[3] 函數(shù)名(形式參數(shù)列表)
{ 聲明部分
語(yǔ)句部分
}
這個(gè)格式定義的函數(shù)為有參函數(shù),“形式參數(shù)列表”中的參數(shù)被稱為形參,有些函數(shù)是無(wú)參函數(shù),則“形式參數(shù)列表”可以沒(méi)有,但括弧不能省略,即無(wú)參函數(shù)。
函數(shù)在使用之前要先聲明、定義,然后才能調(diào)用[1]。
2.2 函數(shù)調(diào)用的一般形式為:
函數(shù)名(實(shí)參表列)
函數(shù)在程序中出現(xiàn)的位置來(lái)分,可以有以下三種函數(shù)調(diào)用方式[2]:
、俸瘮(shù)語(yǔ)句
把函數(shù)調(diào)用作為一個(gè)語(yǔ)句,這種方式不要求函數(shù)帶回值,如打印圖形、顯示字符串等。只要函數(shù)完成一定的操作。
、诤瘮(shù)表達(dá)式
函數(shù)出現(xiàn)在一個(gè)表達(dá)式中,這種表達(dá)式稱為函數(shù)表達(dá)式。要求函數(shù)帶回一個(gè)確定的值以參加表達(dá)式的運(yùn)算。如:c=10*max(a,b),其中,函數(shù)max就是表達(dá)式的一部分。
、酆瘮(shù)參數(shù)
函數(shù)調(diào)用作為一個(gè)函數(shù)的實(shí)參,如:printf(“%d”,max(a,b));是把max(a,b)作為printf函數(shù)的一個(gè)參數(shù)。
2.3 函數(shù)問(wèn)題案例講解
、偈紫葟膸(kù)函數(shù)的調(diào)用案例著手講授,學(xué)生自然就很輕松上手。
眾所周知,庫(kù)函數(shù)中的數(shù)學(xué)函數(shù)學(xué)生從高中就經(jīng)常接觸到,在計(jì)算機(jī)教學(xué)的其他課程里面也會(huì)經(jīng)常出現(xiàn),如excel里面就有數(shù)學(xué)函數(shù),學(xué)生們已經(jīng)很熟悉了,如下面一道編程題就需要調(diào)用庫(kù)函數(shù)解決。
用C語(yǔ)言求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)就是系統(tǒng)自帶的數(shù)學(xué)函數(shù),i和k是它自帶的兩個(gè)參數(shù),其功能是計(jì)算i的k次方。通過(guò)這個(gè)系統(tǒng)數(shù)學(xué)函數(shù)的調(diào)用程序的編寫(xiě)及調(diào)試,學(xué)生們很輕松就知道庫(kù)函數(shù)怎么調(diào)用,即函數(shù)名加上函數(shù)括號(hào)里面的參數(shù)。
另外大家使用庫(kù)函數(shù)的時(shí)候,一定要在本文件開(kāi)頭用#include命令,將調(diào)用有關(guān)庫(kù)函數(shù)時(shí)所需用到的信息“包含”到本文件中來(lái)。該程序開(kāi)頭用語(yǔ)句# include"math.h",即可將數(shù)學(xué)庫(kù)函數(shù)“包含”到主函數(shù)中來(lái)。
、谟么蠹沂煜で液(jiǎn)短的函數(shù)編程案例入手講解。
典型小案例教學(xué)具有很強(qiáng)的啟發(fā)性,既有利于學(xué)生學(xué)習(xí),也有利于老師教授。
用C語(yǔ)言函數(shù)實(shí)現(xiàn)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));
}
在這個(gè)程序代碼中,程序行l(wèi)ong fnsum(int n)是自定義函數(shù),fnsum是函數(shù)名,n是定義的一個(gè)形參,也僅需要一個(gè),表示1+2+……+20共有多少個(gè)數(shù)求和。由于fnsum函數(shù)代碼寫(xiě)在main()函數(shù)之前,可以不進(jìn)行聲明。反之,若fnsum函數(shù)代碼寫(xiě)在main()函數(shù)之后,必須用代碼long fnsum(int n);進(jìn)行聲明。fnsum函數(shù)功能即是題目要完成的功能實(shí)現(xiàn),最后通過(guò)main()主函數(shù)定義一個(gè)實(shí)參n并賦值20,在printf函數(shù)中通過(guò)代碼printf("%d",fnsum(n)),調(diào)用了自定義函數(shù)fnsum,并將實(shí)參n=20傳遞給自定義函數(shù)fnsum(int n)中的形參n,最終將結(jié)果打印輸出。
在main()主函數(shù)中,fnsum這個(gè)函數(shù)調(diào)用也可以改成如下:
main()
{
int n=20,sum;
sum=fnsum(n);
printf("%d",sum);
}
這個(gè)是通過(guò)函數(shù)表達(dá)式的方法進(jìn)行函數(shù)調(diào)用,通過(guò)這個(gè)自定義函數(shù)的簡(jiǎn)單案例講解,學(xué)生很輕松能夠理解函數(shù)怎么自定義并在main()主函數(shù)中調(diào)用。
【C語(yǔ)言教學(xué)中函數(shù)的調(diào)用問(wèn)題】相關(guān)文章:
C語(yǔ)言函數(shù)的遞歸調(diào)用08-26
C語(yǔ)言函數(shù)的運(yùn)用及調(diào)用10-09
C語(yǔ)言函數(shù)的遞歸和調(diào)用08-22
C語(yǔ)言函數(shù)調(diào)用與參數(shù)傳遞08-05
C語(yǔ)言中Swift函數(shù)調(diào)用實(shí)例09-25
c語(yǔ)言調(diào)用函數(shù)的使用方法11-04
匯編調(diào)用C函數(shù)10-29