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

正文內(nèi)容

第16章常見(jiàn)錯(cuò)誤和程序調(diào)試-免費(fèi)閱讀

  

【正文】 在程序調(diào)試過(guò)程中往往反映出一個(gè)人的水平、經(jīng)驗(yàn)和科學(xué)態(tài)度。這時(shí)就已經(jīng)把錯(cuò)誤局限在這一段中了。 事實(shí)上,當(dāng)程序復(fù)雜時(shí)很難把所有的可能方案全部都試到,選擇典型的情況作試驗(yàn)即可。這是容易判斷的,若根不等于 1,程序顯然有錯(cuò)。只要加上一個(gè)變量定義,所有錯(cuò)誤都消除了。通過(guò)上機(jī)發(fā)現(xiàn)錯(cuò)誤稱動(dòng)態(tài)檢查。而這一步驟往往容易被人忽視。調(diào)試程序往往比寫(xiě)程序更難,更需要精力、時(shí)間和經(jīng)驗(yàn)。a, amp?!?。程序并無(wú)違背語(yǔ)法規(guī)則,但程序執(zhí)行結(jié)果與原意不符。因此必須在用完文件后關(guān)閉它。 } ch=fgetc(fp)。 strcpy(worker1. name, Zhang Fun)。上面只定義了 struct worker類型而未定義變量。 int age。 或 int a[5], *p。i++) scanf(%d, a++)。 如果在上例中,希望輸出“ 3, 4, 5”時(shí),可以改用 i=3。先求出最右面一個(gè)參數(shù) (++i)的值為 4,再求出第 2個(gè)參數(shù) (++i)的值為 5,最后求出最左面的參數(shù) (i)的值 5。 struct student student1, *p。 作用是先將 p1的值轉(zhuǎn)換成指向?qū)嵭偷闹羔槪缓笤儋x給 p2。i。 C要求實(shí)參與形參的類型一致。 t=*pt1。b=4。y=t。 main( ) { inta, b。即: float max(float x, float y) { return(z =x> y? x: y)。原因是 max函數(shù)是實(shí)型的,而且在 main函數(shù)之后才定義,也就是 max函數(shù)的定義位置在 main函數(shù)中的調(diào)用 max函數(shù)之后。 } (22) 所調(diào)用的函數(shù)在調(diào)用語(yǔ)句之后才定義,而又在調(diào)用前未加說(shuō)明。 (21) 有人習(xí)慣用傳統(tǒng)的方式對(duì)函數(shù)形參進(jìn)行聲明,但卻把對(duì)函數(shù)的形參和函數(shù)中的局部變量混在一起定義。 例如: main( ) { int p, a[5]={ 1, 3, 5, 7, 9} 。 } (19) 混淆字符和字符串的表示形式。 break。 case 4: printf(Good! )。 … } 沒(méi)有給指針變量 p賦值就引用它,編譯時(shí)給出警告信息。如果把“ char str[4]。 (16) 混淆字符數(shù)組與字符指針的區(qū)別。所以 a[1+2, 2+2]相當(dāng)于 a[4]。 C語(yǔ)言規(guī)定定義時(shí)用 a[10],表示 a數(shù)組有 10個(gè)元素,而不是可以用的最大下標(biāo)值為 10。 (13) 在定義數(shù)組時(shí),將定義的“元素個(gè)數(shù)”誤認(rèn)為是“可使用的最大下標(biāo)值”。編譯程序把 a和 A認(rèn)作是兩個(gè)不同的變量名處理,同樣 b和 B, c和 C都分別代表兩個(gè)不同的變量。 少了一個(gè)右括弧?!辈粚儆谘h(huán)體范圍之內(nèi)。 while(i< =100) sum=sum+i。 printf(%d\n, x*x)。即當(dāng) (a>b)為真時(shí),執(zhí)行一個(gè)空語(yǔ)句。 如果用復(fù)合語(yǔ)句,有的學(xué)過(guò) PASCAL語(yǔ)言的讀者往往漏寫(xiě)最后一個(gè)語(yǔ)句的分號(hào),如: { t=a。而且由于習(xí)慣的影響,程序設(shè)計(jì)者自己往往也不易發(fā)覺(jué)。例如,在 BASIC或 PASCAL程序中都可以寫(xiě) if(a=b) then… 但在 C語(yǔ)言中,“ =”是賦值運(yùn)算符,“ ==”才是關(guān)系運(yùn)算符“等于”。這是由于有的讀者以為 scanf具有 BASIC語(yǔ)言中的 INPUT語(yǔ)句的功能 (先輸出一個(gè)字符串,再輸入變量的值 )。 對(duì) scanf函數(shù)中格式字符串中除了格式說(shuō)明符外,對(duì)其他字符必須按原樣輸入。b)。 這是許多初學(xué)者剛學(xué)習(xí) C語(yǔ)言時(shí)一個(gè)常見(jiàn)的疏忽,或者說(shuō)是習(xí)慣性的錯(cuò)誤,因?yàn)樵谄渌Z(yǔ)言中在輸入時(shí)只需寫(xiě)出變量名即可,而 C語(yǔ)言要求指明“向哪個(gè)地址標(biāo)識(shí)的單元送值”。 輸出得 1。 得到的卻是 23565,原因是 89101已超過(guò) 32767。 printf(%f %d\n, a, b)。應(yīng)在函數(shù)體的開(kāi)頭加 int x, y。 C語(yǔ)言有些語(yǔ)法規(guī)定和其他高級(jí)語(yǔ)言不同,學(xué)習(xí)過(guò)其他高級(jí)語(yǔ)言的讀者往往按照使用其他高級(jí)語(yǔ)言的習(xí)慣來(lái)寫(xiě) C程序,這也是出錯(cuò)的一個(gè)原因。因此,往往要由程序設(shè)計(jì)者自己設(shè)法保證程序的正確性。 y=6。 例如,若 a已定義為整型, b已定義為實(shí)型。常見(jiàn)這樣的程序段: int num。8910165536=23565。 請(qǐng)注意,如果只定義 num為 long型,而在輸出時(shí)仍用“ %d”說(shuō)明符,仍會(huì)出現(xiàn)以上錯(cuò)誤。 用 scanf函數(shù)輸入數(shù)據(jù),應(yīng)注意如何組織輸入數(shù)據(jù)。應(yīng)該用以下方法輸入: 3 4 如果 scanf函數(shù)為 scanf(%d, %d, amp。b)。b)。而現(xiàn)在先將 b的值賦給 a, a也為 4,賦值表達(dá)式的值為 4。有的初學(xué)者往往忘記寫(xiě)這一分號(hào)。 printf(a is larger than b\n)。i++)。 (9) 對(duì)應(yīng)該有花括弧的復(fù)合語(yǔ)句,忘記加花括弧。錯(cuò)誤在于沒(méi)有寫(xiě)成復(fù)合語(yǔ)句形式。如: while((c=getchar( )! =39。 C=A+B。i++) scanf(%d, amp。i++) printf(%d, a[i])。 … } 對(duì)二維數(shù)組和多維數(shù)組在定義和引用時(shí)必須將每一維的數(shù)據(jù)分別用方括弧括起來(lái)。 printf(%d%d%d%d\n, a)。 str是數(shù)組名,代表數(shù)組首地址。 (17) 在引用指針變量之前沒(méi)有對(duì)它賦予確定的值。再執(zhí)行 scanf函數(shù)就沒(méi)有問(wèn)題了,把從鍵盤(pán)輸入的字符串存放到字符數(shù)組 c中。但當(dāng) score的值為 5時(shí),輸出為 V ery Good! Good! Pass! Fail! data error! 原因是漏寫(xiě)了 break語(yǔ)句。 case 2: print(Fail! )。M39。 p的原值指向數(shù)組 a的第 0個(gè)元素 a[0],因此 *p就是第 0個(gè)元素 a[0]的值 1。 { int z 。 printf(%f\n,z )。 z =max(x, y)。 printf(%f\n,z )。 } swap(int x, int y) { int t。此時(shí)變量的值改變了,主調(diào)函數(shù)中可以利用這些已改變的值。 swap(p1, p2)。 c=fun(a, b)。 main(
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1