程式結構與預處理命令

2021-10-02 11:52:22 字數 3722 閱讀 3082

二、預處理命令

c語言中,程式結構包含順序結構、選擇結構、迴圈結構、跳轉語句(break,continue,return,goto)

選擇結構

c語言常用的語句有if語句和switch-case語句

1.2.1if語句

a)第一種形式:

if

(條件表示式)

原理:只有當條件表示式成立時,執行語句塊,否則不執行

條件表示式可以是變數,可以關係表示式

b)第二種形式

if

(條件表示式)

else

原理:只有當條件表示式成立時,執行語句塊1,否則執行語句塊

c)第三種形式

if

(條件表示式1

)else

if(條件表示式2

)else

if(條件表示式3

)else

原理:從條件表示式1開始,進行判斷,如果成立,執行語句塊1,其他的

語句都不執行(跳出if語句),否則,接著往下判斷,知道找到

條件成立的語句,如果條件都不滿足,則執行else語句

注意:else跟跟離它最近的if語句配對

符合就近原則

1.2.2switch-case語句

形式:

switch

(整型常量表示式)

原理:整型常量表示式 最終的結果必須是整型常量

因為要跟case後面的資料進行匹配,判斷是否相等

如果相等,就會執行該case後面的語句塊,知道遇到

} 結束,如果都不跟case後面的資料匹配的話

則,執行default後面的語句

do-while語句,while語句,for語句

1)do-while

形式:

do

while

(條件判斷)

;

原理:先執行迴圈體,然後進行條件判斷,如果條件成立,則接著

返回去執行迴圈體,如果條件不成立,則不會再去執行迴圈體

本質:不管條件判斷有沒有成立,迴圈體都會執行一次

2)while

形式:

while

(條件判斷)

原理:先進行條件判斷,如果條件成立,則執行迴圈體,

如果條件不成立,則不執行迴圈體

本質:while語句,有可能一次迴圈體都不會執行

3)do-while 和while語句的區別:

do-while 語句,先執行,後判斷,至少會執行一次迴圈體

while 語句:先判斷,後執行,可能一次迴圈體都不會執行

補充: while(1) 死迴圈

跳出迴圈體,break語句

練習:密碼門,你忘記密碼了,你家密碼4位,

如果你輸入的密碼是對,門開了

如果你輸入的密碼是錯誤的,門不會開

3)for語句

1 2 5 4

形式:for(賦值表示式;條件表示式;迴圈變數表示式)

賦值表示式:迴圈變數賦初值

條件表示式:迴圈體可以結束的條件

迴圈變數表示式:可以讓迴圈體達到結束的條件

注意:死迴圈:while(1)

for(;?

賦值表示式;

形式:

for

(賦值表示式;條件表示式;迴圈變數表示式)

迴圈的巢狀:

形式:

for

(賦值表示式;條件表示式;迴圈變數表示式)

}

原理:迴圈巢狀,先執行最外一層迴圈,接著執行裡面的迴圈的語句

直達裡面的迴圈語句不滿足條件,然後在執行外層迴圈,

依次下去

for

(i=1

;i<=

4;i++

)

break,continue,return ,goto

1)break

原理:跳轉,

適用於:switch-case,迴圈結構(do-while,while,for語句)

注意:if 語句裡不能用的,除非和if搭配使用在迴圈結構裡

實質:break只能跳出當前迴圈,或者當前選擇結構

結束迴圈語句,(結束的是離它最近的迴圈語句)

2)continue

原理:繼續

適用於:迴圈結構

規則:結束本次迴圈,當前迴圈結束,接著進行下一輪迴圈

3)return

形式: return 表示式,return;

第一種形式表示的是,返回乙個值,先計算表示式的的值,再返回數值

第二種形式表示的是結束函式

​ 在主函式裡面 ,返回值,返回給了系統

​ 在子函式裡面,返回值,給上一級函式

在乙個函式裡面,一旦遇到return語句,函式結束

不管函式裡面有幾個return語句,遇到第乙個return語句,函式結束

4)goto

形式: goto 標籤名;

標籤名符合識別符號的命名規則

本質:真正跳轉語句

原理:程式剛開始執行的時候,遇到標籤名不會去理會,程式執行遇到

goto語句的時候,程式就會轉去執行標籤名下的程式

直到某乙個條件不滿足

注意:只能在同乙個函式跳轉

在程式中,如果goto語句用的太多,會造成程式**混亂

分類:無參巨集定義,帶參巨集定義

概念:用巨集名替換後面一段繁瑣的字串

1)無參巨集定義

形式: 巨集名 字串

指令:define

#define 巨集名 字串

說明: 巨集名符合識別符號的命名規則

巨集名一般大寫,便於和變數名進行區分

注意:巨集定義純替換過程,所定義的字串後面不能加分號

巨集定義可以進行巢狀,但是你所巢狀的巨集名必須在之前定義好

巨集名不是替換列印函式雙引號中內容

如果是多條語句,需在所要替換的字串後面加分號

如果取消巨集定義則用 #undef 你要取消的巨集名

2)帶參巨集定義

形式:巨集名(引數) 字串

指令:define

注意: 巨集名和引數之間不能有空格

不管帶參還是無參,巨集定義都只是乙個純替換的過程

2、檔案包含

概念:將檔案裡面的內容,包含到當前檔案中

<> :表示到系統下搜尋目錄

「」 :表示到工作目錄下去查詢

條件編譯三種形式:

1)第一種形式

#ifdef

程式段1

#else

程式段2

#endif

原理:如果巨集名被定義,則執行程式段1,否則執行程式段2

2)第二種形式

#ifndef

程式段1

#else

程式段2

#endif

原理:如果未定義,則執行程式段1,否則執行程式段2

3)第三種形式

#if 條件表示式

程式段1

#else

程式段2

#endif

原理:條件表示式成立,則執行程式段1

否則執行程式段2

函式與程式結構

4 標頭檔案 5 初始化 6 c預處理器 函式定義形式如下 函式定義 返回值型別 函式名 引數宣告表 return語句 return exp 程式 可以看作變數定義和函式定義的集合。函式之間的通訊可以通過引數 函式返回值以及外部變數進行。被呼叫函式通過return語句向呼叫者返回值。return語句...

函式與程式結構 例題

建立乙個逆波蘭表示法的計算器 eg 1 2 4 5 逆波蘭表示法 12 45 簡單 如下 只能完成基本的加減乘除,取模運算 include include 為了使用atof 函式 include define maxop 100 運算元或運算子的最大長度 define number 0 標識找到乙個...

程式結構與基本語法

includeint main 注 在最新的c標準中,main函式前的型別為int而不是void簡單來說,乙個c程式就是由若干標頭檔案和函式組成。乙個c程式有且只有乙個主函式,即main函式。乙個說明或乙個語句佔一行,例如 包含標頭檔案 乙個可執行語句結束都需要換行。函式體內的語句要有明顯縮排,通常...