<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. 試題

    計算機二級C++函數考點

    時間:2025-02-18 11:53:01 試題 我要投稿
    • 相關推薦

    計算機二級C++函數考點

      函數作為計算機二級C++科目的重要考點內容,為了方便考生們進行知識點的鞏固,下面是小編為大家整理計算機二級C++函數考點,歡迎大家閱讀!

      1函數定義

      在標準C++中,函數的定義形式為:

      <返回類型><函數名>(<形參列表>)

      {

      <函數體>

      }

      <函數名>一般是標識符,一個程序只有一個main函數,其他函數名可隨意取(當然,必須避免使用C++的關鍵字),好的程序設計風格要求函數名最好是取有助于記憶的名字,如getchar函數,通過函數的名字可以知道函數的功能,這無疑會增加程序的可讀性。

      <形參列表>是由逗號分隔的,分別說明函數的各個參數。形參將在函數被調用時從調用函數那里獲得數據。在C++中,函數形參列表可以為空,即一個函數可以沒有參數。但即使函數形參列表為空,括起函數參數的一對圓括號也不允許省略。

      <返回類型>又稱函數類型,表示一個函數所計算(或運行)的結果值的類型。如果一個函數沒有結果值,如函數僅用來更新(或設置)變量值、顯示信息等,則該函數返回類型為void類型。一個沒有返回值的函數類似于一些程序語言(如pascal語言)中的過程(procedure)。

      由一對花括號括起來的<函數體>是語句的序列,它定義了函數應執行的具體操作。

      需要注意的是,C++不允許函數定義嵌套,即在一個函數體內不能包含有其他函數的定義。

      2函數調用

      C++中函數調用的一般形式為:

      <函數名>(<實參表>)

      當調用一個函數時,其實參的個數、類型及排列次序必須與函數定義時的形參相一致,也就是說實參與形參應該一對一地匹配。當函數定義時沒有形參,則函數調用時,<實參表>亦為空。

      依據對函數返回值的使用方式,函數的調用方法可分為以下幾種:

      (1)語句調用,這通常用于不帶返回值的函數。這種情況下,被調用函數作為一個獨立的語句出現在程序中。

      (2)表達式調用。將被調用函數作為表達式的一部分來進行調用。它適用于被調用函數帶有返回值的情況。

      (3)參數調用。被調用函數作為另一個函數的一個參數進行調用。

      3函數原型

      在C++中,函數在使用之前要預先聲明。這種聲明在標準C++中稱為函數原型(functionprototype),函數原型給出了函數名、返回類型以及在調用函數時必須提供的參數的個數和類型。函數原型的語法為:

      <返回類型><函數名>(<形參列表>);

      (注意在函數原型后要有分號)

      實際上函數原型說明有兩種形式:

      (1)直接使用函數定義的頭部,并在后面加上一個分號。

      (2)在函數原型說明中省略參數列表中的形參變量名,僅給出函數名、函數類型、參數個數及次序。

      注意:在C++中,在調用任何函數之前,必須確保它已有原型說明。函數原型說明通常放在程序文件的頭部,以使得該文件中所有函數都能調用它們。實際上,標準函數的原型說明放在了相應的頭文件中,這也是為什么在調用標準函數時必須要包含相應的頭文件的原因之一。

      在了解了函數定義、函數調用和函數原型之后,就可以寫出一個完整的C++程序,并可將其編譯和運行。

      4函數返回類型

      根據函數是否帶有參數以及函數是否有返回值,可以將函數分為如下四類。

      1帶參數的有返回值函數

      定義形式為:

      <返回類型><函數名>(<參數列表>)

      {

      <語句序列>

      }

      2不帶參數的有返回值函數

      定義形式為:

      <返回類型><函數名>()

      {

      <語句序列>

      }

      3帶參數的無返回值函數

      定義形式為:

      void<函數名>(<參數列表>)

      {

      <語句序列>

      }

      4不帶參數的無返回值函數

      定義形式為:

      void<函數名>()

      {

      <語句序列>

      }

      5函數參數

      C++中,函數之間傳遞參數有傳值和傳地址兩種傳遞方式。此外,C++還提供了默認參數機制,可以簡化復雜函數的調用。

      1參數的傳遞方式

      (1)傳值

      傳值是將實參值的副本傳遞(拷貝)給被調用函數的形參。它是C++的默認參數傳遞方式,在此之前的多數函數參數傳遞都是傳值。

      由于傳值方式是將實參的值復制到形參中,因此實參和形參是兩個不同的變量,有各自的存儲空間,可以把函數形參看作是函數的局部變量。傳值的最大好處是函數調用不會改變調用函數實參變量的內容,可避免不必要的副作用。

      (2)傳地址

      有時我們確實需要通過函數調用來改變實參變量的值,或通過函數調用返回多個值(return語句只能返回一個值),這時僅靠傳值方式是不能達到目的。

      2默認參數

      在C++中,可以為參數指定默認值,在函數調用時沒有指定與形參相對應的實參時就自動使用默認值。默認參數可以簡化復雜函數的調用。

      默認參數通常在函數名第一次出現在程序中的時候,如在函數原型中,指定默認參數值。指定默認參數的方式從語法上看與變量初始化相似。

      6函數重載

      如果能用同一個函數名字在不同類型上做相類似的操作就會方便很多,這種情況即為函數重載。其實這一技術早已用于C++的基本運算符。例如加法操作只有一個運算符+,但它卻可以用來做整型數、浮點數和指針的加法運算。將這一思想推廣到函數,即為函數重載。

      7內聯函數

      C++引入內聯(inline)函數的原因是用它來取代C中的預處理宏函數。內聯函數和宏函數的區別在于,宏函數是由預處理器對宏進行替換,而內聯函數是通過編譯器來實現的,因此內聯函數是真正的函數,只是在調用的時候,內聯函數像宏函數一樣的展開,所以它沒有一般函數的參數壓棧和退棧操作,減少了調用開銷,因此,內聯函數比普通函數有更高的執行效率。

      在C++中使用inline關鍵字來定義內聯函數。inline關鍵字放在函數定義中函數類型之前。不過,編譯器會將在類的說明部分定義的任何函數都認定為內聯函數,即使它們沒有用inline說明。

      8遞歸函數

      如果一個函數在其函數體內直接或間接地調用了自己,該函數就稱為遞歸函數。遞歸是解決某些復雜問題的十分有效的方法。遞歸適用以下的一般場合。

      (1)數據的定義形式按遞歸定義。

      (2)數據之間的關系(即數據結構)按遞歸定義,如樹的遍歷,圖的搜索等。

      (3)問題解法按遞歸算法實現,例如回溯法等。

      使用遞歸需要注意以下幾點:

      (1)用遞歸編寫代碼往往較為簡潔,但要犧牲一定的效率。因為系統處理遞歸函數時都是通過壓棧/退棧的方式實現的。

      (2)無論哪種遞歸調用,都必須有遞歸出口,即結束遞歸調用的條件。

      (3)編寫遞歸函數時需要進行遞歸分析,既要保證正確使用了遞歸語句,還要保證完成了相應的操作。

      9變量作用域與生存周期

      1C++中變量的存儲類型分為如下幾種類型:

      auto——函數內部的局部變量(auto可省略不寫)。

      static——靜態存儲分配,又分為內部和外部靜態。

      extern——全局變量(用于外部變量說明)。

      register——變量存儲在硬件寄存器中。

      (1)自動變量

      ①在函數內部定義的局部變量即為自動變量,用于說明自動變量的關鍵字auto可以省略。

      ②在函數頭部定義的自動變量作用域為定義它的函數;而在塊語句中定義的自動變量作用域為所在塊。與C不同,C++還允許在變量使用之前才定義變量。

      ③編譯程序不給自動變量賦予隱含的初值,故其初值不確定。因此,每次使用自動變量前,必須明確地賦初值。

      ④形參可以看成是函數的自動變量,作用域僅限于相應函數內。

      ⑤自動變量所使用的存儲空間由程序自動地創建和釋放。當函數調用時為自動變量創建存儲空間,函數調用結束時將自動釋放為其創建的存儲空間。因此,自動變量隨函數的調用而存在并隨函數調用結束而消失,由一次調用到下一次調用之間不保存值。

      (2)外部變量

      ①在函數外部定義的變量即為外部變量。

      ②外部變量的作用域是整個程序(全局變量)。

      ③在C++中,程序可以分別放在幾個源文件上,每個文件可作為一個編譯單位分別編譯。外部變量只需在某個文件上定義一次,其他文件若要引用此變量時,應用extern加以說明。(外部變量定義時不必加extern關鍵字)。

      ④在同一文件中,若前面的函數要引用在其后面定義的外部(在函數之外)變量時,也應用extern加以說明。

      ⑤外部變量是由編譯程序在編譯時給其分配空間,屬于靜態分配變量,對于數值型(整型、浮點型和字符型)外部變量來說,其有隱含初值0。

      引進外部變量的原因:其一是只要程序運行外部變量的值是始終存在的;其二是外部變量可以在所有函數間共享。

      在C++中,可以使用外部變量,但是,必須要清楚使用外部變量的副作用。使用外部變量的函數獨立性差,通常不能被移植到其他程序中,而且,如果多個函數都使用到某個外部變量,一旦出現問題,就很難發現問題是由哪個函數引起的。在C++中,盡量不用或少用外部變量,可使用參數在函數間進行數據的傳遞。

    【計算機二級C++函數考點】相關文章:

    C++函數考點歸納05-19

    計算機二級C++函數解釋05-20

    計算機二級C++考點:C++語言概述07-17

    2017計算機二級C++考點類的轉換05-20

    2017計算機二級C++考點習題及答案07-07

    計算機二級C++考點:基本控制結構01-25

    2016最新計算機二級C++考點解析「模板」03-21

    2015計算機二級考試考點:常用內部函數05-19

    計算機二級《C++》考點解析:堆和類數組07-20

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人