版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、函數(shù)語(yǔ)言第1頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.1 為什么要有函數(shù)與函數(shù)的分類(lèi)9.2 函數(shù)的定義形式9.3 局部變量與全局變量 9.4 函數(shù)的參數(shù)與函數(shù)的值9.5 函數(shù)的調(diào)用9.6 函數(shù)的嵌套調(diào)用9.7 函數(shù)的遞歸調(diào)用9.8 數(shù)組作為函數(shù)的參數(shù)9.9 變量的存儲(chǔ)9.10 內(nèi)部函數(shù)與外部函數(shù)9.11 函數(shù)應(yīng)用舉例9.12 本章小結(jié) 第9章 函數(shù)第2頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.1 為什么要有函數(shù)與函數(shù)的分類(lèi)9.1.1 為什么要有函數(shù)void print1()/*print1()函數(shù)*/*輸出一系列*字符*/printf(“*n”);void
2、print2()/*print2()函數(shù)*/*輸出Welcome to you!*/printf(“Welcome to you!n”);void main()print1();/*調(diào)用print1()函數(shù)*/print2();/*調(diào)用print2()函數(shù)*/第3頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.1 為什么要有函數(shù)與函數(shù)的分類(lèi)9.1.2 函數(shù)有哪些庫(kù)函數(shù)與用戶(hù)函數(shù)1從用戶(hù)角度看,函數(shù)可以分為庫(kù)函數(shù)和用戶(hù)函數(shù)2從函數(shù)的形式上看,函數(shù)可以分為帶參數(shù)的函數(shù)和不帶參數(shù)的函數(shù)第4頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.2 函數(shù)的定義形式9.2.1 不帶參數(shù)的
3、函數(shù)定義形式 不帶參數(shù)的函數(shù)的定義形式如下: 類(lèi)型說(shuō)明符 函數(shù)名() 聲明部分 語(yǔ)句部分 void printX()/*類(lèi)型說(shuō)明符和函數(shù)名*/ char c=A; /*聲明部分*/ c=c+32; /*語(yǔ)句部分*/ printf(“%cn”,c); /*語(yǔ)句部分*/ 第5頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.2 函數(shù)的定義形式9.2.2 帶參數(shù)的函數(shù)定義形式有參數(shù)列表 帶參數(shù)的函數(shù)的定義形式如下: 類(lèi)型說(shuō)明符 函數(shù)名(形式參數(shù)表列) 聲明部分 語(yǔ)句部分 int max(int a,int b) /*int是類(lèi)型說(shuō)明符、max是函數(shù)名、a和b都是形式參數(shù)*/int c; /
4、*定義變量c*/if(ab) /*如果a大于b*/c=a; /*將a賦值給c*/else/*如果a小于等于b*/c=b; /*將b賦值給c*/return c; /*將c返回給調(diào)用函數(shù)*/第6頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.2 函數(shù)的定義形式9.2.3 帶參數(shù)的函數(shù)定義形式形參定義的傳統(tǒng)方式 類(lèi)型說(shuō)明符 函數(shù)名(形式參數(shù)名) 說(shuō)明形式參數(shù)類(lèi)型 聲明部分 語(yǔ)句部分 int max(a,b)/*圓括號(hào)內(nèi)包括形式參數(shù)名*/int a,b; /*說(shuō)明形式參數(shù)a和b的類(lèi)型*/int c; /*定義變量c*/if(ab) /*如果a大于b*/c=a; /*將a賦值給c*/els
5、e/*如果a小于等于bc=b; /*將b賦值給c*/return c; /*將c返回給調(diào)用函數(shù)*/第7頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.3 局部變量與全局變量9.3.1 局部變量 1為什么要有局部變量 2什么是局部變量 【例9_1】下面的代碼是一個(gè)測(cè)試局部變量有效性的程序。第8頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.3 局部變量與全局變量9.3.2 全局變量1為什么要有全局變量2全局變量的使用第9頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.3 局部變量與全局變量【例9_2】下面的程序是測(cè)試全局變量的作用范圍。第10頁(yè),共41頁(yè),20
6、22年,5月20日,9點(diǎn)43分,星期一9.3 局部變量與全局變量3全局變量與某個(gè)函數(shù)中的局部變量變量名相同在該函數(shù)中,局部函數(shù)有效 第11頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.4 函數(shù)的參數(shù)與函數(shù)的值9.4.1 形式參數(shù)與實(shí)際參數(shù)void main()int x,y,z; scanf(“%d,%d”,&x,&y); z=max(x,y); printf(“max=%dn”,&z); int max(int a,int b)int c; if(ab) c=a;elsec=b;return c; 第12頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.4 函數(shù)的參數(shù)
7、與函數(shù)的值1在函數(shù)調(diào)用時(shí),需要為形式參數(shù)分配內(nèi)存單元2實(shí)際參數(shù)可以是變量、常量、常數(shù)、表達(dá)式3在用戶(hù)定義的函數(shù)中,必須逐個(gè)說(shuō)明形參的類(lèi)型 int max(int a,int b)/*分別說(shuō)明a和b的類(lèi)型都是int型*/4實(shí)際參數(shù)與形式參數(shù)的類(lèi)型應(yīng)當(dāng)相同或者兼容5實(shí)際參數(shù)與形式參數(shù)的傳遞方式值傳遞第13頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.4 函數(shù)的參數(shù)與函數(shù)的值9.4.2 函數(shù)的返回值int max(int a,int b)/*函數(shù)定義*/return (ab?a:b); /*return是一個(gè)條件表達(dá)式*/第14頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9
8、.4 函數(shù)的參數(shù)與函數(shù)的值【例9_4】在主函數(shù)中,輸入兩個(gè)float型數(shù)據(jù)a和b,調(diào)用min函數(shù),得到a和b中的較小者。如果min函數(shù)中的return后的表達(dá)式類(lèi)型與min的函數(shù)類(lèi)型不一致,輸出結(jié)果是什么?第15頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.5 函數(shù)的調(diào)用9.5.1 函數(shù)調(diào)用的一般形式 函數(shù)調(diào)用就是在主調(diào)函數(shù)中使用被調(diào)用函數(shù)。函數(shù)調(diào)用的一般形式如下: 函數(shù)名(實(shí)際參數(shù)表列);#includevoid main()int s,a,b;/*定義變量s、a、b*/scanf(%d,%d,&a,&b); /*輸入a和b的值*/s=sum(a,b); /*調(diào)用求和函數(shù)sum
9、*/printf(sum=%dn,s); /*輸出a和b的和s*/int sum(int x,int y) /*求和函數(shù)的定義*/int s;s=x+y; /*求x和y的值s*/return s; /*返回s的值*/第16頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.5 函數(shù)的調(diào)用【例9_5】如果實(shí)際參數(shù)有多個(gè),對(duì)實(shí)際參數(shù)的求值順序并不是確定的,有的系統(tǒng)從左到右進(jìn)行求值,有的系統(tǒng)從右到左進(jìn)行求值。為了說(shuō)明這一點(diǎn),下面是一個(gè)程序的代碼。第17頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.5 函數(shù)的調(diào)用9.5.2 函數(shù)調(diào)用的方式1一個(gè)函數(shù)作為一個(gè)語(yǔ)句 printf(“H
10、ello are you!n”);2函數(shù)作為表達(dá)式的一部分 z=max(a,b)+max(c,d);/*函數(shù)作為表達(dá)式的一部分*/ z=3+max(a,b); /*函數(shù)作為表達(dá)式一部分*/3函數(shù)可以作為函數(shù)參數(shù) s=min(min(a,b),c);第18頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.5 函數(shù)的調(diào)用9.5.3 對(duì)被調(diào)用函數(shù)的聲明1為什么要對(duì)被調(diào)用函數(shù)進(jìn)行聲明2對(duì)被調(diào)用函數(shù)進(jìn)行聲明【例9_6】輸入兩個(gè)整數(shù)a和b,編寫(xiě)一個(gè)用戶(hù)函數(shù)求a和b的乘積。3對(duì)被調(diào)用函數(shù)進(jìn)行聲明需要注意的問(wèn)題(1)函數(shù)類(lèi)型 函數(shù)名(參數(shù)類(lèi)型1,參數(shù)類(lèi)型2,);(2)函數(shù)類(lèi)型 函數(shù)名(參數(shù)類(lèi)型1 參
11、數(shù)名,參數(shù)類(lèi)型2 參數(shù)名,);第19頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.6 函數(shù)的嵌套調(diào)用9.6.1 函數(shù)的嵌套調(diào)用過(guò)程第20頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.6 函數(shù)的嵌套調(diào)用9.6.2 函數(shù)的嵌套應(yīng)用舉例求1n自然數(shù)k次方之和【例9_7】求1n整數(shù)的k次方之和。第21頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.7 函數(shù)的遞歸調(diào)用9.7.1 什么是遞歸自己調(diào)用自己 int f(int n) f(n-1);/*調(diào)用自己*/ 第22頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.7 函數(shù)的遞歸調(diào)用9.7.2 遞歸函數(shù)應(yīng)
12、用舉例求n!第23頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.7 函數(shù)的遞歸調(diào)用【例9_8】請(qǐng)編寫(xiě)一個(gè)求n!的遞歸程序。第24頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.7 函數(shù)的遞歸調(diào)用9.7.3 遞歸函數(shù)調(diào)用應(yīng)用舉例Fibonacci數(shù)列【例9_9】求Fibonacci數(shù)列的第i項(xiàng)。Fibonacci數(shù)列每一項(xiàng)如下:0,1,1,2,3,5,8,13,21,第25頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.8 數(shù)組作為函數(shù)的參數(shù)9.8.1 數(shù)組元素作為函數(shù)的參數(shù)只能傳遞一個(gè)數(shù)組元素【例9_10】請(qǐng)輸入10個(gè)正整數(shù)并保存到數(shù)組中,編寫(xiě)一個(gè)函數(shù)判斷
13、數(shù)組中的元素是否是質(zhì)數(shù)。第26頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.8 數(shù)組作為函數(shù)的參數(shù)9.8.2 數(shù)組名作為函數(shù)的參數(shù)可以傳遞整個(gè)數(shù)組【例9_11】已知一個(gè)一維數(shù)組a存了10個(gè)整數(shù),求這個(gè)數(shù)組中元素的最大值。第27頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.8 數(shù)組作為函數(shù)的參數(shù)【例9_12】利用選擇法對(duì)數(shù)組中的元素從小到大排序。1為什么傳遞數(shù)組名就能傳遞整個(gè)數(shù)組元素?cái)?shù)組存儲(chǔ)的連續(xù)性2數(shù)組名作為參數(shù)傳遞傳遞的是數(shù)組首地址3什么是選擇排序每次選擇最小的元素存放9.8.3 數(shù)組名作為參數(shù)傳遞實(shí)際上傳遞的是數(shù)組的首地址第28頁(yè),共41頁(yè),2022年,5月20
14、日,9點(diǎn)43分,星期一9.8 數(shù)組作為函數(shù)的參數(shù)第29頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.8 數(shù)組作為函數(shù)的參數(shù)9.8.4 多維數(shù)組名作為函數(shù)的參數(shù)傳遞整個(gè)數(shù)組【例9_13】求二維數(shù)組a中主對(duì)角線上的元素之和。第30頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.9 變量的存儲(chǔ)9.9.1 什么是動(dòng)態(tài)存儲(chǔ)與靜態(tài)存儲(chǔ)生存期不同9.9.2 auto變量自動(dòng)類(lèi)型變量 auto int a,b;/*沒(méi)有省略auto的情況*/ int a,b; /*省略了auto的情況*/9.9.3 static變量靜態(tài)變量 static int a=0;/*使用static說(shuō)明變量a
15、是靜態(tài)的*/第31頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.9 變量的存儲(chǔ)【例9_15】下面的程序是使用static求n的階乘。 【例9_14】以下程序是為了說(shuō)明auto變量與static變量的區(qū)別。第32頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.9 變量的存儲(chǔ)9.9.4 register變量使運(yùn)行速度更快的變量【例9_16】使用register變量求n的階乘。第33頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.9 變量的存儲(chǔ)9.9.5 extern變量聲明外部變量【例9_17】在單文件中使用extern聲明外部變量。第34頁(yè),共41頁(yè),202
16、2年,5月20日,9點(diǎn)43分,星期一9.9 變量的存儲(chǔ)2在多文件中使用extern聲明外部變量擴(kuò)展到多個(gè)文件初始化賦值的一般形式為:【例9_18】在多文件中使用extern聲明外部變量。第35頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.10 內(nèi)部函數(shù)與外部函數(shù)9.10.1 內(nèi)部函數(shù)使用static1為什么要有內(nèi)部函數(shù)2如何定義內(nèi)部函數(shù) 定義內(nèi)部函數(shù)的形式如下: static 類(lèi)型說(shuō)明符 函數(shù)名(形式參數(shù)列表)【例9_19】?jī)?nèi)部函數(shù)的使用。第36頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.10 內(nèi)部函數(shù)與外部函數(shù)9.10.2 外部函數(shù)使用extern1為什么要有外
17、部函數(shù)2如何定義外部函數(shù) 外部函數(shù)的定義形式如下: extern 類(lèi)型說(shuō)明符 函數(shù)名(形式參數(shù)列表)【例9_20】外部函數(shù)的使用。第37頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.11 函數(shù)應(yīng)用舉例9.11.1 函數(shù)應(yīng)用舉例遞歸求解n個(gè)數(shù)的最大值【例9_21】編寫(xiě)一個(gè)遞歸函數(shù)findmax(int a,int n),求數(shù)組a中的最大的一個(gè)元素。第38頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.11 函數(shù)應(yīng)用舉例9.11.2 函數(shù)應(yīng)用舉例遞歸求解a與b的最大公約數(shù)【例9_22】任意輸入兩個(gè)正整數(shù)a和b,編寫(xiě)一個(gè)遞歸函數(shù)求a與b的最大公約數(shù)。 a與b的最大公約數(shù)的遞歸定義如下:第39頁(yè),共41頁(yè),2022年,5月20日,9點(diǎn)43分,星期一9.11 函數(shù)應(yīng)用舉例9.11.3 函數(shù)應(yīng)用舉例字符數(shù)組元素逆序存放【例9_23】編寫(xiě)一個(gè)函數(shù)inverse,將字符數(shù)組中的字符逆序存放,并在主函數(shù)中輸出逆序后的數(shù)組中的元素。第40
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度人工智能語(yǔ)音識(shí)別系統(tǒng)聘用合同范本
- 2025年金融機(jī)構(gòu)間委托貸款合同文本格式標(biāo)準(zhǔn)3篇
- 2025年學(xué)校照明燈具市場(chǎng)分析現(xiàn)狀
- 2025年中國(guó)磷酸鈣市場(chǎng)調(diào)查研究及行業(yè)投資潛力預(yù)測(cè)報(bào)告
- 二零二五年度RoHS環(huán)保產(chǎn)品出口許可證申請(qǐng)合同3篇
- 2025年干燥器濾芯項(xiàng)目投資可行性研究分析報(bào)告
- 二零二五年度墻繪行業(yè)人才培養(yǎng)合同3篇
- 二零二五版智能門(mén)控系統(tǒng)集成服務(wù)合同4篇
- 2025年度教育培訓(xùn)機(jī)構(gòu)代理商銷(xiāo)售合同范本4篇
- 2025版全新運(yùn)輸公司勞動(dòng)合同(貨運(yùn)司機(jī))2篇
- 2024企業(yè)答謝晚宴會(huì)務(wù)合同3篇
- 中華人民共和國(guó)文物保護(hù)法
- 節(jié)前物業(yè)安全培訓(xùn)
- 高甘油三酯血癥相關(guān)的器官損傷
- 手術(shù)室護(hù)士考試題及答案
- 牙膏項(xiàng)目創(chuàng)業(yè)計(jì)劃書(shū)
- 單位食堂供餐方案
- 人教A版必修五《斐波那契數(shù)列》教案及教學(xué)反思
- 風(fēng)電工程需要編寫(xiě)的專(zhuān)項(xiàng)施工方案及危大工程目錄
- 商業(yè)計(jì)劃書(shū)(BP)財(cái)務(wù)計(jì)劃風(fēng)險(xiǎn)控制資本退出與附錄的撰寫(xiě)秘籍
- 七年級(jí)下冊(cè)《Reading 1 A brave young man》優(yōu)質(zhì)課教案牛津譯林版-七年級(jí)英語(yǔ)教案
評(píng)論
0/150
提交評(píng)論