第15講 庫函數(shù)、函數(shù)的定義與返回值_第1頁
第15講 庫函數(shù)、函數(shù)的定義與返回值_第2頁
第15講 庫函數(shù)、函數(shù)的定義與返回值_第3頁
第15講 庫函數(shù)、函數(shù)的定義與返回值_第4頁
第15講 庫函數(shù)、函數(shù)的定義與返回值_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第15講庫函數(shù)、函數(shù)的定義與返回值第七章函數(shù)在解決一個比較復(fù)雜的實際問題時,不可能把所有要完成的任務(wù)全都寫在main函數(shù)中。這時,程序往往由一個main函數(shù)和若干個其它函數(shù)組成,每個函數(shù)各自完成相對獨立的部分功能。在前面的章節(jié)中,我們編寫的程序都是由一個main函數(shù)來組成,在main函數(shù)中調(diào)用過scanf、printf等系統(tǒng)函數(shù)。模塊化的程序設(shè)計方法函數(shù)間相互調(diào)用的示意

main()

f1()

f11(){

{

{┇

┇f1();f11();

}┇

f12()f2();

f12();

{┇┇

}

}

}f2()

f21(){{

f21();

}┇}函數(shù)的分類從函數(shù)形式無參函數(shù)有參函數(shù)從用戶角度標(biāo)準(zhǔn)函數(shù)(庫函數(shù)):由系統(tǒng)提供用戶自定義函數(shù)庫函數(shù)由系統(tǒng)提供,用戶只要按照要求的格式正確調(diào)用即可。不同的C編譯系統(tǒng)提供的庫函數(shù)有些不同。

§7.1

庫函數(shù)使用庫函數(shù)應(yīng)注意的問題:1、調(diào)用庫函數(shù)時要用#include命令將相關(guān)的頭文件包含進(jìn)來。如:調(diào)用數(shù)學(xué)函數(shù),用#include"math.h"

|<math.h>

調(diào)用輸入輸出函數(shù),用#include"stdio.h"

|<stdio.h>

2、庫函數(shù)調(diào)用的一般形式:

函數(shù)名(參數(shù)表)

要注意函數(shù)的功能、參數(shù)的個數(shù)與類型、函數(shù)值的類型。如:求平方根的函數(shù)sqrt的形式是:doublesqrt(doublex)3、庫函數(shù)調(diào)用以兩種方式出現(xiàn)。其一:出現(xiàn)在表達(dá)式中,即作為表達(dá)式的一部分參與運算。 如:計算y=x2.5+1.3,則通過以下語句調(diào)用來實現(xiàn)。

y=pow(x,2.5)+1.3;其二:獨立的語句,即調(diào)用函數(shù)后加一分號。 如:printf("*****\n");4、調(diào)用庫函數(shù)時,要注意參數(shù)的一些特殊要求。如三角函數(shù)要求自變量參數(shù)用弧度表示,開平方函數(shù)要求自變量參數(shù)的值大于或等于0。

使用庫函數(shù)應(yīng)注意的問題(續(xù))函數(shù)返回值的類型缺省int型無返回值:void函數(shù)體函數(shù)類型函數(shù)名(形參類型說明表)

{

說明部分語句部分

}§7.2

函數(shù)的定義和返回值1.函數(shù)定義的一般格式現(xiàn)代風(fēng)格:多個形參說明之間要用逗號隔開沒有形參時,這一對括號不能省略合法標(biāo)識符例1有參函數(shù)(現(xiàn)代風(fēng)格)

intmax(intx,inty){intz;z=x>y?x:y;return(z);}例2有參函數(shù)(現(xiàn)代風(fēng)格)

intmax(intx,y){intz;z=x>y?x:y;return(z);}例3無參函數(shù)

void

printstar(){printf("**********\n");}或

void

printstar(void){printf("**********\n");}函數(shù)的定義示例例4空函數(shù)

voiddummy(void){

}函數(shù)體為空(留待以后補充)函數(shù)類型函數(shù)名(形參表)形參類型說明{

說明部分語句部分}例有參函數(shù)(傳統(tǒng)風(fēng)格)

intmax(x,y)

intx,y;{intz;z=x>y?x:y;return(z);}傳統(tǒng)風(fēng)格:

intmax2(intx,inty)/*現(xiàn)代風(fēng)格*/{intmax;if(x>y)max=x;elsemax=y;

printf("max(max2)=%d\n",max);return(max);}voidmain(){inta,b,max;

scanf("%d,%d",&a,&b);

max=max2(a,b)+100;

printf("max(main)=%d\n",max);}例函數(shù)的定義

形參和函數(shù)體中定義的變量只在函數(shù)被調(diào)用時才臨時分配存儲單元,當(dāng)退出函數(shù)時,這些存儲單元全部被釋放(稱為局部性,因而與其它函數(shù)中的變量同名不會引起混淆)。

函數(shù)與函數(shù)之間是平等的voidmain(){intmax2(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}

inta,b,max;

scanf("%d,%d",&a,&b);max=max2(a,b);

printf("max=%d\n",max);}

函數(shù)的定義是平行的,不能在一個函數(shù)的內(nèi)部再定義其它函數(shù)。即每個函數(shù)都是一個相對獨立的模塊,不能在寫某一個函數(shù)時又包含了另一個函數(shù)的定義(main函數(shù)的執(zhí)行時有一點點小的特權(quán)?。?。

返回語句形式return(表達(dá)式);或

return表達(dá)式;

return;功能:使程序控制從被調(diào)用函數(shù)返回到調(diào)用函數(shù)中,同時把返值帶給調(diào)用函數(shù)說明:函數(shù)中可以有多個return語句,但只有其中的一個return語句能夠得到執(zhí)行若函數(shù)中沒有return語句,或者是一個不帶表達(dá)式的return語句,則該函數(shù)結(jié)束時自動返回調(diào)用函數(shù)一個不確定的值若函數(shù)類型與return語句中表達(dá)式值的類型不一致,按前者為準(zhǔn),自動轉(zhuǎn)換------函數(shù)調(diào)用轉(zhuǎn)換void型函數(shù):明確說明函數(shù)沒有返回值2.函數(shù)的返回值intmax(floatx,floaty){floatz;z=x>y?x:y;

return(z);}main(){floata,b;

scanf("%f,%f",&a,&b);

printf("Maxis%d\n",max(a,b));}例函數(shù)返回值類型轉(zhuǎn)換

main(){inta,b,max;

scanf("%d,%d",&a,&b);max=max2(a,b);

printf("max=%d\n",max);}intmax2(intx,inty){intz;if(x>y)

returnx;else

returny;}例函數(shù)可以有多個return語句注意:在C語言中,函數(shù)名不能被賦值,只能通過return語句返回一個值。

intmax2(intx,inty){max2=x>y?x:y;}

printstar(){printf("*********\n");}main(){inta;a=printstar();printf("a=%d\n",a);}輸出:a=10例函數(shù)帶回不確定值#include<stdio.h>/*void*/printstar(){printf("*****@@@##****\n");}main(){inta;

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論