- 相關(guān)推薦
C語言程序設(shè)計學(xué)習(xí)技巧
“C語言程序設(shè)計”是計算機專業(yè)和非計算機專業(yè)的一門技術(shù)基礎(chǔ)課程,也是程序設(shè)計的啟蒙語言課程。下面是小編整理的C語言程序設(shè)計學(xué)習(xí)技巧,希望可以幫助大家!
【C語言程序設(shè)計學(xué)習(xí)技巧】
無論哪所大學(xué)的計算機專科和本科都需要學(xué)習(xí)C語言,《C語言程序設(shè)計》是計算機專業(yè)的一門必修課程,也是學(xué)習(xí)如何編程的入門課。初學(xué)C語言的人都會覺得C語言不好學(xué),感到無從下手。其實,按照我們現(xiàn)在的教學(xué)大綱和教學(xué)要求,只要同學(xué)們掌握一些方法,多讀,多寫,克服心理上畏難情緒,C語言是完全可以學(xué)好的并且靈活應(yīng)用的。我總結(jié)了多年的《C語言程序設(shè)計》課程的教學(xué)經(jīng)驗和學(xué)生在學(xué)習(xí)過程中常見的一些問題,在些介紹一些C語言的學(xué)習(xí)和編程技巧,希望給初學(xué)C語言的同學(xué)有一定幫助。
C語言是一門應(yīng)用最廣泛的基礎(chǔ)高級編程語言,有很多語言都是由它發(fā)展而來的,所以學(xué)習(xí)好C語言之后再學(xué)習(xí)任何一種編程語言都會輕松上手。
1 熟記基本知識點
學(xué)習(xí)C語言和學(xué)習(xí)任何一種語言的方法基本一樣。我們嬰兒期間咿呀學(xué)語時,從一個字開始學(xué),然后兩個,接著更多,最后我們能成句,成段,到出口成章。學(xué)習(xí)C語言的時候也一樣,有些最基本的內(nèi)容必須要記下來。
1.1 關(guān)鍵字
關(guān)鍵字是由C語言規(guī)定的具有特定意義的字符串。它們是寫C語言的基礎(chǔ),如果關(guān)鍵字不記下來,那編程是寸步難行。
1.2 運算符
C語言中的運算符和表達式與我們數(shù)學(xué)上的運算符和表達式有相同的,也有不同的。我們在學(xué)習(xí)的時候就注意記住并弄清楚那些不同的地方。基本的語法表達式及執(zhí)行過程。選擇結(jié)構(gòu)中的if語句和switch語句。循環(huán)語句中的for語句、while語句和do-while語句。這部分就好比是你會了許多詞,然后得把這些詞組成一些句子,語法的作用就是告訴你怎樣說好一句話,表達清楚的意思。
1.3 常用庫函數(shù)
在這里最重要有兩個函數(shù):輸入函數(shù)scanf()和輸出函數(shù)printf()。一個程序如果沒有輸入,那無論運行多少次結(jié)果都一樣,那也就失去了寫程序的目的了。同樣一個程序如果沒有輸出,那運行程序有什么意義呢?當然輸出的形式比較多。在初學(xué)C語言的時候主要是從屏幕上輸出結(jié)果。所以這兩個函數(shù)的使用方法也必須要掌握。這兩個函數(shù)已經(jīng)定義在stdio.h這個頭文件中,不用我們自己寫,它們不是C語言中的語句,所以在使用這兩個函數(shù)時在源程序頂部一定要加上#include 。這是為了讓我們在執(zhí)行程序的時候,讓計算機知道scanf()和printf()這兩個函數(shù)怎么用。
掌握上面的必須要記下來的內(nèi)容,相當于我們開始學(xué)說話時先聽別人說,我們自己跟著學(xué)一些最基本的日常語言。這時我們就可以從一些簡單的程序開始讀,能把每一個程序的運行結(jié)果能自己讀程序準確地執(zhí)行出來,那樣我們就可以開始來編寫程序了。
2 掌握程序的基本結(jié)構(gòu)
編寫程序一定要注意程序的結(jié)構(gòu)性。學(xué)習(xí)寫程序,不能開始就寫代碼。許多人在動手寫程序的時候感到無從下筆。原因主要是:看到一個題目不知道如何去分析,它怎么才能變成一個程序呢?這是初學(xué)者在編寫程序的主要問題。我在教學(xué)中采用了一種分步式的方法。
2.1 看到一個題目的時候先別想著編程序,用一個具體的實例想想不用程序你是如何解決這個問題的
例如輸入三個數(shù),輸出最小值。我們用3,8,6三個數(shù)來考慮,我們一看就知道3是最小的。可是我們這一看中其實并不簡單,其中有判斷。我們先看第一個數(shù)3,然后已經(jīng)記在我們頭腦中了,再看第二個數(shù)8,3比8小,那我們還是記住3,再比較第3個數(shù)6,最后確定3是最小的。我們現(xiàn)在就是要把我們頭腦中很快閃過的這些判斷過程想清楚。
第一行代碼表示把標準的輸入輸出頭文件包含在這個程序中。第二行代碼是C程序的主函數(shù),每個C程序中必須有且僅有一個main()函數(shù)。然后是函數(shù)的一對“{}”。
定義變量的意思好比買一塊地,有了這塊地就可以在上面蓋房、種莊稼之類的。但是為了便于統(tǒng)一管理,比如城市已經(jīng)規(guī)劃好了,你在郊區(qū)買的地就只能種莊稼,在市中心買的,就只能蓋房,這就是變量類型的含義了。用上面求最小值的例子。我們在三個數(shù)中求最小值。這三個是什么數(shù),是整數(shù)還是小數(shù)?這就必須用變量類型來說明。對于上例應(yīng)該定義三個整型變量用來存放三個整數(shù),還要定義一個整型變量用來存放最小值。如:int a,b,c,min;這行代碼的作用其實是要了一塊內(nèi)存,然后在這塊內(nèi)存里存東西。因為我需要一個整數(shù),所以就用int這個關(guān)鍵字來聲明(相當于用這塊地干什么)。那么變量a,b,c是什么呢?你買了一塊地,總要知道這塊地在哪是吧?不然就白買了,變量就是這樣一個作用。我們需要把數(shù)據(jù)存在計算機中,什么樣的數(shù)就定義什么樣的類型,需要存幾個數(shù)就定義幾個變量。
輸入數(shù)據(jù)有兩種方法。第一種從鍵盤輸入,就需要用到scanf()這個函數(shù);第二種是直接賦值。
處理數(shù)據(jù)是對于初學(xué)者來說最難的一部分,也就是把我們剛才分析過程轉(zhuǎn)換成語句。這需要學(xué)好C語言的三種程序結(jié)構(gòu)。
(1)順序結(jié)構(gòu)
順序結(jié)構(gòu)的程序設(shè)計是最簡單的,只要按照解決問題的順序?qū)懗鱿鄳?yīng)的語句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。順序結(jié)構(gòu)可以獨立使用構(gòu)成一個簡單的完整程序,不過大多數(shù)情況下順序結(jié)構(gòu)都是作為程序的一部分,與其它結(jié)構(gòu)一起構(gòu)成一個復(fù)雜的程序,例如分支結(jié)構(gòu)中的復(fù)合語句、循環(huán)結(jié)構(gòu)中的循環(huán)體等。
(2)選擇結(jié)構(gòu)
對于要先做判斷再選擇的問題就要使用分支結(jié)構(gòu)。選擇結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴格按照語句出現(xiàn)的物理順序。選擇結(jié)構(gòu)的程序設(shè)計方法的關(guān)鍵在于構(gòu)造合適的分支條件和分析程序流程,根據(jù)條件的結(jié)果選擇對應(yīng)的分支語句。選擇結(jié)構(gòu)適合于帶有邏輯或關(guān)系比較等條件判斷的計算,設(shè)計這類程序時往往都要先繪制其程序流程圖,然后根據(jù)程序流程寫出源程序,這樣做把程序設(shè)計分析與語言分開,使得問題簡單化,易于理解。
【C語言程序設(shè)計上機練習(xí)技巧】
1.學(xué)習(xí)編程的秘訣是:編程,編程,再編程!
要多上機、進系統(tǒng)練習(xí),不能停留在所謂的復(fù)印答案上。不看書是絕對不行的,但光看不練也不行,練習(xí)能加深對理論知識的理解。多編幾次程序、多幾次上機調(diào)試,很東西自然而然就懂了、自然而然就記住了。C語言之所以掛科率高,主要的原因還是“平時不學(xué)、沒有理解和掌握、僅考前1~2周突擊死記硬背”——現(xiàn)在考察的是能力,能力的形成需要較長時間的實踐磨練,而不是短期的死記硬背或突擊。
考前的復(fù)習(xí)準備肯定有幫助,但基礎(chǔ)還在平時,某些同學(xué)考試及格了,不能只看到其考前的復(fù)習(xí)準備而忽略其平時的努力。請平時一定要加強練習(xí),循序漸進,由易到難,不要等到臨考前去背所謂的答案——已有的事實和往屆學(xué)長慘痛的教訓(xùn)一次次證明:死記硬背答案花的時間更多、很痛苦、極難幸運地及格,除了后悔、給后來者提供教訓(xùn)外,對自己的人生沒有任何意義。為什么平時不花點時間去掌握知識并收獲、體驗成功的喜悅、讓青春更有價值、讓未來充滿機遇和希望呢?
即使需要背(理解記憶),也應(yīng)是程序的主要步驟、主要算法。
2.編程時,建議先用偽代碼(注釋語句)寫出主要步驟(算法),然后再寫程序。
先不要考慮用C語言怎么實現(xiàn),應(yīng)先考慮人工完成應(yīng)怎么做、想清楚人工完成的每一個細節(jié),然后結(jié)合計算機能按你規(guī)定步驟自動執(zhí)行、高速、高精度的特點,設(shè)計出相應(yīng)的算法(主要步驟)。算法可以用流程圖表示,也可以用偽代碼(注釋語句)表示,應(yīng)寫(畫)出每一步驟要完成的工作。設(shè)計算法時應(yīng)自頂向下、逐步求精,先整體再局部,先宏觀再細節(jié),這樣才思路清析。
C語言難學(xué)只是一個表面現(xiàn)象,難不在C語言本身,若是同樣的編程要求,換做VB、Fortran、Java也一樣的難。在軟件設(shè)計中,先要做總體設(shè)計,再是詳細設(shè)計(設(shè)計算法,與具體語言基本無關(guān)),然后才是使用一種語言來編碼,真正難的是總體設(shè)計和基本與語言種類無關(guān)的詳細算法;算法做好后,并非一定要使用C語言實現(xiàn),在社會分工中,編碼(可以用C語言)是技術(shù)含量、工資較低的活,通常由藍領(lǐng)工人完成。
如果主要步驟(算法)寫不出來,則程序的正確設(shè)計注定是不可能的——經(jīng)常出現(xiàn)的情況是寫了一大段程序,但自己都不知道這些程序和變量的作用、是怎樣運行的。
3.注意練習(xí)系統(tǒng)給出的提示(評分備注)。
評分備注主要分4類,說明了評分的詳細情況,應(yīng)仔細閱讀并采取相應(yīng)的措施。
(1)報告編譯鏈接錯誤,如下的備注信息指明了程序第27行存在的問題:
.c(27) : error C2220: warning treated as error - no object file generated
.c(27) : warning C4101: 'k' : unreferenced local variable
(2)失分情況,在哪些方面失分:
失分[10],未實現(xiàn):輸出了x的值,格式符合要求,與示例一致
失分[20],未實現(xiàn):x>0時計算正確
失分[20],未實現(xiàn):x=0時計算正確
失分[20],未實現(xiàn):x<0時計算正確
失分[30],未實現(xiàn):當函數(shù)值超過int型數(shù)據(jù)表示的范圍時計算正確
(3)違反編程規(guī)范的情況。編程規(guī)范與算法、設(shè)計是否正確無關(guān),按要求修正即可,其目的是讓考生養(yǎng)成相應(yīng)的習(xí)慣和意識,最后上升為一種素質(zhì):
第27行: 應(yīng)當使用Tab縮進,而不是使用空格
第27行: 'if'縮進錯誤
第27行: 在操作符'!='前后應(yīng)有空格
第7行: 變量(h)命名太簡單
(4)程序修改了禁止修改的部分或不符合編程要求,例如:
本程序已有內(nèi)容禁止修改但卻被考生修改或考生添加代碼部分之行數(shù)、行長超限,評分終止。建議使用系統(tǒng)提供的專用檢查程序(單擊此處下載)進行檢查。
4.利用在線幫助,不需要、不該背(記憶)的東西堅決不背!
當你對某個關(guān)鍵字、函數(shù)的用法不清楚或不知其在哪一個頭文件中定義時,可以將光標移至該關(guān)鍵字、函數(shù)上,按“F1”鍵(TC為Ctrl+F1),VC6即可顯示出相關(guān)的說明(若相關(guān)的說明項較多,則應(yīng)選擇與Visual C++ Programmer Guide——VC++程序員指南相關(guān)的,如圖1所示)。
由此:
(1)每個程序應(yīng)包含哪些頭文件,不需要背。編程時可先不寫頭文件,則編譯時會報警告信息,例如說某函數(shù)未定義等,則通過在線幫助查出其所在的頭文件再復(fù)制即可。
(2)系統(tǒng)庫函數(shù)的用法、參數(shù)的順序及意義不用背。例如fread和fscanf有多個參數(shù),fread的文件指針參數(shù)在最后而fscanf則在最前;再如scanf和printf中的格式控制、數(shù)據(jù)類型控制、轉(zhuǎn)義符等在在線幫助中均有。特別要說明的是,在VC6的在線幫助中,絕大部分語句、函數(shù)都有例子,復(fù)制下來改一改就可能完成了新的任務(wù)。
(3)當某個函數(shù)名或保留關(guān)鍵字記不清楚拼寫時,可使用自動完成或在在線幫助中使用索引協(xié)助查找。
5.勤用復(fù)制、粘貼。
自行逐字輸入太慢且容易出錯,復(fù)制、粘貼又快、又準,何樂而不為呢?
(1)程序提供了編程素材的,一定要復(fù)制、粘貼。搞錯了可能影響得分甚至得0分,盡管設(shè)計正確,但記住是計算機自動閱卷,要按要求做。
(2)調(diào)試程序時,若輸入數(shù)據(jù)較多,則應(yīng)復(fù)制、粘貼。注意,題目中給出的測試數(shù)據(jù)中可能隱藏有全角的空格或多余的空格,直接復(fù)制、粘貼可能會有問題,建議此時應(yīng)先復(fù)制到記事本中,進行編輯處理,然后再復(fù)制、粘貼。
(3)在線幫助中有例子或參考代碼,則應(yīng)復(fù)制、粘貼后再修改,既準確,又能節(jié)約不少寶貴的時間。
(4)編寫好一個程序后再編寫另一程序時,建議將編好程序的框架復(fù)制到新程序中再修改,可節(jié)約一些時間。
6.計算中心提供全天候的免費開放機房并有助教為您答疑解惑,服務(wù)不好可以投訴,詳情請單擊此處查看。
7.計算中心網(wǎng)站提供有C語言程序設(shè)計的教學(xué)錄像,請在本網(wǎng)站中使用搜索功能查找。
【C語言程序設(shè)計學(xué)習(xí)技巧】相關(guān)文章:
學(xué)習(xí)二級c語言程序設(shè)計的方法03-10
2017年c語言二級考試技巧03-09
2017年全國計算機c語言程序設(shè)計考試試題及答案03-11
C語言程序的結(jié)構(gòu)03-06