程式對演算法的實現體現為一定數量的語句和執行流程。
【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...