版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一季:C語(yǔ)言程序設(shè)計(jì)與構(gòu)造化編程本章內(nèi)容掌握函數(shù)概念及函數(shù)應(yīng)用會(huì)應(yīng)用C語(yǔ)言的內(nèi)置函數(shù)純熟使用C語(yǔ)言中的自定義函數(shù)理解函數(shù)參數(shù)及參數(shù)的傳遞方式理解指針的概念 根本掌握指針的用法理解指針和數(shù)組的關(guān)系根本掌握指針作為函數(shù)參數(shù)的用法 為什么要使用函數(shù)/主函數(shù)void main void main int m_num, m_result;int m_num, m_result;printfprintf 請(qǐng)輸入您要求階乘的數(shù): ; ;scanfscanf%d, &m_num%d, &m_num; ;m_result = qiuJieChengm_result = qiuJieChengm
2、_numm_num; ;printfprintf%d%d的階乘為:%dn, m_num, %dn, m_num, m_resultm_result; ; /求num的階乘函數(shù)int qiuJieCheng int numint i = 1, result = 1;whilei = numresult = result * i;i = i + 1;return result;函數(shù)機(jī)制的優(yōu)點(diǎn)使程序變得更簡(jiǎn)短而明晰 有利于程序維護(hù)可以進(jìn)步程序開(kāi)發(fā)的效率 進(jìn)步了代碼的重用性 C語(yǔ)言中的函數(shù)類型 內(nèi)置函數(shù):由語(yǔ)言系統(tǒng)提供;用戶無(wú)須定義,也不必在程序中作類型說(shuō)明;只需在程序前包含有該函數(shù)定義的頭文件; 自
3、定義函數(shù):用戶在程序中根據(jù)需要而編寫的函數(shù);常用內(nèi)置函數(shù)內(nèi)置函數(shù)頭文件用處double sqrtdouble xmath.h計(jì)算x的平方根double powdouble x, double y計(jì)算x的y次冪double ceildouble x求不小于x的最小整數(shù),并以double形式顯示double floordouble x求不大于x的最大整數(shù),并以double形式顯示int toupperint xctype.h假如x為小寫字母,那么返回對(duì)應(yīng)的大寫字母int tolowerint x假如x為大寫字母,那么返回對(duì)應(yīng)的小寫字母int randstdlib.h產(chǎn)生一個(gè)隨機(jī)數(shù)void exit
4、int retval終止程序問(wèn)題描繪:求自然數(shù)110的平方根和立方。 內(nèi)置函數(shù)sqrt 和pow 例如2664#include #include void main int x=1; double squareroot,power; whilex = 10 squareroot=sqrtx;power=powx,3;printf %d的平方根:%3.2ft%d的立方:%5.0f n, x,squareroot,x,power;x+; 1的平方根: 1.00 1的立方: 1 2的平方根: 1.41 2的立方: 8 3的平方根: 1.73 3的立方: 27 4的平方根: 2.00 4的立方: 64
5、 5的平方根: 2.24 5的立方: 125 6的平方根: 2.45 6的立方: 216 7的平方根: 2.65 7的立方: 343 8的平方根: 2.83 8的立方: 512 9的平方根: 3.00 9的立方: 72910的平方根: 3.16 10的立方: 1000Press any key to continue內(nèi)置函數(shù)ceil和floor例如2664#include #include void main printf=floor=; printfn floor99.1 = %f n,floor99.1; printf floor-99.1 = %fn,floor-99.1; printf
6、 floor99.9 = %fn,floor99.9; printf floor-99.9 = %fn,floor-99.9; printfn=ceil=; printfn ceil99.1 = %fn,ceil99.1; printf ceil-99.1 = %fn,ceil-99.1; printf ceil99.9 = %fn,ceil99.9; printf ceil-99.9 = %fn,ceil-99.9; =floor= floor99.1 = 99.000000 floor-99.1 = -100.000000 floor99.9 = 99.000000 floor-99.9
7、= -100.000000=ceil= ceil99.1 = 100.000000 ceil-99.1 = -99.000000 ceil99.9 = 100.000000 ceil-99.9 = -99.000000Press any key to continuetoupper和tolower例如2664#include#includevoid main char msg1,msg2,to_upper,to_lower;printf請(qǐng)輸入一個(gè)小寫字母:;msg1=getchar;to_upper=touppermsg1;printf轉(zhuǎn)換為大寫:%cn,to_upper;printf請(qǐng)輸入一
8、個(gè)大寫字母:;fflushstdin;msg2=getchar;to_lower=tolowermsg2;printf轉(zhuǎn)換為小寫:%cn,to_lower; 請(qǐng)輸入一個(gè)小寫字母:d轉(zhuǎn)換為大寫:D請(qǐng)輸入一個(gè)大寫字母:E轉(zhuǎn)換為小寫:ePress any key to continue內(nèi)置函數(shù)rand例如2664#include #include /#includevoid main int i; printf產(chǎn)生 10 個(gè) 0 到 99 之間的隨機(jī)數(shù)序列:nn; /srandunsignedtimeNULL; fori=0; iy?x:y; return m;該函數(shù)名為displayDiscoun
9、t,無(wú)參數(shù),使用void說(shuō)明無(wú)返回值,函數(shù)體內(nèi)的語(yǔ)句用于根據(jù)產(chǎn)品的價(jià)格求折扣后的價(jià)格。該函數(shù)名為max,它有兩個(gè)double類型的參數(shù),返回值為double類型。在函數(shù)體內(nèi)有三條語(yǔ)句實(shí)現(xiàn)了求兩個(gè)數(shù)中較大的數(shù),并將它返回。函數(shù)原型說(shuō)明#include float count int, int;void main . . . . . .float countint x,int y . . .函數(shù)原型說(shuō)明在形式上與函數(shù)頭部類似,最后加一個(gè)分號(hào)。原型說(shuō)明中參數(shù)表里的參數(shù)名可以不寫只寫參數(shù)類型函數(shù)調(diào)用形式 通過(guò)在程序中使用函數(shù)名稱,可以執(zhí)行函數(shù)中包含的語(yǔ)句,這稱為調(diào)用函數(shù) 函數(shù)之間允許互相調(diào)用,也允許嵌
10、套調(diào)用 函數(shù)還可以自己調(diào)用自己,稱為遞歸調(diào)用函數(shù)調(diào)用#includevoid main:set_discount;displayDiscount;:float set_discount : :float displayDiscount : :void reverse : :#includevoid main:palindrome;:void palindrome : reverse; :函數(shù)嵌套調(diào)用 從一個(gè)函數(shù)調(diào)用另一個(gè)函數(shù)稱為函數(shù)的嵌套調(diào)用 /* 此函數(shù)用于計(jì)算 a 的階乘 */int factorialint a if a = 1 return 1; else a = a * factor
11、iala-1; return a; 函數(shù)遞歸調(diào)用 在一個(gè)函數(shù)體內(nèi)調(diào)用自身稱為函數(shù)的遞歸調(diào)用 函數(shù)調(diào)用例如#include#includevoid AreaOfRectvoid AreaOfRect; ;void AreaOfTrianglevoid AreaOfTriangle; ;void AreaOfRoundvoid AreaOfRound; ;void mainvoid main int select;int select;printfprintf 0 0、退出n 1n 1、長(zhǎng)方形n 2n 2、三角形n 3n 3、圓形nn; ;printfprintf 請(qǐng)選擇功能: ; ;scanfs
12、canf%d,&select%d,&select; ;ififselect = 0select = 0 return; return;switchswitchselectselect case 1 : case 1 : AreaOfRectAreaOfRect; ; break; / break; /長(zhǎng)方形 case 2 : case 2 : AreaOfTriangleAreaOfTriangle; ; break; / break; /三角形 case 3 : case 3 : AreaOfRoundAreaOfRound; ; break; / break; /圓形 de
13、fault : printfdefault : printf 輸入有誤,請(qǐng)?jiān)?0 04 4 之間選擇。nn; ; void AreaOfRectvoid AreaOfRect int x,y; int x,y; printf printf 請(qǐng)輸入長(zhǎng)方形的長(zhǎng):; ; scanf scanf%d,&x%d,&x; ; printf printf 請(qǐng)輸入長(zhǎng)方形的寬:; ; scanf scanf%d,&y%d,&y; ; printf printf 面積為:%dn,%dn,x x * * y y; ; void AreaOfTrianglevoid AreaOfTri
14、angle int x,y; int x,y; printf printf 請(qǐng)輸入三角形的底:; ; scanf scanf%d,&x%d,&x; ; printf printf 請(qǐng)輸入三角形的高:; ; scanf scanf%d,&y%d,&y; ; printf printf 面積為:%dn,%dn,x x * * y y/2/2; ; void AreaOfRoundvoid AreaOfRound int r; int r; printf printf 請(qǐng)輸入圓形的半徑:; ; scanf scanf%d,&r%d,&r; ; prin
15、tf printf 面積為:%dn,3.14%dn,3.14* *r r* *r r; ; printf%5dn, a;printf%5dn, b;printf%5dn, c;函數(shù)的參數(shù) 函數(shù)有時(shí)要求用戶傳入數(shù)據(jù),這些數(shù)據(jù)是函數(shù)的參數(shù) 函數(shù)的參數(shù)分為形式參數(shù)和實(shí)際參數(shù),函數(shù)定義中聲明的參數(shù)為形式參數(shù),函數(shù)調(diào)用時(shí)傳入的參數(shù)為實(shí)際參數(shù)函數(shù)形參和實(shí)參void main . . . . . . display 10, 20.5 ;display int num, float fraction . . . . . . 實(shí)際參數(shù)函數(shù)調(diào)用形式參數(shù)函數(shù)調(diào)用時(shí)傳參的方式 值傳遞將實(shí)參拷貝一份賦值給形參 址傳遞讓
16、形參和實(shí)參共享一片內(nèi)存空間,即內(nèi)存地址一樣函數(shù)的返回值 函數(shù)可以有返回值也可以沒(méi)有返回值 當(dāng)函數(shù)有返回值的時(shí)候其返回值的類型在函數(shù)定義時(shí)指定,在函數(shù)體內(nèi)部由return語(yǔ)句進(jìn)展返回操作 當(dāng)函數(shù)沒(méi)有返回值時(shí),用void關(guān)鍵字標(biāo)識(shí)變量的作用域什么是作用域 海洋動(dòng)物 陸地動(dòng)物 兩棲動(dòng)物變量的作用域 變量的有效范圍 變量的作用域決定了變量在某個(gè)程序塊中的可訪問(wèn)性什么是指針指針就是內(nèi)存地址162000a20005000 p_a兩個(gè)關(guān)鍵的運(yùn)算符 取地址符int i = 10;&i; 以上代碼片段會(huì)得到變量i的地址指針 指針運(yùn)算符間接運(yùn)算符int *p_i;p_i = &i;*p_i; 以上
17、代碼將變量i的地址存放在指針變量p_i中,即讓指針變p_i指向變量i。最后一句使用了指針運(yùn)算符,*p_i其實(shí)就是變量i指針變量和變量的指針用來(lái)存放地址的變量稱為指針變量變量的指針就是變量的地址指針變量的定義與引用int i = 10;int *p_i;p_i = &i;*p_i = 20;指針的賦值運(yùn)算指針變量之間可以進(jìn)展賦值運(yùn)算,指針變量的賦值結(jié)果為讓兩個(gè)指針變量指向同一片內(nèi)存空間指針的算術(shù)運(yùn)算指針變量也可以像一般的變量一樣進(jìn)展+運(yùn)算或加上一個(gè)整數(shù)的運(yùn)算,但是指針的算術(shù)運(yùn)算和普通算術(shù)運(yùn)算的含義不同,指針的運(yùn)算是讓指針變量的值加上一個(gè)T類型變量所占用的內(nèi)存大小的值,即使指針挪動(dòng)了一個(gè)T型變量的位置,指針的算術(shù)運(yùn)算常用來(lái)操作數(shù)組元素指針的關(guān)系運(yùn)算指針的關(guān)系運(yùn)算一般只做“=的運(yùn)算,判斷兩個(gè)指針是否指向同一片內(nèi)存空間指針變量作為函數(shù)參數(shù)函數(shù)的參數(shù)不僅可以是整型,實(shí)型等數(shù)據(jù)類型,指針類型也能作為函數(shù)的參數(shù)指針變量作為函數(shù)參數(shù),調(diào)用時(shí)是將實(shí)參的地址
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版影視制作與發(fā)行合同
- 美業(yè)門店培訓(xùn)課程設(shè)計(jì)
- 英語(yǔ)加國(guó)學(xué)課程設(shè)計(jì)理念
- 感覺(jué)統(tǒng)合課程設(shè)計(jì)大班
- 油畫初學(xué)者 課程設(shè)計(jì)
- 2024政法干警考試復(fù)習(xí)資料
- 系統(tǒng)動(dòng)力學(xué)課程設(shè)計(jì)總結(jié)
- 深圳市政府投資交通建設(shè)項(xiàng)目管理模式-第二冊(cè)
- 大班社會(huì)簽到課程設(shè)計(jì)
- 2024年羽絨家紡銷售崗位職責(zé)(共8篇)
- 湖南省部分學(xué)校2023-2024學(xué)年高二上學(xué)期期末聯(lián)合考試政治試卷 含解析
- 中學(xué)生心理健康教育主題班會(huì)課件
- 電大《人力資源管理》期末復(fù)習(xí)綜合練習(xí)題答案(2024年)
- 西師版數(shù)學(xué)(四上題)2023-2024學(xué)年度小學(xué)學(xué)業(yè)質(zhì)量監(jiān)測(cè)(試卷)
- 2022-2023學(xué)年廣東省廣州市白云區(qū)華南師大附屬太和實(shí)驗(yàn)學(xué)校九年級(jí)(上)期末數(shù)學(xué)試卷(含答案)
- 東方電影學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 人教版四年級(jí)上冊(cè)數(shù)學(xué)數(shù)學(xué)復(fù)習(xí)資料
- 安徽省安慶市迎江區(qū)2023-2024學(xué)年四年級(jí)上學(xué)期期末數(shù)學(xué)試卷
- SB/T 10439-2007醬腌菜
- 肺炎試題及答案
- 現(xiàn)代CMOS工藝基本流程
評(píng)論
0/150
提交評(píng)論