《帶參帶返回值函數(shù).ppt》由會員分享,可在線閱讀,更多相關(guān)《帶參帶返回值函數(shù).ppt(22頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、帶參帶返回值函數(shù),復(fù)習(xí) 自定義函數(shù)的分類 自定義函數(shù)的聲明、調(diào)用、編寫 帶參帶返回值函數(shù)的應(yīng)用 課堂練習(xí) 課堂小結(jié) 本節(jié)對應(yīng)教材:P198-216,專業(yè)英語詞匯,回顧與提問,簡單回顧第1學(xué)期的主要內(nèi)容 回顧第1學(xué)期計(jì)算器案例的主要內(nèi)容,第1學(xué)期主要內(nèi)容,C語言程序結(jié)構(gòu) (無參無返回值函數(shù)的編寫) 數(shù)據(jù)類型、變量輸入/輸出、運(yùn)算符 int、float、double、char scanf、printf、(getchar、 putchar) 算術(shù)、賦值、關(guān)系、邏輯運(yùn)算符 三種程序設(shè)計(jì)結(jié)構(gòu) 順序、選擇(分支)、循環(huán) 結(jié)構(gòu),第1學(xué)期計(jì)算器案例主要內(nèi)容,用無參無返回值的函數(shù)實(shí)現(xiàn) 加、減、乘運(yùn)算----順序
2、結(jié)構(gòu) 除法、求余----分支結(jié)構(gòu)(判斷除數(shù)是否為0) 累加、階乘----循環(huán)結(jié)構(gòu) 主函數(shù)----switch語句的應(yīng)用、用死循環(huán)控制程序反復(fù)執(zhí)行,本課內(nèi)容,帶參數(shù)有返回值函數(shù),函數(shù)的類型,函數(shù)定義基本格式: 返回值類型 函數(shù)名(參數(shù)類型 參數(shù)名) 注:也可以沒有參數(shù)或有兩個(以上)的參數(shù),兩個以上的參數(shù)用逗號分隔,如: 返回值類型 函數(shù)名(參數(shù)類型 參數(shù)名,參數(shù)類型 參數(shù)名,參數(shù)類型 參數(shù)名)----這是有三個參數(shù)的函數(shù) 返回值類型有:void、int、double、float、char及其他C語言中可以使用的類型。 如果是void表示該函數(shù)無返回值。其他則表示有返回值。參數(shù)類型即是數(shù)據(jù)類型、
3、參數(shù)名即是變量名,只是叫法不同而已。,函數(shù)的類型,由返回值和參數(shù)是否有可構(gòu)成以下四類函數(shù): 實(shí)際編程中,各種類型都可能遇到,但最常見的是有返回值帶參數(shù)的函數(shù),無返回值無參數(shù)函數(shù)的編寫思路,與在main函數(shù)中編程思路完全相同。 例如:計(jì)算器中的除法函數(shù) void divide( ) //第一步:定義變量(用于輸入運(yùn)算數(shù)和保存結(jié)果) //第二步:從鍵盤上輸入兩個運(yùn)算數(shù) //第三步:計(jì)算兩個數(shù)的除法(要用if語句考慮除數(shù)為0的特殊情況) //第四步:輸出計(jì)算結(jié)果 ,無返回值無參數(shù)函數(shù)的調(diào)用,假設(shè)在main函數(shù)中調(diào)用。在其他函數(shù)中調(diào)用也是一樣的。 main() divide( ); //函數(shù)調(diào)用語
4、句(直接調(diào)用) ,有返回值有參數(shù)函數(shù)的編寫思路,與無返回值無參數(shù)函數(shù)略有不同。 返回值的數(shù)據(jù)類型 函數(shù)名(數(shù)據(jù)類型 參數(shù)名1 , 數(shù)據(jù)類型 參數(shù)名2) //函數(shù)的功能代碼部分----略有不同 //返回結(jié)果值--最大的不同之處 ,有返回值有參數(shù)函數(shù)的編寫,例1:如果我們想定義一個函數(shù),要求該函數(shù)能夠?qū)崿F(xiàn)計(jì)算圓的面積,并將計(jì)算結(jié)果返回,則可將函數(shù)定義如下: double areaOfCircle( double radius ) //radius表示半徑 //根據(jù)radius計(jì)算圓的面積 //返回圓的面積 ,有返回值有參數(shù)函數(shù)的編寫,例1:如果我們想定義一個函數(shù),要求該函數(shù)能夠?qū)崿F(xiàn)計(jì)算圓的面積,并
5、將計(jì)算結(jié)果返回,則可將函數(shù)定義如下: double areaOfCircle( double radius ) //radius表示半徑 double area; //定義面積變量 //根據(jù)radius計(jì)算圓的面積 area = 3.14 * radius * radius ; //返回圓的面積 return area; ,有返回值有參數(shù)函數(shù)的編寫,編寫中注意的問題: (1)不允許再次定義與參數(shù)名相同的變量 (2)參數(shù)的值是不需要在函數(shù)中輸入的(因?yàn)槭窃谡{(diào)用的時候傳遞過來的) (3)在函數(shù)中一般不輸出結(jié)果 (4)函數(shù)要結(jié)束的位置必須用 return語句返回正確的值。 return 語句的格式為
6、: return 表達(dá)式(或常量值); 該表達(dá)式的值 應(yīng)該與 返回值的類型一致,否則程序就存在缺陷。,有返回值有參數(shù)函數(shù)的編寫,練習(xí):根據(jù)三角形的三條邊來計(jì)算其面積,并將面積返回。計(jì)算公式為: ,其中s=(a+b+c)/2。 函數(shù)定義如下: double areaOfTriangle( double a, double b, double c) //a,b,c分別表示三邊 //根據(jù)三邊計(jì)算三角形面積 //返回三角形面積 ,有返回值有參數(shù)函數(shù)的調(diào)用,假設(shè)在main函數(shù)中進(jìn)行調(diào)用:思路如下 (1)定義與被調(diào)用函數(shù)參數(shù)個數(shù)相同,且類型對應(yīng)相同的變量 (2)定義與被調(diào)用函數(shù)返回值類
7、型一致的一個變量,用以保存調(diào)用后的結(jié)果 (3)為每個實(shí)際參數(shù)賦值 (4)調(diào)用函數(shù),并保存函數(shù)返回的結(jié)果 (5)輸出結(jié)果(或用結(jié)果進(jìn)行其他運(yùn)算),有返回值有參數(shù)函數(shù)的調(diào)用,假設(shè)在main函數(shù)中進(jìn)行調(diào)用areaOfCircle : main( ) double r; double result; //定義變量 scanf( “%lf” , //輸出結(jié)果 ,有返回值有參數(shù)函數(shù)的調(diào)用,result = areaOfCircle( r ); //調(diào)用函數(shù),main( ) //調(diào)用前的代碼 result = areaOfCircle( r ); //調(diào)用時 //調(diào)用后的代碼 ,,double areaO
8、fCircle( double radius) //函數(shù)的主要功能代碼 return area; //使用return 語句返回結(jié)果值 ,,,,課堂練習(xí),用帶參數(shù)有返回值函數(shù)完成下列程序: 1、編寫一個程序,完成三角形面積的計(jì)算。 2、編寫程序判斷兩個字符是否一致,并返回判斷結(jié)果。一致請返回1,不一致返回0.函數(shù)定義如下: int isEqual( char ch1, char ch2 ) //ch1,ch2表示兩個字符,返回值用整型 //比較兩個字符是否一樣,如果一樣結(jié)果記為整數(shù)1,否則結(jié)果記為整數(shù)0 //返回結(jié)果 ,更進(jìn)一步,試著自己找一個例子,看能不能寫成帶參數(shù)有返回值的函數(shù)來解決,并編程實(shí)現(xiàn)之。,本次課小結(jié),函數(shù)類型 帶參數(shù)有返回值函數(shù)的編寫、調(diào)用,作業(yè),1、用帶參數(shù)帶返回值的函數(shù)實(shí)現(xiàn)功能: 從鍵盤上輸入一個整數(shù)n,計(jì)算n !. 2、調(diào)用上面的程序,使之運(yùn)行正確。并掌握調(diào)試過程。,