版權(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命令(#開頭,后面沒有;)如:#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ù)定義的一般形式為:類型函數(shù)名(類型形參1,類型形參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ù)類型、函數(shù)名和形參說(shuō)明表。
2.函數(shù)名:是用戶用標(biāo)識(shí)符為函數(shù)起的名字。函數(shù)名后的圓括號(hào)不能缺省,且函數(shù)頭后不要加“;”。
3.形參表:圓括號(hào)括起來(lái),用逗號(hào)隔開每個(gè)形參。注意:
a.調(diào)用一個(gè)函數(shù)時(shí)實(shí)參值傳給形參(傳值或傳址)。
b.也可以沒有形參(無(wú)參函數(shù)),但()不能省。
4.函數(shù)體:a.函數(shù)體用一對(duì)大括號(hào)括起b.包括數(shù)據(jù)定義和執(zhí)行語(yǔ)句兩部分c.若有計(jì)算結(jié)果并需要返回值,用return語(yǔ)句5.函數(shù)類型與返回值
a.函數(shù)可以有或沒有返回值。
b.返回類型由函數(shù)定義中的“類型”確定。
c.用return語(yǔ)句來(lái)返回函數(shù)值,返回值要與函數(shù)類型相符。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á)式的類型應(yīng)與函數(shù)類型一致。若不一致,則系統(tǒng)有時(shí)自動(dòng)將表達(dá)式值轉(zhuǎn)換為函數(shù)值的類型,有時(shí)出錯(cuò)。(3)任一個(gè)函數(shù),最多返回一個(gè)函數(shù)值。當(dāng)需要返回多個(gè)值時(shí),要使用全局變量或使用指針、數(shù)組作參數(shù),而不再使用返回函數(shù)值的形式。(4)空類型(void)函數(shù)如一個(gè)函數(shù)無(wú)返回值,則其類型定義為void。如:
voidprintstar(){printf("******");return;//此語(yǔ)句可省略
}(5)返回int型值的函數(shù),類型定義有時(shí)可以缺省。如:
max(intx,inty)//缺省類型,即為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));//不能寫作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)、類型匹配。函數(shù)先定義,后調(diào)用。如先調(diào)用,后定義,需要函數(shù)說(shuō)明(見下節(jié))。若返回值類型為int
或char,可以缺省函數(shù)說(shuō)明。函數(shù)可以嵌套調(diào)用,特別地可以直接或間接地調(diào)用自己-遞歸調(diào)用(見十一章)一個(gè)程序中可定義多個(gè)函數(shù),且書寫位置無(wú)關(guān)緊要。先調(diào)用,后定義,應(yīng)在調(diào)用前作出說(shuō)明。先定義,后調(diào)用,可不作說(shuō)明1.函數(shù)說(shuō)明的一般形式類型函數(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ù)名稱而只給出“類型表”。如: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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年常德職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試參考題庫(kù)含詳細(xì)答案解析
- 2026年巴音郭楞職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試模擬試題含詳細(xì)答案解析
- 2026四川涼山州雷波縣糧油貿(mào)易總公司面向社會(huì)招聘6人考試重點(diǎn)題庫(kù)及答案解析
- 2026年安徽礦業(yè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試備考題庫(kù)及答案詳細(xì)解析
- 2026年蘇州工藝美術(shù)職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考題庫(kù)含詳細(xì)答案解析
- 2026年永城職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考試題含詳細(xì)答案解析
- 2026年亳州職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)筆試模擬試題含詳細(xì)答案解析
- 2026四川樂山市沐川縣招募見習(xí)人員1人考試重點(diǎn)題庫(kù)及答案解析
- 2026年江西洪州職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試模擬試題含詳細(xì)答案解析
- 2026屆河南省葉縣博文學(xué)校高三上學(xué)期期中考試歷史試題(含答案)
- 學(xué)校桌椅采購(gòu)項(xiàng)目質(zhì)量保障方案
- 高考英語(yǔ)讀后續(xù)寫片段小練習(xí)(中英對(duì)照+模板套用)
- 嘉賓邀請(qǐng)合同書
- 華電集團(tuán)企業(yè)介紹
- 2025年AI時(shí)代的技能伙伴報(bào)告:智能體、機(jī)器人與我們(英文版)
- 消除艾滋病、梅毒和乙肝母嬰傳播鄉(xiāng)村醫(yī)生培訓(xùn)會(huì)-課件
- 2025年城市更新改造項(xiàng)目經(jīng)濟(jì)效益評(píng)估可行性研究報(bào)告
- 消防知識(shí)培訓(xùn)錦旗課件
- 新媒體與藝術(shù)教育-藝術(shù)教育中的新媒體技術(shù)
- 中醫(yī)醫(yī)院針灸進(jìn)修總結(jié)
- 主動(dòng)脈瘤護(hù)理查房
評(píng)論
0/150
提交評(píng)論