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

正文內(nèi)容

第16章常見錯誤和程序調(diào)試-展示頁

2024-10-10 19:05本頁面
  

【正文】 檢查上一行是否漏了分號。有的初學(xué)者往往忘記寫這一分號。分號是 C語句不可缺少的一部分。 (7) 語句后面漏分號。 這種錯誤在編譯時是檢查不出來的,但運(yùn)行結(jié)果往往是錯的。而現(xiàn)在先將 b的值賦給 a, a也為 4,賦值表達(dá)式的值為 4。若為零作為假。如果寫成 if(a=b) printf(a equal to b)。 在許多高級語言中,用“ =”符號作為關(guān)系運(yùn)算符“等于”。b)。 scanf(%d, %d, amp。如果想在屏幕上得到所需的提示信息,可以另加一個 printf函數(shù)語句: printf(input a amp。 b: 然后在其后輸入 a和 b的值,這是不行的。b)。 b: %d, %d, amp。因此,應(yīng)按以下方法輸入: 3, 4 此時如果用“ 34”反而錯了。b)。應(yīng)該用以下方法輸入: 3 4 如果 scanf函數(shù)為 scanf(%d, %d, amp。讀者可以用 printf(%d%d, a, b)。 有人按下面的方法輸入數(shù)據(jù): 3, 4 這是錯的。a, amp。 用 scanf函數(shù)輸入數(shù)據(jù),應(yīng)注意如何組織輸入數(shù)據(jù)。b)。應(yīng)寫成 scanf(%d%d, amp。如: scanf(%d%d, a, b)。 請注意,如果只定義 num為 long型,而在輸出時仍用“ %d”說明符,仍會出現(xiàn)以上錯誤。 num=89101。因?yàn)?196607的二進(jìn)制形式為 00 00 00 00 00 00 00 1011 11 11 11 11 11 11 11 去掉高位 10,低 16位的值是 1(1的補(bǔ)碼是:1111111111111111)。例如 num=196607。8910165536=23565。即將超過低 16位的數(shù)截去。兩個字節(jié)容納不下 89101,則將高位截去。 printf(%d, num)。常見這樣的程序段: int num。 一般微型計(jì)算機(jī)上使用的 C編譯系統(tǒng),對一個整型數(shù)據(jù)分配兩個字節(jié)。 編譯時不給出出錯信息,但運(yùn)行結(jié)果將與原意不符,輸出為 0. 000000 16402 它們并不是按照賦值的規(guī)則進(jìn)行轉(zhuǎn)換 (如把 4. 5轉(zhuǎn)換成 4),而是將數(shù)據(jù)在存儲單元中的形式按格式符的要求組織輸出 (如 b占 4個字節(jié),只把最后兩個字節(jié)中的數(shù)據(jù)按 %d,作為整數(shù)輸出 )。b=4. 5。 例如,若 a已定義為整型, b已定義為實(shí)型。在 FORTRAN中,未經(jīng)定義類型的變量按隱含的 IN規(guī)則決定其類型,而 C語言則要求對用到的每一個變量都要在本函數(shù)中定義 (除非已定義為外部變量 )。這是學(xué)過 BASIC和 FORTRAN語言的讀者寫 C程序時常見的一個錯誤。 } C要求對程序中用到的每一個變量都必須定義其類型,上面程序中沒有對 x、 y進(jìn)行定義。 y=6。 (1) 忘記定義變量。 常見錯誤分析 下面將初學(xué)者在學(xué)習(xí)和使用 C語言 (不包括 C++)時容易犯的錯誤列舉出來,以起提醒的作用。需要不斷積累經(jīng)驗(yàn),提高程序設(shè)計(jì)和調(diào)試程序的水平。因此,往往要由程序設(shè)計(jì)者自己設(shè)法保證程序的正確性。 第 16章 常見錯誤和程序調(diào)試 常見錯誤分析 程序調(diào)試 要真正學(xué)好 C、用好 C并不容易,“靈活”固然是好事,但也使人難以掌握,尤其是初學(xué)者往往出了錯還不知怎么回事。C編譯程序?qū)φZ法的檢查不如其他高級語言那樣嚴(yán)格 (這是為了給程序人員留下“靈活”的余地 )。調(diào)試一個 C程序要比調(diào)試一個 PASCAL或 FORTRAN程序更困難一些。 C語言有些語法規(guī)定和其他高級語言不同,學(xué)習(xí)過其他高級語言的讀者往往按照使用其他高級語言的習(xí)慣來寫 C程序,這也是出錯的一個原因。這些內(nèi)容在以前各章中大多已談到,為便于查閱,在本章中集中列舉,供初學(xué)者參考,以此為鑒。如: main( ) { x=3。 printf(%d\n , x+y)。應(yīng)在函數(shù)體的開頭加 int x, y。在 BASIC語言中,可以不必先定義變量類型就可直接使用。 (2) 輸入輸出的數(shù)據(jù)的類型與所用格式說明符不一致。 a=3。 printf(%f %d\n, a, b)。 (3) 未注意 int型數(shù)據(jù)的數(shù)值范圍。因此一個整數(shù)的范圍為 215~ 2151,即 32768~32767。 num=89101。 得到的卻是 23565,原因是 89101已超過 32767。見圖 。即將 89101減去 216(即 16位二進(jìn)制所形成的模 )。 圖 有時還會出現(xiàn)負(fù)數(shù)。 輸出得 1。 對于超過整個范圍的數(shù),要用 long型,即改為 long int num。 printf(%ld, num)。 (4) 輸入變量時忘記使用地址符。 這是許多初學(xué)者剛學(xué)習(xí) C語言時一個常見的疏忽,或者說是習(xí)慣性的錯誤,因?yàn)樵谄渌Z言中在輸入時只需寫出變量名即可,而 C語言要求指明“向哪個地址標(biāo)識的單元送值”。a, amp。 (5) 輸入時數(shù)據(jù)的組織與要求不符。假如有以下 scanf函數(shù): scanf(%d%d, amp。b)。數(shù)據(jù)間應(yīng)該用空格來分隔。 來驗(yàn)證一下。a, amp。 對 scanf函數(shù)中格式字符串中除了格式說明符外,對其他字符必須按原樣輸入。 還應(yīng)注意,不能企圖用 scanf(input a amp。a, amp。 想在屏幕上顯示一行信息: input a amp。這是由于有的讀者以為 scanf具有 BASIC語言中的 INPUT語句的功能 (先輸出一個字符串,再輸入變量的值 )。 b: )。a, amp。 (6) 誤把“ =”作為“等于”比較符。例如,在 BASIC或 PASCAL程序中都可以寫 if(a=b) then… 但在 C語言中,“ =”是賦值運(yùn)算符,“ ==”才是關(guān)系運(yùn)算符“等于”。 C編譯系統(tǒng)將 (a=b)作為賦值表達(dá)式處理,將 b的值賦給 a,然后判斷 a的值是否零,若為非零,則作為“真” 。如果 a的值為 3, b的值為 4, a≠b,按原意不應(yīng)輸出“ ae q u a lt ob”。 if語句中的表達(dá)式值為真 (非零 ),因此輸出“ ae q u a lt o b”。而且由于習(xí)慣的影響,程序設(shè)計(jì)者自己往往也不易發(fā)覺。 C語言規(guī)定語句末尾必須有分號。這也是和其他語言不同的。如: a=3 b=4 編譯時,編譯程序在“ a=3”后面未發(fā)現(xiàn)分號,就把下一行“ b=4”也作為上一行的語句的一部分,這就出現(xiàn)
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1