版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
常見錯誤和程序調(diào)試C語言
主要內(nèi)容1常見錯誤分析(重點)2程序調(diào)試一、常見錯誤分析例1:#include<stdio.h>main(
){x=3;y=6;printf("%d\n
",x+y);
}1、
忘記定義變量。2、
輸入輸出的數(shù)據(jù)的類型與所用格式說明符不一致。例2:#include<stdio.h>main(
){int
a;float
b;a=3;b=4.5;printf("%f
%d\n",a,b);
}3、
輸入變量時忘記使用地址符。例3:#include<stdio.h>main(){inta,b,sum;scanf("%d%d",a,b);sum=a+b;printf(“sum=%d”,sum);}4、輸入時數(shù)據(jù)的組織與要求不符。
用scanf函數(shù)輸入數(shù)據(jù),應(yīng)注意如何組織輸入例4:#include<stdio.h>main(){inta,b,sum;scanf(“%d%d”,&a,&b);//運行時輸入4,5sum=a+b;printf(“sum=%d”,sum);}例5:想在屏幕上顯示一行信息:inputa&b:#include<stdio.h>main(){inta,b,sum;scanf(“inputa&b:%d,%d”,&a,&b);//運行時輸入4,5sum=a+b;printf(“sum=%d”,sum);}5、輸入函數(shù)當(dāng)作輸出函數(shù)用。
6、
語句后面漏分號。C語言規(guī)定語句末尾必須有分號。例6:#include<stdio.h>main(){inta,b,sum;scanf(“%d,%d”,&a,&b)sum=a+b;printf(“sum=%d”,sum)}7、對應(yīng)該成對兒出現(xiàn)的符號,丟失后一半。例7:#include<stdio.hmain(){charstr[;scanf(“%s,str”);printf(“%s,str);程序出錯有三種情況:①語法錯誤。指違背了C語法的規(guī)定,對這類錯誤,編譯程序一般能給出“出錯信息”,并且告訴你在哪一行出錯。只要細(xì)心,是可以很快發(fā)現(xiàn)并排除的。
②邏輯錯誤。程序并無違背語法規(guī)則,但程序執(zhí)行結(jié)果與原意不符。這是由于程序設(shè)計人員設(shè)計的算法有錯或編寫程序有錯,通知給系統(tǒng)的指令與解題的原意不相同,即出現(xiàn)了邏輯上的混亂。③運行錯誤。程序既無語法錯誤,也無邏輯錯誤,但在運行時出現(xiàn)錯誤甚至停止運行。二、程序調(diào)試所謂程序調(diào)試是指對程序的查錯和排錯。調(diào)試程序一般應(yīng)經(jīng)過以下幾個步驟:先進行人工檢查,即靜態(tài)檢查。上機調(diào)試注意中英文標(biāo)點根據(jù)系統(tǒng)提示修改錯誤巧用printf()打印當(dāng)前變量值(1)要求做到以下幾點:①應(yīng)當(dāng)采用結(jié)構(gòu)化程序方法編程,以增加可讀性;②盡可能多加注釋,以幫助理解每段程序的作用;③在編寫復(fù)雜的程序時,不要將全部語句都寫在main函數(shù)中,而要多利用函數(shù),用一個函數(shù)來實現(xiàn)一個單獨的功能。這樣既易于閱讀也便于調(diào)試,各函數(shù)之間除用參數(shù)傳遞數(shù)據(jù)這一渠道以外,數(shù)據(jù)間盡量少出現(xiàn)耦合關(guān)系,便于分別檢查和處理。(2)在人工(靜態(tài))檢查無誤后,才可以上機調(diào)試。通過上機發(fā)現(xiàn)錯誤稱動態(tài)檢查。在編譯時給出語法錯誤的信息(包括哪一行有錯以及錯誤類型),可以根據(jù)提示的信息具體找出程序中出錯之處并改正之。應(yīng)當(dāng)注意的是:有時提示的出錯行并不是真正出錯的行,如果在提示出錯的行上找不到錯誤的話,應(yīng)當(dāng)?shù)缴弦恍性僬摇A硗?,有時提示出錯的類型并非絕對準(zhǔn)確,由于出錯的情況繁多而且各種錯誤互有關(guān)聯(lián),因此要善于分析,找出真正的錯誤,而不要只從字面意義上死摳出錯信息,鉆牛角尖。如果系統(tǒng)提示的出錯信息多,應(yīng)當(dāng)從上到下逐一改正。有時顯示出一大片出錯信息往往使人感到問題嚴(yán)重,無從下手。其實可能只有一二個錯誤。例如,對所用的變量未定義,編譯時就會對所有含該變量的語句發(fā)出出錯信息。只要加上一個變量定義,所有錯誤都消除了。
(3)在改正語法錯誤(包括“錯誤”(error)和“警告”(warning))后,程序經(jīng)過連接(link)就得到可執(zhí)行的目標(biāo)程序。運行程序,輸入程序所需數(shù)據(jù),就可得到運行結(jié)果。應(yīng)當(dāng)對運行結(jié)果作分析,看它是否符合要求。有的初學(xué)者看到輸出運行結(jié)果就認(rèn)為沒問題了,不作認(rèn)真分析,這是危險的。有時,數(shù)據(jù)比較復(fù)雜,難以立即判斷結(jié)果是否正確??梢允孪瓤紤]好一批“試驗數(shù)據(jù)”,輸入這些數(shù)據(jù)可以得出容易判斷正確與否的結(jié)果。例如解方程ax2+bx+c=0,輸入a、b、c的值分別為1、-2、1時,根x的值是1。這是容易判斷的,若根不等于1,程序顯然有錯。(4)運行結(jié)果不對,大多屬于邏輯錯誤。對這類錯誤往往需要仔細(xì)檢查和分析才能發(fā)現(xiàn)??梢圆捎靡韵罗k法:①將程序與流程圖(或偽代碼)仔細(xì)對照,如果流程圖是正確的話,程序?qū)戝e了,是很容易發(fā)現(xiàn)的。例如,復(fù)合語句忘記寫花括弧,只要一對照流程圖就能很快發(fā)現(xiàn)。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 切割技術(shù)教學(xué)課件
- 涼山州公安局2026年公開考試招聘警務(wù)輔助人員的備考題庫(30人)及答案詳解(考點梳理)
- 三索面三主桁公鐵兩用斜拉橋建造技術(shù)匯報
- 農(nóng)業(yè)種植技術(shù)操作與指南
- 小兒秋季腹瀉家庭護理要點
- 2026重慶巫山縣林業(yè)局公開招聘森林消防專業(yè)隊員1人備考題庫完整答案詳解
- 露天采石場培訓(xùn)課件
- 2026重慶市萬州區(qū)分水鎮(zhèn)人民政府招聘公益性崗位6人備考題庫及1套完整答案詳解
- 分注技術(shù)教學(xué)課件
- 分歧者介紹教學(xué)
- 2026年建筑物智能化與電氣節(jié)能技術(shù)發(fā)展
- 半導(dǎo)體產(chǎn)業(yè)人才供需洞察報告 202511-獵聘
- 電梯救援安全培訓(xùn)課件
- 2025年青島市國企社會招聘筆試及答案
- 2026屆江西省撫州市臨川區(qū)第一中學(xué)高二上數(shù)學(xué)期末考試模擬試題含解析
- 民航華東地區(qū)管理局機關(guān)服務(wù)中心2025年公開招聘工作人員考試題庫必考題
- 云南省大理州2024-2025學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試卷(含解析)
- 物業(yè)管理法律法規(guī)與實務(wù)操作
- 高壓避雷器課件
- 體檢中心收費與財務(wù)一體化管理方案
- 四川省內(nèi)江市2024-2025學(xué)年高二上學(xué)期期末檢測化學(xué)試題
評論
0/150
提交評論