函數(shù)與模塊化程序設(shè)計基礎(chǔ)實用教案_第1頁
函數(shù)與模塊化程序設(shè)計基礎(chǔ)實用教案_第2頁
函數(shù)與模塊化程序設(shè)計基礎(chǔ)實用教案_第3頁
函數(shù)與模塊化程序設(shè)計基礎(chǔ)實用教案_第4頁
函數(shù)與模塊化程序設(shè)計基礎(chǔ)實用教案_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 4.可對字符量進(jìn)行的運算 由于字符量具有數(shù)值,在機器內(nèi)也是以整型常量的形式存放,因此字符可參與(cny)任何整數(shù)運算。 (1)利用算術(shù)運算實現(xiàn)大小寫字符的轉(zhuǎn)換 如:A+3265+32a b-3298-32B (2)利用算術(shù)運算實現(xiàn)字符與整數(shù)值之間的互換 如:9-057-489 4+04+48524 (3)字符常量也可以進(jìn)行關(guān)系運算 如:ab 09(比較的是ASCII碼) (4)字符常量也可以進(jìn)行邏輯運算 如:a&b 0&1第1頁/共44頁第一頁,共45頁。1、字符輸入(shr)函數(shù)函數(shù)(hnsh)返回值類型函數(shù)的名稱無參數(shù)從標(biāo)準(zhǔn)輸入設(shè)備(一般為鍵盤)讀入一個字符,返回該字符的

2、ASCII碼值,并且將敲入的字符“回顯”到屏幕上。6.3字符輸入與輸出函數(shù)第2頁/共44頁第二頁,共45頁。#include /*說明函數(shù)(hnsh)getchar的原型包含在哪個文件中*/void main()int a; char b; a=getchar(); b=getchar(); printf(a=%cta=%dtb=%ctb=%dn,a,a,b,b); 從鍵盤輸入字符(z f), 該字符(z f)的ASCII編碼值賦給a第3頁/共44頁第三頁,共45頁。程序運行情況程序運行情況(qngkung)(qngkung)如下:如下:1313 a=1 a=1a=49a=49b=3b=3b=

3、51 b=51 第4頁/共44頁第四頁,共45頁。調(diào)用函數(shù)getchar時,程序執(zhí)行被中斷,等待用戶從鍵盤輸入數(shù)據(jù)(shj)。當(dāng)用戶鍵入字符并敲回車鍵以后,程序繼續(xù)運行。若用戶輸入字符后未按回車鍵,則鍵入的內(nèi)容一直保留在鍵盤緩沖區(qū)中,只有用戶鍵入回車鍵后,字符輸入函數(shù)getchar才進(jìn)行處理。 函數(shù)(hnsh)getchar將回車鍵作為一個字符讀入。如果程序中有兩個以上函數(shù)(hnsh)getchar時,應(yīng)該一次性輸入所需字符,最后再按回車鍵,如上例所示。無論輸入的是英文字母或標(biāo)點符號還是數(shù)字,都是作為字符輸入 。第5頁/共44頁第五頁,共45頁。函數(shù)(hnsh)返回值類型函數(shù)(hnsh)的名稱

4、函數(shù)的參數(shù)向標(biāo)準(zhǔn)輸出設(shè)備(一般為顯示器)輸出一個字符,并返回輸出字符的ASCII碼值。2、字符輸出函數(shù)第6頁/共44頁第六頁,共45頁。#include 程序運行結(jié)果(ji gu)為:ABBCmain( ) int a=65; char b=B; putchar(a); putchar(65+1); putchar(b); putchar(B+1); 包含(bohn)函數(shù)putchar的頭文件第7頁/共44頁第七頁,共45頁。 #include stdio.h void main() char ch;int num=0; ch=getchar();【例6-3】 統(tǒng)計從鍵盤輸入的一行(yxng)

5、字符的個數(shù)(以回車鍵作為輸入結(jié)束標(biāo)記)。while(ch!=n) 判斷判斷(pndun)是否是否輸入結(jié)束輸入結(jié)束num+; ch=getchar(); 第五章第五章 5.1 while語句語句printf(num=%dn,num); 第8頁/共44頁第八頁,共45頁。 【例【例6-46-4】 用用do-whiledo-while語句編寫程序統(tǒng)計從鍵盤語句編寫程序統(tǒng)計從鍵盤輸 入 的 一 行 非 空 字 符 的 個 數(shù) ( 以 回 車 鍵 作 為輸 入 的 一 行 非 空 字 符 的 個 數(shù) ( 以 回 車 鍵 作 為(zuwi)(zuwi)輸入結(jié)束標(biāo)記)。輸入結(jié)束標(biāo)記)。 #include s

6、tdio.hvoid main()char ch; int num=0; ch=getchar(); do num+; ch= getchar(); while(ch!=n); printf(num=%dn,num); 第五章第五章 5.2 do-while語句語句第9頁/共44頁第九頁,共45頁。第第7 7章章 函數(shù)函數(shù)(hnsh)(hnsh)與模與模塊化程序設(shè)計基礎(chǔ)塊化程序設(shè)計基礎(chǔ)7.1 7.1 概述概述(i sh)(i sh)7.2 7.2 函數(shù)函數(shù)(hnsh)(hnsh)的的定義定義7.3 7.3 函數(shù)的調(diào)用函數(shù)的調(diào)用7.4 7.4 變量的作用域與存儲特性變量的作用域與存儲特性第10頁

7、/共44頁第十頁,共45頁。7.1 7.1 概述概述(i sh)(i sh)一一. 模塊模塊(m kui)與函數(shù)與函數(shù)1. 結(jié)構(gòu)化程序設(shè)計(shj) C語言是結(jié)構(gòu)化的程序設(shè)計語言。一種設(shè)計程序的技術(shù)。通常采用自頂向下逐步求精的設(shè)計方法和單入口單出口控制結(jié)構(gòu)。2.“自頂向下”的模塊化程序設(shè)計方法將一個大問題按層次分解成多個方便解決小問題的模塊的設(shè)計思想.第11頁/共44頁第十一頁,共45頁。3. 功能模塊 求解較小問題的算法和程序稱作“功能模塊”, 各功能模塊可以先單獨設(shè)計(shj),然后將求解所有子問題的模塊組合成求解原問題的程序。 主控模塊主控模塊模塊模塊1_1模塊模塊1_n模塊模塊2_1模

8、塊模塊2_n模塊模塊n_1模塊模塊n_n模塊模塊1模塊模塊2模塊模塊n由功能模塊組成(z chn)程序的結(jié)構(gòu)圖第12頁/共44頁第十二頁,共45頁。4. 函數(shù): 完成相對(xingdu)獨立功能的程序例7-1,輸入(shr)年月日,計算出該日為該年的第幾天。 分析:(1)判斷年份是否為閏年。年份有閏年與平年之分,兩者的區(qū)別在于閏年的二月為29天,平年的二月為28天。因此,給定一個年份,首先應(yīng)確定(qudng)其是否是閏年。(2)求月份對應(yīng)的天數(shù)。月份不同,其對應(yīng)的天數(shù)不同,1、3、5、7、8、10、12月每月為31天,4、6、9、11月每月為30天,2月根據(jù)所在年份是否為閏年來確定(qudng

9、)。(3)求總天數(shù)。分為經(jīng)歷完整的月份天數(shù)與經(jīng)歷不完整的月份天數(shù)。(4)輸出數(shù)據(jù)。年月日及相應(yīng)的天數(shù)。第13頁/共44頁第十三頁,共45頁。程序?qū)崿F(xiàn):(1)判斷(pndun)閏年。int leap(int year)int lp; lp=(year%4=0&year%100!=0|year%400=0)?1:0;return lp;主控模塊主控模塊判斷閏年判斷閏年求某月的天數(shù)求某月的天數(shù)輸輸 出出輸輸 入入求總天數(shù)求總天數(shù)程序模塊結(jié)構(gòu)圖程序模塊結(jié)構(gòu)圖第14頁/共44頁第十四頁,共45頁。(2)求某月的天數(shù)。/*函數(shù)(hnsh)month_days調(diào)用函數(shù)(hnsh)leap判斷year

10、是否為閏年*/int month_days(int year,int month) int ds,d; switch(month) case 1: case 3: case 5: case 7: case 8: case 10: case 12:d=31;break; case 2:d=leap(year)?29:28;break; /*若為閏年,d賦值29,否則賦值28*/ default:d=30; return d; 第15頁/共44頁第十五頁,共45頁。(3)求天數(shù)和。/*函數(shù)(hnsh)days調(diào)用函數(shù)(hnsh)month_days,求各月份對應(yīng)的天數(shù)*/int days(int

11、year,int month,int day)int i,ds=0; for (i=1;i0?1:(x=0?0:-1);return y;/*返回函數(shù)值返回函數(shù)值*/第25頁/共44頁第二十五頁,共45頁。(3) return語句的表示語句的表示(biosh)形式如下:形式如下:return 表達(dá)式;表達(dá)式;或或 return(表達(dá)式);(表達(dá)式);符號函數(shù)的另一種定義符號函數(shù)的另一種定義(dngy)形式:形式:int sign(int x) /*形式參數(shù)類型說明與參數(shù)列表與函數(shù)形式參數(shù)類型說明與參數(shù)列表與函數(shù)(hnsh)名一起說明名一起說明*/ return y=x0?1: (x=0?0:-

12、1);/*返回一個復(fù)雜的表達(dá)式的值返回一個復(fù)雜的表達(dá)式的值*/當(dāng)函數(shù)類型為當(dāng)函數(shù)類型為float型并且型并且return語句缺省時,調(diào)用出錯。語句缺省時,調(diào)用出錯。當(dāng)函數(shù)類型為當(dāng)函數(shù)類型為int型并且型并且return語句的表達(dá)式缺省或語句的表達(dá)式缺省或return語語句缺省時,返回不確定的值(在句缺省時,返回不確定的值(在TC2中返回值為中返回值為0)第26頁/共44頁第二十六頁,共45頁。例例7-3:寫出以下:寫出以下(yxi)程序的運行結(jié)果。程序的運行結(jié)果。max( ) /*函數(shù)類型缺省,為函數(shù)類型缺省,為int型,型,return語句缺省語句缺省*/ min( ) /*函數(shù)類型缺省,函

13、數(shù)類型缺省,return語句缺省表達(dá)式語句缺省表達(dá)式*/return ;main( )printf(%d,%dn,max(),min()););程序運行結(jié)果為:程序運行結(jié)果為:-256,-256 /*返回值不確定,返回值不確定,TC2開發(fā)環(huán)境中返回值為開發(fā)環(huán)境中返回值為0*/若函數(shù)若函數(shù)(hnsh)max與函數(shù)與函數(shù)(hnsh)min的類型為的類型為float,則返,則返回值為:回值為:Floating point error: Domain.Abnormal program termination第27頁/共44頁第二十七頁,共45頁。在具有多個函數(shù)的在具有多個函數(shù)的C程序中,主函數(shù)出現(xiàn)的位

14、置并不重要。程序中,主函數(shù)出現(xiàn)的位置并不重要。為閱讀方便,可將主函數(shù)為閱讀方便,可將主函數(shù)main放在最前面。為了避免過多的放在最前面。為了避免過多的函數(shù)聲明函數(shù)聲明(shngmng)語句,習(xí)慣上將主函數(shù)放在所有函數(shù)之語句,習(xí)慣上將主函數(shù)放在所有函數(shù)之后。不論主函數(shù)放在什么位置,一旦啟動該程序,總是從主后。不論主函數(shù)放在什么位置,一旦啟動該程序,總是從主函數(shù)開始執(zhí)行,并且最終在主函數(shù)結(jié)束整個程序的執(zhí)行。函數(shù)開始執(zhí)行,并且最終在主函數(shù)結(jié)束整個程序的執(zhí)行。3. 函數(shù)函數(shù)(hnsh)main一個一個C語言程序至少包含一個函數(shù),并且語言程序至少包含一個函數(shù),并且(bngqi)必須有且只能有必須有且只能

15、有一個名為一個名為main的函數(shù),稱之為主函數(shù)。的函數(shù),稱之為主函數(shù)。在包含多個函數(shù)的程序中,不僅可以由主函數(shù)調(diào)用其它函在包含多個函數(shù)的程序中,不僅可以由主函數(shù)調(diào)用其它函數(shù),還可以由被調(diào)函數(shù)調(diào)用其它函數(shù),但任何函數(shù)都不能數(shù),還可以由被調(diào)函數(shù)調(diào)用其它函數(shù),但任何函數(shù)都不能調(diào)用主函數(shù)。調(diào)用主函數(shù)。通常主函數(shù)的類型定義為通常主函數(shù)的類型定義為void(在(在TC2中可省略函數(shù)中可省略函數(shù)main的類的類型說明)。型說明)。第28頁/共44頁第二十八頁,共45頁。7.3 函數(shù)函數(shù)(hnsh)的調(diào)的調(diào)用用在在C語言的一般語言的一般(ybn)函數(shù)體中,可以包含對其它函數(shù)的調(diào)用,函數(shù)體中,可以包含對其它函數(shù)

16、的調(diào)用,稱為函數(shù)的嵌套調(diào)用,甚至包含對自身的調(diào)用,稱為函數(shù)的遞歸稱為函數(shù)的嵌套調(diào)用,甚至包含對自身的調(diào)用,稱為函數(shù)的遞歸調(diào)用。調(diào)用。一個函數(shù)一旦被定義,就可在程序的其它函數(shù)中使用一個函數(shù)一旦被定義,就可在程序的其它函數(shù)中使用(shyng)它,它,這個過程稱為函數(shù)調(diào)用。這個過程稱為函數(shù)調(diào)用。一一. 函數(shù)的一般調(diào)用與聲明函數(shù)的一般調(diào)用與聲明函數(shù)名函數(shù)名(實際參數(shù)列表)實際參數(shù)列表)1. 函數(shù)調(diào)用形式函數(shù)調(diào)用形式函數(shù)調(diào)用的一般形式:函數(shù)調(diào)用的一般形式:第29頁/共44頁第二十九頁,共45頁。實際參數(shù)也稱為實在參數(shù),簡稱實際參數(shù)也稱為實在參數(shù),簡稱(jinchng)為實參,實際參數(shù)之間為實參,實際參數(shù)

17、之間以以“,”分隔。分隔。函數(shù)調(diào)用時,實參與形參應(yīng)保持個數(shù)、次序及類型的一致性,以確函數(shù)調(diào)用時,實參與形參應(yīng)保持個數(shù)、次序及類型的一致性,以確保保(qubo)實參與形參之間數(shù)據(jù)的正確傳遞。實參與形參之間數(shù)據(jù)的正確傳遞。實際參數(shù)一般為表達(dá)式,可以實際參數(shù)一般為表達(dá)式,可以(ky)是常量、變量(調(diào)用時必須有是常量、變量(調(diào)用時必須有確定的值或確定的地址)。確定的值或確定的地址)。形式參數(shù)必須為變量。形式參數(shù)必須為變量。當(dāng)實際參數(shù)的個數(shù)、次序、類型與對應(yīng)形式參數(shù)的個數(shù)、次序、類型當(dāng)實際參數(shù)的個數(shù)、次序、類型與對應(yīng)形式參數(shù)的個數(shù)、次序、類型不一致時,系統(tǒng)并不提示錯誤,后果卻難以預(yù)測。不一致時,系統(tǒng)并不

18、提示錯誤,后果卻難以預(yù)測。注意注意第30頁/共44頁第三十頁,共45頁。C語言中函數(shù)調(diào)用的三種語言中函數(shù)調(diào)用的三種(sn zhn)形式形式:函數(shù)函數(shù)(hnsh)語句調(diào)用語句調(diào)用函數(shù)函數(shù)(hnsh)表表達(dá)式調(diào)用達(dá)式調(diào)用函數(shù)參數(shù)調(diào)用函數(shù)參數(shù)調(diào)用在函數(shù)調(diào)用后加在函數(shù)調(diào)用后加“;”,構(gòu)成一個語句。,構(gòu)成一個語句。調(diào)用函數(shù)的目的可能是執(zhí)行一個動作或調(diào)用函數(shù)的目的可能是執(zhí)行一個動作或完成特定的功能。完成特定的功能。大多數(shù)函數(shù)的調(diào)用形式。大多數(shù)函數(shù)的調(diào)用形式。被調(diào)用函數(shù)執(zhí)行的結(jié)果為調(diào)用函數(shù)提供一被調(diào)用函數(shù)執(zhí)行的結(jié)果為調(diào)用函數(shù)提供一個值,除非一個函數(shù)的類型說明為個值,除非一個函數(shù)的類型說明為void型。型。調(diào)

19、用函數(shù)通過表達(dá)式接收值。調(diào)用函數(shù)通過表達(dá)式接收值。被調(diào)函數(shù)作為某個函數(shù)的一個參數(shù)。被調(diào)函數(shù)作為某個函數(shù)的一個參數(shù)。第31頁/共44頁第三十一頁,共45頁。例例7-4, 函數(shù)語句函數(shù)語句(yj)調(diào)用與函數(shù)表達(dá)式調(diào)用。調(diào)用與函數(shù)表達(dá)式調(diào)用。#include void main()()printf(nk1=%d,printf(n%k2););程序運行結(jié)果為:程序運行結(jié)果為:k2k1=3第32頁/共44頁第三十二頁,共45頁。void main( ) /*主函數(shù)中采用主函數(shù)中采用(ciyng)函數(shù)參數(shù)調(diào)用形式調(diào)用函數(shù)參數(shù)調(diào)用形式調(diào)用函數(shù)函數(shù)max2*/ int x,y,z,m; scanf(%d,%d

20、,%d,&x,&y,&z); printf(max=%dn,max2(max2(x,y),z); / *內(nèi)層函數(shù)內(nèi)層函數(shù)max2的值作為外層函數(shù)的值作為外層函數(shù)max2的實參,整個函數(shù)的實參,整個函數(shù)max2的值又作函數(shù)的值又作函數(shù)printf的的實參的的實參*/ 例例7-5:函數(shù)參數(shù)調(diào)用:函數(shù)參數(shù)調(diào)用(dioyng)形式調(diào)用形式調(diào)用(dioyng)函數(shù)函數(shù)max2:int max2(int a,int b) /*求兩個求兩個(lin )數(shù)中較大者數(shù)中較大者*/ int y; y=(ab)?a:b; return y;第33頁/共44頁第三十三頁,共45頁。2. 函數(shù)函

21、數(shù)(hnsh)聲明聲明調(diào)用用戶自定義函數(shù)時,一般調(diào)用函數(shù)和被調(diào)用函數(shù)應(yīng)在同一個調(diào)用用戶自定義函數(shù)時,一般調(diào)用函數(shù)和被調(diào)用函數(shù)應(yīng)在同一個文件中,在調(diào)用函數(shù)中對被調(diào)用函數(shù)返回值的類型、函數(shù)名稱文件中,在調(diào)用函數(shù)中對被調(diào)用函數(shù)返回值的類型、函數(shù)名稱(mngchng)、函數(shù)形式參數(shù)的類型進(jìn)行說明,這種說明稱為函數(shù)聲、函數(shù)形式參數(shù)的類型進(jìn)行說明,這種說明稱為函數(shù)聲明。明。函數(shù)函數(shù)(hnsh)聲明的一般形式如下:聲明的一般形式如下:類型名類型名 函數(shù)名(類型函數(shù)名(類型1 形參形參1,類型,類型2 形參形參2,類型,類型n 形參形參n););或或類型名類型名 函數(shù)名(類型函數(shù)名(類型1,類型,類型2,類型

22、,類型n););或或類型名類型名 函數(shù)名();函數(shù)名();函數(shù)聲明是以語句形式出現(xiàn)的,因此其后有語句結(jié)束標(biāo)記函數(shù)聲明是以語句形式出現(xiàn)的,因此其后有語句結(jié)束標(biāo)記“;”。若函數(shù)定義放在主調(diào)函數(shù)之前,遵循先定義后調(diào)用原則若函數(shù)定義放在主調(diào)函數(shù)之前,遵循先定義后調(diào)用原則,函數(shù)聲明可函數(shù)聲明可以省略。以省略。第34頁/共44頁第三十四頁,共45頁。例例7-6: 編程求兩個整數(shù)編程求兩個整數(shù)(zhngsh)的階乘之和。的階乘之和。long fac(n) /*定義函數(shù)定義函數(shù)(hnsh)fac,其功,其功能是求能是求n!*/int n;int i; long r=1;/*注意注意r的初始化值為的初始化值為1

23、*/ for(i=1;i=n;i+)r=r*i; return r;#include void main()int m1,m2; long result; long fac(int); /*在主函數(shù)中聲明后面在主函數(shù)中聲明后面(hu mian)定義定義的函數(shù)的函數(shù)fac*/ scanf(%d,%d,&m1,&m2); result=fac(m1)+fac(m2); printf(%d!+%d!=%ldn, m1,m2,result);第35頁/共44頁第三十五頁,共45頁。二二. 形參與形參與(cny)實實參參形式參數(shù)形式參數(shù)(簡稱簡稱(jinchng)形參形參)定義定義(dn

24、gy)函數(shù)使用的參數(shù)函數(shù)使用的參數(shù)實際參數(shù)實際參數(shù)(簡稱實參簡稱實參)調(diào)用函數(shù)使用的參數(shù)調(diào)用函數(shù)使用的參數(shù)C語言中,采用函數(shù)之間的參數(shù)傳遞方式或用全局變量共享數(shù)據(jù)語言中,采用函數(shù)之間的參數(shù)傳遞方式或用全局變量共享數(shù)據(jù)方式,使一個函數(shù)能對不同的數(shù)據(jù)進(jìn)行相同功能的處理。方式,使一個函數(shù)能對不同的數(shù)據(jù)進(jìn)行相同功能的處理。C語言函數(shù)的參數(shù)傳遞均采用單向值傳遞方式(或稱復(fù)制方式)。語言函數(shù)的參數(shù)傳遞均采用單向值傳遞方式(或稱復(fù)制方式)。單向值傳遞方式是指在函數(shù)調(diào)用時,將實參之值傳遞給對應(yīng)單向值傳遞方式是指在函數(shù)調(diào)用時,將實參之值傳遞給對應(yīng)的形式參數(shù),使形參具有與實參相同的值。的形式參數(shù),使形參具有與實參

25、相同的值。當(dāng)實際參數(shù)是變量的地址值、指針常量或指針變量時,實際參數(shù)當(dāng)實際參數(shù)是變量的地址值、指針常量或指針變量時,實際參數(shù)傳遞給形式參數(shù)的是地址值,也同樣是單向值傳遞方式。傳遞給形式參數(shù)的是地址值,也同樣是單向值傳遞方式。第36頁/共44頁第三十六頁,共45頁。例例7-77-7,求方程,求方程(fngchng)ax2+bx+c=0(fngchng)ax2+bx+c=0(a a0 0)的實)的實數(shù)根。數(shù)根。 分析:分析:(1)一元二次方程的實根的條件是:)一元二次方程的實根的條件是: 。(2)定義函數(shù))定義函數(shù)(hnsh)dict來判斷數(shù)方程是否有實根,有實根則返來判斷數(shù)方程是否有實根,有實根則

26、返回函數(shù)回函數(shù)(hnsh)值值1,否則返回函數(shù),否則返回函數(shù)(hnsh)值值0;然后在主函數(shù);然后在主函數(shù)(hnsh)中求方程的實根。中求方程的實根。 240bac #include #include void main() float a,b,c,x1,x2,d,dt; int dict(float,float,float); /*聲明函數(shù)聲明函數(shù)(hnsh)dict及形式參數(shù)類型及形式參數(shù)類型*/ printf(Input a,b,c:); scanf(%f,%f,%f,&a,&b,&c);/*輸入方程輸入方程*/ d=dict(a,b,c);/*調(diào)用函數(shù)調(diào)用函數(shù)(

27、hnsh)dict,傳遞實參,傳遞實參a,b,c*/ dt=b*b-4*a*c; /* ,可以用一個函數(shù)可以用一個函數(shù)(hnsh)實現(xiàn)實現(xiàn)*/ 24bac 第37頁/共44頁第三十七頁,共45頁。if(d) x1=(-b+sqrt(dt)/(2*a);); x2=(-b-sqrt(dt)/(2*a);); printf(實根實根x1=%f,x2=%fn,x1,x2);else printf(無實數(shù)根無實數(shù)根!n);); int dict(a,b,c) /*定義函數(shù)定義函數(shù)dict及形參說明及形參說明(shumng)*/float a,b,c;float d; d=b*b-4*a*c; /*可以

28、用一個函數(shù)實現(xiàn)可以用一個函數(shù)實現(xiàn)*/ if(d=0) return(1); else return(0); 第38頁/共44頁第三十八頁,共45頁。函數(shù)main函數(shù)dictabcabc實參與形參數(shù)據(jù)傳遞通過通過(tnggu)函數(shù)調(diào)用,將實參的值傳遞給形參函數(shù)調(diào)用,將實參的值傳遞給形參. 函數(shù)調(diào)用時,系統(tǒng)對參數(shù)函數(shù)調(diào)用時,系統(tǒng)對參數(shù)(cnsh)的處理步驟為:的處理步驟為:(1)計算各實參的值,將實參值壓入形參棧中,然后執(zhí)行)計算各實參的值,將實參值壓入形參棧中,然后執(zhí)行(zhxng)函函數(shù)體。數(shù)體。(2)當(dāng)函數(shù)執(zhí)行)當(dāng)函數(shù)執(zhí)行(zhxng)完返回時,形參從棧頂彈出(取走)。完返回時,形參從棧頂彈

29、出(取走)。 第39頁/共44頁第三十九頁,共45頁。有關(guān)有關(guān)(yugun)實參與形參的幾點說明:實參與形參的幾點說明:(1)在函數(shù))在函數(shù)(hnsh)定義中指定的形參,未調(diào)用時,它們不占用存儲單元。定義中指定的形參,未調(diào)用時,它們不占用存儲單元。只有調(diào)用該函數(shù)只有調(diào)用該函數(shù)(hnsh)時,形參才被分配空間,函數(shù)時,形參才被分配空間,函數(shù)(hnsh)調(diào)用結(jié)束調(diào)用結(jié)束后,形參所占的存儲單元被釋放。后,形參所占的存儲單元被釋放。(2)實參為表達(dá)式。函數(shù))實參為表達(dá)式。函數(shù)(hnsh)調(diào)用時,先計算表達(dá)式的值,然后將調(diào)用時,先計算表達(dá)式的值,然后將值傳遞給形參。常量、變量、函數(shù)值傳遞給形參。常量、變

30、量、函數(shù)(hnsh)值都可看成是表達(dá)式的特殊值都可看成是表達(dá)式的特殊形式。形式。(3)定義函數(shù)時,形參的排列沒有次序要求,但對形參列表中每個)定義函數(shù)時,形參的排列沒有次序要求,但對形參列表中每個參數(shù)要進(jìn)行說明。調(diào)用函數(shù)時,實參類型、個數(shù)及排列次序應(yīng)與形參數(shù)要進(jìn)行說明。調(diào)用函數(shù)時,實參類型、個數(shù)及排列次序應(yīng)與形參一一對應(yīng)。若類型不一致,必須在參數(shù)前加上強制轉(zhuǎn)換符,否則參一一對應(yīng)。若類型不一致,必須在參數(shù)前加上強制轉(zhuǎn)換符,否則會發(fā)生會發(fā)生“類型不匹配類型不匹配”的錯誤。的錯誤。(4)實參與形參的數(shù)據(jù)傳遞為單向傳遞,只可由實參向形參傳遞,)實參與形參的數(shù)據(jù)傳遞為單向傳遞,只可由實參向形參傳遞,不能由形參傳回實參。實參與形參處在不同的函數(shù)中,作用的區(qū)域不能由形參傳回實參。實參與形參處在不同的函數(shù)中,作用的區(qū)域不同,即使實參與形參同名,也是不同的變量。不同,即使實參與形參同名,也是不同的變量。第40頁/共44頁第四十頁,共45頁。三三. 函數(shù)函數(shù)(hnsh)的嵌套調(diào)用的嵌套調(diào)用 所謂函數(shù)的嵌套調(diào)用是指一個函數(shù)調(diào)用另一函數(shù)的過程中所謂函數(shù)的嵌套調(diào)用是指一個函數(shù)調(diào)用另一函數(shù)的過程中又出現(xiàn)又出現(xiàn)(chxin)對其它的函數(shù)調(diào)用。對其它的函數(shù)調(diào)用。 這種嵌套調(diào)用的層次這種嵌套調(diào)用的層次(cngc)原則上不限制。原則上不限制。 函數(shù)1 函數(shù)2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論