版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1、 C程序程序(chngx)的模塊化結(jié)構(gòu)的模塊化結(jié)構(gòu) 結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)(shj): 自頂向下,逐步細(xì)化;模塊自頂向下,逐步細(xì)化;模塊化設(shè)計(jì)化設(shè)計(jì)(shj)。 特點(diǎn):程序結(jié)構(gòu)清晰,易于維護(hù),可重用性和可擴(kuò)充特點(diǎn):程序結(jié)構(gòu)清晰,易于維護(hù),可重用性和可擴(kuò)充性。性。一、概述(i sh)2、模塊化設(shè)計(jì)的方法: 將大程序分割成小函數(shù)。3、函數(shù)可以分為庫(kù)函數(shù)和用戶(hù)自定義函數(shù),本節(jié)討論自定義函數(shù)。第1頁(yè)/共27頁(yè)第一頁(yè),共28頁(yè)。 類(lèi)型符 函數(shù)名稱(chēng)(mngchng)( 形參表 ) 形參說(shuō)明 數(shù)據(jù)說(shuō)明語(yǔ)句 可執(zhí)行語(yǔ)句 4、 函數(shù)函數(shù)(hnsh)的定義的定義函數(shù)頭函數(shù)體float sum ( x ,
2、 y )float x , y ; int z ; z = x + y ; return z ; 例如(lr)下面的函數(shù)定義:float sum (float x , float y ) int z ; z = x + y ; return z ; 也可以縮寫(xiě)成:第2頁(yè)/共27頁(yè)第二頁(yè),共28頁(yè)。函數(shù)定義格式函數(shù)定義格式(g shi)的詳細(xì)的詳細(xì)解釋解釋:float sum ( x , y )float x , y ; int z ; z = x + y ; return z ; 類(lèi)型說(shuō)明符:函數(shù)的類(lèi)型是指函數(shù)的返回值的類(lèi)型,函數(shù)返回值所具有的數(shù)據(jù)類(lèi)型的種類(lèi)與變量相同。省略時(shí)則默認(rèn)為int型。
3、若明確表示函數(shù)不帶回值,可以用void作類(lèi)型符,稱(chēng)無(wú)類(lèi)型或稱(chēng)空類(lèi)型。第3頁(yè)/共27頁(yè)第三頁(yè),共28頁(yè)。函數(shù)定義函數(shù)定義(dngy)格式的詳細(xì)解格式的詳細(xì)解釋?zhuān)ɡm(xù))釋?zhuān)ɡm(xù)):float sum ( x , y )float x , y ; int z ; z = x + y ; return z ; 函數(shù)名:通常是一個(gè)標(biāo)識(shí)符,在一個(gè)程序中除了主函數(shù)外其余函數(shù)的名字可以任意取,但不能與變量等其他標(biāo)識(shí)符同名,最好能做到見(jiàn)名識(shí)義。一對(duì)圓括號(hào)是函數(shù)的標(biāo)志。第4頁(yè)/共27頁(yè)第四頁(yè),共28頁(yè)。函數(shù)函數(shù)(hnsh)定義格式的詳細(xì)定義格式的詳細(xì)解釋?zhuān)ɡm(xù))解釋?zhuān)ɡm(xù)):float sum ( x , y )floa
4、t x , y ; int z ; z = x + y ; return z ; 形參表(形式參數(shù)表):函數(shù)定義時(shí)的參數(shù)稱(chēng)為形式參數(shù),形式參數(shù)彼此間用逗號(hào)分隔。形式參數(shù)省略時(shí)稱(chēng)無(wú)參函數(shù),但此時(shí)函數(shù)名后的圓括號(hào)不能省。形參說(shuō)明是用來(lái)指明各個(gè)形式參數(shù)的類(lèi)型,它隨形參的存在而存在。第5頁(yè)/共27頁(yè)第五頁(yè),共28頁(yè)。函數(shù)定義函數(shù)定義(dngy)格式的詳細(xì)解釋格式的詳細(xì)解釋?zhuān)ɡm(xù))(續(xù)):float sum ( x , y )float x , y ; int z ; z = x + y ; return z ; 函數(shù)體:函數(shù)中最外層一對(duì)花括弧 括起來(lái)的語(yǔ)句,它由若干個(gè)數(shù)據(jù)說(shuō)明語(yǔ)句和可執(zhí)行語(yǔ)句組成(z c
5、hn),決定函數(shù)要實(shí)現(xiàn)的功能、完成的任務(wù)。函數(shù)體內(nèi)若無(wú)任何語(yǔ)句時(shí),為空函數(shù)。第6頁(yè)/共27頁(yè)第六頁(yè),共28頁(yè)。函數(shù)定義格式函數(shù)定義格式(g shi)的詳細(xì)解釋的詳細(xì)解釋?zhuān)ɡm(xù))(續(xù)):float sum ( x , y )float x , y ; int z ; z = x + y ; return z ; 函數(shù)返回值(結(jié)果):函數(shù)返回值是return后面的表達(dá)式。函數(shù)調(diào)用時(shí),返回值通過(guò)return語(yǔ)句帶回。return語(yǔ)句可以有多個(gè),當(dāng)執(zhí)行某個(gè)return語(yǔ)句后,其后的語(yǔ)句不再執(zhí)行。 return后面的表達(dá)式應(yīng)該盡量與函數(shù)類(lèi)型相同,否則將自動(dòng)轉(zhuǎn)換。第7頁(yè)/共27頁(yè)第七頁(yè),共28頁(yè)。2、 re
6、turn 語(yǔ)句(yj)返回函數(shù)的當(dāng)被調(diào)用函數(shù)在完成一定的功能后,可以將處理的結(jié)果通過(guò)(tnggu)return 語(yǔ)句帶回到調(diào)用函數(shù)。return 語(yǔ)句的作用:將表達(dá)式的值傳給調(diào)用函數(shù),并把控制權(quán)轉(zhuǎn)向(zhunxing)調(diào)用函數(shù)實(shí)現(xiàn)函數(shù)的返回,即結(jié)束被調(diào)用函數(shù)的執(zhí)行,并將控制返回到調(diào)用它的函數(shù)。return 語(yǔ)句的格式:return 表達(dá)式; 或者return (表達(dá)式);第8頁(yè)/共27頁(yè)第八頁(yè),共28頁(yè)。關(guān)于關(guān)于(guny)函數(shù)返回值的類(lèi)型函數(shù)返回值的類(lèi)型函數(shù)返回值的類(lèi)型以說(shuō)明為準(zhǔn)。函數(shù)返回值的類(lèi)型以說(shuō)明為準(zhǔn)。例寫(xiě)出下面(xi mian)程序的執(zhí)行結(jié)果。#include int add(flo
7、at a,float b ) float sum; sum=a+b; return sum ; void main( ) float x,y,z;x=4.5; y=4.3;z=add(x,y);printf(“z=%fn”,z); 執(zhí)行(zhxng)結(jié)果為:8第9頁(yè)/共27頁(yè)第九頁(yè),共28頁(yè)。例例 編寫(xiě)自定義函數(shù)編寫(xiě)自定義函數(shù)(hnsh)。計(jì)算計(jì)算:分析(fnx):1) 形參:求 c 要用到f,設(shè)形參為f ,設(shè)為實(shí)型。2) 返回值:返回值即為 c ,設(shè)為實(shí)型。函數(shù)(hnsh)定義如下:)32(95fcfloat f_to_c( f )float f ; float c ; c =5.0/9 *
8、 ( f 32 ); return c ; 第10頁(yè)/共27頁(yè)第十頁(yè),共28頁(yè)。例例 編寫(xiě)編寫(xiě)(binxi)一個(gè)自定義函數(shù)求一個(gè)自定義函數(shù)求 n!分析(fnx):1) 形參:求 n!要用到 n,設(shè)形參為 n,整型 。2) 返回值:設(shè)返回值為 s ,設(shè)為整型。函數(shù)(hnsh)定義如下:int jiechen(int n ) int i, s=1 ; for ( i=1; i=n; i+ ) s*= i ; return s ; 第11頁(yè)/共27頁(yè)第十一頁(yè),共28頁(yè)。二、函數(shù)(hnsh)的調(diào)用1、 函數(shù)調(diào)用的一般(ybn)格式函數(shù)(hnsh)名 ( 實(shí)參列表 );說(shuō)明:實(shí)參與形參的個(gè)數(shù)相等、類(lèi)型相
9、同、順序一致,呈一一對(duì)應(yīng)的關(guān)系。實(shí)參應(yīng)有確定的值。2、函數(shù)調(diào)用的兩種形式: 1) 作為語(yǔ)句形式 例如: printf(%d, x); 2) 作為表達(dá)式形式 例如: c=abs (-6);第12頁(yè)/共27頁(yè)第十二頁(yè),共28頁(yè)。 實(shí)參(實(shí)際參數(shù)、實(shí)際參數(shù))是函數(shù)調(diào)用時(shí)調(diào)用實(shí)參(實(shí)際參數(shù)、實(shí)際參數(shù))是函數(shù)調(diào)用時(shí)調(diào)用函數(shù)傳送函數(shù)傳送(chun sn)給被調(diào)用函數(shù)參數(shù)的實(shí)際值。給被調(diào)用函數(shù)參數(shù)的實(shí)際值。實(shí)參可以是常量、變量和表達(dá)式三種形式,實(shí)參必須實(shí)參可以是常量、變量和表達(dá)式三種形式,實(shí)參必須有確定的值。有確定的值。而形參是函數(shù)定義時(shí),形式參數(shù)表中的參數(shù)。形參而形參是函數(shù)定義時(shí),形式參數(shù)表中的參數(shù)。形參
10、只能是變量。只能是變量。三、函數(shù)(hnsh)的參數(shù)傳遞1、 形參與(cny)實(shí)參例如: fabs( -2 ) 中的2,為常量形式 putchar( c )中的c,為變量形式 sqrt( x*x+2)中的x*x+2,為表達(dá)式形式第13頁(yè)/共27頁(yè)第十三頁(yè),共28頁(yè)。形參與形參與(cny)(cny)實(shí)參的參數(shù)傳遞實(shí)參的參數(shù)傳遞int add( x, y)float x, y; int z; z = x + y ; return z;參數(shù)傳遞方法(fngf):在函數(shù)調(diào)用時(shí),將實(shí)參的值賦給形參。當(dāng)執(zhí)行到main()函數(shù)中的add(a,b)時(shí),將a和b的值分別賦給x和y。main( ) int a=2,
11、 b =3, c; c=add( a, b ) ; printf( %d, c ); 第14頁(yè)/共27頁(yè)第十四頁(yè),共28頁(yè)。例寫(xiě)出下面例寫(xiě)出下面(xi mian)(xi mian)程序的程序的執(zhí)行結(jié)果。執(zhí)行結(jié)果。void change( int x, int y) int z; z = x; x=y; y=z; main( ) int a=2, b =3; change( a, b ) ; printf(%d,%d, a,b );原因:在函數(shù)調(diào)用時(shí),將實(shí)參的值賦給形參。此后(c hu),形參與實(shí)參沒(méi)有任何關(guān)系。即:形參與實(shí)參的參數(shù)傳遞是單向的,也稱(chēng)值傳送。程執(zhí)行(zhxng)結(jié)果為:2, 3第
12、15頁(yè)/共27頁(yè)第十五頁(yè),共28頁(yè)。例:寫(xiě)出下列程序的執(zhí)行例:寫(xiě)出下列程序的執(zhí)行(zhxng)結(jié)果結(jié)果fun2( int a, int b ) int c ; c=a*b%3 ; return c ; fun1( int a, int b ) int c ; a+=a ; b+=b ; c = fun2( a, b ) ; return c*c ;main ( ) int x=11, y=19 ; printf(%dn, fun1( x, y) ); 程序的執(zhí)行(zhxng)結(jié)果為:4第16頁(yè)/共27頁(yè)第十六頁(yè),共28頁(yè)。 對(duì)于不需要提供對(duì)于不需要提供(tgng)返回值的函數(shù)可以返回值的函數(shù)可
13、以直接用直接用void作為函數(shù)類(lèi)型定義,以表明此函數(shù)返作為函數(shù)類(lèi)型定義,以表明此函數(shù)返回值為無(wú)類(lèi)型或空類(lèi)型?;刂禐闊o(wú)類(lèi)型或空類(lèi)型。3、 void函數(shù)(hnsh)void print_star( int n) int i;for (i=1;i=n;i+)printf(*n); 例如,下面(xi mian)的函數(shù)定義:第17頁(yè)/共27頁(yè)第十七頁(yè),共28頁(yè)。4、 函數(shù)(hnsh)原型(函數(shù)(hnsh)的聲明) C語(yǔ)言規(guī)定:除返回值為int型的函數(shù)外,函數(shù)定義(dngy)應(yīng)在函數(shù)調(diào)用之前。main( ) float a=2, b =3, c; c=add( a, b ) ; printf( %fn,
14、c ); float add( x, y)float x, y; float z; z = x + y ; return z;float add( x, y)float x, y; float z; z = x + y ; return z;main( ) float a=2, b =3, c; c=add( a, b ) ; printf( %fn, c ); 左邊(zu bian)的程序存在編譯錯(cuò)誤。第18頁(yè)/共27頁(yè)第十八頁(yè),共28頁(yè)。如果函數(shù)的返回值不是int型,而且(r qi)函數(shù)的定義寫(xiě)在函數(shù)調(diào)用之后,則應(yīng)該在函數(shù)調(diào)用之前寫(xiě)出函數(shù)的原型(也叫函數(shù)說(shuō)明)。格式:類(lèi)型符 函數(shù)名(參數(shù)類(lèi)
15、型1, ); 或: 類(lèi)型符 函數(shù)名 (類(lèi)型符 形參1, );main( ) float a=2, b =3, c; float add( float, float); c=add( a, b ) ; printf( %fn, c ); float add( x, y)float x, y; float z; z = x + y ; return z;前面的程序可以(ky)改為:第19頁(yè)/共27頁(yè)第十九頁(yè),共28頁(yè)。實(shí)例實(shí)例(shl): 判定素判定素?cái)?shù)。數(shù)。 #include #include int isprime( int ); void main( ) int x=35; if ( isp
16、rime(x) printf(%d 是素?cái)?shù)是素?cái)?shù)(s sh)。n, x ); else printf(%d 不是素?cái)?shù)不是素?cái)?shù)(s sh)。n, x ); int isprime( int a ) int i; for ( i=2 ; i=(int)sqrt(a); i+ ) if ( a%i = 0) return 0 ; return 1 ; 第20頁(yè)/共27頁(yè)第二十頁(yè),共28頁(yè)。數(shù)組作為數(shù)組作為(zuwi)函數(shù)參數(shù)函數(shù)參數(shù) 分兩種情況:分兩種情況: 一、數(shù)組元素作為實(shí)參(傳值,傳一個(gè)值)一、數(shù)組元素作為實(shí)參(傳值,傳一個(gè)值) 二、數(shù)組名作為實(shí)參和形參(傳地址二、數(shù)組名作為實(shí)參和形參(傳地址
17、(dzh)、傳整個(gè)數(shù)組)傳整個(gè)數(shù)組) 第21頁(yè)/共27頁(yè)第二十一頁(yè),共28頁(yè)。一、數(shù)組元素作為實(shí)參一、數(shù)組元素作為實(shí)參 由于數(shù)組元素與相同類(lèi)型的簡(jiǎn)單由于數(shù)組元素與相同類(lèi)型的簡(jiǎn)單(jindn)變量地位完全一樣;因此,變量地位完全一樣;因此,數(shù)組元素作函數(shù)參數(shù)也和簡(jiǎn)單數(shù)組元素作函數(shù)參數(shù)也和簡(jiǎn)單(jindn)變量一樣,變量一樣, 也是值的單向傳遞,即也是值的單向傳遞,即“值傳送值傳送”。第22頁(yè)/共27頁(yè)第二十二頁(yè),共28頁(yè)。二、數(shù)組名作實(shí)、形參二、數(shù)組名作實(shí)、形參 注意:注意: 1用數(shù)組名作函數(shù)參數(shù),應(yīng)該在主調(diào)函數(shù)用數(shù)組名作函數(shù)參數(shù),應(yīng)該在主調(diào)函數(shù)和被調(diào)用函數(shù)分別定義數(shù)組。和被調(diào)用函數(shù)分別定義數(shù)組
18、。 2實(shí)參數(shù)組與形參數(shù)組類(lèi)型應(yīng)一致。實(shí)參數(shù)組與形參數(shù)組類(lèi)型應(yīng)一致。 3實(shí)參數(shù)組和形參數(shù)組大小可以不一致,實(shí)參數(shù)組和形參數(shù)組大小可以不一致,但要求形參數(shù)組得到實(shí)參數(shù)組全部元素的值,但要求形參數(shù)組得到實(shí)參數(shù)組全部元素的值,則應(yīng)當(dāng)指定形參數(shù)組與實(shí)參數(shù)組大小一樣。則應(yīng)當(dāng)指定形參數(shù)組與實(shí)參數(shù)組大小一樣。 4數(shù)組名作函數(shù)參數(shù)時(shí),不是數(shù)組名作函數(shù)參數(shù)時(shí),不是“值傳遞值傳遞”,不是單向不是單向(dn xin)傳遞,而是把實(shí)參數(shù)傳遞,而是把實(shí)參數(shù)組的起始地址傳遞給形參數(shù)組,這樣兩個(gè)數(shù)組的起始地址傳遞給形參數(shù)組,這樣兩個(gè)數(shù)組就共占同一段內(nèi)存單元。組就共占同一段內(nèi)存單元。第23頁(yè)/共27頁(yè)第二十三頁(yè),共28頁(yè)。例:用選擇法對(duì)數(shù)組中10 個(gè)元素(yun s)按由小到大排序。 Void sort(int array,int n) int i,j,k,t; for (i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if (arrayjarrayk) k=j; t=arrayk;arrayk=arrayj;arrayj=t; 第24頁(yè)/共27頁(yè)第二十四頁(yè),共28頁(yè)。 main
溫馨提示
- 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è)學(xué)院《品牌形象專(zhuān)項(xiàng)設(shè)計(jì)一》2023-2024學(xué)年第一學(xué)期期末試卷
- 中國(guó)民用航空飛行學(xué)院《現(xiàn)代交換技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州旅游職業(yè)學(xué)院《當(dāng)代資本主義》2023-2024學(xué)年第一學(xué)期期末試卷
- 小學(xué)預(yù)算編制收支審批制度
- 浙江傳媒學(xué)院《應(yīng)用程序設(shè)計(jì)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 漳州城市職業(yè)學(xué)院《長(zhǎng)跑》2023-2024學(xué)年第一學(xué)期期末試卷
- 深度學(xué)習(xí)在元數(shù)據(jù)分析中的探索
- 雙十二品牌提升策略模板
- 專(zhuān)業(yè)基礎(chǔ)-房地產(chǎn)經(jīng)紀(jì)人《專(zhuān)業(yè)基礎(chǔ)》點(diǎn)睛提分卷3
- 2024-2025學(xué)年江蘇省無(wú)錫市江陰市八年級(jí)(上)期末數(shù)學(xué)試卷
- 廣東省惠州市2024-2025學(xué)年高一上學(xué)期期末考試英語(yǔ)試題(含答案)
- 醫(yī)院骨科2025年帶教計(jì)劃(2篇)
- 2024-2025學(xué)年北京市東城區(qū)高一上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 環(huán)境保護(hù)應(yīng)急管理制度執(zhí)行細(xì)則
- 2024-2030年中國(guó)通航飛行服務(wù)站(FSS)行業(yè)發(fā)展模式規(guī)劃分析報(bào)告
- 機(jī)械制造企業(yè)風(fēng)險(xiǎn)分級(jí)管控手冊(cè)
- 地系梁工程施工方案
- 藏文基礎(chǔ)-教你輕輕松松學(xué)藏語(yǔ)(西藏大學(xué))知到智慧樹(shù)章節(jié)答案
- 2024電子商務(wù)平臺(tái)用戶(hù)隱私保護(hù)協(xié)議3篇
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 英語(yǔ) 含答案
- 醫(yī)學(xué)教程 常見(jiàn)體表腫瘤與腫塊課件
評(píng)論
0/150
提交評(píng)論