天天看點

重讀C語言(C語言複習指南)

初學C語言三步走

第1步:定義程式的目标

在動手寫程式之前,要在腦中有清晰的思路。想要程式去做什麼首先自己要明确自己想做什麼,思考你的程式需要哪些資訊,要進行哪些計算和控制,以及程式應該要報告什麼資訊。在這一步驟中,不涉及具體的計算機語言,應該用一般術語來描述問題。

第2步:設計程式

對程式應該完成什麼任務有概念性的認識後,就應該考慮如何用程式來完成它。例如,使用者界面應該是怎樣的?如何組織程式?目标使用者是誰?準備花多長時間來完成這個程式?除此之外,還要決定在程式(還可能是輔助檔案)中如何表示資料,以及用什麼方法處理資料。學習C語言之初,遇到的問題都很簡單,沒什麼可選的。但是,随着要處理的情況越來越複雜,需要決策和考慮的方面也越來越多。通常,選擇一個合适的方式表示資訊可以更容易地設計程式和處理資料。再次強調,應該用一般術語來描述問題,而不是用具體的代碼。但是,你的某些決策可能取決于語言的特性。例如,在資料表示方面,C的程式員就比Pascal的程式員有更多選擇。

第3步:編寫代碼

設計好程式後,就可以編寫代碼來實作它。也就是說,把你設計的程式翻譯成 C語言。這裡是真正需要使用C語言的地方。可以把思路寫在紙上,但是最終還是要把代碼輸入計算機。這個過程的機制取決于程式設計環境,我們稍後會詳細介紹一些常見的環境。一般而言,使用文本編輯器建立源代碼檔案。該檔案中内容就是你翻譯的C語言代碼。

C源代碼的基本示例:

#include<stdio.h>
int main()
{
    //聲明(定義)變量
    //變量處理
    return 0;
}
           

代碼詳解:

#include<stdio.h>

←包含另一個檔案

該行告訴編譯器把stdio.h中的内容包含在目前程式中。stdio.h是C編譯器軟體包的标準部分,它提供鍵盤輸入和螢幕輸出的支援。

int main(void)

←函數名

C程式包含一個或多個函數,它們是C程式的基本子產品。基本示例的程式中有一個名為main()的函數。圓括号表明main()是一個函數名。int表明main()函數傳回一個整數,void表明main()不帶任何參數。這些内容我們稍後詳述。現在,隻需記住int和void是标準ANSI C定義main()的一部分。

←注釋

注釋在

兩個符号之間,這些注釋能提高程式的可讀性。注意,注釋隻是為了幫助讀者了解程式,編譯器會忽略它們。

{

←函數體開始

左花括号表示函數定義開始,右花括号(})表示函數定義結束。

int num;

←聲明

該聲明表明,将使用一個名為num的變量,而且num是int(整數)類型。

num = 1;

←指派表達式語句

語句num = 1;把值1賦給名為num的變量。

printf("I am a simple ");

←調用一個函數

該語句使用 printf()函數,在螢幕上顯示 I am a simple,光标停在同一行。printf()是标準的C庫函數。在程式中使用函數叫作調用函數。

printf("computer.\n");

←調用另一個函數

接下來調用的這個printf()函數在上條語句列印出來的内容後面加上“computer”。代碼\n告訴計算機另起一行,即把光标移至下一行。

printf("My favorite number is %d because it is first.\n", num);
           

最後調用的printf()把num的值(1)内嵌在用雙引号括起來的内容中一并列印。%d告訴計算機以何種形式輸出num的值,列印在何處。

return 0;

←return語句

C函數可以給調用方提供(或傳回)一個數。目前,可暫時把該行看作是結束main()函數的要求。

}

←結束

必須以右花括号表示程式結束。

C語言小知識點總結

1.每個C語言程式寫完後,都是先編譯,後連結,最後運作。(.c—.obj—.exe)這個過程中注意.c和.obj檔案時無法運作的,隻有.exe檔案才可以運作。

重讀C語言(C語言複習指南)

2. 程式結構是三種: 順序結構 、選擇結構(分支結構)、循環結構。

3.讀程式都要從main()入口, 然後從最上面順序往下讀(碰到循環做循環,碰到選擇做選擇),有且隻有一個main函數。

4.計算機的資料在電腦中儲存是以 二進制的形式. 資料存放的位置就是 他的位址。

5.bit是位 是指為0 或者1。 byte 是指位元組, 一個位元組 = 八個位。

6.編譯預處理不是C語言的一部分,不占運作時間,不要加分号。C語言編譯的程式稱為源程式,它以ASCII數值存放在文本檔案中。

7.define PI 3.1415926; 這個寫法是錯誤的,一定不能出現分号。

8.每個C語言程式中main函數是有且隻有一個。

9.在函數中不可以再定義函數。

10.算法:可以沒有輸入,但是一定要有輸出。

11.break可用于循環結構和switch語句。

12.逗号運算符的級别最低,指派的級别倒數第二。

13.C語言編寫的程式稱為源程式,又稱為編譯機關。

14.C語言書寫格式是自由的,每行可以寫多個語句,可以寫多行。

15.一個C語言程式有且隻有一個main函數,是程式運作的起點。

16.辨別符:

合法的要求是由字母,數字,下劃線組成。有其它元素就錯了。并且第一個必須為字母或則是下劃線。第一個為數字就錯了。

17.C語言隻有八、十、十六進制,沒有二進制。但是運作時候,所有的進制都要轉換成二進制來進行處理。

a、C語言中的八進制規定要以0開頭。018的數值是非法的,八進制是沒有8的,逢8進1。

b、C語言中的十六進制規定要以0x開頭。

18.整型一般是4個位元組, 字元型是1個位元組,雙精度一般是8個位元組。

  long int x; 表示x是長整型。

unsigned int x; 表示x是無符号整型。

19.算術表達式:

+,-,*,/,%

考試一定要注意:“/” 兩邊都是整型的話,結果就是一個整型。 3/2的結果就是1。

“/” 如果有一邊是小數,那麼結果就是小數。 3/2.0的結果就是0.5。

“%”符号請一定要注意是餘數,%符号兩邊要求是整數。不是整數就錯了。

20.指派表達式:表達式數值是最左邊的數值,a=b=5;該表達式為5,常量不可以指派。

a.int x=y=10;錯,定義時,不可以連續指派。

b.int x,y;

x=y=10; 對,定義完成後,可以連續指派。

c.int x=7.7;對,x就是7

d.float y=7;對,x就是7.0

21.複合的指派表達式:

int a=2;

a*=2+3;運作完成後,a的值是10。

一定要注意,首先要在2+3的上面打上括号。變成(2+3)再運算。

22.自加表達式:

自加、自減表達式:假設a=5,++a(是為6), a++(為5);

運作的機理:++a 是先把變量的數值加上1,然後把得到的數值放到變量a中,然後再用這個++a表達式的數值為6,而a++是先用該表達式的數值為5,然後再把a的數值加上1為6,再放到變量a中。 進行了++a和a++後 在下面的程式中再用到a的話都是變量a中的6了。

口訣:++在前先加後用,++在後先用後加。

23.逗号表達式:

優先級别最低。表達式的數值逗号最右邊的那個表達式的數值。

(2,3,4)的表達式的數值就是4。

z=(2,3,4)(整個是指派表達式) 這個時候z的值為4.

z= 2,3,4 (整個是逗号表達式)這個時候z的值為2。

24.強制類型轉換:

一定是 (int)a 不是 int(a),注意類型上一定有括号的。

注意(int)(a+b) 和(int)a+b 的差別。 前是把a+b轉型,後是把a轉型再加b。

25.字元資料的合法形式:

‘1’ 是字元占一個位元組,"1"是字元串占兩個位元組(含有一個結束符号)。

‘0’ 的ASCII數值表示為48,‘a’ 的ASCII數值是97,'A’的ASCII數值是65。

一般表示單個字元錯誤的形式:‘65’ “1”  

字元是可以進行算術運算的,記住: ‘0’-0=48

大寫字母和小寫字母轉換的方法: ‘A’+32=‘a’ 互相之間一般是相差3

26.轉義字元:

轉義字元分為一般轉義字元、八進制轉義字元、十六進制轉義字元。

一般轉義字元:背誦\0、 \n、 \’、 \”、 \。

八進制轉義字元: ‘\141’ 是合法的, 前導的0是不能寫的。

十六進制轉義字元:’\x6d’ 才是合法的,前導的0不能寫,并且x是小寫。

27.

重讀C語言(C語言複習指南)

舉例說明:

printf(“%2d”,123 ); 第二部分有三位,大于指定的兩位,原樣輸出123

printf(“%5d”,123 ); 第二部分有三位,小于指定的五位,左邊補兩個空格 123

printf(“%10f”,1.25 ); 小數要求補足6位的,沒有六位的補0,。結果為 1.250000

printf(“%5.3f”,125 ); 小數三位,整個五位,結果為1.250(小數點算一位)

printf(“%3.1f”,1.25 );小數一位,整個三位,結果為1.3(要進行四舍五入)

28.如何實作兩個變量x ,y中數值的互換(要求背下來)

不可以把 x=y ,y=x; 要用中間變量 t=x;x=y;y=t。

29.關系表達式:

a.表達式的數值隻能為1(表示為真),或0(表示假)。

如 9>8這個關系表達式是真的,是以9>8這個表達式的數值就是1。

如 7<6這個關系表達式是假的,是以7<6這個表達式的數值就是0.

b.最容易錯的:就是int x=1,y=0,z=2;

x<y<z是真還是假?帶入為1<0<2,從數學的角度出發肯定是錯的,但是如果是C語言那麼就是正确的!因為要1<0為假得到0,表達式就變成了0<2那麼運算結果就是1,稱為了真的了!

c.等号和指派的差別!一定記住“=”就是指派,“= =”才是等号。

30.switch(x) x:是整型常量,字元型常量,枚舉型資料。

{case 1: …. 不可以是變量。

case 2: ….

}

31.三種循環結構:

a)for() ; while(); do- while()三種。

b)for循環當中必須是兩個分号,千萬不要忘記。

c)寫程式的時候一定要注意,循環一定要有結束的條件,否則成了死循環。

d) do-while()循環的最後一個while();的分号一定不能夠丢。do-while循環是至少執行一次循環。

32.break 和 continue的差别

記憶方法:

break:是打破的意思,(破了整個循環)是以看見break就退出整個一層循環。

continue: 是繼續的意思,(繼續循環運算),但是要結束本次循環,就是循環體内剩下的語句不再執行,跳到循環開始,然後判斷循環條件,進行新一輪的循環。

33.函數:是具有一定功能的一個程式塊,是C語言的基本組成機關。

34.一定要注意參數之間的傳遞

實參和形參之間 傳數值,和傳位址的差别。

傳數值的話,形參的變化不會改變實參的變化。

傳位址的話,形參的變化就會有可能改變實參的變化。

繼續閱讀