版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、三三. C . C 函數(shù)函數(shù)(hnsh)(hnsh)的調(diào)用的調(diào)用上一頁下一頁暫 停重 放系統(tǒng)(xtng)返 回休息(xi xi)1.1.函數(shù)調(diào)用的形式函數(shù)調(diào)用的形式int max(int x,int y);void main( )int a1,a2,a; scanf(%d,%d”,&a1,&a2); a=max(a1,a2); printf(“最大值:%d”,a);int max(int x,int y)int z; if(xy) z=x; else z=y; return z;2.2.對(duì)被調(diào)函數(shù)的說明對(duì)被調(diào)函數(shù)的說明 同變量一樣,函數(shù)的調(diào)用也應(yīng)該遵循同變量一樣,函數(shù)的調(diào)用也應(yīng)
2、該遵循“先說明,后使用先說明,后使用”的原則。函數(shù)的說明的原則。函數(shù)的說明形式就是寫出函數(shù)的函數(shù)頭,在其后加上形式就是寫出函數(shù)的函數(shù)頭,在其后加上一個(gè)分號(hào)。一個(gè)分號(hào)。(A A) 函數(shù)名(參數(shù)表);函數(shù)名(參數(shù)表);(B B) 變量變量= =函數(shù)表達(dá)式函數(shù)表達(dá)式 ;說明格式()說明格式()調(diào)用練習(xí)3. 3. 說明位置說明位置: : 使用之前使用之前第1頁/共14頁第一頁,共15頁。上一頁下一頁暫 停重 放系統(tǒng)(xtng)返 回休息(xi xi)四、四、C C函數(shù)函數(shù)(hnsh)(hnsh)的傳值調(diào)用的傳值調(diào)用 一般情況下,調(diào)用函數(shù)時(shí),主調(diào)函數(shù)與被調(diào)函數(shù)之間有數(shù)據(jù)傳遞關(guān)系。一般情況下,調(diào)用函數(shù)時(shí),
3、主調(diào)函數(shù)與被調(diào)函數(shù)之間有數(shù)據(jù)傳遞關(guān)系。主調(diào)函數(shù)向被調(diào)函數(shù)傳遞數(shù)據(jù)是通過形式傳數(shù),而被調(diào)函數(shù)向主調(diào)函數(shù)主調(diào)函數(shù)向被調(diào)函數(shù)傳遞數(shù)據(jù)是通過形式傳數(shù),而被調(diào)函數(shù)向主調(diào)函數(shù)傳遞數(shù)據(jù)是通過傳遞數(shù)據(jù)是通過returnreturn語句實(shí)現(xiàn)的。語句實(shí)現(xiàn)的。傳值調(diào)用的方式是:傳值調(diào)用的方式是:1. 形參與實(shí)參各占一個(gè)獨(dú)立的存儲(chǔ)空間。相互之間互不影響。2. 形參的存儲(chǔ)空間是在函數(shù)調(diào)用時(shí)才分配的。調(diào)用時(shí),系統(tǒng)為形參開辟一個(gè)臨時(shí)空間,然后將實(shí)參的值對(duì)應(yīng)地傳遞給形參,這時(shí)形參就得到了實(shí)參的值。3. 函數(shù)返回時(shí),臨時(shí)存儲(chǔ)單元被撤銷。4. 函數(shù)中對(duì)形參變量的操作不會(huì)影響到調(diào)用函數(shù)中的實(shí)參變量,即形參的值不能傳回給實(shí)參。這種傳
4、值方法稱為傳值調(diào)用。下面我們通過調(diào)試一個(gè)程序說明這種傳值方式:調(diào)試調(diào)試練習(xí)練習(xí)第2頁/共14頁第二頁,共15頁。上一頁下一頁暫 停重 放系統(tǒng)(xtng)返 回休息(xi xi)五、五、C C函數(shù)的地址函數(shù)的地址(dzh)(dzh)傳送調(diào)傳送調(diào)用用 傳值調(diào)用方式傳值調(diào)用方式, ,函數(shù)只有一個(gè)入口函數(shù)只有一個(gè)入口實(shí)參傳值給形參,一個(gè)出實(shí)參傳值給形參,一個(gè)出口口函數(shù)返回值。函數(shù)受外界的影響減小到最低限度,從而保證函數(shù)返回值。函數(shù)受外界的影響減小到最低限度,從而保證了函數(shù)的獨(dú)立性。但這種傳值方式只能通過了函數(shù)的獨(dú)立性。但這種傳值方式只能通過returnreturn語句返回一個(gè)語句返回一個(gè)函數(shù)值。若想從
5、被調(diào)函數(shù)獲得多個(gè)數(shù)據(jù),應(yīng)該怎么辦呢?函數(shù)值。若想從被調(diào)函數(shù)獲得多個(gè)數(shù)據(jù),應(yīng)該怎么辦呢?地址傳送方式地址傳送方式1. 1. 什么是地址傳送什么是地址傳送 所謂地址傳送是從主調(diào)函數(shù)向被調(diào)函數(shù)傳遞數(shù)據(jù)時(shí),不是將實(shí)型所謂地址傳送是從主調(diào)函數(shù)向被調(diào)函數(shù)傳遞數(shù)據(jù)時(shí),不是將實(shí)型數(shù)據(jù)的值傳遞給形式參數(shù),而是把變量的地址傳給形式參數(shù),使形數(shù)據(jù)的值傳遞給形式參數(shù),而是把變量的地址傳給形式參數(shù),使形式參數(shù)與實(shí)際參數(shù)共處同一個(gè)存儲(chǔ)單元。這樣該存儲(chǔ)單元中的任何式參數(shù)與實(shí)際參數(shù)共處同一個(gè)存儲(chǔ)單元。這樣該存儲(chǔ)單元中的任何變化既會(huì)影響形式參數(shù),又會(huì)影響實(shí)際參數(shù)。變化既會(huì)影響形式參數(shù),又會(huì)影響實(shí)際參數(shù)。第3頁/共14頁第三頁,
6、共15頁。上一頁下一頁暫 停重 放返 回休息(xi xi)2. 2. 地址地址(dzh)(dzh)傳送的描述(以數(shù)組的傳遞為例)傳送的描述(以數(shù)組的傳遞為例)main() int a3=8,9,10; printf(“na0=%d,a1=%d,a2=%d”,a0,a1,a2); dy(a); printf(“na0=%d,a1=%d,a2=%d”,a0,a1,a2); void dy(int x3) x0=4; x1=5; x2=6; a0a1a2x0 x1x28910456屏幕顯示:a0=8 , a1=9, a2=10a0=4 , a1=5, a2=6ax第4頁/共14頁第四頁,共15頁。m
7、ain() . num1( ); . .num1( ) . num2( ); . . num2( ) . . 上一頁下一頁暫 停重 放系統(tǒng)(xtng)返 回休息(xi xi)六、函數(shù)六、函數(shù)(hnsh)(hnsh)的嵌套調(diào)用的嵌套調(diào)用 C C函數(shù)不允許嵌套定義,但允許嵌套調(diào)用。函數(shù)不允許嵌套定義,但允許嵌套調(diào)用。main() . num1( ); .num1( ) . num2( ); . num2( ) . 函數(shù)的嵌套調(diào)用是指在調(diào)用一個(gè)函數(shù)的過程中,該函數(shù)又調(diào)用另一函數(shù)的嵌套調(diào)用是指在調(diào)用一個(gè)函數(shù)的過程中,該函數(shù)又調(diào)用另一個(gè)函數(shù)。個(gè)函數(shù)。123456789第5頁/共14頁第五頁,共15頁。上
8、一頁下一頁暫 停重 放系統(tǒng)(xtng)返 回休息(xi xi)七、函數(shù)七、函數(shù)(hnsh)(hnsh)的遞歸調(diào)用的遞歸調(diào)用 函數(shù)的遞歸調(diào)用是指一個(gè)函數(shù)在程序運(yùn)行過程中直接或間接地調(diào)函數(shù)的遞歸調(diào)用是指一個(gè)函數(shù)在程序運(yùn)行過程中直接或間接地調(diào)用自己。用自己。直接遞歸直接遞歸間接遞歸間接遞歸 遞歸調(diào)用的優(yōu)點(diǎn)是使程序簡(jiǎn)潔、緊湊。但是,我們?cè)谑褂眠f歸調(diào)用時(shí),遞歸調(diào)用的優(yōu)點(diǎn)是使程序簡(jiǎn)潔、緊湊。但是,我們?cè)谑褂眠f歸調(diào)用時(shí),一定要注意避免無窮遞歸,這就需要設(shè)定一個(gè)條件,只有在滿足條件時(shí)才進(jìn)行一定要注意避免無窮遞歸,這就需要設(shè)定一個(gè)條件,只有在滿足條件時(shí)才進(jìn)行遞歸調(diào)用,否則不再繼續(xù)。遞歸調(diào)用,否則不再繼續(xù)。num
9、1( ) . num1( ); . num1( ) . num2( ); . num2( ) . num1( ); . 第6頁/共14頁第六頁,共15頁。上一頁下一頁暫 停重 放系統(tǒng)(xtng)返 回休息(xi xi)八、程序八、程序(chngx)(chngx)舉例舉例 判斷一個(gè)數(shù)是不是素?cái)?shù)判斷一個(gè)數(shù)是不是素?cái)?shù) 分析:素?cái)?shù)即除其本身及分析:素?cái)?shù)即除其本身及1 1以外不能被其他數(shù)整除的數(shù)以外不能被其他數(shù)整除的數(shù) 用用2 2n-1n-1的數(shù)依次除的數(shù)依次除n n,如果有一個(gè)能整除就不是素?cái)?shù),如果有一個(gè)能整除就不是素?cái)?shù) 實(shí)際上,只要實(shí)際上,只要2 2 就可以了就可以了a int isprime(in
10、t a) isprime(int a) int i; int i; for(i=2;i=sqrt(a);i+) for(i=2;i=sqrt(a);i+) if (a%i=0) return 0; if (a%i=0) return 0; return 1; return 1; 第7頁/共14頁第七頁,共15頁。上一頁下一頁暫 停重 放系統(tǒng)(xtng)返 回休息(xi xi) 驗(yàn)證任意一個(gè)驗(yàn)證任意一個(gè)(y (y )偶數(shù)是兩個(gè)素?cái)?shù)的和偶數(shù)是兩個(gè)素?cái)?shù)的和 分析:設(shè)這個(gè)數(shù)為分析:設(shè)這個(gè)數(shù)為x x 將它分成兩個(gè)數(shù)將它分成兩個(gè)數(shù) i, x-ii, x-i除的數(shù)除的數(shù) i i從從1 1變化到變化到i/2i
11、/2,逐一驗(yàn)證即可,逐一驗(yàn)證即可void even(int x)int i; for (i=2;i=x/2;i+) if (isprime(i) if(isprime(x-i) printf(“%d,%d”,i,x-i); int isprime(int a) isprime(int a) int i; int i; for(i=2;i=sqrt(a);i+) for(i=2;i=sqrt(a);i+) if (a%i=0) return 0; if (a%i=0) return 0; return 1; return 1; 第8頁/共14頁第八頁,共15頁。上一頁下一頁暫 停重 放系統(tǒng)(xt
12、ng)返 回休息(xi xi) 分析分析(fnx)(fnx):可用循環(huán)求累加和:可用循環(huán)求累加和 其中其中x x由由0 0變化到變化到n,n,以次加以次加1 1#define f(x)=((x)*(x)+1)或f(int x)return x*x+1;sum(int x)int x,s=0); for(x=0;x=n;x+) s+=f(x); return s; 求求1)()(20 xxfxfn其中第9頁/共14頁第九頁,共15頁。上一頁下一頁暫 停重 放系統(tǒng)(xtng)返 回休息(xi xi) 例如例如(lr)(lr)梯形法求半徑為梯形法求半徑為r r的圓面積的圓面積其中h為每一步的步長(zhǎng),h
13、=(b-a)/n n為分的段數(shù)11)*(2/)()(*nihiafbfafhs#define f(x)=(r*r-x*x)sum(int x)int x,s=0); for(x=0;x=a & ch=z) ch=ch-32; return ch;main()char c; while (c=getchar()!=) c=myupper; putchar(c); 第11頁/共14頁第十一頁,共15頁。上一頁下一頁暫 停重 放系統(tǒng)(xtng)返 回休息(xi xi) 編寫函數(shù)統(tǒng)計(jì)輸入字符編寫函數(shù)統(tǒng)計(jì)輸入字符(z f)(z f)的個(gè)數(shù),要求按的個(gè)數(shù),要求按ZZ結(jié)束結(jié)束分析: 函數(shù)值類型: 整
14、型或長(zhǎng)整型 結(jié)束方法 遇Zint count()int n=0; while (getchar()!=EOF) n+; return ch;main()int n; n=count(); printf(“%d”,n);第12頁/共14頁第十二頁,共15頁。上一頁下一頁暫 停重 放系統(tǒng)(xtng)返 回休息(xi xi) 編寫編寫(binxi)(binxi)函數(shù)統(tǒng)計(jì)輸入輸入文本中單詞的個(gè)數(shù)函數(shù)統(tǒng)計(jì)輸入輸入文本中單詞的個(gè)數(shù)分析: 單詞以空格、換行符、跳格符分開 但并非遇到這幾個(gè)符號(hào)就是一個(gè)單詞(有可能連續(xù)多個(gè))countword()int c,nw,state;int c,nw,state; st
15、ate=0; nw=0; state=0; nw=0; while (c=getchar()!=EOF) while (c=getchar()!=EOF) if (c= if (c=|c=|c=nn|c=|c=tt) state=0;) state=0; else if(state=0) else if(state=0) state=1; nw+; state=1; nw+; return nw;return nw; main()int n; n=countword(); printf(“%d”,n);第13頁/共14頁第十三頁,共15頁。感謝您的觀看(gunkn)!第14頁/共14頁第十四頁,共15頁。NoImag
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑工程承包合同(2篇)
- 2025年度個(gè)人股權(quán)變更及分紅權(quán)轉(zhuǎn)讓合同4篇
- 2025年度個(gè)人信托產(chǎn)品購(gòu)買合同樣本3篇
- 二零二五版人工智能技術(shù)研發(fā)公司并購(gòu)合同3篇
- 親情記敘文800字6篇
- 二零二五年度養(yǎng)老產(chǎn)業(yè)用地租賃協(xié)議4篇
- 高級(jí)數(shù)據(jù)分析課程設(shè)計(jì)
- 2024年育嬰員(高級(jí))理論考試題庫(kù)附答案(培訓(xùn)復(fù)習(xí)用)
- 二零二五年度苗圃苗木移植與景觀設(shè)計(jì)實(shí)施合同4篇
- 課程設(shè)計(jì)答疑記錄表
- 2025年湖北武漢工程大學(xué)招聘6人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 【數(shù) 學(xué)】2024-2025學(xué)年北師大版數(shù)學(xué)七年級(jí)上冊(cè)期末能力提升卷
- GB/T 26846-2024電動(dòng)自行車用電動(dòng)機(jī)和控制器的引出線及接插件
- 遼寧省沈陽市皇姑區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期末考試語文試題(含答案)
- 2024年國(guó)家工作人員學(xué)法用法考試題庫(kù)及參考答案
- 妊娠咳嗽的臨床特征
- 國(guó)家公務(wù)員考試(面試)試題及解答參考(2024年)
- 《阻燃材料與技術(shù)》課件 第6講 阻燃纖維及織物
- 2024年金融理財(cái)-擔(dān)保公司考試近5年真題附答案
- 泰山產(chǎn)業(yè)領(lǐng)軍人才申報(bào)書
- 高中語文古代文學(xué)課件:先秦文學(xué)
評(píng)論
0/150
提交評(píng)論