1. 程式人生 > >c語言易錯基礎知識

c語言易錯基礎知識

1.c語言經過編譯,形成一個.obj的目標檔案,再經過連線,形成一個.exe的可執行檔案,是一個二進位制機器指令檔案。

2.用c語言編寫的程式成為源程式,它以ASCII程式碼姓氏存放在一個文字檔案中。

3.八進位制以0開頭,包含數字0-7。

4.e指數形式,前後必須有數字,e前邊小數點後必須有數字,e後必須為整數。

5.exp(x)代表e方。

6.pow(n,x)代表n方。

7.fabs()代表取絕對值。

8.%左右參與運算的變數均為整形。

9.vc6.0平臺中,int佔有4個位元組,double佔有8個位元組。

10.static變數是靜態變數,在語句塊執行期間,static變數賦初值語句執行一次,。

11.在c語言中,只有在使用時才佔用記憶體單元的變數,其儲存型別是auto和register。

12.位運算中,^是不同才為一,|是有一就是一,&是相同才是一。

13.條件表示式:x=表示式1?表示式2:表示式3;當表示式1為非0時,x=表示式2,當表示式1為0時,x=表示式3。

14.switch()後不能加分號,括號中不能用浮點型,long型,字串。

15.switch()運算中即使沒有break,也只是按順序執行一次,並不會執行完一次後從頭開始迴圈。

16.在一個c源程式檔案中所定義的全域性變數,其作用域為由具體定義位置和extern說明來決定範圍。

17.c語言源程式不能表示的數制是二進位制。

18.關於scanf輸入空格,當為%d或%s時,不可讀取空格,遇到空格結束輸入,當為%c時,可讀取空格作為字元。

19.字元指標:char *s;s=“hello”;是正確的定義賦值方式,不可加大括號。

20.字元陣列必須定義時立即賦值,並且加或不加大括號都可以。

21.巨集替換沒有資料型別限制。

22.巨集展開不佔執行時間,只佔編譯時間。

23.“\007”屬於合法常量。

24.若有以下函式首部int fun(double x[10],int *n);則對此函式的函式宣告語句是int fun(double *,int  *);

25.gets函式用於從終端讀入字串。

26.getchar是用於從終端讀入字元。

27.c語言中沒有邏輯型別。

28.c程式函式的形參不可以說明為static型變數。

29.執行for迴圈,先進入表示式1初始化,再經過表示式2判斷,為真進入迴圈體。

30.函式feof(fp)讀取到檔案末尾,遇檔案結束符,返回為非0值,若未結束則為0。

31.預處理命令是在程式正式編譯前被處理的。

32.源程式中凡是以#開始的控制行都是預處理命令。

33.一行上只能由一條有效的預處理命令。

34.轉義字元包括\a(響鈴),\b(退格),\f(換頁),\n(換行),\r(回車,游標回到本行開頭),\v(垂直製表),\xdd(1到2位十六進位制),\ddd(1到2位八進位制)。

35.未經賦值的auto,register變數值不確定,未經賦值的全域性變數,靜態區域性變數值為0。

36.void fun(float array[],int *ptr);函式引數array,ptr都是指標變數。

37.字串比較函式,str(c1,c2);c1<c2,為賦值,c1>c2,為正值,c1=c2,為0。

38.定義二維陣列,行可以不寫,列必須寫。

39.if(表示式),表示式可以是任意合法的數值。

40.scanf()中,%2d愛表讀取兩位,%*2d代表跳過兩位。

41.printf()中,%2d代表輸出的數值佔2位,若是數值少於兩位,用空格代替,若是數值多於兩位,照常輸出。

42.在c語言中,程式的模組化是利用函式實現的。

43.c語言檔案是由資料列組成,可以構成二進位制檔案或文字檔案。

44.結構體中當成員為陣列時,不能用陣列名直接賦值,應該寫出確切的下標。

45.字元陣列只有在初始化的時候整體賦值,否則只能對字元陣列逐個賦值。

46.定義二維陣列時。如果第一維德長度沒有指定,則定義的同時需要完成初始化。

47.識別符號分為關鍵字、預定義識別符號、使用者識別符號。關鍵字不可以作為使用者識別符號;預定義識別符號可以用作使用者識別符號,原來的預定義識別符號將會被使用者識別符號覆蓋,預定義識別符號的原意失效;使用者識別符號與預定義識別符號同名時,可能會導致執行錯誤。