版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第七章函數(shù)7.1庫函數(shù)C語言提供了豐富的庫函數(shù)。包括常用的數(shù)學(xué)函數(shù)、對字符和字符串進(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……)
{
說明部分語句部分
}函數(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ù)名和形參說明表。
2.函數(shù)名:是用戶用標(biāo)識符為函數(shù)起的名字。函數(shù)名后的圓括號不能缺省,且函數(shù)頭后不要加“;”。
3.形參表:圓括號括起來,用逗號隔開每個(gè)形參。注意:
a.調(diào)用一個(gè)函數(shù)時(shí)實(shí)參值傳給形參(傳值或傳址)。
b.也可以沒有形參(無參函數(shù)),但()不能省。
4.函數(shù)體:a.函數(shù)體用一對大括號括起b.包括數(shù)據(jù)定義和執(zhí)行語句兩部分c.若有計(jì)算結(jié)果并需要返回值,用return語句5.函數(shù)類型與返回值
a.函數(shù)可以有或沒有返回值。
b.返回類型由函數(shù)定義中的“類型”確定。
c.用return語句來返回函數(shù)值,返回值要與函數(shù)類型相符。return語句結(jié)束該函數(shù)的運(yùn)行返回調(diào)用環(huán)境,并將表達(dá)式的值帶回。一般形式為:return表達(dá)式int
max(intx,inty){
intz;//數(shù)據(jù)定義
z=(x>y)?x:y;//執(zhí)行語句
returnz;//返回語句}#include<stdio.h>voidmain(){inta,b,x;
int
max(int,int);//函數(shù)說明
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語句,表示函數(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á)式值轉(zhuǎn)換為函數(shù)值的類型,有時(shí)出錯(cuò)。(3)任一個(gè)函數(shù),最多返回一個(gè)函數(shù)值。當(dāng)需要返回多個(gè)值時(shí),要使用全局變量或使用指針、數(shù)組作參數(shù),而不再使用返回函數(shù)值的形式。(4)空類型(void)函數(shù)如一個(gè)函數(shù)無返回值,則其類型定義為void。如:
voidprintstar(){printf("******");return;//此語句可省略
}(5)返回int型值的函數(shù),類型定義有時(shí)可以缺省。如:
max(intx,inty)//缺省類型,即為int
型{intz;
z=(x>y)?x:y;
returnz;//返回int型的值
}對已定義的函數(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ù)語句:無返回值,完成一種操作,如:
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í)語法要求實(shí)參表有確定值。實(shí)參與形參個(gè)數(shù)相同,順序?qū)?yīng)、類型匹配。函數(shù)先定義,后調(diào)用。如先調(diào)用,后定義,需要函數(shù)說明(見下節(jié))。若返回值類型為int
或char,可以缺省函數(shù)說明。函數(shù)可以嵌套調(diào)用,特別地可以直接或間接地調(diào)用自己-遞歸調(diào)用(見十一章)一個(gè)程序中可定義多個(gè)函數(shù),且書寫位置無關(guān)緊要。先調(diào)用,后定義,應(yīng)在調(diào)用前作出說明。先定義,后調(diào)用,可不作說明1.函數(shù)說明的一般形式類型函數(shù)名(形參說明表);例如:int
max(intx,inty);2.函數(shù)說明的位置在調(diào)用語句之前放在所有函數(shù)定義之前,所有函數(shù)都能調(diào)用它。放在調(diào)用語句所在函數(shù)的函數(shù)體前,只有該函數(shù)能調(diào)用它。7.4函數(shù)的說明例如,以下程序都是正確的:
#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;}說明、調(diào)用、定義定義、調(diào)用3.關(guān)于函數(shù)說明的注記(1)函數(shù)說明有時(shí)可缺省遇下列情形之一時(shí)可省去函數(shù)說明:①函數(shù)定義在前,對該函數(shù)的調(diào)用語句在后時(shí)可缺省其說明;②返回值為int型的函數(shù)可缺省其說明;③用include命令將被調(diào)用函數(shù)的定義或原型所在文件嵌入時(shí),可缺省說明。(2)在函數(shù)說明式圓括號的“形參說明表”中,可以省去參數(shù)名稱而只給出“類型表”。如:int
max(int,int);C語言中,調(diào)用函數(shù)和被調(diào)用函數(shù)之間的數(shù)據(jù)可以通過三種方式傳遞:1、實(shí)在參數(shù)和形式參數(shù)之間進(jìn)行數(shù)據(jù)傳遞;2、通過return語句把函數(shù)值返回調(diào)用函數(shù);3、通過全局變量。但這不是一種好方法,通常不提倡使用。
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中華女子學(xué)院《傳統(tǒng)及現(xiàn)代手工藝制作》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州信息工程職業(yè)學(xué)院《工業(yè)控制網(wǎng)絡(luò)》2023-2024學(xué)年第一學(xué)期期末試卷
- 長沙航空職業(yè)技術(shù)學(xué)院《數(shù)字電路設(shè)計(jì)及實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 云南國防工業(yè)職業(yè)技術(shù)學(xué)院《品牌形象專項(xiàng)設(shè)計(jì)一》2023-2024學(xué)年第一學(xué)期期末試卷
- 新型材料在電池儲能中的應(yīng)用
- 共建文化 發(fā)展未來模板
- 市場營銷領(lǐng)導(dǎo)力實(shí)踐述職
- 業(yè)務(wù)操作-房地產(chǎn)經(jīng)紀(jì)人《業(yè)務(wù)操作》模擬試卷4
- 房地產(chǎn)交易制度政策-《房地產(chǎn)基本制度與政策》預(yù)測試卷4
- 農(nóng)學(xué)成果答辯報(bào)告模板
- 物業(yè)項(xiàng)目服務(wù)進(jìn)度保證措施
- (隱蔽)工程現(xiàn)場收方計(jì)量記錄表
- DB22T 5005-2018 注塑夾芯復(fù)合保溫砌塊自保溫墻體工程技術(shù)標(biāo)準(zhǔn)
- 醫(yī)院手術(shù)室醫(yī)院感染管理質(zhì)量督查評分表
- 稱量與天平培訓(xùn)試題及答案
- 超全的超濾與納濾概述、基本理論和應(yīng)用
- 2020年醫(yī)師定期考核試題與答案(公衛(wèi)專業(yè))
- 2022年中國育齡女性生殖健康研究報(bào)告
- 各種靜脈置管固定方法
- 消防報(bào)審驗(yàn)收程序及表格
- 教育金規(guī)劃ppt課件
評論
0/150
提交評論