- C語言從入門到精通(第4版)
- 明日科技編著
- 1707字
- 2023-09-26 16:27:45
1.4 一個完整的C程序

視頻講解
1.3節展現了一個最簡單的程序,通過7行代碼的使用,實現了顯示一行字符串的功能。通過1.3節的介紹,讀者應該不會再對學習C語言發怵了。本節將在例1.1的基礎上,對其內容進行擴充,使讀者對C程序有一個更完整的認識。
【例1.2】 一個完整的C程序。(實例位置:資源包\TM\sl\1\2)
本實例要實現這樣的功能:有一個長方體,它的高已經給出,然后輸入這個長方體的長和寬,通過輸入的長、寬以及給定的高度,計算出長方體的體積。

運行程序,顯示效果如圖1.2所示。

圖1.2 一個完整的C程序
說明
這里要再次提示一下此程序的用意。例1.2和例1.1并不是要將具體的知識點進行詳細的講解,只是將C語言程序的概貌顯示給讀者,使讀者對C語言程序有一個簡單的印象。還記得小時候學習加減法的情況嗎?老師只是教給學生們“1+1=2”,卻沒有教給學生們“1+1為什么等于2”或者“如何證明1+1=2”這樣的問題。學習加減法是這樣的過程,學習C語言編寫程序也應該是這樣的過程,在不斷的接觸中變得熟悉,在不斷的思考中變得深入。
在具體講解這個程序的執行過程之前,先展現該程序的過程圖,這樣可以使讀者對程序有一個更為清晰的認識,如圖1.3所示。
通過上述程序流程圖,可以觀察出整個程序運行的過程。前面已經介紹過程序中的一些內容,這里不再進行有關的說明。下面介紹程序中新出現的一些內容。

圖1.3 程序流程分析
1. 定義常量
實例代碼中的第2行:

這一行代碼中,使用#define定義一個符號。#define在這里的功能是設定這個符號為Height,并且指定這個符號Height代表的值為10。這樣在程序中,只要是使用Height這個標識符的位置,就代表使用的是10這個數值。
2. 函數聲明
實例代碼中的第3行:

此處代碼的作用是對一個函數進行聲明。前面介紹過函數,但是什么是函數聲明呢?舉一個例子,兩個公司進行合作,其中的A公司要派一個經理到B公司進行業務洽談。A公司會發送一個通知給B公司,告訴B公司會派一個經理過去,請B公司在機場接一下這位洽談業務的經理。A公司將這位經理的名字和大概的體貌特征都告訴B公司的有關迎接人員。這樣當這位經理下飛機之后,B公司就可以將他的名字寫在紙上做成接機牌,然后找到這位經理。
聲明函數的作用就像A公司告訴B公司有關這位經理信息的過程,為接下來要使用的函數做準備。也就是說,如果此處聲明calculate函數,那么在程序代碼的后面會有calculate函數的具體定義內容,這樣程序中如果出現calculate函數,程序就會根據calculate函數的定義執行有關的操作。至于有關的具體內容將會在第9章進行介紹。
3. 定義變量
實例代碼中的第6~8行:

這3行語句都是定義變量的語句。在C語言中要使用變量,必須在使用變量之前進行定義,之后編譯器會根據變量的類型為變量分配內存空間。變量的作用就是存儲數值,用變量進行計算。這就像在二元一次方程中,X和Y就是變量,當為其進行賦值后,如X為5,Y為10,這樣X+Y的結果就等于15。
4. 輸入語句
實例代碼中的第13行:

在例1.1中曾經介紹過顯示輸出函數printf,那么既然有輸出就一定會有輸入。在C語言中,scanf函數就用來接收鍵盤輸入的內容,并將輸入的內容保存在相應的變量中。可以看到,在scanf函數的參數中,m_Long就是之前定義的整型變量,它的作用是存儲輸入的信息內容。其中的“&”符號是取地址運算符,其具體內容將會在本書的后續章節中進行介紹。
5. 數學運算語句
實例代碼中的第26行:

這行代碼在calculate函數體內,其功能是將變量Long、Width、Height三者相乘得到的結果保存在result變量中。其中的“*”號代表乘法運算符。
以上內容已經將其中的要點知識全部提取出來,關于C語言程序,相信讀者此時已經有了一定的了解。下面再將上面的程序執行過程進行總結:
(1)包含程序所需要的頭文件。
(2)定義一個常量Height,其代表的值為10。
(3)對calculate函數進行聲明。
(4)進入main函數,程序開始執行。
(5)在main函數中,首先定義3個整型變量,分別代表長方體的長度、寬度和體積。
(6)顯示提示文字,然后根據顯示的文字輸入有關的數據。
(7)當長方體的長度和寬度都輸入之后,會調用calculate函數,計算長方體的體積。
(8)定義calculate函數的位置在main函數的下面,在calculate函數體內將計算長方體體積的結果進行返回。
(9)在main函數中,result變量得到了calculate函數返回的結果。
(10)通過輸出語句將其中長方體的體積顯示出來。
(11)程序結束。
- 觸·心:DT時代的大數據精準營銷
- AngularJS Web Application Development Blueprints
- React Native Cookbook
- Visual Basic程序設計教程
- INSTANT Passbook App Development for iOS How-to
- Python High Performance Programming
- Natural Language Processing with Java and LingPipe Cookbook
- .NET Standard 2.0 Cookbook
- IoT Projects with Bluetooth Low Energy
- 計算機應用基礎(第二版)
- H5+移動營銷設計寶典
- 虛擬現實:引領未來的人機交互革命
- Visual FoxPro數據庫程序設計
- Lync Server Cookbook
- 軟件測試項目實戰之功能測試篇