版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年集裝箱短型管項(xiàng)目可行性研究報(bào)告
- 二零二五年度產(chǎn)業(yè)園區(qū)綠化養(yǎng)護(hù)與生態(tài)修復(fù)服務(wù)合同樣本3篇
- 二零二四年度醫(yī)療健康大數(shù)據(jù)服務(wù)平臺(tái)共建協(xié)議
- 二零二五年度知識(shí)產(chǎn)權(quán)許可使用合同樣本6篇
- 二零二五年度徹磚勞務(wù)分包合同合同履行監(jiān)督與評(píng)價(jià)4篇
- 2025年度美容院線上線下融合運(yùn)營(yíng)合同4篇
- 2025年度家庭用車(chē)個(gè)人貸款購(gòu)車(chē)合同(含補(bǔ)貼政策)4篇
- 2025版排水工程材料供應(yīng)合同4篇
- 二零二五年度體育賽事臨時(shí)工雇傭合同范本2篇
- 二零二五年度智能電網(wǎng)建設(shè)農(nóng)民工安全生產(chǎn)協(xié)議4篇
- 紅色革命故事《王二小的故事》
- 《白蛇緣起》賞析
- 海洋工程用高性能建筑鋼材的研發(fā)
- 蘇教版2022-2023學(xué)年三年級(jí)數(shù)學(xué)下冊(cè)開(kāi)學(xué)摸底考試卷(五)含答案與解析
- 英語(yǔ)48個(gè)國(guó)際音標(biāo)課件(單詞帶聲、附有聲國(guó)際音標(biāo)圖)
- GB/T 6892-2023一般工業(yè)用鋁及鋁合金擠壓型材
- 冷庫(kù)安全管理制度
- 2023同等學(xué)力申碩統(tǒng)考英語(yǔ)考試真題
- 家具安裝工培訓(xùn)教案優(yōu)質(zhì)資料
- 在雙減政策下小學(xué)音樂(lè)社團(tuán)活動(dòng)有效開(kāi)展及策略 論文
- envi二次開(kāi)發(fā)素材包-idl培訓(xùn)
評(píng)論
0/150
提交評(píng)論