C語言-13-函數(shù)的定義與調(diào)用_第1頁
C語言-13-函數(shù)的定義與調(diào)用_第2頁
C語言-13-函數(shù)的定義與調(diào)用_第3頁
C語言-13-函數(shù)的定義與調(diào)用_第4頁
C語言-13-函數(shù)的定義與調(diào)用_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 復雜問題的編程,通常采用模塊化的設(shè)計思想,即把一個大問題分解為若干個小問題。采用模塊化方法設(shè)計程序,不僅編程相對容易,不易出錯,而且整個程序結(jié)構(gòu)清晰,可讀性好,有利于以后對程序的維護,同時也使團隊合作成為可能。 在C語言里,一個函數(shù)就是一個程序模塊。一個比較復雜的程序通常是由多個函數(shù)構(gòu)成,從main函數(shù)出發(fā),通過函數(shù)調(diào)用,使得這些函數(shù)成為一個整體。 #include main()int a,b,c,max;scanf(“%d %d%d”,&a,&b,&c);if(ab) max=a;else max=b;if(cmax) max=c;printf(“%d”,max);

2、#includeint m(int a,int b) if(ab) return(a); else return(b);main( ) int a,b,c,max; scanf(“%d%d%d”,&a,&b,&c);max=m(a,b);max=m(max,c);printf(“%d”,max);#includeint m(int a,int b) if(ab) return(a); else return(b);main( ) int a,b,c,max; scanf(“%d%d%d”,&a,&b,&c);max=m(a,b);max=m(ma

3、x,c);printf(“%d”,max);函數(shù)m形式參數(shù)a形參b返回值,即函數(shù)的結(jié)果函數(shù)調(diào)用實際參數(shù)a和b實參max和c函數(shù)分為定義和調(diào)用兩個環(huán)節(jié)。函數(shù)的定義就是編寫一個函數(shù),函數(shù)的調(diào)用就是使用一個已編寫好的函數(shù)。 f1f2f3main( )f1( );f2( );f3( );函數(shù)的定義分為兩部分:函數(shù)頭和函數(shù)體。函數(shù)頭包含函數(shù)名、形參列表等內(nèi)容,函數(shù)體是函數(shù)功能的具體實現(xiàn)。所謂形參就是函數(shù)頭中括號內(nèi)的參數(shù),每個形參必須表明類型。函數(shù)定義格式如下:函數(shù)值類型 函數(shù)名(類型 形參1, 類型 形參2, ) 函數(shù)體 int m(int a,int b) if(ab) return(a); else

4、 return(b);函數(shù)名字形式參數(shù)a, b函數(shù)頭函數(shù)體返回值類型寫出函數(shù)頭:1、定義一個函數(shù)sum,對兩個整型數(shù)據(jù)進行求和。2、定義一個函數(shù)judge,判斷一個年份是否是閏年。3、定義一個函數(shù)output,在屏幕上輸出一行*號。1、int sum(int x,int y)2、int judge(int year)3、void output( )int sum(int x,int y)return(x+y);int judge(int year) if(year%400=0|year%4=0&year%100!=0) return(1); else return(0);void ou

5、tput( ) printf(“*n”);定義好的函數(shù)就可以被其他函數(shù)調(diào)用,兩者分別稱為被調(diào)函數(shù)和主調(diào)函數(shù)。函數(shù)調(diào)用的格式:函數(shù)名(表達式1,表達式2,)這里各表達式的值是調(diào)用時提供的參數(shù),稱為實參。實參在個數(shù)、類型、次序上都要與形參相對應(yīng)。 #includemain( ) int a,b,year; scanf(“%d%d”,&a,&b); printf(“%dn”,sum(a,b) ); scanf(“%d”,&year); if( judge(year)=1 )printf(“Its leap yearn”); else printf(“Its not a lea

6、p yearn”); output( ); output( );編寫函數(shù)之前首先要判斷該函數(shù)是屬于哪一類,然后再進行針對性的編寫和調(diào)用。這里所說的分類不是指函數(shù)值的數(shù)據(jù)類型,而是將函數(shù)根據(jù)其用途分為以下三類:(1)求值類函數(shù):求值類函數(shù):使用函數(shù)是為了求一個值。如根據(jù)收入計算一個人的所得稅。(2)判斷類函數(shù):判斷類函數(shù):使用函數(shù)是為了檢查一個判斷是否成立。如判斷一個整數(shù)是不是素數(shù)。(3)操作類函數(shù):操作類函數(shù):使用函數(shù)是為了實現(xiàn)某一個功能或者完成某一項操作。如將一個數(shù)組進行排序。 求值類函數(shù)的功能是根據(jù)提供的已知信息求出所需的值。求值類函數(shù)的功能是根據(jù)提供的已知信息求出所需的值。這里提供的已知

7、信息就是形參;所求的值就是這里提供的已知信息就是形參;所求的值就是“函數(shù)的函數(shù)的值值”。 求值類函數(shù)的一般定義格式:求值類函數(shù)的一般定義格式:函數(shù)值類型函數(shù)值類型 函數(shù)名(類型函數(shù)名(類型 形參形參1, 類型類型 形參形參2, ) 根據(jù)形參的值計算所需的值根據(jù)形參的值計算所需的值return 所需的值;所需的值; /* 或者或者 return (所需的值所需的值); */定義函數(shù)時,關(guān)鍵是把握兩點:定義函數(shù)時,關(guān)鍵是把握兩點:(1)根據(jù)所提供的已知信息確定函數(shù)的形參,根據(jù)所求值)根據(jù)所提供的已知信息確定函數(shù)的形參,根據(jù)所求值的數(shù)據(jù)類型確定函數(shù)值類型,寫出函數(shù)頭。的數(shù)據(jù)類型確定函數(shù)值類型,寫出函

8、數(shù)頭。(2)編寫函數(shù)體:根據(jù)已知信息(即形參),求出所需的)編寫函數(shù)體:根據(jù)已知信息(即形參),求出所需的值,最后返回(值,最后返回(return)該值。)該值。 求值類函數(shù)編寫完之后,就可以被其他函數(shù)調(diào)用。求值類函數(shù)編寫完之后,就可以被其他函數(shù)調(diào)用。調(diào)用的格式為:調(diào)用的格式為:函數(shù)名(表達式函數(shù)名(表達式1,表達式,表達式2,) /* 括號中括號中的表達式是實參的表達式是實參 */通過調(diào)用可以得到函數(shù)的值,該值可以用于賦值、通過調(diào)用可以得到函數(shù)的值,該值可以用于賦值、運算、輸出等。下面給出一些調(diào)用的例子:運算、輸出等。下面給出一些調(diào)用的例子:c= biggernum(a,b);d= bigg

9、ernum(a,51)*2;printf(%d, biggernum(a+b,c); #includefloat zhishu(float x,int y) int i; float s=1; for(i=1;i=y;i+) s=s*x; return(s); main( ) float s; s=zhishu(6.5,4)+zhishu(2.1,2)-zhishu(1.36,9); printf(“%f”,s); 判斷類函數(shù)的功能是根據(jù)提供的已知信息,檢查判斷類函數(shù)的功能是根據(jù)提供的已知信息,檢查某一個判斷是不是成立。某一個判斷是不是成立。下面提供一種判斷類函數(shù)的編寫方法:下面提供一種判斷類

10、函數(shù)的編寫方法:int 函數(shù)名(類型函數(shù)名(類型 形參形參1, 類型類型 形參形參2, )int f; /* 代表判斷結(jié)果代表判斷結(jié)果 */根據(jù)形參的值進行判斷根據(jù)形參的值進行判斷,判斷成立則令判斷成立則令f為為1,否則令否則令f為為0return f; /* 將判斷結(jié)果返回將判斷結(jié)果返回 */ 判斷類函數(shù)通常用作選擇結(jié)構(gòu)的判斷條件或者循判斷類函數(shù)通常用作選擇結(jié)構(gòu)的判斷條件或者循環(huán)結(jié)構(gòu)的循環(huán)條件。使用判斷類函數(shù)時,如果函環(huán)結(jié)構(gòu)的循環(huán)條件。使用判斷類函數(shù)時,如果函數(shù)的值是數(shù)的值是1就可知結(jié)論成立,如果函數(shù)的值是就可知結(jié)論成立,如果函數(shù)的值是0則則結(jié)論不成立。如:結(jié)論不成立。如:if(isleap(y)=1)num+; #includeint uppercase( char c) if(c=A&c=Z) return( 1); else return( 0);

溫馨提示

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

評論

0/150

提交評論