課件數(shù)組定義、聲明初始化_第1頁
課件數(shù)組定義、聲明初始化_第2頁
課件數(shù)組定義、聲明初始化_第3頁
課件數(shù)組定義、聲明初始化_第4頁
課件數(shù)組定義、聲明初始化_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余64頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

上一章知識(shí) 通過下 本講教學(xué)理解“函數(shù)”與“面向過程的編程”的關(guān)系。 深入理解參數(shù)傳遞,尤其是“傳遞地址”的情況。 本章授課C程序基本 C程序結(jié)構(gòu)#include<stdio.h>#includestdlib.h>

一個(gè)C一個(gè)源文一個(gè)源文兩個(gè)頭文{一個(gè)主函一個(gè)主函return0;} 一個(gè)C一個(gè)C若干頭文 若干源文頭文件頭文件頭文件

源文件

源文件1 2 函數(shù) 函數(shù)12函數(shù)函數(shù) 函 本章授課C程序基本 函數(shù)的 函數(shù)返回值類 areaofCircle(doubler{復(fù)constdoublePI= double 句構(gòu)areaPI*r* 函體return 體} 動(dòng)手 intadd(intx,int{return}

函數(shù) o(char{printf("大家好 printf(“我是}voidvoid{printf(“printf(“} 函數(shù)定義 void 函數(shù)#include#include 形{constdoublePI=returnPI*r*}

intmain{double//toarea=//toreturn}

實(shí) 形式參數(shù)與實(shí)際#include<stdio.h>{constdoublePI=returnPI*r}intint{//todoreturn0;//todoreturn0;doubler,//toarea=areaofCircle}} 動(dòng)手intAverage(intx,{doubleresult=(x+y)/return}

形參和printf(“%dprintf(“%d #include<stdio.h>#include<stdio.h>{constdoublePI=3.14159;returnPI*r*r;}int{doubler,//toarea=areaofCircle//todoreturn0;}returnreturn(表達(dá)式voidfoo(int int*{intreturn} 本章授課C程序基本 函數(shù) 函數(shù)自定義函數(shù)必須 后調(diào)主調(diào)函#includeint{doubler,//toarea=//toreturn

被調(diào)函{constdoublePI=returnPI*r}}} 函數(shù)表函數(shù)表函數(shù)c=10*printf(“%g”,主調(diào)程序保護(hù)現(xiàn)函數(shù)語 給形式參數(shù)(如果有)權(quán)交給被調(diào)函保存返回值(如果有)并將保存返回值(如果有)并將程序控制權(quán)交給 函數(shù)調(diào)用 ③ ③constdoublePI= returnPI*r #include int{doubler,//to area=//todoreturn0;}

可以這樣調(diào)用函數(shù)嗎 #include<stdio.h>int{doubler,//toarea=areaofCircle//toreturn}{constdoublePI=returnPI*r}

函數(shù)返回值類型函數(shù)名(參數(shù)類型參數(shù)1,…,參數(shù)類型參數(shù){}返回值類型函數(shù)名(參數(shù)類型參數(shù)1,…,參數(shù)類型參數(shù)調(diào)用是否正確說明函數(shù)的類型和參數(shù)的情況,以保證程序編譯時(shí)能調(diào)用是否正確函數(shù)原 標(biāo)示了函數(shù)的返回值類型、函數(shù)名、參數(shù)個(gè)數(shù)和類,是函數(shù)的“名片函數(shù)原 和函數(shù)原型定義在返回類型、函數(shù)名、參數(shù)個(gè)數(shù)和類必須完全一函數(shù)原 不必包含參數(shù)的名字,而只要包含參數(shù)的類 #include<stdio.h>

函數(shù)原型#include<stdio.h>{constdoublePI=returnPI*r}int{doubler,//toarea=areaofCircle//toreturn}

int{doubler,//toarea=areaofCircle//toreturn}{constdoublePI=returnPI*r}當(dāng)函數(shù)原型定義出現(xiàn)在函數(shù)調(diào)用前,則原型定義既是原 ,否則必須在函數(shù)調(diào)用前 該函數(shù) 函提倡

,先優(yōu)點(diǎn)函數(shù)列表一目了然,方便彼此調(diào)用 ,避免錯(cuò)誤 函函 優(yōu)點(diǎn)函數(shù)列表更加一目了然,方便使便于多人合作共同開可以用于商業(yè),保護(hù)知 練用所定義的階乘函數(shù)。 combination(intn,intk);。(提示:首用所定義的階乘函數(shù)。 參數(shù)“地址”傳遞 voidexchangeData(inta,int{

內(nèi)存變4int 4c=a=b= } int{inta=3,b=printf交換前printf("a=%db=%d\n",exchangeData(a,printf交換后printf("a=%db=%d\n",return}

4b4交換前:a=3交換后:a=3 地址傳voidexchangeData(int*a,int{

內(nèi)存

內(nèi)存變intc;c=*a;*a=*b=}

b 3int{intint{intx=3,y=printf交換前printf("xdy%d\nx,y);exchangeData(&x,&y);printf("交換后:");printf("x=%dby=%d\n",return}3 3交換前:x=3交換后:x=4 參數(shù)值傳遞是將實(shí)際參數(shù)中存放的“值”傳遞給形式參數(shù),實(shí)際參數(shù)與形式參數(shù)完成“傳遞接力”后,兩者再無干系。在exchangeData函數(shù)內(nèi)部無法改變實(shí)際參數(shù)中的值或通過實(shí)際參數(shù)的值改變其他單元的值。地址傳遞是將實(shí)際參數(shù)中存放的“地址”傳遞給了形式參exchangeData,但可以對(duì)該“地址”所代表的單元進(jìn)行賦值或取值的 #include#include#includevoidgetMaxMin(int*max,intint{intprintf =%dmin=return}voidgetMaxMin(int*max,int{int*max=*min=num;for(i=0;i<4;i++){scanf if(num>{*max=}if(num<{*min=}}} 數(shù)組做 一維數(shù)組做函數(shù)voidinvert1(intx[],int{intt,i,m=

6 {

0 x[i]=x[n-1-x[n-1-}}

int{intinvert1(a,10);return0;} voidinvert2(int*xint{int{}}int{inta10 =ainvert2(a,10);return0;

a3px 3px9511066951106607594723a } #include<stdio.h>#include<stdlib.h>#defineMAX_SIZE

練intsearchInArray(constint*p,constintlen,constintx){inti0;/*數(shù)組下標(biāo)intsearchInArray(constint*p,constintlen,constintint{inta[MAX_SIZE]={1,34,345,3,934,59,35,intlen8*測(cè)試數(shù)組的元素個(gè)數(shù)intx3*待查找的元素intindex=searchInArray(&a[0],len,if(NOT_FOUND==printf("%d在數(shù)組中的下標(biāo)是:%d\nxreturn}

if(len<=0||len>MAX_SIZE)returnNOT_FOUND;for(i=0;i<len;{if(x==*(p+return}return} 思若將searchInArray的原 intsearchInArray(int(*p)[MAX_SIZE],intlen,int若原若原 intsearchInArray(intp[],intlen,int與int與intsearchInArray(int*p,intlen,intx);比較 一維數(shù)組做形參 intsearchInArray(constint*pconstintlenconstintx)intsearchInArray(constintp[],constintlen,constint編譯 動(dòng)手已知數(shù)組inta[101234578};請(qǐng)完成下面的函數(shù),該函數(shù)完成在一維數(shù)intfindMaxInArray(intp[],intsize,int 一維數(shù)組二分intfindMaxInArray(intp[],intn,int{intlow,high,low=0;high=n-1;while(low<={mid=(high+low)/2;if(x>a[mid]){low=mid+}elseif(x<{}{}}

high=mid-returnreturn-} 一維數(shù)組的添加有一個(gè)按從大到小已經(jīng)排好序的數(shù)組{1,8,intinsertInArray(int*p,intn,int 二維數(shù)組做函數(shù)使用二維數(shù)組保存使用函數(shù)完成 #includevoidaverage(float*p,intn);voidsearch(float(*p)[4],intn);intmain()

voidaverage(float*p,int{floatpend=p+n-float 行首指floatscore[3][4] {78,28

return0;}

行指

voidsearch(float(*p)[4]int{intprintf("thescoreofNo.%dprintf .2f",* -} 針voidsearch(floatp[][4],int;針voidsearch(floatp[][4],int;int{floatscore[3][4]{80,8790,81},return}voidvoidsearch(floatp[][4],in{inti,j,flag;{ {}}}二維數(shù)組做形參voidaverage(float*p,intvoidfind(floatp[][4],intvoidsearch(float(*p)[4],int編譯 練有一個(gè)二維數(shù)組inta[4][3]={{316,87}{654321110810},{2527,12}};voidfindMax1(int*p,intn,intvoidfindMax2(int(*p)[3],intvoidfindMax3(intp[][3],int 本章授課C程序基本 {③{……{③{……①{②………④⑥fA的定義中,出現(xiàn)對(duì)fB的調(diào)用、fB的定義中出現(xiàn)對(duì)fC的調(diào)用,稱這樣的調(diào)用形式為嵌套調(diào)用fA fB fC 思考:函數(shù)可以自己調(diào)用 函數(shù)的n!

n0時(shí)n1n(n(n Factorial調(diào)用過Factorial(n)=n*(n- Factorial(n-1)=(n-

(n-Factorial(2)=Factorial(1)Factorial(1)Factorial(0)= 計(jì)算階乘的遞歸unsined factorialconstunsinedint{unsignedlongtemp=if(0 return1*返回0!為1,結(jié)束遞歸調(diào)用temp=factorial(n-1);/*計(jì)算n-1的階乘*/returnn*temp; /*返回* } 遞歸函數(shù)和非遞歸函數(shù)的不 voidfoo(參數(shù)voidfoo(參數(shù){{

key1//foo(參數(shù)

//////}}}} 畫出函數(shù)的遞歸調(diào)用過 #include#includevoidreverse(intintmain return}voidreverse(int{if(0==} intfun(intt[],int{intm;if(n==1)returnif(n>={m=fun(t,n-

#include#includeintfun(intt[],intint{inta[10]={11,4,8,2,3,9,return}}

printf"return0;}

動(dòng)手f(n)

1)

nn

遞歸 本章授課C程序基本 結(jié)構(gòu)化

問題 問題2 問題

函數(shù)

函數(shù)

函數(shù)問題解決分解圖見:模塊化

函 結(jié)構(gòu)化 四則2)計(jì)算完成之擇“0”,才退出1)對(duì)2)計(jì)算完成之擇“0”,才退出3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論