很多沒接觸過C語言的朋友,考三級最感到就是怕C語言學(xué)不來.其實(shí),按照我們現(xiàn)在的三級C上機(jī)的考試要求,(只是一道編程題,還不是完整的編程,只要填上一段函數(shù)就行了),只要掌握一些C編程的基本知識,看好南開100題的各種題型的解法,加上多上機(jī)獨(dú)立練習(xí)就完全能夠過級的。眾所周知,近幾年的三級C上機(jī)的題庫就是南開100題,考試時是從中抽一道編程題,只是少數(shù)考題條件略改下,比如原題中是“從大到小”排序,考題也許改成“從小到大”排序,我想這對于理解了解題方法的人,應(yīng)該不存在問題的。
言歸正傳,我們?nèi)绾尉腿壙荚噥韺W(xué)《C程序設(shè)計》呢?
《C程序設(shè)計》的內(nèi)容很豐富,按照我們現(xiàn)在的考試要求,也就是南開100題解法中主要涉及到的是基礎(chǔ)知識、四種結(jié)構(gòu)的的程序設(shè)計、函數(shù)與數(shù)組的應(yīng)用和算法,在學(xué)習(xí)時,應(yīng)該把主要精力放在這些部分,當(dāng)然其它的知識,如輸入輸出的語句、文件的讀寫、指針的定義等,盡管原程序都給了你,但最起碼也要能看懂,所以還是不能放棄學(xué)的,了解為好。當(dāng)然,在初學(xué)C語言時,可能會遇到有些問題理解不透,或者表達(dá)方式與以往數(shù)學(xué)學(xué)習(xí)中不同(如運(yùn)算符等),這就要求不氣餒,不明白的地方多問多想,鼓足勇氣進(jìn)行學(xué)習(xí),待學(xué)完后面的章節(jié)知識,前面的問題也就迎刃而解了.
一、學(xué)好C語言的語法
無它,看書并記憶,加上機(jī)練習(xí)。有很多考三級的朋友都學(xué)過其它程序語言,如VB,很容易受它們習(xí)慣的影響,在寫程序上經(jīng)常忘記C語言中的分號、小括號、大括號的運(yùn)用,導(dǎo)致很多人看著答案編程老是出錯,檢查半天不知哪里錯了,大呼小叫“我按照答案輸進(jìn)去的,為什么提示錯誤,對了N遍,不知哪里錯了”,所以一開始就要養(yǎng)成良好的習(xí)慣和細(xì)心。特別注意的是為什么說上機(jī)練習(xí)很重要,原因就是在紙上寫的,語法錯了不知道,而上機(jī)錯了就顯示了。
二、學(xué)好C語言的運(yùn)算符和運(yùn)算順序
這是學(xué)好《C程序設(shè)計》的基礎(chǔ),C語言的運(yùn)算非常靈活,功能十分豐富,運(yùn)算種類遠(yuǎn)多于其它程序設(shè)計語言。在表達(dá)式方面較其它程序語言更為簡潔,如自加、自減、逗號運(yùn)算和三目運(yùn)算使表達(dá)式更為簡單,但初學(xué)者往往會覺的這種表達(dá)式難讀,關(guān)鍵原因就是對運(yùn)算符和運(yùn)算順序理解不透不全。當(dāng)多種不同運(yùn)算組成一個運(yùn)算表達(dá)式,即一個運(yùn)算式中出現(xiàn)多種運(yùn)算符時,運(yùn)算的優(yōu)先順序和結(jié)合規(guī)則顯得十分重要。在學(xué)習(xí)中,只要我們對此合理進(jìn)行分類,找出它們與我們在數(shù)學(xué)中所學(xué)到運(yùn)算之間的不同點(diǎn)之后,記住這些運(yùn)算也就不困難了,有些運(yùn)算符在理解后更會牢記心中,將來用起來得心應(yīng)手,而有些可暫時放棄不記,等用到時再記不遲。
先要明確運(yùn)算符按優(yōu)先級不同分類,《C程序設(shè)計》運(yùn)算符可分為15種優(yōu)先級,從高到低,優(yōu)先級為1 ~ 15,除第2、3級和第14級為從右至左結(jié)合外,其它都是從左至右結(jié)合,它決定同級運(yùn)算符的運(yùn)算順序。下面我們通過幾個例子來說明:
(1) 5*8/4%10 這個表達(dá)式中出現(xiàn)3種運(yùn)算符,是同級運(yùn)算符,運(yùn)算順序按從左至右結(jié)合,因此先計算5 *8=40,然后被4除,結(jié)果為10,最后是%(求余數(shù))運(yùn)算,所以表達(dá)式的最終結(jié)果為10%10 = 0;
(2)a = 3;b = 5;c =++ a* b ;d =a + +* b;
對于c=++a*b來說,按表中所列順序,+ +先執(zhí)行,*后執(zhí)行,所以+ + a執(zhí)行后,a的值為4,由于+ +為前置運(yùn)算,所以a的值4參與運(yùn)算,C的值計算式為4*5=20而不是3*5=15了;而對于d=a++*b來說,由于a + +為后置運(yùn)算,所以a值為4參與運(yùn)算,使得d的值仍為20,而a參與運(yùn)算后其值加1,值為5。 這個例子執(zhí)行后,a的值為5,b的值為5,c的值為20,d的值也是20;
(3)(a = 3,b = 5,b+ = a,c = b* 5)
例子中的“,”是逗號結(jié)合運(yùn)算,上式稱為逗號表達(dá)式,自左向右結(jié)合,最后一個表達(dá)式的結(jié)果值就是逗號表達(dá)式的結(jié)果,所以上面的逗號表達(dá)式結(jié)果為40,a的值為3,b的值為8,c的值為40。
三、學(xué)好數(shù)據(jù)類型定義
類型定義在所有編程中基本都要用到,用些題類型定義錯了,解題結(jié)果就錯了,大家一定要看好書上關(guān)于整型、長整型、字符型、無符號型、實(shí)數(shù)型的定義的區(qū)別和運(yùn)用以及它們的范圍,這些在南開100題中都是考點(diǎn),考試時很多考生就是因為類型定義錯了,而沒通過。
如:南開第8題:要求對一篇文章的每個字符按替代關(guān)系:f(p)=p*11 mod 256(p是數(shù)組中某一個字符的ASCII值,f(p)是計算后新字符的ASCII值),如果計算后f(p)值小于等于32或大于130,則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。部分源程序存在文件prog1.c中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。
請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。
希望與更多計算機(jī)等級考試的網(wǎng)友交流,請進(jìn)入計算機(jī)等級考試論壇
更多信息請訪問:考試吧計算機(jī)等級考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |