摘 要:《C語言程序設計》是計算機專業(yè)中的一門軟件課程,主要用來編程,它具有難度性、抽象性、連續(xù)性和邏輯嚴密性,因此,很多學生認為這門課不好學,本人就多年的教學實踐談談自己的看法。文章從為什么要學習《C語言程序設計》,如何來學習《C語言程序設計》兩大方面來闡述。實踐證明,這些學習方法是有效的,不僅有利于培養(yǎng)學生學習興趣,而且有利于培養(yǎng)學生分析問題與解決問題的能力。
關鍵詞:C語言;程序設計;學習方法;學習興趣
中圖分類號:TP312.1-4
《C語言程序設計》是計算機專業(yè)的一門核心專業(yè)基礎課程,是專升本、考研和等級水平考試的必考科目,也是學生學習中感到比較吃力的一門課。那么,如何學習《C語言程序設計》這門課程呢?現(xiàn)根據(jù)自己多年在教學中的體會,談一些粗淺的認識。
1 為什么要學習《C語言程序設計》
《C語言程序設計》是用C語言來編寫程序的,每個程序員在他們的編程生涯中都應該學習C語言,因為它有太多難以忽視的好處了。除了它會給你提供更多的工作機會之外,C語言還會教給你更多的關于計算機的知識。它的好處如下:
1.1 C語言是一種計算機程序設計語言
它既具有高級語言的特點,又具有匯編語言的特點,既可以用來編寫系統(tǒng)軟件,又可以用來編寫應用軟件。它不僅具有繪圖能力強,還具備很強的數(shù)據(jù)處理能力,因此也適于編寫三維,二維圖形和動畫。
1.2 C語言具有功能強大、使用靈活、豐富的數(shù)據(jù)類型和運算符、結構化的控制語句、目標代碼運行效率高、適用范圍大、可移植性好等優(yōu)點。
1.3 C語言是各大操作系統(tǒng)的基礎,Unix、Linux、Windows其內核都清一色是C語言開發(fā)的,(某些地方是和匯編語言混合開發(fā)的),還有各種語言的編譯器,包括java虛擬機,各種嵌入式設備,如手機、PDA等都是C語言開發(fā)的。
1.4 C語言是基礎,如果你學習過C語言,你就能學習現(xiàn)在任何的高級編程語言
因為所有的高級語言都是以C語言為基礎的(像JAVA,C++,C#等等)。C語言學好了,將來想學其他的語言,就比較好入門了。
2 如何學習《C語言程序設計》
2.1 克服畏難心理,充滿自信的學習《C語言程序設計》
大多數(shù)學生一看到《C語言程序設計》課程的教材,就有畏難的情緒,覺得C語言難學,學不會,因為他們對計算機語言不了解,另外有些英語差的同學,看到計算機編程是用英語編寫的,就未學先棄了。其實學習語言并沒有他們想象的那么難,英語差也對學習計算機語言影響不大,比如學C語言,真正要記的關鍵字不多,語法也不復雜,只要大家不帶著畏難的心理,充滿自信,一定能學好的。
2.2 要明確《C語言程序設計》的學習目的
通過《C語言程序設計》課程的學習,掌握C語言基本知識,掌握程序設計的基本方法并逐步形成正確的程序設計思想,能夠熟練運用基本程序結構解決簡單問題,理解模塊化程序設計原則并能熟練使用C語言進行程序設計,具備調試程序的能力,為后繼課程及其他程序設計課程的學習和應用打下基礎。
2.3 要明白《C語言程序設計》與一般的計算機操作課程有所不同
《C語言程序設計》是計算機的一門軟件編程課程,是用C語言來編寫程序的,它具有難度性、抽象性、連續(xù)性和邏輯嚴密性。如果你第一次課來聽了,第二次課沒來,第三次課很可能就聽不懂了。比如,第一次課講的是數(shù)字1,2,3,4……,第二次課講的是運算符號+,-,*,/,第三次課老師讓你算1+2=?,如果你前兩次課都來聽了,那么你就能算出它的結果,否則你就算不出它的結果。因此,如果要想學好《C語言程序設計》,必須堅持每次課都來,如果那天確實不能來,就應在家自學,不懂的地方應及時向老師請教,一定不能落課。
2.4 要整體把握《C語言程序設計》
C語言是一種通用的程序設計語言,在開發(fā)系統(tǒng)軟件和應用軟件中得到廣泛的應用,已成為當今計算機世界最流行的語言之一。C語言是一個整體,各個方面是有機聯(lián)系的,要從總體上把握它,不要把它割裂成互不關聯(lián)的部件。它包括C語言概述、數(shù)據(jù)類型(整型、實型、字符型、數(shù)組類型、指針類型、結構體類型、共用體類型等)、運算符和表達式、流程控制語句、函數(shù)、數(shù)組、字符與字符串、指針、結構體、文件等。通過《C語言程序設計》的學習,掌握程序設計的基本概念、基本思想、基本方法和基本技能,進而學會利用C語言解決實際問題,培養(yǎng)計算機程序設計的能力和素質,以及思維方法,為以后學習其它計算機程序語言和后續(xù)的專業(yè)課程打下基礎。
簡單的C程序是由主函數(shù)和函數(shù)體兩大部分組成。它的基本框架如下:
main()
{
}
其中main表示“主函數(shù)”。每一個C程序都必須有一個main函數(shù),而且只能有一個main函數(shù),它表示程序從這里開始執(zhí)行。由花括號“{ }”括起的部分是函數(shù)體。其中函數(shù)體又包括定義變量、變量賦值、函數(shù)調用、輸出打印等。
例:一個簡單的求和程序
main() /*主函數(shù)*/
{
int a,b,sum; /*定義變量*/
a=123;b=456; /*變量賦值*/
sum=a+b; /*求兩數(shù)之和*/
printf(“sum is %d\n”,sum); /*輸出和值*/
}
這是一個簡單的求和程序。/*...*/表示注釋部分,只給人看的,對編譯和運行不起作用。第3行是聲明部分,定義變量a、b、sum,指定a、b、sum為整型(int)變量。第4行是兩個賦值語句,使a和b的值分別為123和456。第5行使sum的值為a+b,第6行中“%d”是輸入輸出的“格式字符串”,用來指定輸入輸出時的數(shù)據(jù)類型和格式,“%d”表示“以十進制整數(shù)形式輸出”。Printf函數(shù)中括弧內最右端sum是要輸出的變量,現(xiàn)在它的值為579(即123+456之值)。因此輸出一行信息為:
sum is 579
從這個例子可以看出,想要把《C語言程序設計》這門課學好,不僅要知道《C語言程序設計》的基本框架,還要學好函數(shù)體中的內容(變量類型、定義變量、變量賦值、輸入輸出格式字符串、輸入輸出函數(shù)格式、調用函數(shù)等)。另外還要學好C語言的運算符、運算順序 、四種程序結構(順序結構、分支結構、循環(huán)結構、模塊化程序結構 )、掌握一些簡單的算法等。
2.5 熟練C程序的上機步驟
在編好一個C源程序后,如何上機運行呢?要經(jīng)過編輯、編譯、連接和運行四個步驟。
(1)編輯源文件。在編輯(Edit)狀態(tài)下輸入或修改源程序。
(2)編譯源程序。選擇“C編譯”菜單并選擇“編譯到OBJ”,進行編譯,得到一個后綴為.obj的目標程序。
(3)然后再選擇菜單“L連接EXE文件”,進行連接操作,可得到一個后綴為.exe的可執(zhí)行文件。
(4) 運行程序。在“RUN”菜單中選擇“R運行程序”項,或直接按Ctr+F9鍵,系統(tǒng)就會運行已編譯好的可執(zhí)行目標文件。此時,TC集成環(huán)境窗口消失,屏幕上顯示出程序運行的結果。如果程序需要輸入數(shù)據(jù),則應在此時,從鍵盤輸入所需數(shù)據(jù),然后程序會接著執(zhí)行,輸出結果。
2.6 要加強編程訓練
《C語言程序設計》是實踐性非常強的課程,要求學員要理論聯(lián)系實際,在掌握C語言的基本語法和基本知識后,重點應放在提高編程能力的訓練上。根據(jù)學生學習的認知特點,我認為主要應從以下幾個方面進行強化訓練:
(1)吃透課本例子。每學完一次新課,讓學生對課本例子先分析任務、再仔細閱讀程序,然后按書上的源代碼敲出來,編譯執(zhí)行輸出結果,如果結果跟書上一致就算完成,如果不一致,就要仔細找原因。再后不看書自己編寫代碼與課本對照,找出自己的不足,然后改進。最后在此例的基礎上自己加以改造,舉一反三,變?yōu)槠渌睦?,如此反復練習,不僅培養(yǎng)了學生動腦思考的習慣,而且養(yǎng)成了遇事三思、認真、周密的作風。
(2)精選上機題目,要求調試通過。每章找出一個或兩個綜合性的具有代表性的應用題目,如編寫一個程序,計算一個整數(shù)的名位數(shù)字之和;用選擇法對數(shù)組中10個整數(shù),按由小到大的順序進行排序等,要求用C語言編寫可執(zhí)行的源程序,上機調試。這樣不僅鍛煉了學生解決實際問題的能力,更重要的是激發(fā)了學生學習課程的興趣,抽象變具體 ,理論變實踐,對這門課有了更深的認識。
(3)閱讀填空法。找一些經(jīng)典程序,配上必要的說明,適當去掉語句或表達式,讓學生通過閱讀填補空白,訓練學生的程序設計能力。例編寫一個程序,輸入月份號,輸出月的英文月名,還有求和、排序、報號等。
(4)準備一個經(jīng)驗本,記下C語言重要的語法和知識點,還有自己出錯的解決方法及老師講解的其他同學出現(xiàn)的常見錯誤,抽空常翻看,逐步積累經(jīng)驗,加深印象,使以后避免。
(5)帶著作業(yè)去上機。每次理論課結束后,老師都會給學生布置一些作業(yè)(如習題)讓學生做,那么學生一定要認認真真的把作業(yè)完成好,先把程序編寫在作業(yè)本上,上機時再把這些程序敲到計算機上,進行修改、調試、運行,最后輸出結果。如果學生不帶作業(yè)去上機,第一次老師警告下次一定帶作業(yè)上機,如果第二次還沒帶作業(yè),不準學生進機房,讓學生到教室把作業(yè)做完后再到機房上機調試。有人說學生可以直接在機器上編寫程序,固然沒錯,但對于初學者來說,如果在機器上邊思考邊編寫,也就是說想一句編一句,再想一句再編一句,這樣太浪費時間,一節(jié)課說不定連一個程序都編不好,所以老師一定要求學生在課下把程序編好,上機只需把程序敲出來進行修改、調試、運行,這樣能節(jié)約大量的時間,學生上機時間本身都是有限的。
上述方法在教學實踐中證明是行之有效的,學生對問題分析、程序設計的自覺性和能動性得到提高,動手能力加強,對后繼課如《C++》、《面向對象程序設計》等,學習起來倍感輕松,較好地完成了該門課程的學習目標??傊?,實踐出真知,多學、多練、多思、多交流,勤奮好學才能學成。
參考文獻:
[1]嚴桂蘭.C語言程序設計與應用教程[M].福建:廈門大學出版社,2001.
[2]譚浩強.C程序設計(第三版)[M].北京:清華大學出版社,2005.
[3]陳東.計算機多媒體教學改革的一些嘗試[J].福建師范大學學報(自然版),2004,20(3):98.
[4]王蘭.學好《C程序設計》的幾點建議[J].科技信息,2007(9).
作者簡介:薛玉瑩(1976.07-),女,四川攀枝花人,研究生,計算機講師,主要研究方向:計算機及經(jīng)濟學。
作者單位:四川機電職業(yè)技術學院科研處,四川攀枝花 617000