C語(yǔ)言程式設(shè)計(jì)-函數(shù)課件_第1頁(yè)
C語(yǔ)言程式設(shè)計(jì)-函數(shù)課件_第2頁(yè)
C語(yǔ)言程式設(shè)計(jì)-函數(shù)課件_第3頁(yè)
C語(yǔ)言程式設(shè)計(jì)-函數(shù)課件_第4頁(yè)
C語(yǔ)言程式設(shè)計(jì)-函數(shù)課件_第5頁(yè)
已閱讀5頁(yè),還剩23頁(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)介

1、C語(yǔ)言程式設(shè)計(jì)-函數(shù)C語(yǔ)言程式設(shè)計(jì)-函數(shù)本章學(xué)習(xí)重點(diǎn)7-1 函數(shù)的概念7-2 函數(shù)的基本形式7-3 函數(shù)的呼叫7-4 遞迴函數(shù)7-5 常用的數(shù)學(xué)函數(shù)7-6 儲(chǔ)存類別本章學(xué)習(xí)重點(diǎn)7-1 函數(shù)的概念函數(shù)的概念函數(shù)的優(yōu)點(diǎn)分工合作 較好的可讀性 便於修改、除錯(cuò) 提高撰寫程式的效率 函數(shù)可分成兩種型態(tài) 函數(shù)庫(kù)中原先就有的現(xiàn)成函數(shù) 使用者依程式需求設(shè)計(jì)的函數(shù) 函數(shù)的概念函數(shù)的優(yōu)點(diǎn)函數(shù)的基本形式 函數(shù)定義的語(yǔ)法傳回值型態(tài) 函數(shù)名稱(參數(shù)傳遞)參數(shù)傳遞型態(tài) 函數(shù)主體 函數(shù)的基本形式 函數(shù)定義的語(yǔ)法範(fàn)例 Ch7_2Ch7_2 兩數(shù)相加的函數(shù)1 #include2 void main( )3 4 int a =

2、3, b = 2, c; 5 int sum(int, int);6 c = sum(a, b);7 printf(sum(%d, %d) = %dn, a, b, c);8 9 int sum(x, y)10 int x, y;11 12 int z;13 z = x + y;14 return (z);15 範(fàn)例 Ch7_2Ch7_2 兩數(shù)相加的函數(shù)程式執(zhí)行結(jié)果說(shuō)明sum(3, 2) = 5 範(fàn)例 Ch7_2主程式副程式3322abxy55cz程式執(zhí)行結(jié)果sum(3, 2) = 5 範(fàn)例 Ch7_2主程函數(shù)呼叫的語(yǔ)法語(yǔ)法 函數(shù)名稱(參數(shù));說(shuō)明函數(shù)如果不需要呼叫參數(shù),則括號(hào)內(nèi)的參數(shù)可以省略

3、。若參數(shù)包含一個(gè)以上時(shí),需以逗號(hào)隔開(kāi)。呼叫與被呼叫的函數(shù)其參數(shù)是相對(duì)應(yīng)的,且型態(tài)要一致。 函數(shù)呼叫的語(yǔ)法語(yǔ)法函數(shù)的傳回值 函數(shù)的傳回值,有以下幾種情況:函數(shù)沒(méi)有傳回值 ,傳回值型態(tài)為void 函數(shù)傳回值為整數(shù)(int)時(shí) ,可以省略 函數(shù)有傳回值時(shí) ,可以在傳回值上做運(yùn)算 函數(shù)的傳回值型態(tài)應(yīng)該和return中的型態(tài)要一樣 使用return可以立即結(jié)束函數(shù)的執(zhí)行 函數(shù)的傳回值 函數(shù)的傳回值,有以下幾種情況:Ch7_3 計(jì)算圓面積的函數(shù)1 #include2 double area(r) 3 float r;4 5 double s;6 s = r * r;7 return(s);8 9 void

4、 main( )10 11 float r;12 double a;範(fàn)例 Ch7_3Ch7_3 計(jì)算圓面積的函數(shù)範(fàn)例 Ch7_3程式執(zhí)行結(jié)果Please input the circle r:5The circle area is 78.540000 printf(Please input the circle r:n);14 scanf(%f, &r);15 a = area(r) * 3.1416;16 printf(The circle area is %fn, a);17 範(fàn)例 Ch7_3Please input the circle r: pr範(fàn)例 Ch7_4Ch7_4 函數(shù)求絕對(duì)值

5、與平方值1 #include2 void main( )3 4 int abs(int);5 int sqrt(int);6 int a = 3, b, c;7 b = abs(a);8 c = sqrt(a);9 printf(the abs of a = %dn, b);10 printf(the sqrt of a = %dn, c);11 範(fàn)例 Ch7_4Ch7_4 函數(shù)求絕對(duì)值與平方值12 int abs(int x) 13 14 int y; if(x =2n0123456fib(n)0112358費(fèi)氏數(shù)列費(fèi)氏數(shù)列的規(guī)則如下所示:n0123456fib(n範(fàn)例 Ch7_5 Ch7_

6、5 遞迴函數(shù)求費(fèi)氏數(shù)列1 #include2 int fib(int n)3 4 if(n = 0) return(0);5 else if(n = 1) return(1);6 else return (fib(n 1) + fib(n 2);7 8 void main( )9 10 int fib(int);11 int s;12 s = fib(6);13 printf(The fib(6) = %dn, s);14 範(fàn)例 Ch7_5 Ch7_5 遞迴函數(shù)求費(fèi)氏數(shù)列程式執(zhí)行結(jié)果說(shuō)明:The fib(6)=8範(fàn)例 Ch7_5 程式執(zhí)行結(jié)果The fib(6)=8範(fàn)例 Ch7_5 階乘函數(shù)

7、定義如下: 1 if n = 0 n * fact(n1) if n = 1說(shuō)明: fact(n)3! = 3*2! = 3*2*1! = 3*2*1*0! = 3*2*1*1=6fact(3) = 3*fact(2) = 3*2*fact(1) = 3*2*1*fact(0) = 3*2*1*1=6階乘函數(shù) 定義如下: fact(n)3! = 3*2!範(fàn)例 Ch7_7Ch7_7 利用遞迴函數(shù)求n階乘1 #include2 void main( )3 4 int fact(int);5 int n;6 printf(請(qǐng)輸入n階乘:);7 scanf(%d, &n);8 printf(%d! =

8、 %dn, n, fact(n);9 10 int fact(int n)1112 if(n = 0) return(1);13 else return(n * fact(n 1);14 範(fàn)例 Ch7_7Ch7_7 利用遞迴函數(shù)求n階乘程式執(zhí)行結(jié)果說(shuō)明:請(qǐng)輸入n階乘:66! = 7206! = 6 * fact(5) = 6 * 5 * fact(4) = 6 * 5 * 4 * fact(3) = 6 * 5 * 4 * 3 * fact(2) = 6 * 5 * 4 * 3 * 2 * fact(1) = 6 * 5 * 4 * 3 * 2 * 1 * fact(0) = 6 * 5 *

9、4 * 3 * 2 * 1 * 1 = 720範(fàn)例 Ch7_7程式執(zhí)行結(jié)果請(qǐng)輸入n階乘:66! = 6 * fact(5)常用的數(shù)學(xué)函數(shù) 在程式中使用下列數(shù)學(xué)函數(shù)時(shí),需在開(kāi)頭加上#include函數(shù)功能敘述格式x和y的資料型態(tài)exp指數(shù)函數(shù)exexp(x);double或floatlog自然對(duì)數(shù)函數(shù); ln(x)log(x);double或floatlog10以10為底的對(duì)數(shù)函數(shù)log10(x);double或floatsqrtx的開(kāi)平方根值sqrt(x);double或floatfabsx的絕對(duì)值fabs(x);double或floatpowx的y次方值; xypow(x, y)double

10、sin正弦函數(shù)sin(x)double或floatcos餘弦函數(shù)cos(x)double或floattan正切函數(shù)tan(x)double 或float常用的數(shù)學(xué)函數(shù) 在程式中使用下列數(shù)學(xué)函數(shù)時(shí),需在開(kāi)頭加上#i儲(chǔ)存類別 C語(yǔ)言的儲(chǔ)存類別(storage class),也就是變數(shù)的生命期(life time)及可見(jiàn)度(scope)。 一般儲(chǔ)存類別的宣告語(yǔ)法如下: 儲(chǔ)存類別 資料型態(tài) 識(shí)別字一般將儲(chǔ)存類別區(qū)分為auto、static、register、extern四大類。 儲(chǔ)存類別關(guān)鍵字生命期可見(jiàn)度自動(dòng)auto暫時(shí)區(qū)域變數(shù)靜態(tài)static永久可成為全域變數(shù)暫存器register暫時(shí)區(qū)域變數(shù)外部e

11、xtern永久全域變數(shù)儲(chǔ)存類別 C語(yǔ)言的儲(chǔ)存類別(storage class),內(nèi)在(auto)變數(shù)宣告為auto的變數(shù),它的生命期只存活在函數(shù)的區(qū)塊(block)中。它是一個(gè)區(qū)域變數(shù)(local variable)。#includevoid main() auto int i; . auto int j; . 變數(shù)j 變數(shù)i . 可見(jiàn)度 可見(jiàn)度 .內(nèi)在(auto)變數(shù)宣告為auto的變數(shù),它的生命期只存活在靜態(tài)(static)變數(shù)內(nèi)部靜態(tài)(static auto)變數(shù)內(nèi)部靜態(tài)變數(shù)是屬於區(qū)域變數(shù)(local variable)。外部靜態(tài)(static external)變數(shù)外部靜態(tài)變數(shù)是屬於全

12、域變數(shù)(global variable)。 static int x; /* 外部靜態(tài)變數(shù) */ void main(void) static int y; /* 內(nèi)部靜態(tài)變數(shù) */ 變數(shù)x 可見(jiàn)度(整個(gè)程式) 變數(shù)y 可見(jiàn)度 靜態(tài)(static)變數(shù)內(nèi)部靜態(tài)(static auto)變範(fàn)例 Ch7_12Ch7_12 全域變數(shù)與區(qū)域變數(shù)1 #include2 void function (void);3 static int x = 1;4 void main( )5 6 static int x = 3;7 printf(外在區(qū)域變數(shù)x = %dn, x);8 9 static int x

13、= 10;10 printf(內(nèi)在區(qū)域變數(shù)x = %dn, x);11 12 printf(外在區(qū)域變數(shù)x = %dn, x);13 function( );14 printf(區(qū)域變數(shù)x = %dn, x);15 範(fàn)例 Ch7_12Ch7_12 全域變數(shù)與區(qū)域變數(shù)16 void function (void)17 18 printf(全域變數(shù)x = %dn, x);19 程式執(zhí)行結(jié)果外在區(qū)域變數(shù)x = 3內(nèi)在區(qū)域變數(shù)x = 10外在區(qū)域變數(shù)x = 3全域變數(shù)x = 1區(qū)域變數(shù)x = 3範(fàn)例 Ch7_1216 void function (void)程式執(zhí)行結(jié)果語(yǔ)法 extern 資料型態(tài) 變數(shù)名稱;int

溫馨提示

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