版權說明:本文檔由用戶提供并上傳,收益歸屬內(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 46849.6-2025技術產(chǎn)品文件基于模型定義要求第6部分:服務數(shù)據(jù)
- 江蘇省南京市七校聯(lián)合體2025-2026學年高二上學期期末調(diào)研語文試題(含答案)
- 湖北省黃石市下陸區(qū)2025-2026學年八年級上學期1月期末英語試題(含答案)
- 企業(yè)員工行為規(guī)范制度
- 吳川介紹簡短
- 老年終末期多病共存患者尿失禁皮膚管理策略
- 財政稅收高級經(jīng)濟實務經(jīng)濟師考試強化訓練精練試題詳解
- 級高一歷史開學
- 電光源制造工崗前實踐理論考核試卷含答案
- 我國上市公司獨立董事制度效用的多維審視與提升路徑研究
- 2026年山東省威海市單招職業(yè)傾向性測試題庫附答案解析
- (一診)重慶市九龍坡區(qū)區(qū)2026屆高三學業(yè)質(zhì)量調(diào)研抽測(第一次)物理試題
- 2026新疆伊犁州新源縣總工會面向社會招聘工會社會工作者3人考試備考試題及答案解析
- 2026年榆能集團陜西精益化工有限公司招聘備考題庫完整答案詳解
- 2026廣東省環(huán)境科學研究院招聘專業(yè)技術人員16人筆試參考題庫及答案解析
- 2026年保安員理論考試題庫
- 2026年《必背60題》抖音本地生活BD經(jīng)理高頻面試題包含詳細解答
- 駱駝祥子劇本殺課件
- 2025首都文化科技集團有限公司招聘9人考試筆試備考題庫及答案解析
- 農(nóng)業(yè)科技合作協(xié)議2025
- 2025年人保保險業(yè)車險查勘定損人員崗位技能考試題及答案
評論
0/150
提交評論