C语言程式设计-函数.ppt

上传人:wuy****n92 文档编号:70107027 上传时间:2023-01-16 格式:PPT 页数:28 大小:252.49KB
返回 下载 相关 举报
C语言程式设计-函数.ppt_第1页
第1页 / 共28页
C语言程式设计-函数.ppt_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《C语言程式设计-函数.ppt》由会员分享,可在线阅读,更多相关《C语言程式设计-函数.ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C語言程式設計-函數本章學習重點7-1函數的概念7-2函數的基本形式7-3函數的呼叫7-4遞迴函數7-5常用的數學函數7-6儲存類別函數的概念n函數的優點n分工合作n較好的可讀性n便於修改、除錯n提高撰寫程式的效率n函數可分成兩種型態n函數庫中原先就有的現成函數n使用者依程式需求設計的函數函數的基本形式n函數定義的語法函數定義的語法傳回值型態函數名稱(參數傳遞)參數傳遞型態函數主體範例Ch7_2Ch7_2 兩數相加的函數兩數相加的函數1#include2voidmain()34 inta=3,b=2,c;5intsum(int,int);6c=sum(a,b);7printf(sum(%d,%

2、d)=%dn,a,b,c);89intsum(x,y)10intx,y;1112intz;13 z=x+y;14 return(z);15n程式執行結果n說明sum(3,2)=5範例Ch7_2主程式副程式3322abxy55cz函數呼叫的語法n語法函數名稱(參數);n說明n函數如果不需要呼叫參數,則括號內的參數可以省略。n若參數包含一個以上時,需以逗號隔開。n呼叫與被呼叫的函數其參數是相對應的,且型態要一致。函數的傳回值n函數的傳回值,有以下幾種情況:函數的傳回值,有以下幾種情況:n函數沒有傳回值,傳回值型態為voidn函數傳回值為整數(int)時,可以省略n函數有傳回值時,可以在傳回值上做運

3、算n函數的傳回值型態應該和return中的型態要一樣n使用return可以立即結束函數的執行Ch7_3 計算圓面積的函數計算圓面積的函數1#include2doublearea(r)3floatr;45 doubles;6s=r*r;7return(s);89voidmain()1011 floatr;12doublea;範例Ch7_3n程式執行結果Pleaseinputthecircler:5Thecircleareais78.54000013printf(Pleaseinputthecircler:n);1414scanf(%f,&r);15a=area(r)*3.1416;16print

4、f(Thecircleareais%fn,a);17 範例Ch7_3範例Ch7_4Ch7_4 函數求絕對值與平方值函數求絕對值與平方值1#include2voidmain()34intabs(int);5intsqrt(int);6inta=3,b,c;7b=abs(a);8c=sqrt(a);9printf(theabsofa=%dn,b);10printf(thesqrtofa=%dn,c);1112intabs(intx)1314inty;15if(x=2n0123456fib(n)0112358範例Ch7_5Ch7_5 遞迴函數求費氏數列遞迴函數求費氏數列1#include2intfi

5、b(intn)34if(n=0)return(0);5elseif(n=1)return(1);6elsereturn(fib(n1)+fib(n2);78voidmain()910intfib(int);11ints;12s=fib(6);13printf(Thefib(6)=%dn,s);14n程式執行結果n說明:Thefib(6)=8範例Ch7_5階乘函數n定義如下:1ifn=0n*fact(n1)ifn=1n說明:fact(n)3!=3*2!=3*2*1!=3*2*1*0!=3*2*1*1=6fact(3)=3*fact(2)=3*2*fact(1)=3*2*1*fact(0)=3*2

6、*1*1=6範例Ch7_7Ch7_7 利用遞迴函數求利用遞迴函數求n階乘階乘1#include2voidmain()34 intfact(int);5 intn;6printf(請輸入n階乘:);7scanf(%d,&n);8printf(%d!=%dn,n,fact(n);910intfact(intn)1112if(n=0)return(1);13 elsereturn(n*fact(n1);14n程式執行結果n說明:請輸入n階乘:66!=7206!=6*fact(5)=6*5*fact(4)=6*5*4*fact(3)=6*5*4*3*fact(2)=6*5*4*3*2*fact(1)=

7、6*5*4*3*2*1*fact(0)=6*5*4*3*2*1*1=720範例Ch7_7常用的數學函數n在程式中使用下列數學函數時,需在開頭加上#include函數函數功能敘述功能敘述格式格式x和和y的資料型態的資料型態exp指數函數指數函數exexp(x);double或或floatlog自然對數函數自然對數函數;ln(x)log(x);double或或floatlog10以以10為底的對數函數為底的對數函數log10(x);double或或floatsqrtx的開平方根值的開平方根值sqrt(x);double或或floatfabsx的絕對值的絕對值fabs(x);double或或floa

8、tpowx的的y次方值次方值;xypow(x,y)doublesin正弦函數正弦函數sin(x)double或或floatcos餘弦函數餘弦函數cos(x)double或或floattan正切函數正切函數tan(x)double 或或float儲存類別nC語言的儲存類別(storageclass),也就是變數的生命期(lifetime)及可見度(scope)。一般儲存類別的宣告語法如下:儲存類別資料型態識別字n一般將儲存類別區分為auto、static、register、extern四大類。儲存類別儲存類別關鍵字關鍵字生命期生命期可見度可見度自動自動auto暫時暫時區域變數區域變數靜態靜態st

9、atic永久永久可成為全域變數可成為全域變數暫存器暫存器register暫時暫時區域變數區域變數外部外部extern永久永久全域變數全域變數內在(auto)變數n宣告為auto的變數,它的生命期只存活在函數的區塊(block)中。n它是一個區域變數(localvariable)。#includevoidmain()autointi;.autointj;.變數j變數i.可見度可見度.靜態(static)變數n內部靜態(staticauto)變數內部靜態變數是屬於區域變數(localvariable)。n外部靜態(staticexternal)變數外部靜態變數是屬於全域變數(globalvaria

10、ble)。staticintx;/*外部靜態變數*/voidmain(void)staticinty;/*內部靜態變數*/變數x可見度(整個程式)變數y可見度範例Ch7_12Ch7_12 全域變數與區域變數全域變數與區域變數1#include2voidfunction(void);3staticintx=1;4voidmain()56staticintx=3;7printf(外在區域變數x=%dn,x);89staticintx=10;10printf(內在區域變數x=%dn,x);11 12printf(外在區域變數x=%dn,x);13 function();14 printf(區域變數x=%dn,x);1516voidfunction(void)1718 printf(全域變數x=%dn,x);19程式執行結果外在區域變數x=3內在區域變數x=10外在區域變數x=3全域變數x=1區域變數x=3範例Ch7_12n語法語法extern資料型態變數名稱;inta;voidmain()voidadd()externinta;prog_1.cprog_2.c外在(external)變數合併兩個程式:prog_1.c(主程式)prog_2.c編譯器prog_1.objprog_2.obj連結程式prog_1.exe外在(external)變數

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁