C程序設(shè)計(jì) 第八章 函數(shù)課件_第1頁(yè)
C程序設(shè)計(jì) 第八章 函數(shù)課件_第2頁(yè)
C程序設(shè)計(jì) 第八章 函數(shù)課件_第3頁(yè)
C程序設(shè)計(jì) 第八章 函數(shù)課件_第4頁(yè)
C程序設(shè)計(jì) 第八章 函數(shù)課件_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第八章函數(shù)8.1概述模塊化程序設(shè)計(jì)若只有main函數(shù),則程序太長(zhǎng)、太復(fù)雜,導(dǎo)致跟蹤、調(diào)試、維護(hù)困難基本思想:將一個(gè)大的程序按功能分割成一些小模塊,各部分獨(dú)立編碼、調(diào)試、再集成。特點(diǎn):各模塊相對(duì)獨(dú)立、功能單一、結(jié)構(gòu)清晰、接口簡(jiǎn)單控制了程序設(shè)計(jì)的復(fù)雜性易理解易于維護(hù)和功能擴(kuò)充開發(fā)方法:自上向下,逐步分解,分而治之C程序設(shè)計(jì)第八章函數(shù)C程序結(jié)構(gòu)…C是函數(shù)式語(yǔ)言必須有且只能有一個(gè)名為main的主函數(shù)C程序的執(zhí)行總是從main函數(shù)開始,在main中結(jié)束函數(shù)不能嵌套定義,可以嵌套調(diào)用…C程序設(shè)計(jì)第八章函數(shù)函數(shù)分類從用戶角度標(biāo)準(zhǔn)函數(shù)(庫(kù)函數(shù)):由系統(tǒng)提供用戶自定義函數(shù)從函數(shù)形式無參函數(shù)有參函數(shù)使用庫(kù)函數(shù)的一般方法:1、函數(shù)功能2、函數(shù)參數(shù)的數(shù)目和順序,及各參數(shù)意義和類型3、函數(shù)返回值意義和類型4、需要使用的包含文件C程序設(shè)計(jì)第八章函數(shù)8.2自定義函數(shù)多函數(shù)程序#include"stdio.h"main(){voidprintstar();printstar();printf("ThisisaexampleofuseCfunction\n");printstar();}voidprintstar(){printf("*****************************\n");}函數(shù)控制流函數(shù)與變量的對(duì)比函數(shù)名和變量名均以標(biāo)識(shí)符體現(xiàn)函數(shù)和變量均有對(duì)應(yīng)的類型,如int函數(shù)和變量一樣,均要prototypeC程序設(shè)計(jì)第八章函數(shù)函數(shù)定義格式函數(shù)體合法標(biāo)識(shí)符函數(shù)返回值類型缺省int型無返回值void函數(shù)類型函數(shù)名(形參類型說明表){

說明部分 語(yǔ)句部分

return語(yǔ)句}以上紅色的為函數(shù)的6個(gè)元素C程序設(shè)計(jì)第八章函數(shù)函數(shù)類型函數(shù)名(形參表)形參類型說明{

說明部分 語(yǔ)句部分}傳統(tǒng)風(fēng)格:例有參函數(shù)(傳統(tǒng)風(fēng)格)

intmax(x,y)

intx,y;{intz;z=x>y?x:y;return(z);}C程序設(shè)計(jì)第八章函數(shù)函數(shù)類型voidprintstar(){printf("*****************************");}voidsx,inty){inttemp;temp=x;x=y;y=temp;}floatsqure(floatx){return(x*x);}intget_number(void){inttemp=1;returntemp;}intmathoperation(inta,intb,int*s){……}返回多個(gè)數(shù)據(jù)C程序設(shè)計(jì)第八章函數(shù)

返回語(yǔ)句形式:return(表達(dá)式);

return表達(dá)式;

return;功能:使程序控制從被調(diào)用函數(shù)返回到調(diào)用函數(shù)中,同時(shí)把返值帶給調(diào)用函數(shù)例無返回值函數(shù)

voidsx,inty){inttemp;temp=x;x=y;y=temp;return;}函數(shù)中可有多個(gè)return語(yǔ)句若無return語(yǔ)句,遇}時(shí),自動(dòng)返回調(diào)用函數(shù)若函數(shù)類型與return語(yǔ)句中表達(dá)式值的類型不一致,按前者為準(zhǔn),自動(dòng)轉(zhuǎn)換——函數(shù)調(diào)用轉(zhuǎn)換void型函數(shù)C程序設(shè)計(jì)第八章函數(shù)函數(shù)的調(diào)用調(diào)用形式函數(shù)名(實(shí)參表);C程序設(shè)計(jì)第八章函數(shù)例比較兩個(gè)數(shù)并輸出大者main(){floata,b;intt;scanf("%f,%f",&a,&b);t=max(a,b);//函數(shù)調(diào)用

printf("Maxis%d\n",t);}max(floatx,floaty)//函數(shù)定義{floatz;z=x>y?x:y;

return(z);}三個(gè)數(shù)最大值的問題:

t=max(a,max(b,c));C程序設(shè)計(jì)第八章函數(shù)函數(shù)調(diào)用機(jī)制(參數(shù)及其傳遞方式)實(shí)際參數(shù):調(diào)用函數(shù)時(shí)函數(shù)名后面括號(hào)中的表達(dá)式形式參數(shù):定義函數(shù)時(shí)函數(shù)名后面括號(hào)中的變量名c=max(a,b);(main函數(shù))(max函數(shù))max(intx,inty){intz;z=x>y?x:y;return(z);}main(){inta,b,t;intmax(int,int);scanf("%d,%d",&a,&b);t=max(a,b);printf("Maxis%d",t);}max(intx,inty){intz;z=x>y?x:y;return(z);}形參實(shí)參C程序設(shè)計(jì)第八章函數(shù)實(shí)參必須有確定的值形參必須指定類型形參與實(shí)參類型一致,個(gè)數(shù)相同若形參與實(shí)參類型不一致,自動(dòng)按形參類型轉(zhuǎn)換——函數(shù)調(diào)用轉(zhuǎn)換形參在函數(shù)被調(diào)用前不占內(nèi)存;函數(shù)調(diào)用時(shí)為形參分配內(nèi)存;調(diào)用結(jié)束,內(nèi)存釋放,實(shí)參單元仍保留并維持原值。也就是說,形參與實(shí)參占用不同的內(nèi)存單元——單向傳遞/值傳遞C程序設(shè)計(jì)第八章函數(shù)例計(jì)算x的立方#include<stdio.h>floatcube(floatx){return(x*x*x);}main(){floata,product;printf("Pleaseinputvalueofa:");scanf("%f",&a);product=cube(a);printf(”Cubeof%.4fis%.4f\n",a,product);}xaproduct××××1.21.21.728C程序設(shè)計(jì)第八章函數(shù)printstar(){printf("**********");}main(){inta;a=printstar();printf("%d\n",a);}例函數(shù)帶回不確定值輸出:10voidprintstar(){printf("**********");}main(){inta;a=printstar();printf("%d\n",a);}編譯錯(cuò)誤!C程序設(shè)計(jì)第八章函數(shù)#include"stdio.h"intf(inta,intb){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}main(){inti=2,p;p=f(i,++i);printf("%d\n",p);}例參數(shù)求值順序#include"stdio.h"intf(inta,intb){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}main(){inti=2,p;p=f(i,i++);printf("%d\n",p);}運(yùn)行結(jié)果:0運(yùn)行結(jié)果:1C程序設(shè)計(jì)第八章函數(shù)對(duì)被調(diào)用函數(shù)要求:必須是已存在的函數(shù)庫(kù)函數(shù):#include<*.h>用戶自定義函數(shù):函數(shù)類型說明要求使用函數(shù)之前做函數(shù)說明一般形式:函數(shù)類型函數(shù)名(形參類型[形參名],…..);作用:告訴編譯系統(tǒng)函數(shù)類型、參數(shù)個(gè)數(shù)及類型,以便檢驗(yàn)函數(shù)說明位置:程序的數(shù)據(jù)說明部分(函數(shù)內(nèi)或外)下列情況下,可不作函數(shù)說明若函數(shù)返值是char或int型,系統(tǒng)自動(dòng)按int型處理被調(diào)用函數(shù)定義出現(xiàn)在主調(diào)函數(shù)之前C程序設(shè)計(jì)第八章函數(shù)例函數(shù)說明舉例main(){floata,b;intc;scanf("%f,%f",&a,&b);c=max(a,b);printf("Maxis%d\n",c);}max(floatx,floaty){floatz;z=x>y?x:y;return(z);}int型函數(shù)可不作函數(shù)說明(VC++不行)/**/floatadd(floatx,floaty){floatz;z=x+y;return(z);}main(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);printf("sumis%f",c);}被調(diào)函數(shù)出現(xiàn)在主調(diào)函數(shù)之前,不必函數(shù)說明main(){floatadd(float,float);/*functiondeclaration*/floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);printf("sumis%f",c);}floatadd(floatx,floaty){floatz;z=x+y;return(z);}floatadd();C程序設(shè)計(jì)第八章函數(shù)711x:y:調(diào)用前:調(diào)用結(jié)束:711x:y:例值傳遞舉例:交換兩個(gè)數(shù)/*swapapairnumber*/#include<stdio.h>main(){intx=7,y=11;

ints,int);printf("x=%d,\ty=%d\n",x,y);printf("s:\n");

s);printf("x=%d,\ty=%d\n",x,y);}swap(inta,intb){inttemp;temp=a;a=b;b=temp;}調(diào)用:711a:b:711x:y:swap:711x:y:117a:b:tempC程序設(shè)計(jì)第八章函數(shù)/*callbyaddress*/s*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b;ints*,int*);scanf("%d,%d",&a,&b);printf(“a=%d,b=%d\n”,a,b);printf(“s:\n”);s);printf(”a=%d,b=%d\n",a,b);}例交換兩個(gè)數(shù)a59b調(diào)前:a59b調(diào)swap:p1&a&bp2a95b交換:p1&a&bp2a95b返回:C程序設(shè)計(jì)第八章函數(shù)傳遞數(shù)組給函數(shù)數(shù)組元素作函數(shù)實(shí)參——值傳遞例兩個(gè)數(shù)組大小比較432105a562312107688432105b212343986654n=0m=0k=0in=0m=0k=1in=0m=1k=1in=1m=1k=1in=1m=1k=2in=2m=1k=2in=3m=1k=2a和b為有10個(gè)元素的整型數(shù)組比較兩數(shù)組對(duì)應(yīng)元素變量n,m,k記錄a[i]>b[i],a[i]==b[i],a[i]<b[i]的個(gè)數(shù)最后若n>k,認(rèn)為數(shù)組a>b

若n<k,認(rèn)為數(shù)組a<b

若n==k,認(rèn)為數(shù)組a==b#include<stdio.h>main(){inta[10],b[10],i,n=0,m=0,k=0;

intlarge(int,int);printf("Enterarraya:\n");for(i=0;i<10;i++) scanf("%d",&a[i]);printf("Enterarrayb:\n");for(i=0;i<10;i++) scanf("%d",&b[i]);for(i=0;i<10;i++){if(large(a[i],b[i])==1)n=n+1;elseif(large(a[i],b[i])==0)m=m+1;elsek=k+1;}/*ThenOutput*/}intlarge(intx,inty){intflag;if(x>y)flag=1;elseif(x<y)flag=-1;elseflag=0;return(flag);}C程序設(shè)計(jì)第八章函數(shù)數(shù)組名作函數(shù)參數(shù)地址傳遞形參數(shù)組大小(多維數(shù)組第一維)可不指定。常用方法是用另一參數(shù)傳遞數(shù)組長(zhǎng)度形參數(shù)組名是地址變量C程序設(shè)計(jì)第八章函數(shù)例求學(xué)生的平均成績(jī)#include<stdio.h>

floataverage(int[],int);voidmain(){intscore[10],i;floatav;printf("Input10scores:\n");for(i=0;i<10;i++)scanf("%d",&score[i]);av=average(score,10);printf("Averageis:%.2f",av);}floataverage(int

stu[10],intn){inti;floatav,total=0;for(i=0;i<n;i++)total+=stu[i];av=total/n;returnav;}實(shí)參用數(shù)組名形參用數(shù)組定義,

intstu[]..2109score562312….….88stuC程序設(shè)計(jì)第八章函數(shù)例數(shù)組元素與數(shù)組名作函數(shù)參數(shù)比較12a調(diào)用前a[0]a[1]12a調(diào)用a[0]a[1]12xy21xy交換12a返回#include<stdio.h>voidswap2(intx,inty){intz;z=x;x=y;y=z;}main(){inta[2]={1,2};

voidswap2(int,int);

swap2(a[0],a[1]);printf("a[0]=%d\na[1]=%d\n",a[0],a[1]);}值傳遞C程序設(shè)計(jì)第八章函數(shù)12a調(diào)用前12ax調(diào)用21ax交換21a返回#include<stdio.h>voidswap2(intx[]){intz;z=x[0];x[0]=x[1];x[1]=z;}main(){inta[2]={1,2};voidswap2(int[]);

swap2(a);printf("a[0]=%d\na[1]=%d\n",a[0],a[1]);}數(shù)組首地址傳遞例數(shù)組元素與數(shù)組名作函數(shù)參數(shù)比較C程序設(shè)計(jì)第八章函數(shù)例數(shù)組排序----簡(jiǎn)單選擇排序0123456789a4968573299927137688arraykjjjkjkjjjjj949i=0C程序設(shè)計(jì)第八章函數(shù)例數(shù)組排序----簡(jiǎn)單選擇排序kjjkjkjjjjj0123456789a4968573299927137688array949kk1368i=1C程序設(shè)計(jì)第八章函數(shù)0123456789a9132732495768768899arrayi=8例數(shù)組排序----簡(jiǎn)單選擇排序#include"stdio.h"voidsort(intarray[],intn){inti,j,k,t;for(i=0;i<n-1;i++){k=i; for(j=i+1;j<n;j++) if(array[j]<array[k])k=j; if(k!=i) {t=array[i]; array[i]=array[k]; array[k]=t; }}}main(){inta[10],i;voidsort(int[],int);for(i=0;i<10;i++) scanf("%d",&a[i]);

sort(a,10);for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");}C程序設(shè)計(jì)第八章函數(shù)例求二維數(shù)組中最大元素值1357246815173412ijmax=11357246815173412ijmax=31357246815173412ijmax=5j1357246815173412imax=7j1357246815173412imax=7j1357246815173412imax=34#include"stdio.h"intmax_value(intarray[3][4]){inti,j,k,max;max=array[0][0];for(i=0;i<3;i++)for(j=0;j<4;j++) if(array[i][j]>max) max=array[i][j];return(max);}main(){inta[3][4]={{1,3,5,7}, {2,4,6,8},{15,17,34,12}};intmax_value(int[][4]);printf("maxvalueis%d\n",max_value(a));}按ANSIC,多維形參數(shù)組第一維維數(shù)可省略,第二維必須相同

intarray[][4]在VC++中,要求用二級(jí)指針C程序設(shè)計(jì)第八章函數(shù)例求二維數(shù)組中各行元素之和#include"stdio.h"get_sum_row(intx[][3],intresult[],introw,intcol){inti,j;for(i=0;i<row;i++){result[i]=0; for(j=0;j<col;j++) result[i]+=x[i][j];}}main(){inta[2][3]={3,6,9,1,4,7};intsum_row[2],row=2,col=3,i;get_sum_row(a,sum_row,row,col);for(i=0;i<row;i++)printf("Thesumofrow[%d]=%d\n",i+1,sum_row[i]);}314679asum_rowxresult1812C程序設(shè)計(jì)第八章函數(shù)8.3函數(shù)的嵌套與遞歸調(diào)用嵌套調(diào)用p271C規(guī)定:函數(shù)定義不可嵌套,但可以嵌套調(diào)用函數(shù)main()調(diào)用函數(shù)a結(jié)束a函數(shù)b函數(shù)調(diào)用函數(shù)b

C程序設(shè)計(jì)第八章函數(shù)例求三個(gè)數(shù)中最大數(shù)和最小數(shù)的差值#include<stdio.h>voidmain(){inta,b,c,d;intdif(int,int,int);scanf("%d%d%d",&a,&b,&c);

d=dif(a,b,c);printf("Max-Min=%d\n",d);}intdif(intx,inty,intz){intmax(int,int,int);intmin(int,int,int);returnmax(x,y,z)-min(x,y,z);}intmax(intx,inty,intz){intr;r=x>y?x:y;return(r>z?r:z);}intmin(intx,inty,intz){intr;r=x<y?x:y;return(r<z?r:z);}main()調(diào)用函數(shù)dif輸出結(jié)束dif函數(shù)max函數(shù)調(diào)用函數(shù)max調(diào)用函數(shù)minmin函數(shù)C程序設(shè)計(jì)第八章函數(shù)例用弦截法求方程根xyf(x)0x1x2xf(x1)f(x2)C程序設(shè)計(jì)第八章函數(shù)求f(x1)與f(x2)連線與x軸的交點(diǎn)x輸入x1,x2,求f(x1),f(x2)直到f(x1)與f(x2)異號(hào)y=f(x),y1=f(x1)y與y1同號(hào)真假x1=xx2=x直到

|y|<

root=x輸出

rootroot函數(shù)//輸入x1,x2,使f(x1)與f(x2)異號(hào)floatx1,x2,f1=1,f2=1;for(;f1*f2>=0;){printf("Inputx1,x2:\n");scanf("%f%f",&x1,&x2);f1=f(x1);f2=f(x2);}C程序設(shè)計(jì)第八章函數(shù)運(yùn)行情況:Inputx1,x2:26

Arootofequationis5.0000main()調(diào)用函數(shù)root輸出根x結(jié)束root函數(shù)xpoint函數(shù)調(diào)用函數(shù)xpoint調(diào)用函數(shù)ff函數(shù)//直線與x軸的交點(diǎn)xfloatxpoint(floatx1,floatx2){floaty;y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));return(y);}(x,y)令y=0,即得與x軸的交點(diǎn)xC程序設(shè)計(jì)第八章函數(shù)遞歸調(diào)用p272定義:函數(shù)直接或間接的調(diào)用自身叫函數(shù)的遞歸調(diào)用f()調(diào)f調(diào)f2調(diào)f1f1()f2()intf(intx){inty,z;……z=f(y);…….return(2*z);}intf1(intx){inty,z;……z=f2(y);…….return(2*z);}intf2(intt){inta,c;……c=f1(a);…….return(3+c);}C程序設(shè)計(jì)第八章函數(shù)例求n的階乘/*factorial*/#include<stdio.h>intfac(intn){intf;if(n<0)printf("n<0,dataerror!");elseif(n==0||n==1)f=1;elsef=fac(n-1)*n;return(f);}main(){intn,y;printf("Inputaintegernumber:");scanf("%d",&n);

y=fac(n);printf("%d!=%15d",n,y);}C程序設(shè)計(jì)第八章函數(shù)例Hanoi問題#include"stdio.h"voidmove(chargetone,charputone){printf("%c--->%c\n",getone,putone);}voidhanoi(intn,charone,chartwo,charthree){if(n==1)move(one,three);else{hanoi(n-1,one,three,two); move(one,three); hanoi(n-1,two,one,three);}}main(){intm;printf("Inputthenumberofdisks:");scanf("%d",&m);printf("Thestepstomoving%3ddisks:\n",m);hanoi(m,'A','B','C');}ABCC程序設(shè)計(jì)第八章函數(shù)C編譯系統(tǒng)對(duì)遞歸函數(shù)的自調(diào)用次數(shù)沒有限制每調(diào)用函數(shù)一次,在內(nèi)存堆棧區(qū)分配空間,用于存放函數(shù)變量、返回值等信息,所以遞歸次數(shù)過多,可能引起堆棧溢出C程序設(shè)計(jì)第八章函數(shù)6.4變量的存儲(chǔ)屬性p279概述變量是對(duì)程序中數(shù)據(jù)的存儲(chǔ)空間的抽象main(){inta;a=10;printf(“%d”,a);}編譯或函數(shù)調(diào)用時(shí)為其分配內(nèi)存單元…….10C程序設(shè)計(jì)第八章函數(shù)局部變量局部變量---內(nèi)部變量規(guī)則:在函數(shù)內(nèi)定義,只在本函數(shù)內(nèi)有效不同函數(shù)中同名變量,占不同內(nèi)存單元。形參屬于局部變量#include"stdio.h"main(){inta,b;intsub();a=3;b=4;printf("main:a=%d,b=%d\n",a,b);sub();printf("main:a=%d,b=%d\n",a,b);}sub(){inta,b;a=6;b=7;printf("sub:a=%d,b=%d\n",a,b);}局部變量可用存儲(chǔ)類型:

auto(默認(rèn))registerstatic可定義在復(fù)合語(yǔ)句中有效的變量#include"stdio.h"#defineN5main(){inti;inta[N]={1,2,3,4,5};for(i=0;i<N/2;i++)

{

inttemp; temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp;

}for(i=0;i<N;i++)printf("%d",a[i]);}C程序設(shè)計(jì)第八章函數(shù)#include<stdio.h>main(){voidincrement(void);increment();increment();increment();}voidincrement(void){intx=0;x++;printf(“%d\n”,x);}例觀察局部靜態(tài)變量運(yùn)行結(jié)果:111#include<stdio.h>main(){voidincrement(void);increment();increment();increment();}voidincrement(void){staticintx=0;x++;printf(“%d\n”,x);}運(yùn)行結(jié)果:123C程序設(shè)計(jì)第八章函數(shù)全局變量/外部變量規(guī)則:在函數(shù)外定義,可為本文件所有函數(shù)共用??捎么鎯?chǔ)類型:

缺省或static有效范圍:從定義變量的位置開始到本源文件結(jié)束,及有extern聲明的其它源文件當(dāng)外部變量與局部變量同名時(shí),外部變量被屏蔽C程序設(shè)計(jì)第八章函數(shù)#include"stdio.h"floatmax,min;floataverage(floatarray[],intn){inti;floatsum=array[0];max=min=array[0];for(i=1;i<n;i++){if(array[i]>max)max=array[i];elseif(array[i]<min)min=array[i];sum+=array[i];}return(sum/n);}main(){inti;floatave,score[10];/*Input*/ave=average(score,10);printf("max=%6.2f\nmin=%6.2f\naverage=%6.2f\n",max,min,ave);}作用域maxminC程序設(shè)計(jì)第八章函數(shù)例外部變量定義及其聲明intmax(intx,inty){intz;z=x>y?x:y;return(z);}#include"stdio.h"main(){externinta,b;

intmax(int,int);printf("max=%d\n",max(a,b));}inta=13,b=-8;externinta,b;intmax(){intz;z=a>b?a:b;return(z);}#include"stdio.h"main(){printf("max=%d",max());}inta=13,b=-8;C程序設(shè)計(jì)第八章函數(shù)

定義

聲明次數(shù):只能1次可說明多次位置:所有函數(shù)之外函數(shù)內(nèi)或函數(shù)外內(nèi)存:分配內(nèi)存不分配內(nèi)存

可初始化

不可初始化外部變量定義與聲明的區(qū)別:應(yīng)盡量少使用全局變量C程序設(shè)計(jì)第八章函數(shù)#include"stdio.h"inta=3,b=5;max(inta,intb){intc;c=a>b?a:b;return(c);}main(){inta=8;printf("max=%d\n",max(a,b));}例外部變量被局部變量屏蔽C程序設(shè)計(jì)第八章函數(shù)

回顧第四章求定積分的例題,其算法如下:例p292Onemethodofcalculatingtheareaunderacurveistodividetotheareaintoanumberoftrapezoidsofsamewidthandsumminguptheareaofindividualtrapezoids.Theareaofatrapezoidisgivenbyarea=0.5*(h1+h2)*b;f(x)isthefunctionofcurve,h1=f(x1);h2=f(x2);

現(xiàn)在我們把算法分為兩個(gè)模塊:初始化a,b,梯形個(gè)數(shù);求梯形面積總和0yxaa+ha+iha+(i+1)hbf(x)C程序設(shè)計(jì)第八章函數(shù)存儲(chǔ)方式和生存期存儲(chǔ)方式靜態(tài)存儲(chǔ):程序運(yùn)行期間分配固定存儲(chǔ)空間動(dòng)態(tài)存儲(chǔ):運(yùn)行期間根據(jù)需要?jiǎng)討B(tài)分配存儲(chǔ)空間內(nèi)存區(qū)程序區(qū)靜態(tài)存儲(chǔ)區(qū)動(dòng)態(tài)存儲(chǔ)區(qū)全局變量、局部靜態(tài)變量形參變量局部動(dòng)態(tài)變量(autoregister)函數(shù)調(diào)用現(xiàn)場(chǎng)保護(hù)和返回地址等生存期靜態(tài)變量:從程序開始執(zhí)行到程序結(jié)束動(dòng)態(tài)變量:從包含該變量定義的函數(shù)/復(fù)合語(yǔ)句至函數(shù)/復(fù)合語(yǔ)句結(jié)束C程序設(shè)計(jì)第八章函數(shù)變量存儲(chǔ)類型靜態(tài)動(dòng)態(tài)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論