freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

面向?qū)ο蟪绦蛟O(shè)計(jì)c語(yǔ)言-資料下載頁(yè)

2025-01-19 09:12本頁(yè)面
  

【正文】 一個(gè)標(biāo)準(zhǔn)輸出設(shè)備 ( 一般代表顯示器 ) ; “ ” 是輸出操作符 , 用于向 cout輸出流中插入數(shù)據(jù) 。 ( 2) cout的作用是向標(biāo)準(zhǔn)輸出設(shè)備上輸出數(shù)據(jù),被輸出的數(shù)據(jù)可以是常量、已有值的變量或是一個(gè)表達(dá)式。 97 2.?dāng)?shù)據(jù)的輸入 cin 在 C++程序中 , 數(shù)據(jù)的輸入通常采用輸入流對(duì)象cin來(lái)完成 。 其格式如下: cin變量名 1變量名 2……變量名 n。 說(shuō)明: ( 1) cin是系統(tǒng)預(yù)定義的一個(gè)標(biāo)準(zhǔn)輸入設(shè)備 ( 一般代表鍵盤 ) ; “ ” 是輸入操作符 , 用于從cin輸入流中取得數(shù)據(jù) , 并將取得的數(shù)據(jù)傳送給其后的變量 , 從而完成輸入數(shù)據(jù)的功能 。 ( 2) cin的功能是:當(dāng)程序在運(yùn)行過程中執(zhí)行到cin時(shí) , 程序會(huì)暫停執(zhí)行并等待用戶從鍵盤輸入相應(yīng)數(shù)目的數(shù)據(jù) , 用戶輸入完數(shù)據(jù)并回車后 ,cin從輸入流中取得相應(yīng)的數(shù)據(jù)并傳送給其后的變量 。 98 ( 3) “ ” 操作符后除了變量名外不得有其他數(shù)字 、 字符串或字符 , 否則系統(tǒng)會(huì)報(bào)錯(cuò) 。 ( 4) cin后面所跟的變量可為任何數(shù)據(jù)類型 ,若變量為整型數(shù)據(jù)類型 , 則在程序運(yùn)行過程中從鍵盤輸入數(shù)據(jù)時(shí) , 可分別按十進(jìn)制 、八進(jìn)制或十六進(jìn)制格式輸入該整數(shù) 。 ( 5) 當(dāng)程序中用 cin輸入數(shù)據(jù)時(shí) , 最好在該語(yǔ)句之前用 cout輸出一個(gè)需要輸入數(shù)據(jù)的提示信息 , 以正確引導(dǎo)和提示用戶輸入正確的數(shù)據(jù) 。 ( 6) 當(dāng)一個(gè) cin后面同時(shí)跟有多個(gè)變量時(shí) ,則用戶輸入數(shù)據(jù)的個(gè)數(shù)應(yīng)與變量的個(gè)數(shù)相同 , 各數(shù)據(jù)之間用一個(gè)或多個(gè)空格隔開 ,輸入完畢后按回車鍵;或者 , 每輸入一個(gè)數(shù)據(jù)按回車鍵也可 。 99 簡(jiǎn)單的 I/O格式控制 ? C++的 I/O流類庫(kù)提供了一些控制符,可以直接嵌入到輸入 /輸出語(yǔ)句中來(lái)實(shí)現(xiàn)I/O格式控制。 ? 使用格式控制符首先必須在源程序的開頭包含 。 ? 表 中列出了幾個(gè)常用的 I/O流類庫(kù)格式控制符 。 100 表 常用的 I/O流控制符 控制符 含義 dec 數(shù)值數(shù)據(jù)采用十進(jìn)制 hex 數(shù)值數(shù)據(jù)采用十六進(jìn)制 oct 數(shù)值數(shù)據(jù)采用八進(jìn)制 ws 提取空白符 endl 插入換行符 , 并刷新流 ends 插入空字符 setfill(c) 在給定的輸出域?qū)挾葍?nèi)填充字符 c setprecision(int) 設(shè)置浮點(diǎn)數(shù)的小數(shù)位數(shù) ( 包括小數(shù)點(diǎn) ) setw(int) 設(shè)置域?qū)? setiosflags(ios::left) 左對(duì)齊 setiosflags(ios::scientific) 指數(shù)顯示 101 在使用 setw(n)是要注意: (1) 如一個(gè)輸出量需要比 setw(n)確定的字符數(shù)更多的字符 , 則該輸出量將使用它所需要的寬度 。 例如: float sum=。 coutsetw(4)sumendl。 其運(yùn)行結(jié)果為: 它并不按4位寬度 , 而是按實(shí)際跨度輸出 。 (2) setw(n)僅僅影響下一個(gè)數(shù)值輸出 , 使用setw設(shè)置的間隔方式并不保留其效力 。 例如: cout 200 setw(8)400600endl。 其運(yùn)行結(jié)果為: 200 400600 運(yùn)行結(jié)果中 600并沒有按寬度8輸出 。 Setw()的默認(rèn)寬度為 0, 意思是按輸出數(shù)值表示的寬度輸出 。 102 C++中函數(shù)的新特性 函數(shù)的原型 C++中函數(shù)原型聲明的形式為: 函數(shù)返回值類型 函數(shù)名(形式參數(shù)表); 對(duì)函數(shù)的原型聲明 , 作以下幾點(diǎn)說(shuō)明: ? 函數(shù)原型最簡(jiǎn)單的聲明方法是將函數(shù)定義的首部復(fù)制到調(diào)用點(diǎn)之前 , 然后在最后加一個(gè)分號(hào) 。 103 ? 函數(shù)返回值類型建議都要給定 , 若一個(gè)函數(shù)沒有返回值 , 則必須在原型聲明中聲明其返回值類型為 void。 ? 函數(shù)原型參數(shù)表中必須指明形式參數(shù)的個(gè)數(shù)和類型 , 形式參數(shù)名可以省略 。 ? 先定義后被調(diào)用的函數(shù)以及 main函數(shù)無(wú)需作原型聲明 。 104 默認(rèn)參數(shù)的函數(shù) ? 一般情況下,實(shí)參個(gè)數(shù)應(yīng)該與形參個(gè)數(shù)相同,但C ++允許實(shí)參個(gè)數(shù)與形參個(gè)數(shù)不同。 ? 方法是在說(shuō)明函數(shù)原型時(shí),為一個(gè)或多個(gè)形參指定缺省值,以后調(diào)用此函數(shù)時(shí),若省略其中某一實(shí)參, C++自動(dòng)地以缺省值作為相應(yīng)參數(shù)的值。 int init(int x=5,int y=10)。 則 x與 y的缺省值分別為 5和 10。 105 ? 當(dāng)進(jìn)行函數(shù)調(diào)用時(shí) , 編譯器按從左向右順序?qū)?shí)參和形參結(jié)合 , 若未指定足夠的實(shí)參 , 則編譯器按順序調(diào)用函數(shù)原型中的缺省值來(lái)補(bǔ)足所缺少的實(shí)參 。 例如以下的函數(shù)調(diào)用都是允許的 。 ? init(100,80)。 //x=100,y=80 ? init(25)。 //x=25,y=10 ? init(10)。 //x=5,y=10 106 說(shuō)明: (1) 在函數(shù)原型中 , 所有取缺省值的參數(shù)都必須出現(xiàn)在不缺省值的參數(shù)的右邊 。 亦即 ,一旦開始定義取缺省值的參數(shù) , 就不可以在說(shuō)明非缺省的參數(shù) 。 例如: ? int fun(int i, int j=5, int k)。 是錯(cuò)誤的 , 因?yàn)樵谌∪笔≈祬?shù)的 int j=5后 , 不應(yīng)再說(shuō)明非缺省參數(shù) int k。 若改為: ? int fun(int i, int k, int j=5)。 就正確了 107 (2)在函數(shù)調(diào)用時(shí) , 實(shí)際參數(shù)提供的順序應(yīng)該是從左到右依次提供 , 實(shí)際參數(shù)的最少個(gè)數(shù)應(yīng)等于不具有默認(rèn)參數(shù)值的形式參數(shù)個(gè)數(shù) 。 若某個(gè)參數(shù)省略 , 則其后的參數(shù)皆應(yīng)省略而采用缺省值 。 不允許某個(gè)參數(shù)省略后 ,在給其后的參數(shù)指定參數(shù)值 。 例如不允許出現(xiàn)以下調(diào)用 init()函數(shù)的語(yǔ)句: init(,20)。 108 (3) 如果制定了默認(rèn)參數(shù)值的形式參數(shù)在調(diào)用時(shí)又得到了實(shí)際參數(shù),則實(shí)際參數(shù)值優(yōu)先。在調(diào)用時(shí)如果不提供對(duì)應(yīng)參數(shù),形式參數(shù)才使用默認(rèn)參數(shù)值。 109 內(nèi)聯(lián)函數(shù) ? 在函數(shù)說(shuō)明前冠以關(guān)鍵字 “ inline‖, 該函數(shù)就被聲明為 內(nèi)聯(lián)函數(shù) 。 ? 每當(dāng)程序中出現(xiàn)對(duì)該函數(shù)的調(diào)用時(shí) , C++編譯器使用函數(shù)體中的代碼插入到調(diào)用該函數(shù)的語(yǔ)句之處 , 在程序運(yùn)行時(shí)不再進(jìn)行函數(shù)調(diào)用 。 ? 為什么要引入內(nèi)聯(lián)函數(shù)呢 ? 這主要是為了消除函數(shù)調(diào)用時(shí)的系統(tǒng)開銷 ,以提高運(yùn)行速度 。 110 【例 】?jī)?nèi)聯(lián)函數(shù)的使用。 /* * / includeiostream using namespace std。 inline double circle(double r) { return *r*r。 } int main() { for (int i=1。i=3。i++) cout‖r=‖i‖area=‖circle(i)endl。 return 0。 } 111 說(shuō)明: (1) 內(nèi)聯(lián)函數(shù)在第一次被調(diào)用之前必須進(jìn)行聲明或定義 , 否則編譯器將無(wú)法知道應(yīng)該插入什么代碼 。 因此 , 下面的程序不會(huì)像預(yù)計(jì)的那樣被編譯: 程序的運(yùn)行結(jié)果為: r=1 area= r=2 area= r=3 area= 112 (2) C++的內(nèi)聯(lián)函數(shù)具有與 C中的宏定義define相同的作用和相似的機(jī)理 , 但消除了 define的不安全因素 。 (3) 內(nèi)聯(lián)函數(shù)體內(nèi)一般 不能有循環(huán)語(yǔ)句和開關(guān)語(yǔ)句 。 (4) 后面章節(jié)講到的類結(jié)構(gòu)中所有在類說(shuō)明體內(nèi)定義的函數(shù)都是內(nèi)聯(lián)函數(shù) 。 (5) 使用內(nèi)聯(lián)函數(shù)是一種 用空間換時(shí)間 的措施 , 若內(nèi)聯(lián)函數(shù)較長(zhǎng) , 且調(diào)用太頻繁時(shí) ,程序?qū)⒓娱L(zhǎng)很多 。 因此 , 通常只有較短的函數(shù)才定義為內(nèi)聯(lián)函數(shù) , 對(duì)于較長(zhǎng)的函數(shù)最好作為一般函數(shù)處理 。 113 函數(shù)重載 ? 在傳統(tǒng)的 C語(yǔ)言中 , 同一作用域內(nèi)函數(shù)名必須是唯一的 , 也就是說(shuō)不允許出現(xiàn)同名的函數(shù) 。 ? 假如 , 要求編寫求整數(shù) , 浮點(diǎn)數(shù)和雙精度數(shù)的三次方數(shù)的函數(shù) 。 若用 C語(yǔ)言來(lái)處理 ,必須編寫 3個(gè)函數(shù) , 這 3個(gè)函數(shù)的函數(shù)名不允許同名 。 ? 例如: icube(int i)。 //求整數(shù)的三次方 fcube(float f)。 //求浮點(diǎn)數(shù)的三次方 dcube(double d)。 //求雙精度數(shù)的三次方 114 ? 在 C++中 , 用戶可以 重載函數(shù) 。 ? 這意味著 , 只要函數(shù)參數(shù)的類型不同 , 或者參數(shù)的個(gè)數(shù)不同 , 或者二者兼而有之 ,兩個(gè)或兩個(gè)以上的函數(shù)可以使用 相同的函數(shù)名 。 ? 當(dāng)兩個(gè)以上的函數(shù)共用一個(gè)函數(shù)名 , 但是形參的個(gè)數(shù)或者類型不同 , 編譯器根據(jù)實(shí)參和形參的類型及個(gè)數(shù)的最佳匹配 , 自動(dòng)確定調(diào)用那一個(gè)函數(shù) , 這就是函數(shù)的重載 。 ? 被重載的函數(shù)稱為 重載函數(shù) 。 115 ? 由于 C++支持函數(shù)重載 , 上面 3個(gè)求三次方數(shù)的函數(shù)可以起一個(gè)共同的名字 cube,但它們的參數(shù)類型仍保留不同 。 ? 當(dāng)用戶調(diào)用這些函數(shù)時(shí) , 只需在參數(shù)表中帶入實(shí)參 , 編譯器就會(huì)根據(jù)實(shí)參的類型來(lái)確定到底調(diào)用哪個(gè)重載函數(shù) 。 ? 因此 , 用戶調(diào)用求三次方數(shù)的函數(shù)時(shí) , 只需記住一個(gè) cube( ) 函數(shù) , 剩下的則都是系統(tǒng)的事情 。 上述例子我們可以用下面的程序來(lái)實(shí)現(xiàn) 。 116 【例 】參數(shù)類型不同的重載函數(shù)。 /* * / includeiostream using namespace std。 int Cube(int i) { return i*i*i。 } float Cube(float f) { return f*f*f。 } double Cube(double d) { return d*d*d。 } int main() { int i=12。 float f=。 double d=。 couti’*’i’*’i’=’Cube(i)endl。 coutf’*’f’*’f’=’Cube(f)endl。 coutd’*’d’*’d’=’Cube(d)endl。 return 0。 } 117 12*12*12=1728 **= **= 程序的運(yùn)行結(jié)果為: 118 【例 】參數(shù)個(gè)數(shù)不同的重載函數(shù)。 /* * / includeiostream using namespace std。 int Add(int x,int y) { return x+y。 } int Add(int x,int y,int z) { return x+y+z。 } int main() { int a=3,b=4,c=5。 couta+b=Add(a,b)endl。 couta+b+c=Add(a,b,c)endl。 return 0。 } 119 說(shuō)明: (1) 返回類型不再參數(shù)匹配檢查之列 。 若兩個(gè)函數(shù)除返回類型不同外 , 其他均相同 , 則是非法的 。 例如: int mul(int x,int y)。 double mul(int x,int y)。 雖然這兩個(gè)函數(shù)的返回類型不同 , 但是由于參數(shù)個(gè)數(shù)和類型完全相同 , 編譯程序?qū)o(wú)法區(qū)分這兩個(gè)函數(shù) 。 因?yàn)樵诖_定調(diào)用哪一個(gè)函數(shù)之前 , 返回類型是不知道 。 程序的運(yùn)行結(jié)果為: 3+4=7 3+4+5=12 120 (2) 函數(shù)的重載與帶缺省值的函數(shù)一起使用時(shí) , 有可能引起二義性 , 例如: void DrawCircl(int r=0。int x=0。int y=0)。 void DrawCircle(int r)。 C++盡管提供重載,但當(dāng)調(diào)用:DrawCirclr(20)。時(shí),編譯無(wú)法確定使用哪一個(gè)函數(shù)。 121 (3) 在函數(shù)調(diào)用時(shí) 。 如果給出的實(shí)參和形參類型不相符 , C ++的編譯器會(huì)自動(dòng)做類型轉(zhuǎn)換工作 。如果轉(zhuǎn)換成功 , 則程序繼續(xù)執(zhí)行 , 但在這種情況下 , 有可能產(chǎn)生不可識(shí)別的錯(cuò)誤 。 例如 , 有兩個(gè)函數(shù)的原型如下: void f_a(int x)。 void f_a(long x)。 雖然這兩個(gè)函數(shù)滿足函數(shù)重載的條件 , 但是 , 如果我們用 int c=f_a()。 取調(diào)用 , 就會(huì)出現(xiàn)不可分辨的錯(cuò)誤 。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1