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

正文內(nèi)容

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

2024-10-16 19:05 上一頁面

下一頁面
 

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