1.4 C程序舉例
為了說明C語言源程序結構的特點,先看以下幾個程序。這幾個程序由簡到難,表現了C語言源程序在組成結構上的特點。雖然有關內容還未介紹,但可從這些例子中了解到組成一個C源程序的基本部分和書寫格式。
【例1.1】第一個程序——Hello

main是主函數的函數名,一個C語言程序只能有一個main函數,main函數的內容放在一對花括號“{ }”內,稱為函數體,其中的每一條語句用“;”結束每一個C源程序都必須有,且只能有一個主函數(main函數)。
函數調用語句,printf函數的功能是把要輸出的內容送到顯示器去顯示。
printf函數是一個由系統定義的標準函數,可在程序中直接調用。
【例1.2】問題分析——計算圓面積。
假設圓的半徑用radius表示,若半徑為10,利用公式area=π·radius^2計算圓面積。

運行結果如圖1.1所示。

圖1.1 例1.2程序運行結果
程序說明:
(1)數據是程序加工處理的對象。本程序中的PI為3.1415926,radius和area分別是10和0.0,它們都是數據,程序就是對這些數據的聲明、加工和處理。
(2)C語言將數據分為常量和變量。常量是指在程序執行的過程中,其值不發生變化的量,本例中PI、0.0和10就是常量,其中PI是符號常量。程序中所有出現的PI在編譯時都用數值3.1415926代替。
(3)變量就是指在程序運行過程中其值可以變化的量,本程序中的radius和area是變量。
變量理解:變量如同一個盒子,可以存放數據,也可以從中取出數據(盒子中的數據不發生變化)使用。例如用“double radius=0.0;”定義radius后,radius中的值是不確定的,執行完語句“radius=10”后,radius中的值變為10。執行語句“area=PI*radius*radius”時,首先取出變量radius的值然后計算PI*radius*radius的值(即3.1415962×10×10),最后把結果存放在變量area中。
例1.2運行結果示意圖如圖1.2所示。變量名和變量的關系如圖1.3所示。

圖1.2 例1.2運行結果示意圖

圖1.3 變量名和變量的關系
【例1.3】由子函數和主函數構成的C程序。

執行結果如圖1.4所示。

圖1.4 例1.3的運行結果
注意:
(1)本程序包括兩個函數:主函數和被調用的max函數。max函數的作用是將a和b中較大值返回到主函數中。
(2)在程序中的第11行調用max函數,在調用時將實際參數x和y傳遞給形式參數a和b,經過執行max函數得到一個值,由return帶回一個返回值到主函數中。然后把這個返回值賦給主函數中的變量z。
(3)本例題中所講到的實際參數、形式參數、被調函數等概念在本教材后面章節中將作詳細介紹。
通過以上幾個例子可以看到:
(1)C程序是由函數構成的。一個C源程序有且僅有一個主函數,也可以包含若干個其他函數。函數是C程序的基本單位。被調用的函數可以是系統提供的庫函數,也可以是用戶自定義的函數。
(2)一個C程序永遠都是從main函數開始執行,也都是在main函數中結束,和main函數所在的位置無關。
(3)C程序的書寫格式自由,一行內可以寫幾個語句,一個語句也可以分寫在多行。
(4)每條語句和數據聲明的最后都有一個分號,分號是語句結束的標志。
(5)C語言本身沒有輸入/輸出語句。輸入/輸出都是通過調用庫函數來完成的,例如scanf函數作用就是輸入,printf函數作用是輸出。
(6)可以用“/*……*/”來寫注釋語句,對程序的運行沒有任何的影響。C語言中有兩種方式來寫注釋語句:用“//”表明單行注釋;用“/*……*/”表明多行注釋。
- 深入理解Android(卷I)
- C和C++安全編碼(原書第2版)
- Java Web及其框架技術
- 云原生Spring實戰
- Functional Programming in JavaScript
- Unity 5.x By Example
- Hands-On Full Stack Development with Go
- Kotlin編程實戰:創建優雅、富于表現力和高性能的JVM與Android應用程序
- Regression Analysis with Python
- 區塊鏈國產化實踐指南:基于Fabric 2.0
- Natural Language Processing with Python Quick Start Guide
- 深入淺出Python數據分析
- Microsoft Exchange Server 2016 PowerShell Cookbook(Fourth Edition)
- ASP.NET本質論
- PHP 7 Programming Blueprints