C++語言程序設計 函數(shù)_第1頁
C++語言程序設計 函數(shù)_第2頁
C++語言程序設計 函數(shù)_第3頁
C++語言程序設計 函數(shù)_第4頁
C++語言程序設計 函數(shù)_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

C++語言程序設計函數(shù)2引例:計算x的n次方……intmain(){ doublex(5.0),val(1.0); intn=3; for(inti=0;i<n;i++)val=val*x; doublef=val; cout<<x<<"的"<<n<<"次方的值為:"<<f<<endl; return0;}3?如何計算53+32intmain(){ doublex(5.0),val1(1.0),val2(1.0); intn=3;

for(inti=0;i<n;i++)val1=val1*x; x=3.0;n=2;

for(inti=0;i<n;i++)val2=val2*x; doublef=val1+val2; cout<<"結果為:"<<f<<endl; return0;}val1=power(x,n);val2=power(x,n);doublef=power(5.0,3)+power(3.0,2);4例11-1編寫一個求x的n次方的函數(shù)#include<iostream>usingnamespacestd;intmain(){ doublepower(doublex,intn); cout<<"5tothepower2is"

<<power(5,2)<<endl; return0;}doublepower(doublex,intn){ doubleval=1.0; for(inti=0;i<n;i++)val=val*x; return(val);}5函數(shù)的聲明函數(shù)是面向?qū)ο蟪绦蛟O計中,對功能的抽象函數(shù)聲明的語法形式類型標識符函數(shù)名(形式參數(shù)表){語句序列}形式參數(shù)表<type1>name1,<type2>name2,...,<typen>namen函數(shù)的聲明與使用是被初始化的內(nèi)部變量,壽命和可見性僅限于函數(shù)內(nèi)部若無返回值,寫void6函數(shù)的聲明函數(shù)的返回值函數(shù)的值必須用return返回。返回值的類型與函數(shù)值類型一般應相同。由return語句給出,例如:

return0;或return(0);無返回值的函數(shù)(void類型),不必寫return語句。(或直接寫return;)7函數(shù)的調(diào)用調(diào)用前先聲明函數(shù)原型:在調(diào)用函數(shù)中,或程序文件中所有函數(shù)之外,按如下形式說明:類型標識符被調(diào)用函數(shù)名(含類型說明的形參表);調(diào)用形式

函數(shù)名(實參列表)調(diào)用方式表達式中:c=2*power(2,3);函數(shù)參數(shù):m=power(a,power(b,c));語句:

power(2,3);實參:出現(xiàn)在函數(shù)調(diào)用中形參:出現(xiàn)在函數(shù)定義中。8函數(shù)調(diào)用的執(zhí)行過程main()調(diào)fun()結束fun()返回①②④⑥⑦保存:返回地址當前現(xiàn)場③恢復:主調(diào)程序現(xiàn)場返回地址⑤9嵌套調(diào)用main{}調(diào)fun1()結束fun1()調(diào)fun2()返回fun2()返回①②③⑦④⑤⑥⑧⑨在一個子函數(shù)中調(diào)用另一個函數(shù)稱為函數(shù)嵌套調(diào)用10例11-2輸入兩個整數(shù),求平方和。#include<iostream>usingnamespacestd;intmain(){inta,b;intfun1(intx,inty);cin>>a>>b;cout<<"a、b的平方和:"

<<fun1(a,b)<<endl; return0;}11intfun1(intx,inty){intfun2(intm);return(fun2(x)+fun2(y));}intfun2(intm){return(m*m);}運行結果:34a、b的平方和:2512遞歸調(diào)用函數(shù)直接或間接地調(diào)用自身,稱為遞歸調(diào)用。遞歸過程的兩個階段:遞推:

4!=4×3!→3!=3×2!→2!=2×1!→1!=1×0!→0!=1未知已知回歸:4!=4×3!=24←3!=3×2!=6←2!=2×1!=2←1!=1×0!=1←0!=1未知已知13例11-3求n!分析:計算n!的公式如下:這是一個遞歸形式的公式,應該用遞歸函數(shù)實現(xiàn)。14源程序:#include<iostream>usingnamespacestd;intfac(intn){intf;if(n<0)cout<<"n<0,dataerror!"<<endl;

elseif(n==0)f=1;elsef=fac(n-1)*n;return(f);}15intmain(){longfac(intn);intn,y;cout<<"Enterapositiveinteger:";cin>>n;y=fac(n);cout<<n<<"!="<<y<<endl; return0;}運行結果:Enterapositiveinteger:88!=4032016函數(shù)的參數(shù)傳遞機制

——傳遞參數(shù)值在函數(shù)被調(diào)用時才分配形參的存儲單元。實參可以是常量、變量或表達式。實參類型必須與形參相符。傳遞時是傳遞參數(shù)值,即單向傳遞。17函數(shù)的參數(shù)傳遞機制

——參數(shù)值傳遞舉例XN被調(diào)函數(shù):主調(diào)函數(shù):3

2.5AD=power(A,3)

2.53doublepower(doubleX,intN)18例11-4輸入兩個整數(shù)交換后輸出#include<iostream>usingnamespacestd;voidSwap(inta,intb);intmain(){ intx(5),y(10); cout<<"x="<<x<<"y="<<y<<endl;

Swap(x,y); cout<<"x="<<x<<"y="<<y<<endl; return0;}19voidSwap(inta,intb){ intt; t=a; a=b; b=t;}運行結果: x=5y=10 x=5y=1020a=b;5

x10

y5

a10

b執(zhí)行主函數(shù)中的函數(shù)調(diào)用Swap(x,y);t=a;5

x10

y5

a10

b5tb=t;5

x10

y10

a5

b5t5

x10

y10

a10

b5t在Swap子函數(shù)中返回主函數(shù)以后5x10y202021函數(shù)的參數(shù)傳遞

——用引用做形參引用(&)是標識符的別名,例如:inti,j;

int&ri=i;

//建立一個int型的引用ri,并將其

//初始化為變量i的一個別名

j=10;

ri=j;//相當于i=j;聲明一個引用時,必須同時對它進行初始化,使它指向一個已存在的對象。一旦一個引用被初始化后,就不能改為指向其它對象。引用可以作為形參

voidswap(int&a,int&b){...}22例11-5輸入兩個整數(shù)交換后輸出#include<iostream>usingnamespacestd;voidSwap(int&a,int&b);intmain(){ intx(5),y(10); cout<<"x="<<x<<"y="<<y<<endl;

Swap(x,y); cout<<"x="<<x<<"y="<<y<<endl; return0;}voidSwap(int&a,int&b){ intt; t=a; a=b; b=t;}23函數(shù)的參數(shù)傳遞

——用指針做形參以地址方式傳遞數(shù)據(jù),可以用來返回函數(shù)處理結果。指針可以作為形參

voidSwap(int*pa,int*pb){...}24例11-6輸入兩個整數(shù)交換后輸出#include<iostream>usingnamespacestd;voidSwap(int*pa,int*pb);intmain(){ intx(5),y(10); cout<<"x="<<x<<"y="<<y<<endl;

Swap(&x,&y); cout<<"x="<<x<<"y="<<y<<endl; return0;}voidSwap(int*pa,int*pb){

溫馨提示

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

最新文檔

評論

0/150

提交評論