摘 要:C語言是計算機中一門高級程序設計語言,目前是國際上廣泛流行的一種結構化語言,它注重培養學生編程能力和邏輯思維能力。在教學過程中遇到很多不理想問題,針對實際問題,提出教師要采用引導式、啟發式、課堂結合實踐式和上機考試的教學方法。本文就C語言的教學方法以及程序設計中要注意的問題進行了簡要分析。
關鍵詞:C語言;結構化;計算機;編程語言
C語言程序設計是各大類高校開設的一門必修專業基礎課,市計算機專業和非計算機專業都要開設的一門課。學習該課程是讓學生鍛煉解決實際問題的編程能力和邏輯思維能力。C語言程序設計語言發展這么多年,很多知識都根深蒂固,但教學方法還是以往的以理論知識為主,忽略了學生的程序設計思維方式和編程能力的培養,為改變這一現象提出以下幾點教學方式。
做好第一堂課的引導
講述C語言的發展歷史,著重強調C語言學習的重要性,C語言作為基礎語言為以后學習其他語言奠定基礎[1],比如學習C++語言、C#語言,JAVA語言時都是以C語言為基礎進行升華;講述C語言應用非常廣泛,比如應用在通信信息,底層處理,內存較小的游戲;講述C語言在各大學都會作為基礎課程開設,非計算機的學生也要學習。不僅這樣,在各大國考和社會考試中都有C語言的出現,比如考研時計算機專業不用多說,C語言會作為一門專業課進行考試,會占75分的分值。在計算機二級、三級的考試中都有C語言的方向選擇,在程序員考試中,C語言一直貫穿初級、中級、高級,考核內容更是占到很大的比例;
啟發式教學
大多數教師過分注重C語言的語法內容,一開始就講解純理論上的內容,很多同學反映學習起來比較難,部分同學反映上課語法規則能聽懂,但是上機練習時卻大腦一片空白,不知從何下手,毫無頭緒,這就是學生還沒有真正理解這些語法內容在程序設計中的作用。這會讓學生覺得C語言是一門枯燥、無味的課程,激發不起學習的欲望。也會讓后續的課程學習中更加無法理解。
可以采用啟發式的教學方式,比如在講解選擇結構這一節課程,首先給出案例的算法:輸入3個數a,b,c,要求按由大到小的順序輸出。根據以上算法畫出一個判斷大小的流程圖。有了案例,運行給學生們看結果,這時候就能勾起學生的好奇。在問:如何在c語言中實現這個算法呢?那么,該算法的核心內容就是選擇結構,那如何在C語言中使用選擇結構呢?引出if的定義以及使用方法。
將案例放在課程的開端作為線索,案例最好多選用結合實際生活的算法 ,引起學生的好奇心,這時候再把課程的知識點引出來,學生接受起來就能清楚知道學習這個知識點是要用在哪里。
課堂與實踐相結合的教學方式
在課堂上,傳統的教學方式只是把理論知識點逐一交給學生,很多學生只是在課堂上聽懂了所將內容,課下做練習不知從何做起,這就是課堂與實踐相脫離了。C語言之父D.M.Ritchie在其經典著作《The C Programming Language》中寫到,“學習心得程序設計語言最佳的途徑是編寫程序”[2]。這就是編程練習的重要性。
上機實踐是C語言課程的重要組成部分,是對理論知識的延伸。上機練習可以很好的鍛煉學生們的編程思想和編程規范,只有動手去做了,理論知識才有的放矢。比如,在講解從鍵盤輸入兩個數,交換兩個數的值。首先引導學生,第一步,要交換兩個變量得先定義兩個變量如x,y;第二步,從鍵盤輸入scanf(“%d%d”,&x,&y);這里提醒學生注意scanf的書寫方式要在變量前加&;第三步,進行2個數的交換,提醒學生兩個數直接進行交換能成功嗎?不能成功,那加入一個中間變量呢?第四步,輸出交換后兩個數的值printf(“%d%d”,x,y);幫助學生理清思路,然后讓學生思考怎么去寫代碼,最后進行講解。
在一堂課中可以舉出多個例子,用同樣的方式講解,最后,上機實驗課時給學生留適當的題目進行練習,以加分的方式驗收學生的編程結果,這樣更能調動同學們的積極性。
改變以往的筆試考試為上機考試
以往的C語言考試形式都是以試卷的形式,這對于想要學好這門語言的學生來說并不好,試卷的很多題目只要習題冊會做了,最后考試題型就都會做了,沒有挑戰性,并不適合培養學生的編程能力和邏輯思維。可以改為上機考試,結合C語言所學的內容,把知識點全部串聯起來,比如利用所學的知識做一個圖書管理系統,從界面設置到具體內容邏輯設置,讓學生親力親為,獨自完成任務。這樣的方式能讓學生的思維方式得到很好的發揮,在此過程中學生會收獲很多新知識,而且會發現,每個學生都會有不同的想法,最終得出來的程序結果也會令人驚訝。
C語言的學習中要注意的問題
對于初學者而言,C語言又很多值得注意的點,是會被遺漏的。
1,代碼注釋問題,上文說到上機練習是鍛煉編程思維的最好方式,一個優秀的程序要會寫注釋。C語言中最常用的兩種注釋方式是單行注釋,用//表示;多行注釋,用/*...*/表示。在程序的開頭和代碼后端寫上注釋,這樣用戶在看到你的程序時,就會直觀的看出這個程序的功能作用[2]。
2,注意編程技巧,準確使用C語言的語言符號,C語言中分號是語句的必要組成部分,每條語句必須以分號結束。在逗號表達式作為輸出項時,一定要用小括號將其框起來。初學C語言的學生可定會犯這些錯誤,教師在教學過程中要多次提醒。
3,對于定義變量的問題,變量的命名規則遵守標識符的定義,由字母、數字、下劃線組成,且第一個字符不能使用數字字符,長度最好不超過8個,最好做到見名知義,所有變量在使用前都要先聲明。初學C語言的學生要養成良好的習慣,遵循C語言的規定。
4,函數調用問題,在一個函數中可以多次調用其他函數[2],在調用語句中的函數名必須與函數定義中的函數名相同。實際參數應與被調用函數定義中的形式參數個數相同、位置對應并且類型一致。其中實際參數可以是任何合法的表達式,但要求在調用函數時其值確定,以確保將一個值傳遞給對應的形式參[3]。
5,指針判空,通常來說寫程序的時候指針判空是最常見的判斷條件,但是往往在使用C語言庫函數,例如strstr這種返回值為指針的情形,會忘記判為空。那么將其返回值傳入memset中自然會可能出現錯誤。
6,關閉文件問題,在使用完一個文件后,必須將它關閉,避免造成數據丟失。是因為文件指針占用系統資源,對于io密集型的程序,文件指針的累計也是不可想象的,文件指針不同于普通的指針,確切的說文件指針應該叫做文件結構體指針,也就是說其指向的是文件結構體的內存。此后,不能再通過該指針變量來訪問該文件,除非再次打開,使該指針變量重新指向該文件。
結束語
C語言教學作為一門專業基礎課程,歷在培養學生的編程思維和邏輯思維能力。在教學中應當遵循引導式,啟發式,課程與實踐相結合式和上機考試的教學方法。加強教師和學生的交流,激發學生學習的熱情,使學生獨立思考,用于創新,善于解決實際問題。
參考文獻:
[1]王浩鳴,郭曄.C語言大學教程[M]. 北京:人民郵電出版社, 2019.
[2]梁海楠,童璐. 不同編譯環境下的C語言教學[J]. 計算機光盤軟件與應用,2011(19).
[3]朱鳴華. C語言程序設計教程[M].2版.北京:機械工業出版社, 2011.
作者簡介:
崔芙蓉( 1997-7-29 ),性別:女,籍貫:遼寧省, 學歷:本科.