“名將不打無準備之仗”,復習備考的好壞,是能否順利通過上機考試的關(guān)鍵。對上機考試的學習、備考過程,實際上是一個由生疏到精通的漸進過程。隨著考試系統(tǒng)的完善,那種借投機取巧、懷著僥幸心理應(yīng)對考試的做法是行不通的,考生必須認識到只有做好了考前復習,才能確保自己的上機考試順利通過。
下面對復習備考中的一些技巧和注意事項做個簡單陳述,這些是在復習備考中就應(yīng)該養(yǎng)成的好習慣。
首先,應(yīng)先打下扎實的C語言基礎(chǔ),對C語言的一些基本結(jié)構(gòu)和用法必須有清晰的了解,本文以譚浩強的《C程序設(shè)計》為例,說明各章節(jié)在備考機試時應(yīng)注意的內(nèi)容。
1、數(shù)據(jù)類型和各種運算符:
這里應(yīng)該注意變量的使用語法。C語言規(guī)定,各種變量在使用前要先定義,但有部分考生受VB或其它語言的影響,在使用前不對變量定義,從而產(chǎn)生錯誤,不能通過編譯環(huán)節(jié)。還有些考生在定義后,往往對變量不進行初始化,就拿到程序中應(yīng)用,由于這種作法,并沒有語法上的錯誤,所以C語言的編輯器查不出錯誤,但是這可能會導致結(jié)果與題目要求相差很大,且在考生排除錯誤時,不容易找出錯誤的所在。
筆者建議考生,在定義過變量后,應(yīng)對所有變量進行初始化,以養(yǎng)成好的編程風格,最好定義變量后,在附近代碼行中進行初始化。
運算符中要注意賦值運算符“=”和關(guān)系運算符“==”的區(qū)別,根據(jù)人們常有的思維定勢,常把數(shù)學運算符中的“=”,當做C語言中的關(guān)系運算符“==”,例如在一個程序段中,有如下判斷語句:
if (表達式1==表達式2)
語句1
……
如果把條件中的“==”誤寫成“=”,就變成了把表達式2的值賦給表達式1,只要表達式2的值不為零,則條件恒成立,這當然與編寫者的意思不符了。
2、C語言的三種常用結(jié)構(gòu):
順序、選擇、循環(huán),順序結(jié)構(gòu)沒什么難點,這里只談?wù)撨x擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。
常用的選擇語句是if( )語句和switch( )語句,當if( )語句后有多個else時,應(yīng)當注意else總是與它上面、離它最近的一個if相配對,這點在讀、寫程序時都應(yīng)注意。switch( )語句常與case、break等關(guān)鍵字結(jié)合使用,應(yīng)該注意switch(表達式)中的“表達式”,必須有一個定值,即可以是常量、常量表達式、字符常量等,而不能是一個“變動著的值或表達式”;在執(zhí)行相應(yīng)的case分支時,如果分支語句后沒有出現(xiàn)“break”,則即便case “表達式”中“表達式”的值,與switch(表達式)中“表達式”的值相等,程序也不會跳出分支,仍然會繼續(xù)逐條的執(zhí)行。如下段程序輸出a的值:
switch(3)
{
case 1 : a=1;
case 3 : a=3;
case 5 : a=5;
}
程序執(zhí)行后,變量a的值是5,而不是3。
循環(huán)應(yīng)該注意循環(huán)條件的設(shè)定,一定要度絕死循環(huán),在一些占用內(nèi)存的操作中,如果出現(xiàn)死循環(huán),則很容易導致死機,在機試考試中出現(xiàn)死機現(xiàn)象,很可能會導致考試的失敗。
3、數(shù)組:
對于數(shù)組,上機考試中沒有單獨考過,但每年的考題中都少不了數(shù)組的應(yīng)用,象一些從文件中讀取英文文章,根據(jù)行列關(guān)系存入二維數(shù)組中;讀整數(shù)存入一維或二維數(shù)組中等。對于這類問題,常常需要應(yīng)試者借助一些中轉(zhuǎn)數(shù)組來完成,考生使用自己定義的數(shù)組時,應(yīng)該特別注意一點,數(shù)組在定義后一定要初始化,特別對于字符數(shù)組,象上面提到的讀英文字符串到數(shù)組中,如果考生自己定義的數(shù)組沒有初始化,當定義數(shù)組的列數(shù)大于字符串的長度時,后面一部分沒有初賦值的數(shù)組元素將產(chǎn)生亂碼或特殊字符,考生可以用memset(string, 0, count)函數(shù)來初始化數(shù)組,也可用循環(huán)語句來初始化數(shù)組。
4、函數(shù):
三級機試的內(nèi)容就是編寫一個函數(shù),這章的重要性就不用多說了吧,重點很多,教材上講的很詳細,本文只提醒大家一點,考生在解題前應(yīng)看懂各函數(shù)間的互調(diào)關(guān)系,注意形參和實參的數(shù)據(jù)類型,確保形參和實參的數(shù)據(jù)類型一致。
5、指針:
指針是C語言的精華,也是機試考查的重點內(nèi)容,這里應(yīng)該注意,指針的類型必須與所指元素的類型相同,另外一定要度絕“野指針”的使用,所謂野指針是指指針定義后,在使用之前沒有初始化。指針的初始化比變量和數(shù)組的初始化更重要,沒有初值的指針是很危險的,除了一定得不到正確答案外,當指針越界后,很容易引起死機,如果說死循環(huán)帶來的死機是“假死”,大部分可以用“Ctrl+C”來恢復,但指針越界引起的死機卻是“真死”,很難進行恢復,這點請考生一定牢記。
6、結(jié)構(gòu)體:
結(jié)構(gòu)體也是每年必考的內(nèi)容,題型大多以“產(chǎn)品問題”、“學生問題”的型式來體現(xiàn)。網(wǎng)友在復習結(jié)構(gòu)體一部分內(nèi)容時,要主意結(jié)構(gòu)體名稱和結(jié)構(gòu)體變量之間的區(qū)別,當涉及到結(jié)構(gòu)體數(shù)組時,應(yīng)該熟悉結(jié)構(gòu)體元素的調(diào)用方法,結(jié)構(gòu)體變量間的賦值、比較方式等。只要將譚浩強《C語言程序設(shè)計》教材中本章節(jié)的練習作一遍,即可順利通過此類試題的考試。
7、位運算和文件的讀寫操作:
這部分內(nèi)容知識面較少,考生只需要了解位的幾種特殊運算,文件操作一章中的讀文件函數(shù)、寫文件函數(shù)、打開文件函數(shù)、關(guān)閉文件函數(shù)等幾個主要函數(shù)。