C程序設(shè)計(jì)課件:第5章 函數(shù)_第1頁(yè)
C程序設(shè)計(jì)課件:第5章 函數(shù)_第2頁(yè)
C程序設(shè)計(jì)課件:第5章 函數(shù)_第3頁(yè)
C程序設(shè)計(jì)課件:第5章 函數(shù)_第4頁(yè)
C程序設(shè)計(jì)課件:第5章 函數(shù)_第5頁(yè)
已閱讀5頁(yè),還剩66頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第五章 函 數(shù)1本章主要內(nèi)容 5.1 函數(shù)概述 5.2 函數(shù)原型 5.3 全局變量與局部變量 函數(shù)的調(diào)用 5.4 函數(shù)調(diào)用機(jī)制 5.5 靜態(tài)局部變量 函數(shù)的參數(shù)傳遞機(jī)制 5.6 遞歸函數(shù) 5.7 內(nèi)聯(lián)函數(shù) 5.8 重載函數(shù) 5.9 默認(rèn)參數(shù)的函數(shù) 作業(yè)2理解什么是函數(shù):過(guò)程模塊區(qū)分函數(shù)聲明與定義了解數(shù)學(xué)函數(shù):數(shù)學(xué)庫(kù)函數(shù)掌握全局和局部變量的用法了解遞歸函數(shù)學(xué)習(xí)目標(biāo):35.1 函數(shù)概述程序功能模塊程序子程序C+ 語(yǔ)言: 程序函數(shù)程序結(jié)構(gòu): 4例: 編寫(xiě)一個(gè)對(duì)某個(gè)正整數(shù)有關(guān)的處理程序 主函數(shù)輸入一個(gè)數(shù)逆序輸出求該數(shù)范圍內(nèi)的水仙花數(shù)求該數(shù)范圍內(nèi)的素?cái)?shù)求該數(shù)范圍內(nèi)的完數(shù)輸出結(jié)果繼續(xù)?結(jié)束55.1 函數(shù)概

2、述說(shuō)明:1.源程序文件:一個(gè)源文件是一個(gè)編譯單位,不是以函數(shù)為單位進(jìn)行編譯的2.C+程序由一個(gè)或多個(gè)源文件組成;分多個(gè)文件可以提高編譯和調(diào)試的效率3.主程序只能有一個(gè),程序執(zhí)行自主程序開(kāi)始,由主程序結(jié)束而結(jié)束 65.1 函數(shù)概述4.函數(shù)必須定義,定義時(shí)各函數(shù)相互獨(dú)立,不能嵌套定義;除主函數(shù)外,函數(shù)間可以相互調(diào)用5.函數(shù)分類(lèi):從用戶(hù)角度:庫(kù)函數(shù)、自定義函數(shù)從 形 式:無(wú)參函數(shù)、有參函數(shù)7C+實(shí)用教程8返回類(lèi)型 func ( 參數(shù)列表 ) ;返回類(lèi)型 func ( ) ;void func ( 參數(shù)列表 ) ;void func ( ) ;int func1( int x ) return x *

3、 x ;int func2() return sizeof(int) ;void print( int x ) cout x endl ;void printCrLf() cout endl ;5.1 函數(shù)概述-函數(shù)的四種類(lèi)型85.2 函數(shù)原型函數(shù)是面向?qū)ο蟪绦蛟O(shè)計(jì)中的基本抽象單元,是對(duì)功能的抽象函數(shù)聲明的語(yǔ)法形式類(lèi)型標(biāo)識(shí)符 函數(shù)名 (形式參數(shù)表); 若無(wú)參數(shù),寫(xiě)void是被初始化的內(nèi)部變量,壽命和可見(jiàn)性?xún)H限于函數(shù)內(nèi)部若無(wú)返回值,寫(xiě)void9形式參數(shù)表type1 name1, type2 name2, ., typen namen函數(shù)的返回值由 return 語(yǔ)句給出,返回值的類(lèi)型在聲明時(shí)約定

4、。 例如 :return 0; return x+y ;無(wú)返回值的函數(shù)(void類(lèi)型),不必寫(xiě)return語(yǔ)句。還可利用return語(yǔ)句改變執(zhí)行順序。5.2 函數(shù)原型105.2 函數(shù)原型在C+中,函數(shù)聲明就是函數(shù)原型。函數(shù)原型不必包含參數(shù)的名字,只要包含參數(shù)的類(lèi)型。例如: void funcA(int,float);函數(shù)定義 類(lèi)型標(biāo)識(shí)符 函數(shù)名(形式參數(shù)表) 語(yǔ)句序列; 115.2 函數(shù)原型函數(shù)的聲明和函數(shù)的定義,在返回類(lèi)型、函數(shù)名、參數(shù)個(gè)數(shù)、參數(shù)類(lèi)型及參數(shù)順序上必須完全一致,否則編譯時(shí)出錯(cuò)。例如: int main() int a; float b; funcA(a,b); void fun

5、cA(int x,int y) / link error / 125.3 全局變量與局部變量 程序的內(nèi)存區(qū)域代碼區(qū),存放程序的代碼,即程序中的各個(gè)函數(shù)代碼塊。全局?jǐn)?shù)據(jù)區(qū),存放程序的全局?jǐn)?shù)據(jù)和靜態(tài)數(shù)據(jù)。堆區(qū),存放程序的動(dòng)態(tài)數(shù)據(jù)。棧區(qū),存放程序的局部數(shù)據(jù),即各個(gè)函數(shù)的數(shù)據(jù)。 135.3 全局變量與局部變量全局變量在函數(shù)外部定義的變量稱(chēng)全局變量作用域:從被定義的位置起,至文件結(jié)束處止說(shuō)明:全局變量在程序執(zhí)行的整個(gè)過(guò)程中,占用固定的內(nèi)存單元(位于全局?jǐn)?shù)據(jù)區(qū))具有初始值(為0)可以被在其定義后的所有函數(shù)共同使用(解決“一個(gè)函數(shù)只能返回一個(gè)值”的問(wèn)題)在同一源文件中,如果外部變量與局部變量同名,則:在局部

6、變量的作用域內(nèi),同名的全局變量不起作用145.3 全局變量與局部變量#include using namespace std; void f( int n);/ 函數(shù)原型聲明int a = 8;/ 定義全局變量int main()coutaendl;f(10);coutaendl;return 0;void f(int n )/ 函數(shù)定義a = n;/ 將n的值賦給全局變量155.3 全局變量與局部變量局部變量只在某一函數(shù)內(nèi)部定義的變量稱(chēng)局部變量,局部變量存放在棧區(qū)作用域:只局限于本函數(shù)內(nèi) 說(shuō)明不同函數(shù)的局部 變量可以同名形參是局部變量除本函數(shù)外,其它函數(shù)一概不能使用 復(fù)合語(yǔ)句中的局部變量 復(fù)

7、合語(yǔ)句可以看成是“程序塊”,在其內(nèi)部可另行定義變量分程序局部變量165.3 全局變量與局部變量#include using namespace std; void f( int n);/ 函數(shù)原型聲明int a = 8;/ 定義全局變量int main()coutaendl;f(10);coutaendl;return 0;void f(int n )/ 函數(shù)定義int a; a = n;/ 將n的值賦給局部變量 coutaendl;17函數(shù)的調(diào)用調(diào)用前先說(shuō)明函數(shù)原型或進(jìn)行函數(shù)定義 例如: double power(double,int);調(diào)用形式 函數(shù)名(實(shí)參列表) 實(shí)際參數(shù)要和形式參數(shù)在個(gè)

8、數(shù)、類(lèi)型及順序上 保持一致 函數(shù)調(diào)用可出現(xiàn)在表達(dá)式中(有返回值的),也可作為一條單獨(dú)的語(yǔ)句 例如: m=power(2.3,4); func();18函數(shù)的調(diào)用嵌套調(diào)用函數(shù)不允許嵌套定義,但可以嵌套調(diào)用。 例如: void funcA(int aa,int bb) int n=5; / funcB(n); 遞歸調(diào)用函數(shù)直接或間接調(diào)用自身。19例: 編寫(xiě)一個(gè)求x的n次方的函數(shù)#include double power (double, int); /函數(shù)聲明int main( ) cout “5 to the power 2 is ” power(5,2) endl; /函數(shù)調(diào)用 double

9、power (double x, int n) /函數(shù)定義double val = 1.0;while (n-)val = val*x;return val; 運(yùn)行結(jié)果:5 to the power 2 is 2520函數(shù)的調(diào)用函數(shù)調(diào)用的執(zhí)行過(guò)程main( )調(diào)fun( )結(jié)束fun( )返回保存:返回地址當(dāng)前現(xiàn)場(chǎng)恢復(fù):主調(diào)程序現(xiàn)場(chǎng)返回地址21函數(shù)的調(diào)用嵌套調(diào)用main ( )調(diào)fun1 ( )結(jié)束fun1 ( )調(diào)fun2 ( )返回fun2 ( )返回int main( ) / fun1(a,b); / int fun1(int x,int y) / fun2(x); / int fun2

10、(int m) return (m*m); 22例:輸入兩個(gè)整數(shù),求平方和。#include int main( ) int a,b; int fun1(int,int); /函數(shù)聲明 cinab; cout“a、b的平方和:” fun1(a,b)endl; int fun1(int x,int y) int fun2(int); return (fun2(x)+fun2(y); int fun2(int m) return (m*m); 運(yùn)行結(jié)果:3 4a、b的平方和:25home23函數(shù)的參數(shù)傳遞機(jī)制傳遞參數(shù)值在函數(shù)被調(diào)用時(shí)才分配形參的存儲(chǔ)單元。實(shí)參可以是常量、變量或表達(dá)式。實(shí)參類(lèi)型必須與

11、形參相符。24函數(shù)的參數(shù)傳遞機(jī)制傳遞參數(shù)值XN被調(diào)函數(shù):主調(diào)函數(shù):3 2.5AD = power(A,3) 2.53double power(double X, int N)home255.4 函數(shù)調(diào)用機(jī)制保護(hù)調(diào)用函數(shù)的運(yùn)行狀態(tài)和返回地址入棧建立被調(diào)用函數(shù)的??臻g傳遞參數(shù)將控制轉(zhuǎn)給被調(diào)用函數(shù) 例如,下面的代碼在主函數(shù)中調(diào)用一個(gè)函數(shù),該函數(shù)又調(diào)用了另一個(gè)函數(shù),它得到圖5-3種所示的內(nèi)存布局: 26void funcA(int,int);void funcB(int);int main( ) int a=6,b=12; funcA(a,b); void funcA(int aa,int bb) i

12、nt n=5; / funcB(n); void funcB(int s) int x; / 27圖5-4是funcB( )返回到funcA( ), funcA( )又回到main( )時(shí)的棧內(nèi)容。可以看出,返回到主函數(shù)后, funcA( ) 和funcB( )的局部變量和形參都消失,但對(duì)應(yīng)內(nèi)存中的內(nèi)容還是存在的。285.5 靜態(tài)局部變量靜態(tài)局部變量:局部變量定義時(shí),前面冠以 static 注意:位于全局?jǐn)?shù)據(jù)區(qū),系統(tǒng)默認(rèn)初始化為0 靜態(tài)局部變量只在函數(shù)第一次被調(diào)用時(shí)進(jìn)行初始化 可見(jiàn)性:本函數(shù)內(nèi) 295.5 靜態(tài)局部變量存儲(chǔ)類(lèi)型:auto自動(dòng)(動(dòng)態(tài)、局部變量)static靜態(tài)(可以全局,也可局部

13、變量)register寄存器(形參,局部變量)extern外部的全局變量C+規(guī)定:每個(gè)變量和函數(shù)有兩個(gè)屬性:存儲(chǔ)類(lèi)型和數(shù)據(jù)類(lèi)型,并必須加以定義: 存儲(chǔ)類(lèi)型 數(shù)據(jù)類(lèi)型 變量名列表;局部變量的存儲(chǔ)類(lèi)型缺省,默認(rèn)為auto外部變量:指本文件外的全局變量,只定義一次,且在函數(shù)外定義 30/* ch5_2.cpp *#include void func();int n=1; /全局變量int main() static int a; / 靜態(tài)局部變量 int b= -10; / 局部變量 cout a: a b: b n: n endl; b+=4; func(); cout a: a b: b n:

14、n endl; n+=10; func();void func() static int a=2; /靜態(tài)局部變量 int b=5; / 局部變量 a+=2; n+=12; b+=5; cout a: a b: b n: n endl;運(yùn)行結(jié)果為: a:0 b:-10 n:1 a:4 b:10 n:13 a:0 b:-6 n:13 a:6 b:10 n:3531include using namespace std;void count()int i = 0;static int j = 0; / 靜態(tài)類(lèi)型i+;j+;couti = i, j = jn;int main()count();co

15、unt();return 0;325.6 遞歸函數(shù)遞歸調(diào)用:直接或間接地調(diào)用自己直接遞歸調(diào)用:在函數(shù)f 中調(diào)用函數(shù)f 例如: void f() / f(); 間接遞歸調(diào)用:函數(shù)f 調(diào)用函數(shù)ff,而函數(shù)ff 調(diào)用函數(shù)f注意:要有終止遞歸調(diào)用的條件! 335.6 遞歸函數(shù)例:求n!分析:計(jì)算n!的公式如下:這是一個(gè)遞歸形式的公式,可用遞歸函數(shù)實(shí)現(xiàn)。345.6 遞歸函數(shù)遞歸過(guò)程的兩個(gè)階段:遞推: 4!=43! 3!=32! 2!=21! 1!=10! 0!=1未知 已知回歸:4!=43!=243!=32!=62!=21!=21!=10!=10!=1未知 已知35源程序:#include long f

16、ac(int n) long f; if (n0) coutn0,data error!endl; else if (n=0) f=1; else f=fac(n-1)*n; return f;36int main( ) long fac(int n); int n; long y; coutn; y=fac(n); coutn!=yendl;運(yùn)行結(jié)果:Enter a positive integer:88!=4032037例:遞歸的執(zhí)行情況分析 void print(int w) int i; if ( w!=0) print(w-1); for(i=1;i=w;+i) cout setw(

17、2) w ,; cout endl; 調(diào)用print(3)運(yùn)行結(jié)果: 1, 2, 2, 3, 3, 3,38遞歸調(diào)用執(zhí)行情況如下:主程序(1)print(w) w=3; 3print(2);(1)w=3 top(2) 壓棧w=3w2print(1);(2)w=2 (1)w=3 top(3)壓棧w=2w1print(0);(3)w=1 (2)w=2 (1)w=3 top(4)壓棧w=1w0(4)w=0 (3)w=1 (2)w=2 (1)w=3 topw(3) 輸出:2, 2(2) 2(1) 3top(4)輸出:1(3) 1(2) 2(1) 3top(2) 輸出:3, 3, 3 (1 ) 3top

18、返回(3) 1(2) 2(1) 3top(4) 0結(jié)束(1)void print(int w) int i; if ( w!=0) print(w-1); for(i=1;i=w;+i) cout setw(2) w ,; cout endl; 395.6 遞歸函數(shù)例:漢諾塔問(wèn)題。有三根柱A、B、C。A柱上有N個(gè)盤(pán)子,大的在下,小的在上,要求把這N個(gè)盤(pán)子從A柱移到C柱,在移動(dòng)過(guò)程中可以借助B柱,每次只允許移動(dòng)一個(gè)盤(pán),且在移動(dòng)過(guò)程中在三根柱上都保持大盤(pán)在下,小盤(pán)在上。ABC40C+實(shí)用教程41演示:移動(dòng)1個(gè)盤(pán)子的分解在A柱上只有一只盤(pán)子,假定盤(pán)號(hào)為 1,這時(shí)只需將該盤(pán)從 A 搬至 C,一次完成。

19、記為 move 1# from A to C ABC141C+實(shí)用教程42演示:移動(dòng)2個(gè)盤(pán)子的分解第(1)步將1號(hào)盤(pán)從A移至B,這是為了讓 2號(hào)盤(pán)能動(dòng);第(2)步將 2 號(hào)盤(pán)從A 移至 C;第(3)步再將 1 號(hào)盤(pán)從 B 移至 C;ABC21move 1# from A to B;move 2# from A to C;move 1# form B to C;42C+實(shí)用教程43演示:移動(dòng)3個(gè)盤(pán)子的分解move (3, A, B, C)move (2, A, C, B)move (1, A, B, C)move (2, B, A, C)ABC21343C+實(shí)用教程44move (3, A, B

20、, C)move (2, A, C, B)move (1, A, B, C)move (1, A, C, B)move (1, C, A, B)move (1, A, B, C)move (2, B, A, C)move (1, B, C, A)move (1, B, A, C)move (1, A, B, C)ABC21344分析:將n 個(gè)盤(pán)子從A柱移到C柱可以分解為下面三個(gè)步驟:將A 上n-1個(gè)盤(pán)子移到 B柱上(借助C柱);把A柱上剩下的一個(gè)盤(pán)子移到C柱上;將n-1個(gè)盤(pán)子從B柱移到C柱上(借助A柱);事實(shí)上,上面三個(gè)步驟包含兩種操作:將多個(gè)盤(pán)子從一個(gè)柱移到另一個(gè)柱上,這是一個(gè)遞歸的過(guò)程。

21、hanoi函數(shù)實(shí)現(xiàn)。將1個(gè)盤(pán)子從一個(gè)柱上移到另一柱上。用move函數(shù)實(shí)現(xiàn)。45#include void move( int n, char s, char d)coutn, sdendl;void hanoi( int n, char A , char B , char C )if (1 = n) move(n, A, C);else hanoi( n-1, A, C, B); move(n, A, C); hanoi( n-1, B, A, C);46int main( ) int m; coutm; coutthe steps to moving m diskes:C2, A-B1, C

22、-B3, A-C1, B-A2, B-C1, A-C475.6 遞歸函數(shù)遞歸的評(píng)價(jià)簡(jiǎn)化程序設(shè)計(jì),使程序易讀增加了系統(tǒng)開(kāi)銷(xiāo)(包括時(shí)間和空間)使用遞歸函數(shù)需要注意要有完成函數(shù)任務(wù)的語(yǔ)句遞歸的實(shí)現(xiàn)遞歸的運(yùn)行過(guò)程遞歸的條件485.7 內(nèi)聯(lián)函數(shù)inline:也稱(chēng)內(nèi)置函數(shù)、內(nèi)嵌函數(shù)目的:減少開(kāi)銷(xiāo)、提高效率在編譯時(shí),象對(duì)待“宏”一樣進(jìn)行替換,程序運(yùn)行時(shí)沒(méi)有函數(shù)調(diào)用過(guò)程和函數(shù)返回定義、聲明時(shí):在前面冠以“inline”即可 491.內(nèi)聯(lián)函數(shù)的需要性例如,下面的代碼中,頻繁地調(diào)用一個(gè)小函數(shù):/* ch5_3.cpp *#include int isnumber(char); /函數(shù)聲明int main() ch

23、ar c; while(c=cin.get()!=n) if( isnumber(c) ) /調(diào)用一個(gè)小函數(shù) cout you entered a digitn; else cout =0 & ch=9)? 1:0;5.7 內(nèi)聯(lián)函數(shù)50 程序中不斷到設(shè)備中讀取數(shù)據(jù),頻繁調(diào)用isnumber()函數(shù)。為了提高效率,可將程序改為:#include int main() char c; while(c=cin.get()!=n) if(c=0 & c=9)? 1:0) /修改處:直接計(jì)算表達(dá)式 cout you entered a digitn; else cout =0 & ch=9)? 1:0;

24、編譯器看到inline后,為該函數(shù)創(chuàng)建一段代碼,以便在后面每次碰到該函數(shù)的調(diào)用都用相應(yīng)的一段代碼來(lái)替換。523.先聲明后調(diào)用#include int isnumber(char); /此處無(wú)inlineint main() char c; while(c=cin.get()!=n) if( isnumber(c) ) /調(diào)用一個(gè)小函數(shù) cout you entered a digitn; else cout =0 & ch=9)? 1:0;535.7 內(nèi)聯(lián)函數(shù)4.內(nèi)聯(lián)函數(shù)的函數(shù)體限制如果被調(diào)用函數(shù)定義在被調(diào)用之前,且定義時(shí)冠以inline,則以后每次被調(diào)用均作內(nèi)聯(lián)函數(shù)處理。內(nèi)聯(lián)函數(shù)內(nèi)不能出現(xiàn)s

25、witch、循環(huán)語(yǔ)句內(nèi)聯(lián)函數(shù)中不能有數(shù)組定義,也不能有任何靜態(tài)類(lèi)型的定義遞歸函數(shù)不能被定義成“內(nèi)聯(lián)”函數(shù)對(duì)常被調(diào)用的小而簡(jiǎn)單的函數(shù)進(jìn)行“內(nèi)聯(lián)” 545.8 重載函數(shù)1. 重載的需要性 面向?qū)ο笙到y(tǒng)的3大特性之一的多態(tài)性就是通過(guò)重載實(shí)現(xiàn)的重載:即同名不同義,在不同的情況下可表現(xiàn)出不同的“行為”重載包括函數(shù)重載:多個(gè)函數(shù)同名,但執(zhí)行的操作和操作對(duì)象不同操作符重載:一個(gè)運(yùn)算符,可進(jìn)行多種不同含義的解釋?zhuān)M(jìn)行不同的操作 555.8 重載函數(shù)問(wèn)題的提出:比較大?。?個(gè)整數(shù)比較、2個(gè)浮點(diǎn)數(shù)比較、.在C+中必須逐個(gè)定義不同名的多個(gè)函數(shù)希望:由系統(tǒng)自動(dòng)判斷,用戶(hù)只要記住函數(shù)名即可重載:寫(xiě)多個(gè)同名函數(shù),由系統(tǒng)根

26、據(jù)操作數(shù)自動(dòng)判斷究竟調(diào)用哪個(gè)函數(shù) 565.8 重載函數(shù)2.匹配重載函數(shù)的順序 按如下先后順序: (1) 尋找一個(gè)完全匹配,找到就調(diào)用 (2) 通過(guò)內(nèi)部轉(zhuǎn)換、然后尋找一個(gè)匹配,只要找到就調(diào)用 (3) 通過(guò)用戶(hù)自己定義的轉(zhuǎn)換尋找一個(gè)匹配,找到就調(diào)用 575.8 重載函數(shù)例如,重載函數(shù)print( )的匹配: void print(double); void print(int); void func() print(1); /匹配void print(int); print(1.0); /匹配void print(double); print(a); /匹配void print(int); pri

27、nt(3.1415f); /匹配void print(double); 585.8 重載函數(shù)C+允許int 到long,int到double 的轉(zhuǎn)換。當(dāng)實(shí)參是整數(shù),而重載函數(shù)一個(gè)是long型參數(shù),一個(gè)為double型參數(shù)時(shí),應(yīng)該給以一個(gè)顯式轉(zhuǎn)換。例如,對(duì)于重載函數(shù)print( )聲明,其下面的函數(shù)調(diào)用將引起錯(cuò)誤: void print(long); void print(double); void func(int a) print (a); /error:因?yàn)槎x性 (double)a);595.8 重載函數(shù)3.使用說(shuō)明 重載函數(shù)至少在參數(shù)個(gè)數(shù)、參數(shù)類(lèi)型或參數(shù)順序上有所不同,僅返回類(lèi)型不同不

28、行不能用typedef定義的類(lèi)型名來(lái)區(qū)別重載函數(shù)中的參數(shù)類(lèi)型,因?yàn)椤熬幾g”時(shí)不區(qū)分其差別同名函數(shù)應(yīng)具有相同的功能 605.9 默認(rèn)參數(shù)的函數(shù)1.默認(rèn)參數(shù)的目的函數(shù)在聲明時(shí)可以預(yù)先給出默認(rèn)的形參值,調(diào)用時(shí)如給出實(shí)參,則采用實(shí)參值,否則采用預(yù)先給出的默認(rèn)形參值。例如:int add(int x=5,int y=6) return x+y;int main( ) add(10,20); /10+20 add(10); /10+6 add( ); /5+661C+規(guī)定:實(shí)參與形參的個(gè)數(shù)必須相同,且類(lèi)型相對(duì)應(yīng)允許調(diào)用時(shí)不傳遞或部分不傳遞實(shí)參值,而采用缺省值例1:帶缺省形參值的函數(shù)舉例 #include

29、#include int get_volume(int length, int width=2, int height=3) coutsetw(5)length setw(5)width setw(5)height ; return length*width*height; 5.9 默認(rèn)參數(shù)的函數(shù)62運(yùn)行結(jié)果:Some box data is 10 12 15 1800Some box data is 10 12 3 360Some box data is 10 2 3 60Some box data is 10 7 3 210Some box data is 5 5 5 125int mai

30、n() int x = 10, y = 12, z = 15; cout Some box data is ; cout get_volume(x, y, z) endl; cout Some box data is ; cout get_volume(x, y) endl; cout Some box data is ; cout get_volume(x) endl; cout Some box data is ; cout get_volume(x, 7) endl; cout Some box data is ; cout get_volume(5, 5, 5) endl;635.9 默認(rèn)參數(shù)的函數(shù)例2: #

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論