西工大《C 程式設計》 (二)

2021-09-10 14:48:26 字數 2968 閱讀 7572

程式對演算法的實現體現為一定數量的語句和執行流程。

【c++語句】:分簡單語句(表示式語句、函式呼叫語句、空語句)、復合語句、控制語句。

【輸入輸出】:c++的輸入輸出都是用流物件實現的。

cin輸入時可用空格、tab和回車分隔資料。【那如何將這三者賦值給字元變數呢?】

單路分支(if...)與多路分支(if...else...

switch語句的執行流程。

switch語句中的default分支不是必需的。

【舉例】:if與else的匹配原則

// 比較1:

int x=

5, y=0;

if(x)

if(y) cout <<

"1";

else cout <<

"2";

// 比較2:

int x=

5, y=0;

if(x)

else cout <<

"2";

do...while...語句末尾必須有封號。

迴圈語句要注意避免死迴圈。

迴圈語句的附加控制語句:break,continue

迴圈語句的選用:計數型、條件型(不定次數型)。

迴圈語句一般需要保證控制變數向終止情況變化。

【舉例】:求pi的近似值

#include

#include

using

namespace std;

intmain()

cout << pi*

4

}

迴圈的應用:列舉演算法,迭代演算法(舊值推新值)。

【迭代法】:三要素為迭代變數、迭代關係式和迭代控制(前進與終止)。

函式的定義方法。

函式的返回值型別可以是c++中除陣列外的任意內建資料型別或自定義型別。

函式定義又稱為函式實現

【思考】:有返回值的函式被呼叫但返回值未被使用時,其返回值會存在記憶體中的某個地方嗎?

函式的兩種引數傳遞機制:值傳遞(形參作為函式內部變數,實參到形參的單向傳遞)與引用傳遞。

c++中呼叫函式時,必須先有函式宣告,且規定函式定義也是函式宣告。

【函式原型說明】:返回型別 函式名(型別1 形參1, 型別2 形參2,...);返回型別 函式名(型別1, 型別2,...);【函式呼叫形式】:函式表示式(y=max(a, b)),函式呼叫語句(max(a, b)),函式實參(m = max( max(a, b), c ))。

【內聯函式】:c++提供一種高效實用函式的方法,在編譯時即將被調函式的**嵌入到主調函式中以取消函式呼叫,此時的被調函式稱為內聯函式。

【內聯函式的宣告】:在函式定義的型別前加修飾符inline

【函式的預設引數】:

#include

#include

using

namespace std;

intadd

(int x=5,

int y=6)

intmain()

預設引數不可重複設定,且必須從右向左設定,預設值可以是常量、全域性變數或實參為常量或全域性變數的函式呼叫返回值。

【函式過載】:在同乙個域中同名函式間引數的型別、個數有異,呼叫時自適應呼叫相應定義的函式。

【函式過載注意點】:形參必須不同,編譯程式自動進行最佳匹配,功能不同的函式避免過載。

【函式模板】:

// 模板形式:

template

《模板形參表》

返回型別 函式名(形參列表)

// 模板舉例:

template

<

typename t>

t abs

(t x)

【模板形參表】:兩種形式

// 型別1:

typename 型別引數名1

,typename 型別引數名2,.

..// 型別2:

class 型別引數名1

,class 型別引數名2,.

..

【庫函式】

【函式的巢狀呼叫】:本質上還是順序步驟執行。

【函式的遞迴呼叫】:直接遞迴呼叫和間接遞迴呼叫,需注意遞迴終止條件。

【區域性變數】:函式內部或復合語句內定義的變數。

【全域性變數】:函式內外可利用全域性變數傳遞值,但增加了函式的耦合性,背離模組化設計原則。

同乙個域內實體不可同名;同乙個域內某一實體全域可見(包括該域內的子區域和巢狀層),但其子區域內同名實體可遮蔽它;使用extern修飾符可將實體(變數或函式)的宣告向前延伸;static修飾符可將該域中的實體(變數、函式)對其他原始檔遮蔽。

【動態儲存】:程式自動儲存和程式設計師自由儲存。

【靜態儲存】:與程式同生命週期。

【自動物件】:儲存方式為程式自動儲存。

【暫存器變數】

【靜態區域性物件】:靜態區域性變數會保持其值。

#include

using

namespace std;

intfun()

intmain()

return0;

}

函式本質上是全域性的(即外部函式,可用extern宣告,一般預設),在多檔案程式中,連線時會檢查函式在全域性作用域內名字是否唯一,如果不唯一則出錯。static修飾符可將函式宣告為(檔案)內部函式,檔案外不可見。

西工大《C 程式設計》 (三)

一維陣列的定義 記憶體形式 連續儲存 初始化。靜態陣列與動態陣列的初始值。二維陣列的定義 記憶體形式 按行連續儲存 初始化。多維陣列的引用。陣列元素作為函式引數。整個陣列作為函式引數,傳遞的是陣列的首位址,所以實參和形參為同乙個物件。陣列作為函式引數時,編譯器不檢查陣列的長度,因此將陣列的首位址傳入...

2019 西工大機試 C

2019年西工大的機試要求是 達到輸入一行,輸出一行即可 本人按照輸入多行,輸出多行進行編寫,較為複雜,僅供參考。1.一組整數,由小到大排序,有n組測試資料,排序輸出 輸入樣例 21 5863 2042 381563 201 output 01 2356 8123 481520 63 include...

2018 西工大機試 C

要求 達到輸入一行 輸出一行即可 1.求積 給定n組數,每組兩個整數,輸出這兩個整數的乘積.input 21 123 output 16 include using namespace std intmain return0 2.階乘 給定n組數,每組乙個整數,輸出該組數的階乘。input 23 5...