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