C語(yǔ)言提供了豐富的庫(kù)函數(shù)包括常用的數(shù)學(xué)函數(shù)_第1頁(yè)
C語(yǔ)言提供了豐富的庫(kù)函數(shù)包括常用的數(shù)學(xué)函數(shù)_第2頁(yè)
C語(yǔ)言提供了豐富的庫(kù)函數(shù)包括常用的數(shù)學(xué)函數(shù)_第3頁(yè)
C語(yǔ)言提供了豐富的庫(kù)函數(shù)包括常用的數(shù)學(xué)函數(shù)_第4頁(yè)
C語(yǔ)言提供了豐富的庫(kù)函數(shù)包括常用的數(shù)學(xué)函數(shù)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第七章函數(shù)7.1庫(kù)函數(shù)C語(yǔ)言提供了豐富的庫(kù)函數(shù)。包括常用的數(shù)學(xué)函數(shù)、對(duì)字符和字符串進(jìn)行處理的函數(shù)、進(jìn)行輸入輸出處理的函數(shù)等等……1、用include命令(#開(kāi)頭,后面沒(méi)有;)如:#include“stdio.h”//或#include<stdio.h> #include“math.h”2、調(diào)用形式:函數(shù)名(參數(shù)表)

如:y=sqrt(x);

ch=getchar();

printf(“jhfjdg\n”);函數(shù)的定義

函數(shù)在使用之前必須定義。函數(shù)一經(jīng)定義便可多次重復(fù)使用。函數(shù)定義的一般形式為:類(lèi)型函數(shù)名(類(lèi)型形參1,類(lèi)型形參2……)

{

說(shuō)明部分語(yǔ)句部分

}函數(shù)體7.2函數(shù)的定義和返回值如:int

max(intx,inty){intz;z=(x>y)?x:y;returnz;}例7.1求兩double型數(shù)據(jù)之和。

doubleadd(doublea,doubleb){doubles;s=a+b;returns;}下面介紹函數(shù)函數(shù)的各部分:

1.函數(shù)頭:(例7.1)中的第1行又叫函數(shù)頭。包括函數(shù)類(lèi)型、函數(shù)名和形參說(shuō)明表。

2.函數(shù)名:是用戶用標(biāo)識(shí)符為函數(shù)起的名字。函數(shù)名后的圓括號(hào)不能缺省,且函數(shù)頭后不要加“;”。

3.形參表:圓括號(hào)括起來(lái),用逗號(hào)隔開(kāi)每個(gè)形參。注意:

a.調(diào)用一個(gè)函數(shù)時(shí)實(shí)參值傳給形參(傳值或傳址)。

b.也可以沒(méi)有形參(無(wú)參函數(shù)),但()不能省。

4.函數(shù)體:a.函數(shù)體用一對(duì)大括號(hào)括起b.包括數(shù)據(jù)定義和執(zhí)行語(yǔ)句兩部分c.若有計(jì)算結(jié)果并需要返回值,用return語(yǔ)句5.函數(shù)類(lèi)型與返回值

a.函數(shù)可以有或沒(méi)有返回值。

b.返回類(lèi)型由函數(shù)定義中的“類(lèi)型”確定。

c.用return語(yǔ)句來(lái)返回函數(shù)值,返回值要與函數(shù)類(lèi)型相符。return語(yǔ)句結(jié)束該函數(shù)的運(yùn)行返回調(diào)用環(huán)境,并將表達(dá)式的值帶回。一般形式為:return表達(dá)式int

max(intx,inty){

intz;//數(shù)據(jù)定義

z=(x>y)?x:y;//執(zhí)行語(yǔ)句

returnz;//返回語(yǔ)句}#include<stdio.h>voidmain(){inta,b,x;

int

max(int,int);//函數(shù)說(shuō)明

scanf(“%d%d”,&a,&b);x=max(a,b);//返回函數(shù)值給x

printf(“\nmax(a,b)=%d“,x);}(1)一個(gè)函數(shù)的函數(shù)體內(nèi)也可以有多個(gè)return語(yǔ)句,表示函數(shù)有多個(gè)出口。但只能選擇出口之一結(jié)束其運(yùn)行.如:

int

max(int

x,inty){if(x>y)returnx;elsereturny;}(2)return表達(dá)式;表達(dá)式的類(lèi)型應(yīng)與函數(shù)類(lèi)型一致。若不一致,則系統(tǒng)有時(shí)自動(dòng)將表達(dá)式值轉(zhuǎn)換為函數(shù)值的類(lèi)型,有時(shí)出錯(cuò)。(3)任一個(gè)函數(shù),最多返回一個(gè)函數(shù)值。當(dāng)需要返回多個(gè)值時(shí),要使用全局變量或使用指針、數(shù)組作參數(shù),而不再使用返回函數(shù)值的形式。(4)空類(lèi)型(void)函數(shù)如一個(gè)函數(shù)無(wú)返回值,則其類(lèi)型定義為void。如:

voidprintstar(){printf("******");return;//此語(yǔ)句可省略

}(5)返回int型值的函數(shù),類(lèi)型定義有時(shí)可以缺省。如:

max(intx,inty)//缺省類(lèi)型,即為int

型{intz;

z=(x>y)?x:y;

returnz;//返回int型的值

}對(duì)已定義的函數(shù),其他函數(shù)或本函數(shù)自身都可以調(diào)用之。所謂“調(diào)用”,就是將實(shí)參值傳給形參后,計(jì)算機(jī)系統(tǒng)的控制流程便轉(zhuǎn)移去執(zhí)行被調(diào)函數(shù)的操作,得到結(jié)果后又返回到調(diào)用環(huán)境中。外界環(huán)境調(diào)用一個(gè)函數(shù)的目的,是為了借助該函數(shù)完成某些計(jì)算任務(wù)實(shí)現(xiàn)一個(gè)特定的功能(或由函數(shù)返回一些數(shù)據(jù),或由函數(shù)直接輸出一些信息)。7.3函數(shù)的調(diào)用#include<stdio.h>voidmain(){

inta,b,c;

int

max(int,int);a=3;b=5;c=max(a,b);

printf("max=%d",c);}int

max(int

x,inty){

intz;z=(x>y)?x:y;returnz;}將實(shí)參a、b的值分別傳給形參x、y,并轉(zhuǎn)移到函數(shù)max中運(yùn)行返回到函數(shù)main并將max的函數(shù)值賦值給c函數(shù)調(diào)用1函數(shù)調(diào)用的形式函數(shù)語(yǔ)句:無(wú)返回值,完成一種操作,如:

printstar();函數(shù)表達(dá)式:有返回值,該值作為元素參加表達(dá)式運(yùn)算

c=2*max(a,b);函數(shù)參數(shù):有返回值,該值作為另一函數(shù)的實(shí)參,如m=max(a,max(b,c));//不能寫(xiě)作m=max(a,b,c);

printf(“max(%d,%d)=%d”,a,b,max(a,b));2.函數(shù)調(diào)用時(shí)語(yǔ)法要求實(shí)參表有確定值。實(shí)參與形參個(gè)數(shù)相同,順序?qū)?yīng)、類(lèi)型匹配。函數(shù)先定義,后調(diào)用。如先調(diào)用,后定義,需要函數(shù)說(shuō)明(見(jiàn)下節(jié))。若返回值類(lèi)型為int

或char,可以缺省函數(shù)說(shuō)明。函數(shù)可以嵌套調(diào)用,特別地可以直接或間接地調(diào)用自己-遞歸調(diào)用(見(jiàn)十一章)一個(gè)程序中可定義多個(gè)函數(shù),且書(shū)寫(xiě)位置無(wú)關(guān)緊要。先調(diào)用,后定義,應(yīng)在調(diào)用前作出說(shuō)明。先定義,后調(diào)用,可不作說(shuō)明1.函數(shù)說(shuō)明的一般形式類(lèi)型函數(shù)名(形參說(shuō)明表);例如:int

max(intx,inty);2.函數(shù)說(shuō)明的位置在調(diào)用語(yǔ)句之前放在所有函數(shù)定義之前,所有函數(shù)都能調(diào)用它。放在調(diào)用語(yǔ)句所在函數(shù)的函數(shù)體前,只有該函數(shù)能調(diào)用它。7.4函數(shù)的說(shuō)明例如,以下程序都是正確的:

#include<stdio.h>voidmain(){inta=1,b=2,z;

int

max(int,int);z=max(a,b);

printf("max(%d,\%d)=%d",a,b,z);}int

max(int

x,inty){

intz;z=(x>y)?x:y;returnz;}#include<stdio.h>int

max(int,int);voidmain(){inta=1,b=2,z;

z=max(a,b);

printf("max(%d,\%d)=%d",a,b,z);}int

max(int

x,inty){

intz;z=(x>y)?x:y;returnz;}voidmain(){inta=1,b=2,z;z=max(a,b);

printf("max(%d,\%d)=%d",a,b,z);}#include<stdio.h>int

max(int

x,inty){intz;z=(x>y)?x:y;returnz;}說(shuō)明、調(diào)用、定義定義、調(diào)用3.關(guān)于函數(shù)說(shuō)明的注記(1)函數(shù)說(shuō)明有時(shí)可缺省遇下列情形之一時(shí)可省去函數(shù)說(shuō)明:①函數(shù)定義在前,對(duì)該函數(shù)的調(diào)用語(yǔ)句在后時(shí)可缺省其說(shuō)明;②返回值為int型的函數(shù)可缺省其說(shuō)明;③用include命令將被調(diào)用函數(shù)的定義或原型所在文件嵌入時(shí),可缺省說(shuō)明。(2)在函數(shù)說(shuō)明式圓括號(hào)的“形參說(shuō)明表”中,可以省去參數(shù)名稱(chēng)而只給出“類(lèi)型表”。如:int

max(int,int);C語(yǔ)言中,調(diào)用函數(shù)和被調(diào)用函數(shù)之間的數(shù)據(jù)可以通過(guò)三種方式傳遞:1、實(shí)在參數(shù)和形式參數(shù)之間進(jìn)行數(shù)據(jù)傳遞;2、通過(guò)return語(yǔ)句把函數(shù)值返回調(diào)用函數(shù);3、通過(guò)全局變量。但這不是一種好方法,通常不提倡使用。

溫馨提示

  • 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)論