




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第七章 函數(shù),C語言程序設(shè)計,內(nèi)容提要,庫函數(shù) 函數(shù)的定義與返回值 函數(shù)的調(diào)用 函數(shù)的說明 調(diào)用函數(shù)與被調(diào)用函數(shù)之間的數(shù)據(jù)傳遞,7.1 庫函數(shù) 模塊化程序設(shè)計基本思想:將一個大的程序按功能分割成一些小模塊, 特點: 各模塊相對獨立、功能單一、結(jié)構(gòu)清晰、接口簡單 控制了程序設(shè)計的復(fù)雜性 提高元件的可靠性 縮短開發(fā)周期 避免程序開發(fā)的重復(fù)勞動 易于維護(hù)和功能擴充 開發(fā)方法: 自上向下,逐步分解,分而治之,C是模塊化程序設(shè)計語言,C程序結(jié)構(gòu),C是函數(shù)式語言 必須有且只能有一個名為main的主函數(shù) C程序的執(zhí)行總是從main函數(shù)開始,在main中結(jié)束 函數(shù)不能嵌套定義,可以嵌套調(diào)用,函數(shù)分類 從用戶角
2、度 標(biāo)準(zhǔn)函數(shù)(庫函數(shù)):由系統(tǒng)提供 用戶自定義函數(shù) 從函數(shù)形式 無參函數(shù) 有參函數(shù),使用庫函數(shù)應(yīng)注意: 1、函數(shù)功能 2、函數(shù)參數(shù)的數(shù)目和順序,及各參數(shù)意義和類型 3、函數(shù)返回值意義和類型 4、需要使用的包含文件,函數(shù)定義(definition),類型 函數(shù)名(類型 參數(shù)1, 類型 參數(shù)2, )函數(shù)體;return 表達(dá)式;,返回值類型,標(biāo)識符,形式參數(shù),返回值,函數(shù)出口,說明: 1、函數(shù)名和形式參數(shù)都是由用戶命名的標(biāo)識符。在同一程序中,函數(shù)名必須唯一;形式參數(shù)名只要同一函數(shù)中唯一即可,可以與其他函數(shù)中的變量同名。 2、C語言規(guī)定,不能在一個函數(shù)的內(nèi)部再定義函數(shù)。 3、若在函數(shù)的首部省略了函數(shù)
3、返回值的類型名,函數(shù)首部寫成: 函數(shù)名(類型名 形式參數(shù)1,類型名 形式參數(shù) 2,) 則C語言默認(rèn)返回值類型為int類型。 4、除了返回值類型為int類型的函數(shù)外,函數(shù)必須先定義(或說明)后調(diào)用。 5、若函數(shù)只是用于完成某些操作,沒有函數(shù)值返回,則須把函數(shù)定義成void類型。,函數(shù)的返回值 返回語句 形式: return(表達(dá)式); 或 return 表達(dá)式; 或 return; 功能:使程序控制從被調(diào)用函數(shù)返回到調(diào)用函數(shù)中,同時把返值帶給調(diào)用函數(shù) 說明: 函數(shù)中可有多個return語句 若無return語句,遇時,自動返回調(diào)用函數(shù) 若函數(shù)類型與return語句中表達(dá)式值的類型不一致,按前者為
4、準(zhǔn),自動轉(zhuǎn)換-函數(shù)調(diào)用轉(zhuǎn)換 如果被調(diào)函數(shù)中沒有return語句,則帶回的是一個不確定的值。為了明確表示不帶返回值,可以用void型函數(shù),例 無返回值函數(shù) void swap(int x,int y ) int temp; temp=x; x=y; y=temp; ,例: int max(float x,float y) float z; if(x=y) z=x; else z=y; return(z); main( ) float a,b;int c; scanf(%f%f, ,7.3 函數(shù)的調(diào)用 調(diào)用形式 函數(shù)名(實參表); 說明: 實參與形參個數(shù)相等,類型一致,按順序一一對應(yīng) 例如:exc
5、h(a,b); exch(int x,int y),實參自右向左的逐個傳遞給形參,調(diào)用方式 函數(shù)語句: 例 printstar(); printf(“Hello,World!n”); 函數(shù)表達(dá)式: 例 m=max(a,b)*2; 函數(shù)參數(shù): 例 printf(“%d”,max(a,b); m=max(a,max(b,c);,7.4 函數(shù)說明 對被調(diào)用函數(shù)要求: 必須是已存在的函數(shù) 庫函數(shù): #include 用戶自定義函數(shù): 函數(shù)類型說明 函數(shù)說明 一般形式: 函數(shù)類型 函數(shù)名(形參類型 形參名,. ); 或 函數(shù)類型 函數(shù)名(); 作用:告訴編譯系統(tǒng)函數(shù)類型、參數(shù)個數(shù)及類型,以便檢驗 函數(shù)定
6、義與函數(shù)說明不同 函數(shù)說明位置:程序的數(shù)據(jù)說明部分(函數(shù)內(nèi)或外) 下列情況下,可不作函數(shù)說明 若函數(shù)返值是char或int型,系統(tǒng)自動按int型處理 被調(diào)用函數(shù)定義出現(xiàn)在主調(diào)函數(shù)之前,例 函數(shù)說明舉例,函數(shù)說明舉例 main() double power(int,float); /*函數(shù)說明*/ int i; for(i=1;i9;i+) printf(“%d%fn”,i,power(i,1.5); /*函數(shù)調(diào)用*/ double power(int n,float x) /*函數(shù)定義*/ int i; double p=1; for(i=1;i=n;i+) p=p*x; return(p);
7、 ,7.5 函數(shù)參數(shù)及其傳遞方式 形參與實參 形式參數(shù):定義函數(shù)時函數(shù)名后面括號中的變量名 實際參數(shù):調(diào)用函數(shù)時函數(shù)名后面括號中的表達(dá)式,例 比較兩個數(shù)并輸出大者,main() int a,b,c; scanf(%d,%d, ,說明: 實參必須有確定的值 形參必須指定類型 形參與實參類型一致,個數(shù)相同 若形參與實參類型不一致,自動按形參類型轉(zhuǎn)換函數(shù)調(diào)用轉(zhuǎn)換 形參在函數(shù)被調(diào)用前不占內(nèi)存;函數(shù)調(diào)用時為形參分配內(nèi)存;調(diào)用結(jié)束,內(nèi)存釋放,main() int a,b; scanf(%d,%d, /*顯示x=5,y=2*/,關(guān)于形參和實參的說明: 1、形參的有效作用范圍是:在其定義所在的函數(shù)內(nèi)。 2、實
8、參對形參的數(shù)據(jù)傳遞是值傳遞,即單向傳遞。只由實參傳給形參。,思考:在主函數(shù)的最后插入: printf(x和y是:%d,%dn,x,y); 結(jié)果是什么?,2,5,2,5,a,b,x,y,2,5,2,5,a,b,x,y,5,2,x,y,3、對于有參函數(shù),調(diào)用語句中的實參個數(shù)等于被調(diào)用函數(shù)的形參個數(shù)。 若實參個數(shù)形參個數(shù),去掉實參表中右邊的多的參數(shù)。 若實參個數(shù)形參個數(shù),結(jié)果是不可預(yù)料的數(shù)。 4、形參僅在其定義所在的函數(shù)被執(zhí)行時,系統(tǒng)才為其分配存儲空間,退出該函數(shù)時該存儲空間被系統(tǒng)收回。 5、當(dāng)形參是變量,對應(yīng)的實參可以是常量、變量、表達(dá)式或數(shù)組元素,但必須有確定的值,如: max(2,b)。調(diào)用時
9、會將實參的值賦給形參變量。 6、實參傳遞給形參的實際值必須與函數(shù)定義中的參數(shù)類型一致。,參數(shù)傳遞方式 值傳遞方式 方式:函數(shù)調(diào)用時,為形參分配單元,并將實參的值復(fù)制到形參中;調(diào)用結(jié)束,形參單元被釋放,實參單元仍保留并維持原值 特點: 形參與實參占用不同的內(nèi)存單元 單向傳遞,例 交換兩個數(shù),#include main() int x=7,y=11; printf(x=%d,ty=%dn,x,y); printf(swapped:n); swap(x,y); printf(x=%d,ty=%dn,x,y); swap(int a,int b) int temp; temp=a; a=b; b=te
10、mp; ,地址傳遞(指針學(xué)習(xí)后再來看這種傳遞方式) 方式:函數(shù)調(diào)用時,將數(shù)據(jù)的存儲地址作為參數(shù)傳遞給形參 特點: 形參與實參占用同樣的存儲單元 “雙向”傳遞 實參和形參必須是地址常量或變量,swap(p1,p2) int *p1,*p2; int p; p=*p1; *p1=*p2; *p2=p; main() int a,b; scanf(%d,%d, ,例 交換兩個數(shù),例 計算兩個整數(shù)的平均數(shù),/* 函數(shù)功能: 計算平均數(shù) 函數(shù)入口參數(shù): 整型x,存儲第一個運算數(shù) 整型y,存儲第二個運算數(shù) 函數(shù)返回值: 平均數(shù) */ int Average(int x, int y) int result
11、; result = (x + y) / 2; return result; ,例 使用了Average函數(shù)的main(),main() int a = 12; int b = 24; int ave; ave = Average(a, b); printf(Average of %d and %d is %d.n, a, b, ave); ,現(xiàn)場編程,P/91 7.15 編寫函數(shù) int mymod(int a,int b)用以求a被b除之后的余數(shù)。,#include int mymod(int x,int y) int remainder; remainder=x%y; return remainder; main() int a,b,c; printf(enter a and b:n); scanf(%d,%d, ,7.16 編寫 函數(shù),根據(jù)整型形參n的值,計算下列
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)天培小學(xué)期末數(shù)學(xué)試卷
- 阜陽市2024中考數(shù)學(xué)試卷
- 高三零模數(shù)學(xué)試卷
- 2025年海南保亭黎族苗族自治縣醫(yī)療集團(tuán)考核招聘派駐保亭縣看守所駐所醫(yī)師1人(第1號)筆試歷年專業(yè)考點(難、易錯點)附帶答案詳解
- 2025年04月陜西漢中市鐵路中心醫(yī)院招聘崗位0102擬聘人選筆試歷年專業(yè)考點(難、易錯點)附帶答案詳解
- 2025至2030船舶制造產(chǎn)業(yè)深度調(diào)研及前景趨勢與投資報告
- 2025至2030櫥柜行業(yè)市場發(fā)展現(xiàn)狀及并購重組策略與投融資報告
- 2024年廣西職業(yè)技術(shù)學(xué)院輔導(dǎo)員考試真題
- 2025至2030超薄CRT彩電行業(yè)發(fā)展分析及前景趨勢與投資報告
- 2025至2030茶袋紙行業(yè)市場深度研究與戰(zhàn)略咨詢分析報告
- 河南省安全員C證考試題庫及答案
- 青海省化工企業(yè)分類分級監(jiān)督管理規(guī)定
- 高效工作八大技能
- 2023年松潘縣小升初英語考試題庫及答案解析
- 2022年環(huán)江毛南族自治縣小升初英語考試試題及答案解析
- 北京市高考外語口試《外語口試題集》
- 某頂管計算書
- T-GDSCEE 109-2022 數(shù)字音頻功率放大器通用規(guī)范
- GB/T 40080-2021鋼管無損檢測用于確認(rèn)無縫和焊接鋼管(埋弧焊除外)水壓密實性的自動電磁檢測方法
- GB/T 15452-2009工業(yè)循環(huán)冷卻水中鈣、鎂離子的測定EDTA滴定法
- 一二三四級應(yīng)急響應(yīng)流程圖參考模板范本
評論
0/150
提交評論