國(guó)二國(guó)二課件7.2函數(shù)_第1頁(yè)
國(guó)二國(guó)二課件7.2函數(shù)_第2頁(yè)
國(guó)二國(guó)二課件7.2函數(shù)_第3頁(yè)
國(guó)二國(guó)二課件7.2函數(shù)_第4頁(yè)
國(guó)二國(guó)二課件7.2函數(shù)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

1、第六章函數(shù)一、函數(shù)的嵌套調(diào)用定義:從一個(gè)函數(shù)調(diào)用另一個(gè)函數(shù)稱為函數(shù)的嵌套調(diào)用例:計(jì)算 S=22!+32!#include longf1(p)/*函數(shù)f1 用來(lái)計(jì)算平方值*/k;long r;long f2(q);k=p*p;r=f2(k);return r;long f2(q)/*函數(shù)f2 用來(lái)計(jì)算階乘值*/long c=1;i;for(i=1;i=q;i+)c=c*i;return c;main()i;long s=0;for (i=2;i=3;i+)s=s+f1(i);prf(ns=%ldn,s);結(jié)果為:s=362904二、函數(shù)的遞歸調(diào)用1.定義:調(diào)用一個(gè)函數(shù)時(shí),直接或間接調(diào)用自身,稱之

2、為函數(shù)的遞歸。2.程序中的遞歸方式:(1)直接遞歸調(diào)用:函數(shù)直接調(diào)用本身f(x)x;y,z;z=f(y);return(2*z);(2)間接遞歸調(diào)用:函數(shù)間接調(diào)用本身f1(x)x;y,z;z=f2(y);return(2*z);f2(t)t;a,c;c=f1(a);return(3+c);說(shuō)明:1.C 語(yǔ)言對(duì)遞歸函數(shù)的自調(diào)用次數(shù)沒(méi)有限制2.必須有遞歸結(jié)束條件例:有 5 個(gè)人坐在一起,問(wèn)第 5個(gè)人多少歲,他說(shuō)比第 4 個(gè)2歲;問(wèn)第 4 個(gè)人多少歲,他說(shuō)比第 3 個(gè)2 歲;問(wèn)第 3 個(gè)人多少歲,又說(shuō)比第 2 個(gè)大 2 歲;問(wèn)第 2 個(gè)人,說(shuō)比第 1 個(gè)2 歲;最后問(wèn)第一個(gè)人,他說(shuō)他10 歲;請(qǐng)問(wèn),

3、第 5 個(gè)人多少歲?#include age(n)c;if(n=1) c=10;else c=age(n-1)+2;return(c);main()prf(“%d”,age(5);三、變量類型及作用域(一)變量的類型f2(x)y=3,x;y=5;/*該范圍內(nèi)用的是值為 5 的y,該語(yǔ)句外用的是值為 3 的y*/作用域:變量有效性的范圍稱為變量的作用域全局變量:在所有函數(shù)外部定義的變量叫全局變量全局變量使用范圍:從定義位置開(kāi)始到整個(gè)程序結(jié)束局部變量:在一個(gè)函數(shù)內(nèi)部定義的變量或者函數(shù)的形參,都統(tǒng)稱為局部變量void f(i)j = 20;12345age(1)age(2)age(3)age(4)a

4、ge(5)1012141618i 和j 都屬于局部變量局部變量使用范圍:只能在本函數(shù)注意:在一個(gè)函數(shù)內(nèi)部如果定義的局部變量的名字和全局變量的名字一樣時(shí),局部變量會(huì)掉全局變量例:#include i =99;void f(i)prf(“i = %dn”,i);main()f(8);prf(“%dn”,i);說(shuō)明:1.主函數(shù)中定義的變量也只能在主函數(shù)中使用,不能在其他函數(shù)中使用。同時(shí),主函數(shù)中也不能使用其他函數(shù)中定義的變量。因?yàn)橹骱瘮?shù)也是一個(gè)函數(shù),它與其他函數(shù)是平行關(guān)系。2.形參變量是屬于被調(diào)函數(shù)的局部變量,實(shí)參變量是屬于主調(diào)函數(shù)的局部變量。3.允許在不同的函數(shù)中使用相同的變量名,它們代表不同的對(duì)

5、象,分配不同的單元。4.在復(fù)合語(yǔ)句中也可定義變量,其作用域只在復(fù)合語(yǔ)句范圍內(nèi)。5.全局變量在沒(méi)有賦初值時(shí),其初始值為 0.例:#include i;void f(i)prf(i = %dn,i);main(void)f(8);prf(%dn,i);(二)變量的類別從變量值存在的作用時(shí)間(即生存期)角度分為:1. 靜態(tài)方式:在程序運(yùn)行期間分配固定的空間的方式2. 動(dòng)態(tài)方式:在程序運(yùn)行期間根據(jù)需要進(jìn)行動(dòng)態(tài)的分配空間的方式在 C 語(yǔ)言中,每個(gè)變量和函數(shù)有兩個(gè)屬性:數(shù)據(jù)類型和數(shù)據(jù)的類別。常見(jiàn)數(shù)學(xué)函數(shù)的介紹:書上P89.類型說(shuō)明auto自動(dòng)變量局部變量在缺省類型的情況下歸為自動(dòng)變量。register寄存器變量存放在 CPU 的寄存器中。對(duì)于循環(huán)次數(shù)較多的循環(huán)控制變量及循環(huán)體內(nèi)反復(fù)使用的變量均可定義為寄存器變量。sic靜態(tài)變量

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論