1.2 C語言結構
1.2.1 C程序及結構
【例1.1】
【例1.2】從鍵盤輸入一個實數x,求x的正弦值。
在main()之前的兩行稱為預處理命令。預處理命令還有其他幾種,這里的include稱為文件包含命令,其意義是把尖括號<>或引號""內指定的文件包含到本程序來,成為本程序的一部分。被包含的文件通常是由系統提供的,其擴展名為.h,因此也稱為頭文件或首部文件。C語言的頭文件中包括了各個標準庫函數的函數原型,因此,凡是在程序中調用一個庫函數時,都必須包含該函數原型所在的頭文件。在本例中,使用了三個庫函數:輸入函數scanf(),正弦函數sin(),輸出函數printf()。sin()函數是數學函數,其頭文件為math.h文件,因此在程序的主函數前用include命令包含了math.h。scanf()和printf()是標準輸入輸出函數,其頭文件為stdio.h,在主函數前也用include命令包含了stdio.h文件。
C語言的主函數體中又分為兩部分,一部分為說明部分,另一部分為執行部分。說明是指變量的類型說明。例題1.1中未使用任何變量,因此無說明部分。
C語言規定,源程序中所有用到的變量都必須先說明,后使用,否則將會出錯。這一點是編譯型高級程序設計語言的一個特點,與解釋型的BASIC語言是不同的。說明部分是C源程序結構中很重要的組成部分。本例中使用了兩個變量x、s,用來表示輸入的自變量和sin()函數值。由于sin()函數要求這兩個量必須是雙精度浮點型,因此,用類型說明符double來說明這兩個變量。說明部分后的四行為執行部分或稱為執行語句部分,用以完成程序的功能。執行部分的第一行是輸出語句,調用printf()函數在顯示器上輸出提示字符串,請操作人員輸入自變量x的值。第二行為輸入語句,調用scanf()函數,接受鍵盤上輸入的數并存入變量x中。第三行是調用sin()函數并把函數值送到變量s中。第四行是用printf()函數輸出變量s的值,即x的正弦值。最后,程序結束。
運行本程序時,首先在顯示器屏幕上給出提示串input number,這是由執行部分的第一行完成的。用戶在提示下從鍵盤上鍵入某一數,如3.14,按下回車鍵,接著在屏幕上給出計算結果,如圖1.3所示。
【小提示】
程序中的注釋信息是編程規范的重要內容,對理解和閱讀程序有很大幫助,注釋信息可以放在程序的任何位置,不參與編譯,不影響程序的運行。C語言中加注釋提供了以下兩種方法。
(1)塊注釋。用符號“/*”和“*/”標出注釋的開始和結束,在符號“/*”和“*/”之間的任何內容都將被編譯程序當作注釋來處理。這種方法是在程序中加入注釋的最好方法。例如,你可以在程序中加入下述注釋:
(1)編輯。可以用任何一種編輯軟件將在紙上編寫好的C程序輸入計算機,并將C語言源程序文件*.c以純文本文件形式保存在計算機的磁盤上(不能設置字體、字號等)。
(2)編譯。編譯過程使用C語言編譯程序將編輯好的源程序文件“*.c”,翻譯成二進制目標代碼文件“*.obj”。編譯程序對源程序逐句檢查語法錯誤,發現錯誤后不僅會顯示錯誤的位置(行號),還會告知錯誤類型信息。我們需要再次回到編輯軟件修改源程序的錯誤,然后再進行編譯,直至排除所有語法和語義錯誤。
(3)連接。程序編譯后產生的目標文件是可重定位的程序模塊,不能直接運行。連接將編譯生成的各個目標程序模塊和系統或第三方提供的庫函數“*.lib”連接在一起,生成可以脫離開發環境、直接在操作系統下運行的可執行文件“*.exe”。
(4)運行程序。如果經過測試,運行可執行文件達到預期設計目的,這個C程序的開發工作便到此完成了。如果運行出錯,這說明程序處理的邏輯存在問題,需要再次回到編輯環境針對程序出現的邏輯錯誤進一步檢查、修改源程序,重復編輯→編譯→連接→運行的過程,直到取得預期結果為止。
2.使用Dev-C++編譯運行C程序
Dev-C++是一個Windows環境下C/C++的集成開發環境(IDE),如圖1.4所示,小巧輕量但是功能齊備,適合初學者與編程高手的不同需求,是學習C或C++的首選開發工具。Dev-C++開發環境所包含的是編輯、編譯、調試和執行C程序所必須的標準功能。對于使用要求嚴格的C++程序員,Dev-C++包含了多種可能的編程環境,允許你不需要多少手動操作就可以編寫所有的源代碼。