版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2005年3月12005年3月22005年3月3C程序程序源程序文件源程序文件n函數(shù)函數(shù)1函數(shù)函數(shù)m 源程序文件源程序文件1函數(shù)函數(shù)1函數(shù)函數(shù)n2005年3月4程序運(yùn)行情況如下:程序運(yùn)行情況如下:Enter an integer number:2 2 * 2 * 2 = 8程序的執(zhí)行總是程序的執(zhí)行總是從從main函數(shù)開始函數(shù)開始2005年3月5 一個(gè)一個(gè)C源程序可以由一個(gè)或多個(gè)源程序文件組源程序可以由一個(gè)或多個(gè)源程序文件組成。成。C編譯系統(tǒng)在對(duì)編譯系統(tǒng)在對(duì)C源程序進(jìn)行編譯時(shí)是以文件源程序進(jìn)行編譯時(shí)是以文件為單位進(jìn)行的。為單位進(jìn)行的。 一個(gè)一個(gè)C源程序文件可以由一個(gè)或多個(gè)函數(shù)組成。源程序文件可以
2、由一個(gè)或多個(gè)函數(shù)組成。所有函數(shù)都是獨(dú)立的。主函數(shù)可以調(diào)用其它函數(shù),所有函數(shù)都是獨(dú)立的。主函數(shù)可以調(diào)用其它函數(shù),其它函數(shù)可以相互調(diào)用。其它函數(shù)可以相互調(diào)用。 在一個(gè)在一個(gè)C程序中,有且僅有一個(gè)主函數(shù)程序中,有且僅有一個(gè)主函數(shù)main。C程序的執(zhí)行總是從程序的執(zhí)行總是從main函數(shù)開始,調(diào)用其它函數(shù)函數(shù)開始,調(diào)用其它函數(shù)后最終回到后最終回到main函數(shù),在函數(shù),在main函數(shù)中結(jié)束整個(gè)程函數(shù)中結(jié)束整個(gè)程序的運(yùn)行。序的運(yùn)行。2005年3月62005年3月72005年3月8函數(shù)類型函數(shù)類型 函數(shù)名函數(shù)名( (類型名類型名 形式參數(shù)形式參數(shù)1, ) ) 說明語句說明語句 執(zhí)行語句執(zhí)行語句 例如:求兩個(gè)數(shù)
3、的最大值。例如:求兩個(gè)數(shù)的最大值。 int max(int x,int y) int z; z = x y ? x : y; return( z );類型省略時(shí)類型省略時(shí)默認(rèn)為默認(rèn)為int類型類型沒有形式參數(shù)沒有形式參數(shù)為為無參函數(shù)無參函數(shù) 2005年3月9int max(x,y) int x,y;或或int max(int x,y) 形參也可以這樣定義形參也可以這樣定義 2005年3月10函數(shù)名(實(shí)參表列)函數(shù)名(實(shí)參表列)在在C語言中,把函數(shù)調(diào)用也作為一個(gè)表達(dá)式。語言中,把函數(shù)調(diào)用也作為一個(gè)表達(dá)式。因此凡是表達(dá)式可以出現(xiàn)的地方都可以出現(xiàn)函數(shù)因此凡是表達(dá)式可以出現(xiàn)的地方都可以出現(xiàn)函數(shù)調(diào)用。例
4、如:調(diào)用。例如: welcome( ); if (iabs (a)max) max=iabs(a); m=max(c,max(a,b);函數(shù)調(diào)用的一般形式:函數(shù)調(diào)用的一般形式:2005年3月11程序輸出結(jié)果:程序輸出結(jié)果:5050思思考:考:兩兩個(gè)個(gè)程程序序有有何何不不同同程序輸出結(jié)果:程序輸出結(jié)果:50502005年3月12void swap(int x, int y) int z; z=x; x=y; y=z; printf(nx=%d,y=%d,x ,y);main( ) int a= 10,b=20; swap(a,b); printf(na=%d,b=%dn,a,b);程序輸出結(jié)果:
5、程序輸出結(jié)果:x=20,y=10a=10,b=20形式參數(shù)(形參)形式參數(shù)(形參)【例例7.4】編一程序,將主函數(shù)中的兩個(gè)變量的值傳編一程序,將主函數(shù)中的兩個(gè)變量的值傳遞給遞給swap函數(shù)中的兩個(gè)形參,交換兩個(gè)形參的值。函數(shù)中的兩個(gè)形參,交換兩個(gè)形參的值。單向值傳遞單向值傳遞2005年3月13 當(dāng)函數(shù)被調(diào)用時(shí)才給形參分配內(nèi)存單元。調(diào)用結(jié)當(dāng)函數(shù)被調(diào)用時(shí)才給形參分配內(nèi)存單元。調(diào)用結(jié)束,所占內(nèi)存被釋放。束,所占內(nèi)存被釋放。 實(shí)參可以是常量、變量或表達(dá)式,但要求它們有實(shí)參可以是常量、變量或表達(dá)式,但要求它們有確定的值。確定的值。 實(shí)參與形參類型要一致,字符型與整型可以兼容實(shí)參與形參類型要一致,字符型與
6、整型可以兼容。 實(shí)參與形參的個(gè)數(shù)必須相等。在函數(shù)調(diào)用時(shí),實(shí)實(shí)參與形參的個(gè)數(shù)必須相等。在函數(shù)調(diào)用時(shí),實(shí)參的值賦給與之相對(duì)應(yīng)的形參。參的值賦給與之相對(duì)應(yīng)的形參?!皢蜗蛑祩鬟f單向值傳遞”。2005年3月142005年3月152005年3月162005年3月17思考:思考:若要得到單精度實(shí)型的圓面積,程序應(yīng)如何修改若要得到單精度實(shí)型的圓面積,程序應(yīng)如何修改程序運(yùn)行情況如下:程序運(yùn)行情況如下:2 122005年3月18void swap(int x, int y) main( ) swap(a,b); 2005年3月192005年3月202005年3月21圖圖 7.2 驗(yàn)證哥德巴赫猜想驗(yàn)證哥德巴赫猜想輸
7、入輸入n的值的值 for (a=6; a=n; a+=2) for(b=3;b=a/2;b+=2) b是素?cái)?shù)是素?cái)?shù) ? T F c=a-b c是素?cái)?shù)?是素?cái)?shù)? T F 輸出:輸出: a、b、c的值的值 break;2005年3月22/* 窮舉法判斷素?cái)?shù)窮舉法判斷素?cái)?shù) */int prime(int n) int i; for (i=2; i0)n2005年3月37程序運(yùn)行情況如下:程序運(yùn)行情況如下:2,10 10242005年3月382005年3月392005年3月402005年3月412005年3月42程序運(yùn)行情況如下:程序運(yùn)行情況如下:15613 15613=(36375)82005年3月
8、432005年3月442005年3月45全局變量全局變量():在):在函數(shù)外部函數(shù)外部定義的定義的變量。變量。作用域作用域:。如在其作用域內(nèi)的函數(shù)或分程序中定。如在其作用域內(nèi)的函數(shù)或分程序中定義了同名局部變量,則在局部變量的作用域義了同名局部變量,則在局部變量的作用域內(nèi),同名全局變量暫時(shí)不起作用。內(nèi),同名全局變量暫時(shí)不起作用?!纠?.20】全局變量和局部變量的作用域。全局變量和局部變量的作用域。2005年3月462005年3月472005年3月48變量的屬性2005年3月49 1自動(dòng)變量(自動(dòng)變量(auto類別)類別) 局部變量可以定義為自動(dòng)變量。局部變量可以定義為自動(dòng)變量。main()in
9、t x,y; main()auto int x,y; 等價(jià)等價(jià)可省2005年3月502005年3月51全局靜態(tài)變量(或稱外部靜態(tài)變量)全局靜態(tài)變量(或稱外部靜態(tài)變量)static int a; main( ) float x,y; f( ) static int b=1; 全局靜態(tài)變量全局靜態(tài)變量不能省2005年3月522005年3月53int c;static int a; main( ) float ; char s;f( ) static int b=1; 全局靜態(tài)變量全局靜態(tài)變量外部變量外部變量2005年3月54問題:問題:全局靜全局靜態(tài)變量態(tài)變量的作用的作用域可以域可以擴(kuò)展到擴(kuò)展到本
10、程序本程序的其它的其它文件嗎?文件嗎?2005年3月55注意:注意:外部變量聲明用關(guān)鍵字外部變量聲明用關(guān)鍵字externextern,而外部變量的,而外部變量的定義不能用定義不能用externextern,只能隱式定義。,只能隱式定義。定義外部變量時(shí),系統(tǒng)要給變量分配存儲(chǔ)空間,定義外部變量時(shí),系統(tǒng)要給變量分配存儲(chǔ)空間,而對(duì)外部變量聲明時(shí),系統(tǒng)不分配存儲(chǔ)空間,而對(duì)外部變量聲明時(shí),系統(tǒng)不分配存儲(chǔ)空間,只是讓編譯系統(tǒng)知道該變量是一個(gè)已經(jīng)定義過只是讓編譯系統(tǒng)知道該變量是一個(gè)已經(jīng)定義過的外部變量,與函數(shù)聲明的作用類似。的外部變量,與函數(shù)聲明的作用類似。2005年3月562005年3月572005年3月5
11、8【例例7.26】寄存器變量的使用。寄存器變量的使用。main( ) long int sum=0; register int i; for (i=1; i(Y)?(X):(Y)2005年3月68分兩次替換:分兩次替換:將宏名將宏名 替換成字符串替換成字符串 。用實(shí)參用實(shí)參a替換形參替換形參x,實(shí)參,實(shí)參b替換形參替換形參y。程序中的兩個(gè)程序中的兩個(gè)printf語句被展開為:語句被展開為:printf(%dn, (a)(b)?(a):(b); printf(%dn, (a+m)(b+n)?( a+m):( b+n);2005年3月69分兩次替換:分兩次替換: 用用 替換。替換。用用1+a+b替換替換x。printf語句被展開為:語句被展開為:printf(%dn, 1+a+b*(1+a+b-1);特別注意:
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度純電動(dòng)汽車租賃與市場拓展合同4篇
- 2025年度代購服務(wù)與品牌形象塑造合同4篇
- 2024育兒嫂全面育兒與家庭生活管理服務(wù)合同6篇
- 二零二五年度全域旅游目的地開發(fā)運(yùn)營合同4篇
- 2025年度廠房租賃安全協(xié)議書范本(消防安全管理)4篇
- 2025年旋挖鉆孔灌施工合同書(新型灌漿材料研發(fā)合作)3篇
- 二零二五版婚內(nèi)財(cái)產(chǎn)管理與婚姻家庭和諧維護(hù)協(xié)議范本3篇
- 二零二五年度星級(jí)酒店廚師長聘請(qǐng)與客戶滿意度提升合同4篇
- 2025年磷礦石長途運(yùn)輸及倉儲(chǔ)一體化服務(wù)合同
- 二零二五版敬業(yè)員工團(tuán)隊(duì)協(xié)作能力提升合同模板2篇
- 中國華能集團(tuán)公司風(fēng)力發(fā)電場運(yùn)行導(dǎo)則(馬晉輝20231.1.13)
- 中考語文非連續(xù)性文本閱讀10篇專項(xiàng)練習(xí)及答案
- 2022-2023學(xué)年度六年級(jí)數(shù)學(xué)(上冊(cè))寒假作業(yè)【每日一練】
- 法人不承擔(dān)責(zé)任協(xié)議書(3篇)
- 電工工具報(bào)價(jià)單
- 反歧視程序文件
- 油氣藏類型、典型的相圖特征和識(shí)別實(shí)例
- 流體靜力學(xué)課件
- 顧客忠誠度論文
- 實(shí)驗(yàn)室安全檢查自查表
- 證券公司績效考核管理辦法
評(píng)論
0/150
提交評(píng)論