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