c语言程序设计的一般错误的是,《C语言程序设计》第十章 程序常见错误分析.pdf...
第十章 程序常見錯(cuò)誤分析
第十章 程序常見錯(cuò)誤分析
C 語言是一種方便靈活、功能性很強(qiáng)的程序設(shè)計(jì)語言,但是對(duì)于初學(xué)者很難掌
握,尤其是出了錯(cuò)還不知道錯(cuò)誤在哪兒,這是由于 c 編譯程序?qū)φZ法的檢查不如其
他高級(jí)語言那樣嚴(yán)格,往往要求設(shè)計(jì)者自己設(shè)法保證程序的正確性,因此調(diào)試一個(gè)
c 語言程序是不容易的,需要設(shè)計(jì)者不斷積累經(jīng)驗(yàn),提高程序設(shè)計(jì)和調(diào)試的水平。
本章將初學(xué)者容易犯的錯(cuò)誤集中列舉出來,供初學(xué)者參考,另外,還介紹了調(diào)
試程序的一般方法,以便于初學(xué)者提高調(diào)試程序的能力。
10.1 常見錯(cuò)誤分析
程序出錯(cuò)通常有兩種情況:
一、語法錯(cuò)誤。這種錯(cuò)誤通常 c 語言編譯程序會(huì)給出“出錯(cuò)信息”,并且告訴你
在哪一行出錯(cuò),程序
設(shè)計(jì)者只要細(xì)心,會(huì)很快發(fā)現(xiàn)并排除這類錯(cuò)誤。
二、邏輯錯(cuò)誤。這種錯(cuò)誤通常 c 語言編譯程序不會(huì)檢查出來,因此它比語法錯(cuò)
誤更難檢查,這就要求
程序設(shè)計(jì)者必須要有豐富的經(jīng)驗(yàn),才能很快的解決。有時(shí)可能設(shè)計(jì)者忘記加某種符
號(hào),例如,復(fù)合語句的花括號(hào),而導(dǎo)致程序出錯(cuò),這種錯(cuò)誤經(jīng)過仔細(xì)檢查,還是可
以發(fā)現(xiàn)的。但是,如果程序從算法上就有問題,那修改和檢查起來就非常困難了,
像這種錯(cuò)誤,在這里不作贅述。
下面將程序中常見的錯(cuò)誤列舉出來,供初學(xué)者參考,并以此為鑒。
1.沒有定義變量
在 c 語言程序中,變量一般是先定義后使用。
例如:
main ()
{int x=10,y=2;
s=x*y+3;
printf(“%d\n”,s);
}
編譯后,編譯程序在程序第三行給出出錯(cuò)信息“Undefined symbol 's' in function
main ”,意思是在 main 函數(shù)中第三行有未定義的符號(hào)‘s ’,如果在程序開頭這樣寫
“int x=10,y=2,s; ”上面的程序就順利通過編譯程序了。
再如:
127
第十章 程序常見錯(cuò)誤分析
main ()
{int x=10;y=2;
printf (“%d\n”, x*y+3);
}
編譯后,編譯程序在程序第一行給出出錯(cuò)信息“Undefined symbol 'y' in function
main ”,在定義類型一致的多個(gè)變量時(shí),變量之間用逗號(hào)隔開,如果用分號(hào)隔開說明
這句定義語句結(jié)束,后面的變量就沒有被定義,如果將“y =2 ;”這句前的分號(hào)改成
逗號(hào),程序就不會(huì)出錯(cuò)了。這種錯(cuò)誤是初學(xué)者最愛犯的錯(cuò)誤。
2 .未注意數(shù)據(jù)的數(shù)值范圍
各種不同類型的數(shù)據(jù)類型表示數(shù)的范圍不同,例如,int 類型的數(shù)占 2 個(gè)字節(jié),
表示范圍-32768~
32767,如果所表示的數(shù)超過這個(gè)范圍,結(jié)果就會(huì)出錯(cuò),如下面的程序段:
int num;
num=89101;
printf(“%d”,num);
程序運(yùn)行結(jié)果是 23565 ,而不是 89101,原因是 89101 已超過了32767,兩個(gè)字節(jié)容
不下 89101,則將高位截取。見圖 12.1
00 00 00 00 00 00 00 01 01 01 11 00 00 00 11 01 89101:
23565 :
01 01 11 00 00 00 11 01
3 .輸入輸出的數(shù)據(jù)類型與所用格式說明符不一致
輸入輸出的數(shù)據(jù)類型應(yīng)與所用格式說明符匹配,否則將會(huì)導(dǎo)致運(yùn)行結(jié)果與原意
不符。
例如下面的程序段:
int a=3;
float b=4.5;
printf(“%f,%d\n”,a,b);
總結(jié)
以上是生活随笔為你收集整理的c语言程序设计的一般错误的是,《C语言程序设计》第十章 程序常见错误分析.pdf...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 尼康d300s按键图解(尼康d300s相
- 下一篇: c语言程序设计实践教程张卫国,C语言程序