任何一種程序設計語言都具有特定的語法規則和規定的表達方法。一個(ge) 程序隻有嚴(yan) 格按照語言規定的語法和表達方式編寫(xie) ,才能保證編寫(xie) 的程序在計算機中能正確地執行,同時也便於(yu) 閱讀和理解。
為(wei) 了了解C語言的基本程序結構,我們(men) 先介紹幾個(ge) 簡單的C程序。

這是一個最簡單的C程序,其執行結果是在屏幕上顯示一行信息:
RUN <enter>
This is a sample of c program.
本程序的執行過程是:
• 程序從(cong) m a i n ( )處開始。
• 變量a代表一個(ge) 整數,並且初始值為(wei) 3。
• 執行程序(函數)p r o c ( );屏幕上顯示H e l l o,\ n為(wei) 轉義(yi) 字符,代表換行的意思。
• 執行程序(函數)f u n c ( );並將結果賦予a,此時,a的值為(wei) 2。
• 屏幕上顯示“This is a sample of c program.”。
程序執行的結果是在屏幕顯示兩(liang) 行信息:
R U N <enter>
H e l l o .
This is a sample of c program.
程序中/ * . . . . . * /表示對程序的說明(稱為(wei) 注釋),不參與(yu) 程序的運行。注釋文字可以是任意字符,如漢字、拚音、英文等。
本程序的功能是對從(cong) 鍵盤輸入的長方體(ti) 的長、寬、高三個(ge) 整型量求其體(ti) 積的值。程序運行的情況如下:
R U N ↵
5 , 8 , 6 ↵
v = 240
在本例中,m a i n函數在調用v o l u m e函數時,將實際參數x、y、z的值分別傳(chuan) 送給v o l u m e函數中的形式參數a、b、c。經過執行v o l u m e函數得到一個(ge) 結果(即v o l u m e函數中變量p的值)並把這個(ge) 值賦給變量v。
從(cong) 上麵程序例子,可以看出C程序的基本結構。
C程序為(wei) 函數模塊結構,所有的C程序都是由一個(ge) 或多個(ge) 函數構成,其中必須隻能有一個(ge) 主函數m a i n ( )。程序從(cong) 主函數開始執行,當執行到調用函數的語句時,程序將控製轉移到調用函數中執行,執行結束後,再返回主函數中繼續運行,直至程序執行結束。C程序的函數是由編譯係統提供的標準函數(如p r i n t f、s c a n f等)和由用戶自己定義(yi) 的函數(如p r o c、f u n c、v o l u m e等)。雖然從(cong) 技術上講,主函數不是C語言的一個(ge) 成分,但它仍被看做是其中的一部分,因此,“m a i n”不能用作變量名。
函數的基本形式是:函數類型函數名(形式參數)形式參數說明;
{
數據說明部分;
語句部分;
}
其中:函數頭包括函數說明、函數名和圓括號中的形式參數(如int volume(a,b,c)),如果函數
調用無參數傳(chuan) 遞,圓括號中形式參數為(wei) 空(如void proc()函數)。形式參數說明指定函數調用傳(chuan) 遞參數的數據類型(如例1 . 3中語句int a,b,c;)。函數體(ti) 包括函數體(ti) 內(nei) 使用的數據說明和執行函數功能的語句,花括號{和}表示函數體(ti) 的
開始和結束。
1.3.2 函數庫和鏈接
從(cong) 技術上講,純粹由程序員自己編寫(xie) 的語句構成C語言程序是可能的,但這卻是罕見的。因為(wei) 所有的C編譯程序都提供能完成各種常用任務的函數—函數庫(如p r i n t f、s c a n f等)。C編譯程序的實現者已經編寫(xie) 了大部分常見的通用函數。當我們(men) 調用一個(ge) 別人編寫(xie) 的函數時編譯程序“記憶”它的名字。隨後,“鏈接程序”把我們(men) 編寫(xie) 的程序同標準函數庫中找到的目標碼結合起來,這個(ge) 過程稱為(wei) “鏈接”。
保存在函數庫中的函數是可重定位的。這意味著其中機器碼指令的內(nei) 存地址並未絕對地確定, 隻有偏移量是確定的。當把程序與(yu) 標準函數庫中的函數相鏈接時,內(nei) 存偏移量被用來產(chan) 生實際地址。有關(guan) 重定位的詳細內(nei) 容,請查閱其他技術書(shu) 籍。
編寫(xie) 程序時用到的函數,許多都可以在標準函數庫中找到。它們(men) 是可以簡單地組合起來的程序構件。編寫(xie) 了一個(ge) 經常要用的函數之後,可將其放入庫中備用。
1.3.3 開發一個(ge) C程序
開發一個(ge) C程序,包括以下四步:
1) 程序設計程序設計亦稱程序編輯。程序員用任一編輯軟件(編輯器)將編寫(xie) 好的C程序輸入計算機,並以文本文件的形式保存在計算機的磁盤上。編輯的結果是建立C源程序文件。C程序習(xi) 慣上使用小寫(xie) 英文字母,常量和其他用途的符號可用大寫(xie) 字母。C語言對大、小寫(xie) 字母是有區別的。關(guan) 鍵字必須小寫(xie) 。
2) 程序編譯編譯是指將編輯好的源文件翻譯成二進製目標代碼的過程。編譯過程是使用C語言提供的編譯程序(編譯器)完成的。不同操作係統下的各種編譯器的使用命令不完全相同,使用時應注意計算機環境。編譯時,編譯器首先要對源程序中的每一個(ge) 語句檢查語法錯誤,當發現錯誤時,就在屏幕上顯示錯誤的位置和錯誤類型的信息。此時,要再次調用編輯器進行查錯修改。然後,再進行編譯,直至排除所有語法和語義(yi) 錯誤。正確的源程序文件經過編譯後在磁盤上生成目標文件。
3 ) 鏈接程序編譯後產(chan) 生的目標文件是可重定位的程序模塊,不能直接運行。鏈接就是把目標文件和其他分別進行編譯生成的目標程序模塊(如果有的話)及係統提供的標準庫函數鏈接在一起,生成可以運行的可執行文件的過程。鏈接過程使用C語言提供的鏈接程序(鏈接器)完成,生成的可執行文件存在磁盤中。
4) 程序運行生成可執行文件後,就可以在操作係統控製下運行。若執行程序後達到預期目的,則C程序的開發工作到此完成。否則,要進一步檢查修改源程序,重複編輯—編譯
—鏈接—運行的過程,直到取得預期結果為(wei) 止。
大部分C語言都提供一個(ge) 獨立的開發集成環境,它可將上述四步連貫在一個(ge) 程序之中。本書(shu) 所涉及的程序全部在Turbo C環境中進行。
1.3.4 C語言的關(guan) 鍵字
表1 - 2列舉(ju) 了3 2個(ge) 關(guan) 鍵字,它們(men) 與(yu) 標準C句法結合,形成了程序設計語言C。

C語言的關(guan) 鍵字都用小寫(xie) 字母。C語言中區分大寫(xie) 與(yu) 小寫(xie) ,e l s e是關(guan) 鍵字,“E L S E”則不是。在C程序中,關(guan) 鍵字不能用於(yu) 其它目的,即不允許將關(guan) 鍵字作為(wei) 變量名或函數名使用。