




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、好久沒(méi)在編程區(qū)發(fā)貼了 今天發(fā)現(xiàn)個(gè)好東西 轉(zhuǎn)載給初學(xué) C 語(yǔ)言的朋友分享下! C語(yǔ)言的最大特點(diǎn)是:功能強(qiáng)、使用方便靈活 C 編譯的程序?qū)φZ(yǔ)法檢查并不象其它高級(jí)語(yǔ)言那么嚴(yán)格 這就給編程人員留下“靈活的余地” 但還是由于這個(gè)靈活給程序的調(diào)試帶來(lái)了許多不便 尤其對(duì)初學(xué)C語(yǔ)言的人來(lái)說(shuō) 經(jīng)常會(huì)出一些連自己都不知道錯(cuò)在哪里的錯(cuò)誤 看著有錯(cuò)的程序 不知該如何改起 本人通過(guò)對(duì)C的學(xué)習(xí) 積累了一些 C編程時(shí)常犯的錯(cuò)誤 寫給各位學(xué)員以供參考 1. 書寫標(biāo)識(shí)符時(shí) 忽略了大小寫字母的區(qū)別 main() int a=5 。 printf(%d,A) 。 編譯程序把 a 和 A 認(rèn)為是兩個(gè)不同的變量名 而顯示出錯(cuò)信息 C
2、認(rèn)為大寫字母和小寫字母是兩個(gè)不同的字符 習(xí)慣上 符號(hào)常量名用大寫 變量名用小寫表示 以增加可讀性 2. 忽略了變量的類型 進(jìn)行了不合法的運(yùn)算 main() float a,b 。 printf(%d,a%b) 。 %是求余運(yùn)算 得到 a/b 的整余數(shù) 整型變量 a 和 b 可以進(jìn)行求余運(yùn)算 而實(shí)型變量則不允許進(jìn)行“求余”運(yùn)算 3. 將字符常量與字符串常量混淆 char c 。 c=a 。 在這里就混淆了字符常量與字符串常量 字符常量是由一對(duì)單引號(hào)括起來(lái)的單個(gè)字符 字符串常量是一對(duì)雙引號(hào)括起來(lái)的字符序列 C 規(guī)定以“ ”作字符串結(jié)束標(biāo)志 它是由系統(tǒng)自動(dòng)加上的 所以字符串“ a”實(shí)際上包含兩個(gè)字符
3、:a和 而把它賦給一個(gè)字符變量是不行的 4. 忽略了“ =”與“ =”的區(qū)別 在許多高級(jí)語(yǔ)言中 用“ =”符號(hào)作為關(guān)系運(yùn)算符“等于” 如在BASIC程序中可以寫 if (a=3) then 但 C 語(yǔ)言中 “ =”是賦值運(yùn)算符 “ =”是關(guān)系運(yùn)算符 如: if (a=3) a=b 。 前者是進(jìn)行比較 a 是否和 3 相等 后者表示如果 a 和 3 相等 把 b 值賦給 a 由于習(xí)慣問(wèn)題 初學(xué)者往往會(huì)犯這樣的錯(cuò)誤 5. 忘記加分號(hào) 分號(hào)是C語(yǔ)句中不可缺少的一部分 語(yǔ)句末尾必須有分號(hào) a=1 b=2 編譯時(shí) 編譯程序在“ a=1”后面沒(méi)發(fā)現(xiàn)分號(hào) 就把下一行“ b=2”也作為上一行語(yǔ)句的一部分 這就
4、會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤 改錯(cuò)時(shí) 有時(shí)在被指出有錯(cuò)的一行中未發(fā)現(xiàn)錯(cuò)誤 就需要看一下上一行是否漏掉了分號(hào) z=x+y 。 t=z/100 。 printf(%f,t) 。 對(duì)于復(fù)合語(yǔ)句來(lái)說(shuō) 最后一個(gè)語(yǔ)句中最后的分號(hào)不能忽略不寫(這是和PASCAI不同的) 6. 多加分號(hào) 對(duì)于一個(gè)復(fù)合語(yǔ)句 如: z=x+y 。 t=z/100 。 printf(%f,t) 。 。 復(fù)合語(yǔ)句的花括號(hào)后不應(yīng)再加分號(hào) 否則將會(huì)畫蛇添足 又如: if (a%3=0)。 I+ 。 本是如果 3 整除 a 則I加1 但由于 if (a%3=0) 后多加了分號(hào) 則 if 語(yǔ)句到此結(jié)束 程序?qū)?zhí)行 I+ 語(yǔ)句 不論 3 是否整除 a I
5、都將自動(dòng)加 1 再如: for (1=0。15。I+)。 scanf(%d,&x)。 printf(%d,x) 。 本意是先后輸入 5 個(gè)數(shù) 每輸入一個(gè)數(shù)后再將它輸出 由于 for() 后多加了一個(gè)分號(hào) 使循環(huán)體變?yōu)榭照Z(yǔ)句 此時(shí)只能輸入一個(gè)數(shù)并輸出它 7. 輸入變量時(shí)忘記加地址運(yùn)算符“ &” int a,b 。 scanf(%d%d,a,b) 。 這是不合法的 Scanf 函數(shù)的作用是:按照 a、 b 在內(nèi)存的地址將 a、 b 的值存進(jìn)去 “&a”指a在內(nèi)存中的地址 8. 輸入數(shù)據(jù)的方式與要求不符 seanf(%d%d,&a,&b)。 輸入時(shí) 不能用逗號(hào)作兩個(gè)數(shù)據(jù)間的分隔符 如下面輸入不合法:
6、 3 4 輸入數(shù)據(jù)時(shí) 在兩個(gè)數(shù)據(jù)之間以一個(gè)或多個(gè)空格間隔 也可用回車鍵 跳格鍵 tab seanf(%d,%d,&a,&b)。 C規(guī)定:如果在“格式控制”字符串中除了格式說(shuō)明以外還有其它字符 則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符相同的字符 下面輸入是合法的: 3 4 此時(shí)不用逗號(hào)而用空格或其它字符是不對(duì)的 3 4 3 : 4 又如: seanf(a=%d,b=%d,&a,&b)。 輸入應(yīng)如以下形式: a=3,b=4 9. 輸入字符的格式與要求不一致 在用“ %c格式輸入字符時(shí) “空格字符”和“轉(zhuǎn)義字符”都作為有效字符輸入 scanf(%c%c%c,&c1,&c2,&c3) 如輸入 a b c 字符“
7、 a”送給cl 字符“ ”送給 c2 字符“ b”送給c3 因?yàn)?c只要求讀入一個(gè)字符 后面不需要用空格作為兩個(gè)字符的間隔 10. 輸入輸出的數(shù)據(jù)類型與所用格式說(shuō)明符不一致 例如 a 已定義為整型 b 定義為實(shí)型 a=3。 b=4.5 。 printf(%f%dn,a,b) 。 編譯時(shí)不給出出錯(cuò)信息 但運(yùn)行結(jié)果將與原意不符 這種錯(cuò)誤尤其需要注意 11. 輸入數(shù)據(jù)時(shí) 企圖規(guī)定精度 scanf(%7.2f,&a)。 這樣做是不合法的 輸入數(shù)據(jù)時(shí)不能規(guī)定精度 12. switch 語(yǔ)句中漏寫 break 語(yǔ)句 例如:根據(jù)考試成績(jī)的等級(jí)打印出百分制數(shù)段 switch(grade) case A:pri
8、ntf(85100n)。 case B:printf(7084n)。 case C:printf(6069n)。 case D:printf(60n)。 default:printf(errorn)。 由于漏寫了 break 語(yǔ)句 case 只起標(biāo)號(hào)的作用 而不起判斷作用 因此 當(dāng) grade 值為 A 時(shí) 函數(shù)語(yǔ)句 printf 函數(shù)在執(zhí)行完第一個(gè)語(yǔ)句后接著執(zhí)行第二、三、四、五個(gè)printf 正確寫法應(yīng)在每個(gè)分支后再加上“ break 。” 例如 case A:printf(85100n)。 break 。 13. 忽視了 while 和 do-while 語(yǔ)句在細(xì)節(jié)上的區(qū)別 (1)main
9、() int a=0,I 。 scanf(%d,&I) 。 while(I=10) a=a+I 。 I+ 。 printf(%d,a) 。 (2)main() int a=0,I 。 scanf(%d,&I) 。 do a=a+I 。 I+ 。 while(I10 時(shí) 二者結(jié)果就不同了 因?yàn)?while 循環(huán)是先判斷后執(zhí)行 而 do-while 循環(huán)是先執(zhí)行后判斷 對(duì)于大于 10 的數(shù) while 循環(huán)一次也不執(zhí)行循環(huán)體 而 do-while 語(yǔ)句則要執(zhí)行一次循環(huán)體 14. 定義數(shù)組時(shí)誤用變量 int n 。 scanf(%d,&n) 。 int an 。 數(shù)組名后用方括號(hào)括起來(lái)的是常量表達(dá)式
10、 可以包括常量和符號(hào)常量 即 C 不允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義 15. 在定義數(shù)組時(shí) 將定義的“元素個(gè)數(shù)”誤認(rèn)為是可使的最大下標(biāo)值 main() static int a10=1,2,3,4,5,6,7,8,9,10。 printf(%d,a10) 。 C 語(yǔ)言規(guī)定:定義時(shí)用 a10 表示 a 數(shù)組有 10 個(gè)元素 其下標(biāo)值由 0 開始 所以數(shù)組元素 a10 是不存在的 16. 初始化數(shù)組時(shí) 未使用靜態(tài)存儲(chǔ) int a3=0,1,2。 這樣初始化數(shù)組是不對(duì)的 C 語(yǔ)言規(guī)定只有靜態(tài)存儲(chǔ) (static) 數(shù)組和外部存儲(chǔ) (exterm) 數(shù)組才能初始化 應(yīng)改為: static int a3=0,1,2 。 17. 在不應(yīng)加地址運(yùn)算符 &的位置加了地址運(yùn)算符 scanf(%s,&str) 。 C語(yǔ)言編譯系統(tǒng)對(duì)數(shù)組名的處理是:數(shù)組名代表該數(shù)組的起始地址 且 scanf 函數(shù)中的輸入項(xiàng)是字符數(shù)組名 不必要再加地址符 & 應(yīng)改為: sc
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國(guó)印花梭織面料行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國(guó)2-甲基吲哚行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國(guó)高壓疏水?dāng)U容器數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)薄之片數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 吊籃方案施工方案
- 2025至2030年中國(guó)環(huán)氧陶瓷噴涂機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)水質(zhì)穩(wěn)定器數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)氨用壓力表數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)普通調(diào)速把數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)徑向磁軸承數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 溫室大棚花卉苗圃采暖方案空氣源熱泵
- BEC商務(wù)英語(yǔ)高級(jí)考試歷年真題
- 初二地理中考復(fù)習(xí)備考策略與計(jì)劃
- (完整word版)省級(jí)溫室氣體清單編制指南
- GB/T 5465.1-2009電氣設(shè)備用圖形符號(hào)第1部分:概述與分類
- 2023年遼寧鐵道職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))試題庫(kù)含答案解析
- GB/T 39399-2020北斗衛(wèi)星導(dǎo)航系統(tǒng)測(cè)量型接收機(jī)通用規(guī)范
- 黔2022-T122 磷石膏砂漿噴筑復(fù)合墻標(biāo)準(zhǔn)圖集 第1部分:輕鋼龍骨-磷石膏砂漿噴筑復(fù)合墻體
- GB 29444-2012煤炭井工開采單位產(chǎn)品能源消耗限額
- CAPP教學(xué)講解課件
- 精細(xì)化學(xué)品化學(xué)-緒論課件
評(píng)論
0/150
提交評(píng)論