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