您現在的位置是:首頁 >要聞 > 2023-09-27 03:06:17 來源:
二次函數的三要素(函數的三要素)
大家好,我是小夏,我來為大家解答以上問題。二次函數的三要素,函數的三要素很多人還不知道,現在讓我們一起來看看吧!
C語言函數三要素是:定義域、值域和對應法則。
一,C語言函數定義域
(1)無參函數定義的一般形式如下:
類型標識符 ?函數名(){
聲明部分
語句
}
其中類型標識符和函數名稱為函數頭。類型標識符指明了本函數的類型,函數的類型實際上是函數返回值的類型。該類型標識符與前面介紹的各種說明符相同。函數名是由用戶定義的標識符,函數名后有一個空括號,其中無參數,但括號不可少。
{}中的內容稱為函數體。在函數體中聲明部分,是對函數體內部所用到的變量的類型說明。
在很多情況下都不要求無參函數有返回值,此時函數類型符可以寫為void。
這里,只把main改為Hello作為函數名,其余不變。Hello函數是一個無參函數,當被其它函數調用時,輸出Hello world字符串。
(2)有參函數定義的一般形式
有參函數定義的一般形式如下:
類型標識符 ?函數名(形式參數表列){
聲明部分
語句
}
有參函數比無參函數多了一個內容,即形式參數表列。在形參表中給出的參數稱為形式參數,它們可以是各種類型的變量,各參數之間用逗號間隔。在進行函數調用時,主調函數將賦予這些形式參數實際的值。形參既然是變量,必須在形參表中給出形參的類型說明。
例如,定義一個函數,用于求兩個數中的大數,可寫為:
第一行說明max函數是一個整型函數,其返回的函數值是一個整數。形參為a,b,均為整型量。a,b的具體值是由主調函數在調用時傳送過來的。在{}中的函數體內,除形參外沒有使用其它變量,因此只有語句而沒有聲明部分。在max函數體中的return語句是把a(或b)的值作為函數的值返回給主調函數。有返回值函數中至少應有一個return語句。
在C程序中,一個函數的定義可以放在任意位置,既可放在主函數main之前,也可放在main之后。例如:可把max 函數置在main之后,也可以把它放在main之前。修改后的程序如下所示。
二,C語言的值域
函數的值是指函數被調用之后, 執行函數體中的程序段所取得的并返回給主調函數的值。如調用正弦函數取得正弦值,調用例5.1的max函數取得的最大數等。對函數的值(或稱函數返回值)有以下一些說明:
1. 函數的值只能通過return語句返回主調函數。return 語句的一般形式為:
return 表達式;
或者為:
return (表達式);
該語句的功能是計算表達式的值,并返回給主調函數。 在函數中允許有多個return語句,但每次調用只能有一個return 語句被執行, 因此只能返回一個函數值。
2. 函數值的類型和函數定義中函數的類型應保持一致。 如果兩者不一致,則以函數類型為準,自動進行類型轉換。 3. 如函數值為整型,在函數定義時可以省去類型說明。
4. 不返回函數值的函數,可以明確定義為“空類型”, 類型說明符為“void”。如例5.3中函數s并不向主函數返函數值,因此可定義為:
void s(int n)
{ ……
}
三,C語言函數對應法則(C語言函數的調用)
函數調用的一般形式為:
函數名(實參列表);
實參可以是常數、變量、表達式等,多個實參用逗號,分隔。
在C語言中,函數調用的方式有多種,例如:
在函數調用中還應該注意的一個問題是求值順序的問題。所謂求值順序是指對實參列表中各個參數是自左向右使用呢,還是自右向左使用。對此,各系統的規定不一定相同。
【示例】在VC6.0下運行以下代碼。
運行結果:
8 7 6 7
可見VC 6.0是按照從右至左的順序求值。如果按照從左至右求值,結果應為:
9 ?10 ?9 ?8
函數的嵌套調用
函數不能嵌套定義,但可以嵌套調用,也就是在一個函數的定義中出現對另一個函數的調用。這樣就出現了函數的嵌套調用,即在被調函數中又調用其它函數。
【示例】計算sum = 1! + 2! + 3! + ... + (n-1)! + n!
分析:可以編寫兩個函數,一個用來計算階乘,一個用來計算累加的和。
運行結果:
1!+2!+...+9!+10! = 1215752192
函數聲明和函數原型
C語言代碼由上到下依次執行,函數定義要出現在函數調用之前。
但是,如果在函數調用前進行了函數聲明,那么函數定義就可以出現在任何地方了,甚至是其他文件。
函數聲明的一般形式為:
返回值類型 ?函數名( 類型 形參, 類型 形參… );
或為:
返回值類型 ?函數名( 類型, 類型…);
函數聲明給出了函數名、返回值類型、參數列表(參數類型)等與該函數有關的信息,稱為函數原型。
函數原型的作用是告訴編譯器與該函數有關的信息,讓編譯器知道函數的存在,以及存在的形式,即使函數暫時沒有定義,也不會出錯。
更改上面的代碼,將 factorial 和 sum 函數的定義放到 main 函數后面:
運行結果:
1!+2!+...+9!+10! = 1215752192
本文到此講解完畢了,希望對大家有幫助。