計算機課件15函數(shù)_第1頁
計算機課件15函數(shù)_第2頁
計算機課件15函數(shù)_第3頁
計算機課件15函數(shù)_第4頁
計算機課件15函數(shù)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

ProgramminginC

c程序設計

ProgramminginC

西安電子科技大學計算機學院張淑平

西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China1

.上次課要點__________ProgramminginC

?函數(shù)定義

?形式參數(shù)doubleCelsToFahr(intc)

?函數(shù)調(diào)用(

?實際參數(shù)doublet;

?參數(shù)傳遞t=9.0/5*c+32;

?實際參數(shù)向形式參數(shù)傳值return(t);

?函數(shù)返回值}

voidmain(void)

{intx;doubley;

printf(MCelsiustoFahrenheittable:\nn);

for(x=0;x<=100;x+=5){

y=CelsToFahr(x);printf(H%3d--%3g\tn,x,y);

膏形參和實參ProgramminginC

實參可以是常量、變量、表達式、函數(shù)等。無論實參是何

種類型的量,在進行函數(shù)調(diào)用時,它們都必須具有確定的

值,以便把這些值傳送給形參。

>因此,應預先用賦值、輸入等辦法,使實參獲得確定的

值。

形參變量只有在被調(diào)用函數(shù)執(zhí)行時,才分配內(nèi)存單元;調(diào)

用結(jié)束時,即刻釋放所分配的內(nèi)存單元。

>因此,形參只有在該被調(diào)用函數(shù)內(nèi)有效。調(diào)用結(jié)束,返

回主調(diào)函數(shù)后,則不能再使用該形參變量。

?實參對形參的數(shù)據(jù)傳送是單向的,即只能把實參的值傳送

給形參,而不能把形參的值反向地傳送給實參。

?實參和形參占用不同的內(nèi)存單元,即使同名也互不影響。

西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China3

ProgramminginC

這次課的主要內(nèi)容

參數(shù)傳遞

函數(shù)調(diào)用

嵌套調(diào)用

?遞歸調(diào)用

全局變量和局部變量

西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China4

ProgramminginC

&傳值調(diào)用一

?函數(shù)調(diào)用執(zhí)行時,將實際參數(shù)的值傳遞給形

式參數(shù)

main()

voidswap(intx,inty)inta,b,c;

{a=3;b=8;c=2;

intt;if(a>b)swap(a,b);

t=x;x=y;y=t;if(a>c)swap(a,c);

if(b>c)swap(b,c);

nf

printf(%d%d%d\a5b,c);

西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China5

ProsramminsinC

第;傳值調(diào)用

?函數(shù)調(diào)用執(zhí)行時,將實際參數(shù)變量的地址傳

遞給形式參數(shù)

main()

(

voidswap(int*x,int*y)inta,b,c;

{a=3;b=8;c=2;

intt;if(a>b)swap(&a,&b);

t=*x;*x=*y;*y=t;if(a>c)swap(&a,&c);

if(b>c)swap(&b,&c);

nf

printf(%d%d%d\a9b,c);

西安電子科技大學計算機學院-XidianUniversity,ChinaTC2.0

ProgramminginC

題數(shù)組作為函數(shù)參數(shù)______________

?數(shù)組作為參數(shù)有兩種形式

?數(shù)組元素作為實參使用;

?把數(shù)組名作為函數(shù)的形參和實參使用

?數(shù)組元素是一個變量

intnum[5]={79,11,27,26,43};

num[O]79

num[l]11

num[2]27

num[3]26

num[4]43

西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China7

ProgramminginC

;數(shù)組名作為函數(shù)參數(shù)

?數(shù)組名可以作為實參和形參,傳遞的是數(shù)組

空間的首地址

voidsort(inta[]9intn)/*數(shù)組a白main()

{inti,j,temp;

for(i=0;i<n-1;i++){inti;

for(j=0;j<n-1-i;j++)intnum[6]={43,18,9,13,55,7};

if(a[j]>a[j+l]){

temp=a[j];a[j]=a[j-sort(num,6);

}/*endif*/for(i=0;i<6;i++)

}/*endfori*/printf(n%d\tn,num[i]);

西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,ChinaTC2.0

ProgramminginC

改組名作為函數(shù)參數(shù)(續(xù))

?多位數(shù)組作為實參酒碗一

inti,j,max,num[3][4];

?例如:找出二維數(shù)組

for(i=0;i<3;i++){

intmax_value_Matrix(inta[]

for(j=0;j<4;j++){

{inti,j,line,col;

num[i][j]=rand();

max=a[0][0];line=0;co

printf(n%d\tn,num[i][j]);

for(i=0;i<m;i++)

}

for(j=0;j<n;j++)

printf(H\nn);

if(a[i][j]>max){max

}

printf(n%d,%d,line,co

max=max_value_Matrix(num,354);

returnmax;

printf(n%d\tn,max);

TC2.0

ProgramminginC

函數(shù)的嵌套調(diào)用

西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China10

令NProsramminsinC

初函數(shù)的嵌套調(diào)用____________________

O嵌套調(diào)用是指在執(zhí)行被調(diào)用函數(shù)時,被調(diào)用

函數(shù)又調(diào)用了其他函數(shù)

西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,ChinaTC2.0

ProgramminginC

殛嵌套調(diào)用:排序

voidsort(inta[],intn)main()

{inti,j,temp;(

for(i=0;i<n-1;i++){inti;

for(j=0;j<n-1-i;j++)intnum[6]={43,18,9,13,55,7};

if(a[j]>a[j+l]){

swap(&a[j],&a[j+l]);sort(num,6);

}/*endif*/for(i=0;i<6;i++)

}/*endfori*/printf(M%d\f\num[i]);

西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,ChinaTC2.0

徵嵌套調(diào)用:求組合數(shù)ProgramminginC

longfact(intn)

?書架上有10本不同的書,

從中任取2本,有多少(

種取法?longt=1,i=1;

for(i=1;i<=n;i++)

<1010!t=t*i;

2)2!(10-2)!return(t);

longcombinations(intn,intk)

return(fact(n)/(fact(k)*fact(n-k)));

0E。子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,Ctl己事TC2.0

ProgramminginC

繆函數(shù)不能嵌套定義

?函數(shù)不能嵌套定義,即不能在一個函數(shù)內(nèi)定

義另一個函數(shù)

longfact(intn)main()

longt=1,i=1;inti=1;

for(i=1;i<=n;i++){for(i=1;i<=10;i++){

t=t*i;printf(n%d!=%ld\nn,i,fact(i));

)}

return(t);

西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China14

ProgramminginC

函數(shù)的遞歸調(diào)用

西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China15

ProgramminginC

現(xiàn)函數(shù)的遞歸調(diào)用

?若函數(shù)在執(zhí)行過程中直接或間接地調(diào)用自身,

稱為函數(shù)的遞歸調(diào)用

?函數(shù)的遞歸定義)例如:n!=n*(n-1)!(n>l)

1n<=1

fact(n)={

n*fact(n-1)n>1

西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,Ct遞歸TC2.0

鷺函數(shù)的遞歸調(diào)用ProgramminginC

?在遞歸調(diào)用中,調(diào)用函數(shù)又是被調(diào)用函數(shù),

執(zhí)行遞歸函數(shù)將反復調(diào)用其自身。每調(diào)用一

次就進入新的一層。

?為了防止遞歸調(diào)用無終止地進行,必須在函

數(shù)內(nèi)有終止遞歸調(diào)用的手段。常用的辦法是

加條件判斷,滿足某種條件后就不再作遞歸

調(diào)用,然后逐層返回。

西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China17

ProgramminginC

£全局變量和局部變量___________

在函數(shù)中定義的變量是局部變量

在所有函數(shù)之外定義的變量是全局變量

形式參數(shù)是局部變量

西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China18

圓全局變量和局部變量ProgramminginC

局部變量只在定義它的函數(shù)中有意義

全局變量在所有函數(shù)中都有意義

intm9n;

intgcd(intx,inty)

main()

{

{

inti;

溫馨提示

  • 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

提交評論