freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第16章常見錯誤和程序調(diào)試(文件)

2025-10-13 19:05 上一頁面

下一頁面
 

【正文】 和 y時, x和 y的值并非 3和 4。也可以將 fun函數(shù)的位置調(diào)到 main函數(shù)之前,也可獲正確結(jié)果。 p1=amp。 p2=p1。如: p2=(float*)p1。而人們希望開辟的是存放一個結(jié)構(gòu)體變量值的存儲單元,要求得到指向該結(jié)構(gòu)體變量的指針,可以進行如下的類型轉(zhuǎn)換。 } 。 (26) 沒有注意函數(shù)參數(shù)的求值順序。在 Turbo C和其他一些 C系統(tǒng)中輸出是 5, 5, 4 因為這些系統(tǒng)是采取自右至左的順序求函數(shù)參數(shù)的值。例如 fun1(a+b, b+c, c+a)。因此,建議最好不用會引起二義性的用法。 printf(%d, %d, %d\n, i, j, k)。i< 5。即: int i, a[5], *p。i++) scanf(%d, p++)。p++) scanf(%d, p)。 char sex。 strcpy(worker. name, ZhangFun)。 這是錯誤的,只能對變量賦值而不能對類型賦值。 char sex。 worker1. num=187045。 worker1. age=18。 exit(0)。) { ch=ch+4。 此外,有的程序常忘記關閉文件,雖然系統(tǒng)會自動關閉所用文件,但可能會丟失數(shù)據(jù)。在深入使用 C語言后,還會出現(xiàn)其他一些更深入、更隱蔽的錯誤。 ② 邏輯錯誤。i=1。但 while語句通知給系統(tǒng)的信息是當 i≤100時,執(zhí)行“ sum=sum+i。要求程序員有較豐富的經(jīng)驗。 scanf(%d %d, amp。 printf(c=%d\n, c)。 寫完一個程序只能說完成任務的一半 (甚至不到一半 )。希望讀者通過實踐掌握調(diào)試程序的方法和技術(shù)。這一步是十分重要的,它能發(fā)現(xiàn)程序設計人員由于疏忽而造成的多數(shù)錯誤。 為了更有效地進行人工檢查,所編的程序應注意力求做到以下幾點:①應當采用結(jié)構(gòu)化程序方法編程,以增加可讀性 。 (2) 在人工 (靜態(tài) )檢查無誤后,才可以上機調(diào)試。 另外,有時提示出錯的類型并非絕對準確,由于出錯的情況繁多而且各種錯誤互有關聯(lián),因此要善于分析,找出真正的錯誤,而不要只從字面意義上死摳出錯信息,鉆牛角尖。例如,對所用的變量未定義,編譯時就會對所有含該變量的語句發(fā)出出錯信息。應當對運行結(jié)果作分析,看它是否符合要求。例如解方程 ax2+bx+c=0,輸入 a、 b、 c的值分別為 1時,根 x的值是 1。例如,用 x=b177。必須考慮周全??梢圆捎靡韵罗k法: ① 將程序與流程圖 (或偽代碼 )仔細對照,如果流程圖是正確的話,程序?qū)戝e了,是很容易發(fā)現(xiàn)的。直到找到在某一段中數(shù)據(jù)不對為止。當調(diào)試完畢,這些語句不要再 編譯了,也不再被執(zhí)行了 )。 總之,程序調(diào)試是一項細致深入的工作,需要下功夫、動腦子、善于累積經(jīng)驗。 。希望讀者能給以足夠的重視。 ④ 如果在程序中沒有發(fā)現(xiàn)問題,就要檢查流程圖有無錯誤,即算法有無問題,如有則改正之,接著修改程序。不斷縮小“查錯區(qū)”,就可能發(fā)現(xiàn)錯誤所在。 ② 如果實在找不到錯誤,可以采取“分段檢查”的方法。 (4) 運行結(jié)果不對,大多屬于邏輯錯誤。因此應當把程序可能遇到的多種方案都一一試到。 但是,用“試驗數(shù)據(jù)”時,程序運行結(jié)果正確,還不能保證程序完全正確。 有時,數(shù)據(jù)比較復雜,難以立即判斷結(jié)果是否正確。 (3) 在改正語法錯誤 (包括“錯誤” (error)和“警告” (warning))后,程序經(jīng)過連接 (link)就得到可執(zhí)行的目標程序。有時顯示出一大片出錯信息往往使人感到問題嚴重,無從下手。在編譯時給出語法錯誤的信息 (包括哪一行有錯以及錯誤類型 ),可以根據(jù)提示的信息具體找出程序中出錯之處并改正之。③ 在編寫復雜的程序時,不要將全部語句都寫在 main函數(shù)中,而要多利用函數(shù),用一個函數(shù)來實現(xiàn)一個單獨的功能。有人總希望把一切推給計算機系統(tǒng)去做,但這樣就會多占用機器時間。 調(diào)試程序一般應經(jīng)過以下幾個步驟: (1) 先進行人工檢查,即靜態(tài)檢查。常常有這樣的情況:程序花一天就寫完了,而調(diào)試程序二三天也未能完。 但是如果輸入 a的值為 0, 就會出現(xiàn)錯誤。b)。程序既無語法錯誤,也無邏輯錯誤,但在運行時出現(xiàn)錯誤甚至停止運行。 C系統(tǒng)無法辨別程序中這個語句是否符合作者的原意,而只能忠實地執(zhí)行這一指令。 i++。這是由于程序設計人員設計的算法有錯或編寫程序有錯,通知給系統(tǒng)的指令與解題的原意不相同,即出現(xiàn)了邏輯上的混亂。指違背了 C語法的規(guī)定,對這類錯誤,編譯程序一般能給出“出錯信息”,并且告訴你在哪一行出錯。 以上只是列舉了一些初學者常出現(xiàn)的錯誤,這些錯誤大多是對于 C語法不熟悉之故。 ch=fget(fp)。 while(ch! =39。 (29) 使用文件時忘記打開,或打開方式與使用情況不匹配。 worker1. sex=39。 } 。應改為 struct worker { long int num。M39。 } 。 struct worker { long int num。 for(p=a。 for(i=0。 … } 企圖通過 a的改變使指針下移,每次指向欲輸入數(shù)據(jù)的數(shù)組元素。 main( ) { int i, a[5]。 j=i+1。 3個實參表達式 a+b、 b+c、 c+a。 C標準沒有具體規(guī)定函數(shù)參數(shù)求值的順序是自左而右還是自右而左。 printf(%d, %d, %d\n, i, ++i, ++i)。 … p=(struct student *)malloc(LEN)。 char name[20]。 這種情況在 C程序中是常見的。 } 企圖使 p2也指向 i,但 p2是指向?qū)嵭妥兞康闹羔?,不能指向整型變量?p2=amp。 main( ) { int i=3, *p1。如果在 main函數(shù)中對 fun作原型聲明: fun (float, float)。 c=fun(a, b)。*pt1=*pt2。 swap(p1, p2)。 p1=amp。此時變量的值改變了,主調(diào)函數(shù)中可以利用這些已改變的值。 } 原意是通過調(diào)用 swap函數(shù)使 a和 b的值對換,然后在 ma
點擊復制文檔內(nèi)容
物理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1