官术网_书友最值得收藏!

1.6.1 靜態調試

1.對程序語法規則進行檢查

(1)語句正確性檢查。保證程序中每條語句的正確性是編寫程序時的基本要求。由于程序中包含大量的語句,書寫過程中由于疏忽或筆誤,寫錯語句在所難免。對程序語句的檢查應注意以下幾點:

①檢查每條語句的書寫是否有字符遺漏,包括必要的空格符。

②檢查形體相近的字符是否書寫正確,例如o和0,書寫時要有明顯的區別。

③檢查函數調用時形參和實參的類型、個數是否相同。

(2)語法正確性檢查。每種計算機語言都有自己的語法規則,書寫時必須遵守一定的語法規則,否則編譯時程序將給出錯誤信息。

①語句的配對檢查。許多語句都是配對出現的,不能只寫半條語句。另外,語句有多重括號時,每重括號也都應成對出現,不能缺左少右。

②注意檢查語句順序。有些語句不僅句法本身要正確,而且語句在程序中的位置也必須正確。例如,變量定義要放在使用該變量的所有可執行語句之前。

2.檢查程序的邏輯錯誤

(1)檢查程序中各變量的初值和初值的位置是否正確。例如,經常遇到的“累加”“累乘”,其初值和位置都非常重要。若賦的初值或賦初值的位置錯了,就得不到預想的結果。

(2)檢查程序中分支結構是否正確。程序中的分支結構都是根據給定的條件來決定執行不同的路徑的,因此在設置各條路徑的條件時一定要謹慎,在設置“大于”“小于”這些條件時,一定要仔細考慮是否應包含“等于”這個條件,更不能把條件寫反。尤其要注意的是,實型數據在運算過程中會產生誤差,如果用“等于”或“不等于”對實數的運算結果進行比較,則會因為誤差而產生錯誤判斷,路徑選擇也就出現錯誤。因此,在遇到要判斷實數a和實數b相等與否作為條件來選擇路徑時,應該把條件寫成if(fabs(a-b)<=1e-6),而不應該寫成if(a==b)。要特別注意條件語句嵌套時,if和else的配對關系。

(3)檢查程序中循環結構的循環次數和循環嵌套的正確性。C語言中可用for循環、while循環、do-while循環。在給定循環條件時,不僅要考慮循環變量的初始條件,還要考慮循環變量的變化規律、循環變量變化的時間,任何一條變化都會引起循環次數的變化。

(4)檢查表達式合理與否。程序中不僅要保證表達式的正確性,而且還要保證表達式的合理性,尤其要注意表達式運算中的溢出問題。例如,運算數值可能超出整數范圍就不應該采用整型運算,否則必然導致運算結果的錯誤。

主站蜘蛛池模板: 莎车县| 盐亭县| 元江| 张家界市| 广西| 屯门区| 齐齐哈尔市| 墨玉县| 肇东市| 绵竹市| 疏附县| 巨鹿县| 平顺县| 荆州市| 永善县| 宁南县| 平利县| 清远市| 凤阳县| 永吉县| 彰化县| 芒康县| 万宁市| 高雄县| 沅江市| 义乌市| 芷江| 吴川市| 宁国市| 噶尔县| 德清县| 册亨县| 华安县| 筠连县| 克拉玛依市| 梧州市| 淳安县| 洛宁县| 龙泉市| 米易县| 冕宁县|