版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 泵站維保備案合同
- 《防電弧織物》規(guī)范
- 貴州省黔東南州榕江縣寨蒿中學(xué)2024-2025學(xué)年度七年級上學(xué)期期中質(zhì)量監(jiān)測語文試卷
- 2024年秋鳳凰縣皇倉中學(xué)七年級期中質(zhì)量監(jiān)測語文試題卷
- 水果及堅果相關(guān)行業(yè)投資方案范本
- 餐飲行業(yè)食品安全手冊
- 刮板輸送機相關(guān)行業(yè)投資方案范本
- 稅務(wù)大數(shù)據(jù)相關(guān)項目投資計劃書
- 青少年聽故事配插畫活動
- 秋季流行病預(yù)防
- 馬克思主義基本原理概論智慧樹知到答案章節(jié)測試2023年泰山學(xué)院
- 餐飲檔口和門店消防安全培訓(xùn)
- 噴錫培訓(xùn)教程
- 幼兒園衛(wèi)生知識講座
- (完整)土地復(fù)耕實施方案
- 馬工程政治學(xué)概論思考題答案
- 關(guān)于加強校園欺凌行為預(yù)防治理的說明報告
- 汽車露營營地質(zhì)量5c標(biāo)準(zhǔn)等級劃分認(rèn)定細(xì)則(2021版)
- 地理實踐力ppt課件版 地理實踐力 彭春蓮組
- 水對種子發(fā)芽的影響
- GB/T 18942.1-2003高聚物多孔彈性材料壓縮應(yīng)力應(yīng)變特性的測定第1部分:低密度材料
評論
0/150
提交評論