電子教案C 語言案例教程第一章3_第1頁
電子教案C 語言案例教程第一章3_第2頁
電子教案C 語言案例教程第一章3_第3頁
電子教案C 語言案例教程第一章3_第4頁
電子教案C 語言案例教程第一章3_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、13 程序的跟蹤調(diào)試初步本段書,我們要學習程序的跟蹤調(diào)試。這是程序員要掌握的一種很重要的技術,希望我們逐步熟練掌握它。131 靜態(tài)調(diào)試 在Turbo C集成編輯環(huán)境里面,一個程序編寫完畢,就可以調(diào)試它了。第一次調(diào)試,應該由程序員重讀程序,對照源程序清單予以校對。幾乎每一個程序員,在這第一次總是會碰到錯誤的。往往這種靜態(tài)調(diào)試,可以發(fā)現(xiàn)解決一半左右的錯誤,所以,初學者應該有足夠的耐心,養(yǎng)成靜態(tài)調(diào)試的習慣。這是事半功倍的好習慣!132 語法錯誤的調(diào)試在靜態(tài)調(diào)試完成后,一般都是進入RunRun菜單編譯、鏈接、運行程序,實行動態(tài)調(diào)試。這時候碰到的錯誤,絕大部分是程序的語法錯誤。這是程序的第一種錯誤,也是

2、程序員經(jīng)常遇到的錯誤,我們首先學習調(diào)試這種錯誤。如下圖-6。對例1_1_4 的程序1_1L4.C的在動態(tài)調(diào)試發(fā)現(xiàn)錯誤。 一個程序運行時有語法錯誤,在TC集成編輯環(huán)境的編輯屏的下方的Message屏(即信息屏)會出現(xiàn)相應的錯誤提示信息。請看圖-6,信息屏的第一行說的是“編譯F:書軟件1_1L4.C文件”。第2、3、4、5行都是“Error F:書軟件1_1L4.C n :”,在冒號前的部分說的是“編譯F:書軟件1_1L4.C文件時在第n行出現(xiàn)一般性的語法錯誤?!泵疤柡竺娼o出了這個一般性的錯誤錯誤的原因。一般性的語法錯誤是以Error起頭的錯誤。 信息屏第二行告訴我們:程序第5行的語法錯誤是OOO

3、這個標識符沒有定義。一般地是OOO在定義中忘記了;或者是雖然定義了,但在程序第5行引用時卻打錯了;或者它只是字符常量或字符串常量根本就不要定義,但是錄入時將它們的界限符給打漏了。對照一下這個程序,顯然我們在錄入程序時太匆忙了,將字符串“OOO”的間隔符英文雙引號給漏打了。如果改正它,重新編譯運行,這一條信息就不會出現(xiàn)了。信息屏第三行告訴我們:程序第7行漏掉了個“;”號,仔細找一找,果然第七行的前一行,第六行的那個printf()的后面,少打了個“;”,(注意:有時侯,信息屏說程序的第幾行出錯,但其實指的是這一行的前一、兩行出錯)改正它,重新運行。結果,信息屏的第2、3行的錯誤提示消失了,第4、

4、5行的錯誤提示信息仍然存在,而且還多了一條提示,也是說的第7行出錯。大部分情況下應該是同一個錯誤。第4行說程序的第7行出現(xiàn)了一個非法的、第5行說程序的第7行的字符串或者字符的界限符不配對、新出現(xiàn)的一條提示是說表達式語法錯誤。仔細檢查第7行,果然是printf()的左括號后面少打了一個雙引號。要注意的是:有時侯,信息屏說程序的第幾行出錯,但其實指的是這一行的前一、兩行出錯。這也是常有的事! 信息屏里經(jīng)常出現(xiàn)Warning起頭的提示信息,說的是警告性錯誤,這也是另一種語法錯誤,常常改正了一般性錯誤之后,這些警告性錯誤也隨之被改正了。有時候即使程序真的有警告性錯誤,出錯的原因是程序的標識符侵犯了AN

5、SI關鍵字、影響了程序的可移植性能等,那可能是程序員特意要使用的一種技巧。一般地,警告性錯誤不會影響程序的編譯、鏈接和運行。 有一種很少見的語法錯誤,稱為致命性的錯誤。它以fatal起頭。一旦出現(xiàn)這種錯誤,編譯會立即終止,后面有無錯誤都不再繼續(xù)下去了。出現(xiàn)這類錯誤的原因是程序中有非法的內(nèi)部函數(shù)的調(diào)用或者是有某個表達式寫得太過于繁雜,以至于無法編譯下去,使編譯發(fā)生錯誤,!133 邏輯錯誤的調(diào)試還有一種錯誤,是最令程序員頭疼的,那就是邏輯錯誤。C語言的集成編輯環(huán)境只能發(fā)現(xiàn)程序中的語法錯誤,對于邏輯上的錯誤,比如該寫關系表達式的地方寫成了賦值表達式、該用乘法運算的地方用成了加法運算、在輾轉賦值時賦值

6、語句的先后順序寫錯了(算法設計錯);該用長整型的變量被設成了int型、數(shù)組明明只定義了100個分量,卻用到了101個(數(shù)據(jù)構造錯);C語言的集成編輯環(huán)境并不能發(fā)現(xiàn)程序中的邏輯錯誤,因為程序的邏輯是程序員自己負責設計和實現(xiàn)的。 比如在例1_1_4 的程序1_1L4.C運行的時候,發(fā)現(xiàn)所打印的圖形,與題目要求有不同,一些字符位置打歪了。這樣的錯誤,就屬于邏輯錯誤。 下面給同學們介紹尋找邏輯錯誤的調(diào)試方法。 對于簡單的程序,尋找邏輯錯誤只需要認真分析程序的各種公式有沒有用錯、打印圖形時的域寬計算正確與否、各種表達式是否準確表示原意,找準導致出錯的語句是關鍵。對于復雜一些的程序,還需要使用單步跟蹤、使

7、用監(jiān)視表達式、使用斷點等調(diào)試的手段。這一部分請自己看書(目前不作要求)作業(yè)與練習:1、* * * * * * * * 2、* * * * 3、 * * * * * * * * | | * * * * * * * * | | * * * * * * * * | 忠于祖國 | * * * * * * * * | 為祖國服務 | * * * * * * * * | | * * * * * * * | | * * * * * * * * 4、# # # # 5、 6、 + # # # # + + # # # # + + # # # # # # # # # + # # # # + # # # # + # # # # +作業(yè)與練習:7、 0 0 0 0 0 0 8 、 8 8 9、 A 0 0 8 8 A A 0 0 8 8

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論