首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級(jí) | 職稱英語 | 商務(wù)英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級(jí) | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學(xué)習(xí) | 法語 | 德語 | 韓語
計(jì)算機(jī)等級(jí)考試 | 軟件水平考試 | 職稱計(jì)算機(jī) | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
華為認(rèn)證 | Java認(rèn)證
公務(wù)員 | 報(bào)關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問 | 導(dǎo)游資格
報(bào)檢員 | 教師資格 | 社會(huì)工作者 | 外銷員 | 國際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價(jià)格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
駕駛員 | 網(wǎng)絡(luò)編輯
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
會(huì)計(jì)從業(yè)資格考試會(huì)計(jì)證) | 經(jīng)濟(jì)師 | 會(huì)計(jì)職稱 | 注冊會(huì)計(jì)師 | 審計(jì)師 | 注冊稅務(wù)師
注冊資產(chǎn)評(píng)估師 | 高級(jí)會(huì)計(jì)師 | ACCA | 統(tǒng)計(jì)師 | 精算師 | 理財(cái)規(guī)劃師 | 國際內(nèi)審師
一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)工程師 | 造價(jià)員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 巖土師
設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項(xiàng)目管理師 | 土地登記代理人 | 環(huán)境影響評(píng)價(jià)師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價(jià)師 | 安全評(píng)價(jià)師 | 電氣工程師 | 注冊測繪師 | 注冊計(jì)量師
繽紛校園 | 實(shí)用文檔 | 英語學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲
您現(xiàn)在的位置: 考試吧(Exam8.com) > 軟件水平考試 > 復(fù)習(xí)資料 > 程序員資料 > 正文

2011年軟件水平考試程序員之程序設(shè)計(jì)知識(shí)點(diǎn)21

考試吧整理“2011年軟件水平考試程序員之程序設(shè)計(jì)知識(shí)點(diǎn)21”,方便考生備考!

  6.2 函數(shù)調(diào)用

  函數(shù)被定義以后,凡要實(shí)現(xiàn)函數(shù)功能的地方,就可簡單地通過函數(shù)調(diào)用來完成。按函數(shù)調(diào)用在程序中的作用,有兩種不同類型的應(yīng)用:

  (1)函數(shù)調(diào)用只是利用函數(shù)所完成的功能。此時(shí),將函數(shù)調(diào)用作為一個(gè)獨(dú)立的語句。其調(diào)用的一般形式為

  函數(shù)名(實(shí)際參數(shù)表);

  這種應(yīng)用不要求或程序不利用函數(shù)的返回值。如程序中經(jīng)常調(diào)用格式輸入函數(shù)scanf()和格式輸出函數(shù)printf()等。

  (2)函數(shù)調(diào)用是利用函數(shù)的返回值。其調(diào)用的一般形式為

  函數(shù)名(實(shí)際參數(shù)表)

  這種應(yīng)用是利用返回值繼續(xù)進(jìn)行表達(dá)式的計(jì)算,或輸出函數(shù)返回值等。

  函數(shù)調(diào)用時(shí)提供的實(shí)際參數(shù)按它們出現(xiàn)的順序與函數(shù)定義中的形式參數(shù)-一對應(yīng),并要求實(shí)際參數(shù)類型與其對應(yīng)的形式參數(shù)類型相一致。一般情況下,函數(shù)調(diào)用應(yīng)為函數(shù)定義中的每個(gè)形式參數(shù)提供實(shí)際參數(shù),當(dāng)有多個(gè)實(shí)際參數(shù)時(shí),實(shí)際參數(shù)之間用逗號(hào)分隔。

  函數(shù)調(diào)用的執(zhí)行過程描述如下:

  (1)為函數(shù)的形式參數(shù)分配內(nèi)存空間;

  (2)計(jì)算實(shí)際參數(shù)表達(dá)式的值,并將實(shí)際參數(shù)表達(dá)式的值賦給對應(yīng)的形式參數(shù);

  (3)為函數(shù)的局部變量分配內(nèi)存空間;

  (4)執(zhí)行函數(shù)體內(nèi)的語句序列;

  (5)函數(shù)體執(zhí)行完成,或執(zhí)行了函數(shù)體內(nèi)的return語句(若return語句帶表達(dá)式,則計(jì)算出該表達(dá)式的值,并以此值作為函數(shù)的返回值)后,釋放為這次函數(shù)調(diào)用分配的全部內(nèi)存空間;

  (6)將函數(shù)值(如果有)返回到函數(shù)調(diào)用處繼續(xù)執(zhí)行。

  下面以簡單的程序例子說明函數(shù)調(diào)用的執(zhí)行過程。

  【例6.l】函數(shù)調(diào)用時(shí),由實(shí)際參數(shù)向函數(shù)形式參數(shù)傳遞值的示意程序。

  # include

  double x,y,d;

  double min(double a,double b)

  {double temp;

  temp=a> b? b :a;

  return temp;

  }

  void main()

  { printf(“Enter x, y.\n”);

  scanf(“%lf%lf”,&x,&y);

  d=min(x,y);

  printf(“MIN(%.3f,%.3f=%.3f\n”, x, y,d)

  }

  以上示意程序的大致執(zhí)行過程如下:

  首先執(zhí)行主函數(shù)的第一個(gè)語句,調(diào)用格式輸出函數(shù)輸出提示信息。接著調(diào)用格式輸入函數(shù),等待用戶輸入數(shù)據(jù)。用戶看到程序輸出的提示信息,輸入數(shù)據(jù),輸入的數(shù)據(jù)被格式輸入函數(shù)所接受,并將輸入數(shù)據(jù)譯成內(nèi)部形式后,存入變量X和y。接著執(zhí)行賦值語句,求右瑞表達(dá)式的值。該表達(dá)式以x和y的值為實(shí)際參數(shù),調(diào)用函數(shù)main()。對函數(shù)min()的調(diào)用發(fā)生時(shí),系統(tǒng)先保留好控制的返回點(diǎn)。在執(zhí)行被調(diào)用函數(shù)min()之前,先為函數(shù)的形式參數(shù)a和b分配存儲(chǔ)單元,并以它們對應(yīng)的實(shí)際參數(shù)表達(dá)式的植給它們賦初值。接著為函數(shù)內(nèi)部的變量(稱為局部變量)分配存儲(chǔ)單元。之后才開始執(zhí)行被調(diào)用函數(shù)體中的語句。執(zhí)行完函數(shù)體的語句,或執(zhí)行了return語句,函數(shù)準(zhǔn)備返回。在返回之前先將形式參數(shù)和局部變量所占用的存儲(chǔ)單元全部釋放。函數(shù)返回時(shí),將函數(shù)的返回值帶回調(diào)用處,從原先保留的控制返回點(diǎn),繼續(xù)執(zhí)行,將函數(shù)調(diào)用的返回值存于變量d,輸出結(jié)果,結(jié)束程序。綜上所述,函數(shù)調(diào)用時(shí),系統(tǒng)要做許多輔助工作,函數(shù)調(diào)用時(shí)發(fā)生的數(shù)據(jù)傳遞最主要的是實(shí)際參數(shù)向形式參數(shù)傳遞數(shù)據(jù)和函數(shù)的返回值傳遞給調(diào)用處。為正確編寫函數(shù),實(shí)現(xiàn)函數(shù)調(diào)用所希望的要求,需正確了解以下幾項(xiàng)內(nèi)容:

  (1)當(dāng)函數(shù)執(zhí)行return語句或執(zhí)行完函數(shù)體的語句序列后,函數(shù)的這次調(diào)用就執(zhí)行結(jié)束,隨之將控制返回到函數(shù)調(diào)用處繼續(xù)執(zhí)行。

  (2)函數(shù)的返回值是通過執(zhí)行return語句時(shí),計(jì)算return之后的表達(dá)式值而獲得的。如果函數(shù)不提供返回值,則return語句不應(yīng)包含表達(dá)式。

  (3)如果函數(shù)有返回值,則應(yīng)有確定的類型,并在函數(shù)定義時(shí)指明。同時(shí),return語句的表達(dá)式類型應(yīng)與函數(shù)定義中指明的返回值類型相一致。

  (4)為了明確指明函數(shù)不提供返回值,建議在函數(shù)定義時(shí),在函數(shù)名之前寫上void。并在這樣的函數(shù)體內(nèi),所有的return語句都不應(yīng)該帶表達(dá)式。

  6.3 函數(shù)說明

  C函數(shù)都是外部的,一般來說,任一函數(shù)都能被其它函數(shù)調(diào)用。而一個(gè)函數(shù)要調(diào)用另一個(gè)函數(shù),應(yīng)知道被調(diào)用函數(shù)的一些有關(guān)如何正確調(diào)用的信息。調(diào)用函數(shù)與被調(diào)用函數(shù)之間在程序正文中可能會(huì)存在以下幾種情況。

  (1)調(diào)用同一程序文件中前面已定義的函數(shù)。

  (2)調(diào)用處于同一程序文件后面定義的函數(shù)。

  (3)調(diào)用別的程序文件中定義的函數(shù)。

  對于第一種情況,因在函數(shù)調(diào)用處,被調(diào)用函數(shù)的詳細(xì)信息已被編譯程序所接受,在函數(shù)定義之后調(diào)用前面已定義的函數(shù),能方便地檢查調(diào)用的正確性。對于后兩種情況,這時(shí)因被調(diào)用函數(shù)的信息還未被編譯程序所接受,不能檢查函數(shù)調(diào)用的正確性,所以在調(diào)用之前需對被調(diào)用函數(shù)有關(guān)調(diào)用的一些信息作出說明。如函數(shù)的返回值類型、函數(shù)名和函數(shù)有關(guān)形式參數(shù)的個(gè)數(shù)及其類型等。這樣的說明稱作函數(shù)說明。函數(shù)說明的一般形式為

  存儲(chǔ)類型說明符 數(shù)據(jù)類型說明符 函數(shù)名(形式參數(shù)說明表);

  其中存儲(chǔ)類型說明符可以省缺,或?qū)懗蒭xtern。形式參數(shù)說明表可以為空,也可以順序列出各形式參數(shù)的類型,同樣也可以順序列出各形式參數(shù)的類型和形式參數(shù)的名。

  相關(guān)推薦:

  2011軟考程序員考試復(fù)習(xí)筆試知識(shí)點(diǎn)整理匯總

  2011年軟考程序員考試模擬試題及答案(上午題)

  2011年軟考程序員考試模擬試題及答案(下午題)

文章搜索
軟件水平考試欄目導(dǎo)航
版權(quán)聲明:如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。