C語言函數教學方法
導語:針對C語言中函數的重要性及我校學生在學習過程中對函數的掌握情況,總結出一套實用的c語言函數教學方法。下面就由小編為大家介紹一下C語言函數教學方法,歡迎大家閱讀!
1序言
《C程序設計基礎》是我校工科非計算機專業的一門必修課程,目的是使學生掌握程序設計的基本方法,并形成正確的程序設計思想,培養學生用計算機解決本專業問題的能力,為后續課程的學習打下良好的基礎。
但在教學過程中發現,學生在學習函數這部分的知識時非常吃力,很多學生對此掌握的并不好,不能靈活的運用函數進行程序設計,主要的原因是所用教學方法效果較差。針對此問題,筆者在深入研究C語言函數教學方法的基礎上,通過詳細分析教學過程中學生的表現,并積極與學生溝通,總結出適合我校學生的函數教學方法,首先通過生活中常見的例子介紹函數的概念,并精心設計函數的引入問題,以此來闡述函數編程思想,然后重點講解函數的定義和調用方法,并通過實例強化學生函數設計的方法,最后對函數的設計方法進行總結。
2函數思想的引入
數學中的函數與C語言中的函數有什么區別?數學中的函數側重于自變量和因變量之間的映射關系,而C語言中的函數主要側重于功能的實現。
以計算13!為例,通常的計算方法是13×12×……×4×3×2×1=6227020800,但也會發現計算量非常大。熟悉計算器的學生也知道,計算器上有一個“n!”按鈕,我們只需按“13”,再按“n!”,就可以得到結果6227020800。兩種計算方法中筆者更喜歡后者,因為計算器中“n!”按鈕可以協助完成階乘計算,換言之,“n!”按鈕可以完成計算階乘的功能,與c語言中函數的概念非常接近,因此“n!”按鈕就是將求階乘的函數封裝起來了,我們甚至可以說計算器就是將若干個函數封裝起來的一個設備。所以通過計算器來理解C語言中函數的概念就比較容易了。有了函數,就可以多次使用它,就如同有了“n!”,不僅可以計算13!,也可以15!,17!等等。C語言中的函數就是功能獨立的一段代碼,能夠避免重復代碼,降低出錯率,提高程序的可讀性。函數機制的出現,也使多人共同開發大規模的程序成為可能。
進而引導學生回顧教學中以前學過的主函數和C語言中的一些常見的庫函數(如sqrt()),總結這些函數的共同點,標識符后面都有一個括號,并以一到兩個子函數為例,講解、編譯、運行,幫助學生更好地認識函數。
在學生對函數有了基本的認識之后,給學生說明并非所有的函數都是現成的,有很多是需要用戶自定義編寫的――用戶自定義函數。在教學中,筆者認為函數的分類最重要的標準就是函數的使用方式,根據函數的使用方式可以將函數分為數值計算函數(有返回值,類型不是void)和任務執行函數(無返回值,類型為void),數值計算函數因為有結果,使用時一般當做表達式的一部分或者函數參數,任務執行函數由于沒有結果,使用時一般獨立成一條語句。
3函數的定義和調用
3.1采用要素提取法完成函數定義
C語言函數設計主要圍繞函數類型,函數名,函數形式參數,函數返回值四個要素展開。
對于函數要素的教學部分,重點講解函數的定義與調用。函數定義的一般形式為:
類型說明符函數名(形式參數表)
{聲明部分;
語句部分;
return(返回值);}
對函數定義部分還需要掌握的是:(1)類型標識符:函數返回值類型,即結果類型。(2)函數名:合法標識符是函數的唯一標識。(3)形式參數表:由類型和變量名組成。(4)return(返回值):返回結果。
函數定義中的四個要素的提取方法可以參照用計算器求13!來說明,(1)類型說明符。13!的結果是6227020800,類型說明符就是根據結果的類型來確定,為int。(2)函數名。函數名是函數的.唯一標識,在用計算器求13!的過程中,函數名就相當于“n!”按鈕,這里用factorial來表示。(3)形式參數表。當計算13!時,形式參數表就是用來接收13的,假如求17!,那形式參數表就用來接收17,這里可以得出參數數量為一個,類型為int,因此用int x來定義形式參數。(4)返回值。13!的結果是6227020800,返回值就是6227020800。
以求階乘為例,定義函數:
intfactorial(int x)
{int s=1,i;
for(i=1;i<=x;i++)
{s=s*i;}
return s;}
3.2函數調用及虛實結合的過程
由上述函數定義可以看出,函數定義并沒有具體的結果,原因在于x的值未定,就如同在計算器上只按下“n!”沒有任何意義一樣。因此,函數的定義只是實現了函數的功能,而最終的目的在于使用函數,即函數的調用。
在函數的調用過程中,還需要重點講解實際參數和形式參數的區別,以及整個虛實結合的過程。在使用函數時后面括號中是具體的值,即實際參數。函數定義中括號中的參數是形式參數,沒有具體的值。在發生函數調用的時候,形式參數用來接收實際參數的值。如:
voidmain()
{int a=13,c;
c=factorial(a);
printf(“%d的階乘為:%d/n”,a,c);}
實際參數是a,有確定的值為13,形式參數為x,用來接收a的值。參數傳遞過程如圖2所示:
在函數定義和調用中需要重點強調的地方:
1)函數名是函數的唯一標識。2)函數必須先定義后使用。3)如果函數為非void類型,函數中必須有return語句。4)普通變量傳遞時為單向傳遞,即由實際參數傳向形式參數。
【C語言函數教學方法】相關文章:
C語言中遞歸函數的教學方法11-16
C語言函數 atoi()10-28
淺談C語言函數10-22
關于C語言對函數11-20
C語言函數的含義10-04
C語言文件操作函數11-04
C語言函數的聲明以及函數原型10-05
C語言指針函數和函數指針詳解06-10
c語言數學函數的介紹11-18
这里有更多你想看的
|
- 上一篇:課堂教學的總結 課堂教學總結報告
- 下一篇:返回列表