【正文】
題(至少選一個,可以多選)(1) 在整型指針變量pp3的定義中,錯誤的是( A )。 B. int*p2,p1,*p3。p1,*p3。p1。 (2) 若有定義“double xx=,*pp=amp。A. amp。(3) 下面對引用的描述中( C )是錯誤的。(4) 函數沒有返回值的時候,應該選擇( A )的函數類型。A. 函數名 B. 函數體 C. 返回值類型 D. 函數參數【結果分析】函數的定義可以缺省形式參數,此時稱為無參函數。A. 參數的類型不同 B. 參數的順序不同C. 參數的個數不同 D. 參數的個數、類型、順序都相同,但函數的返回值類型不同【結果分析】對重載的函數來說,編譯系統(tǒng)將根據函數參數的類型和個數來判斷使用哪一個函數,所以重載函數參數的個數、類型、順序不能都相同。A. 對設置函數參數默認值的順序沒有任何規(guī)定B. 函數具有一個參數時不能設置默認值C. 默認參數要設置在函數的原型中,而不能設置在函數的定義語句中D. 設置默認參數可使用表達式,但表達式中不可用局部變量【結果分析】在C++中,在函數原型中可以為一個或多個參數指定默認值。◆若沒有聲明函數原型,參數的默認值可在函數定義的頭部進行設置,否則必須在函數原型中進行設置?!粼O置默認參數可使用表達式,但表達式中不可用局部變量。A. 所有的函數都可以說明為內聯(lián)函數B. 具有循環(huán)語句、switch語句的函數不能說明為內聯(lián)函數C. 使用內聯(lián)函數,可以加快程序執(zhí)行的速度,但會增加程序代碼的大小D. 使用內聯(lián)函數,可以減小程序代碼大小,但使程序執(zhí)行的速度減慢【結果分析】內聯(lián)函數主要是解決程序的運行效率問題。它是以空間換取時間,因此內聯(lián)函數適用于功能不太復雜,但要求被頻繁調用的函數。A. 內聯(lián)函數 B. 重載函數 C. 遞歸函數 D. 嵌套函數(10) C++對C語言做了很多改進,下列描述中使得C語言發(fā)生了質變,即從面向過程變成面向對象的是( D )。( √ )(2) 使用const說明常量時,可以不必指出類型。(3) 引用被創(chuàng)建時可以用任意變量進行初始化。(4) 一個返回引用的調用函數可以作為左值。( √ )(6) 沒有參數的兩個函數是不能重載的。( )【結果分析】函數可設置默認參數,且允許將一個函數的所有參數都設置為默認參數。( √ )五、 簡答題(1) 名字空間的用途是什么?【問題解答】名字空間用來防止命名的沖突。(3) 比較值調用和引用調用的相同點與不同點。函數體對形參的訪問、修改都是在這個標識對象上操作的,與實參無關,即數據的傳遞是單向的。實參傳遞給形參,相當于在被調用函數中使用了實參的別名。(4) 內聯(lián)函數有什么作用?它有哪些特點?【問題解答】內聯(lián)函數是使用inline關鍵字聲明的函數。使用內聯(lián)函數應注意以下幾點?!魞嚷?lián)函數一般適合于不含有switch和while等復雜的結構且只有1~5條語句的小函數,否則編譯系統(tǒng)將該函數視為普通函數?!魧嚷?lián)函數也不能進行異常接口聲明。所有的參數是根據位置和類型而不是名字來區(qū)分的。六、 程序分析題(寫出程序的輸出結果,并分析結果)includeiostream using namespace std。intamp。 ref=ref+10。 num=num+40。 return 0?!窘Y果分析】程序首先定義一個int類型的對象num,并給它賦初始值50。這樣,無論是對num還是對ref進行操作,實際上都是對那個一開始放著50的物理單元的內容進行操作?!締栴}分析】本題主要考查簡單的輸入輸出和標準庫函數的調用方法。② 要計算xy的值,首先必須知道x和y的值?!緟⒖汲绦颉?/ includeiostream includecmath using namespace std。coutplease input 2 floats to x,y:。float z=pow(x,y)。return 0。如果沒有使用關鍵字,則所有成員默認定義為private權限。(2) 定義成員函數時,運算符“∷”是作用域運算符,“MyClass∷”用于表明其后的成員函數是在“MyClass類”中說明的。在創(chuàng)建對象時,使用類作為樣板,故稱對象為類的實例?!窘Y果分析】創(chuàng)建10個數組元素需調用構造函數10次,創(chuàng)建對象b需調用構造函數1次,所以系統(tǒng)自動調用該類構造函數的總次數為11。(6) delete運算符通常用于實現釋放該類對象中指針成員所指向的動態(tài)存儲空間的任務。(8) 數據定義為全局變量,破壞了數據的 封裝性; 較好的解決辦法是將所要共享的數據定義為類的 靜態(tài)成員。(10) 友元函數和 友元類統(tǒng)稱為友元。(12) 若需要把一個類A定義為一個類B的友元類,則應在類B的定義中加入一條語句: friend class A;。A. public B. staticC. protectedD. private【結果分析】類的訪問權限有public、protected 和private。A. 類是一種用戶自定義的數據類型B. 只有類的成員函數才能訪問類的私有數據成員C. 在類中,如不做權限說明,所有的數據成員都是公有的D. 在類中,如不做權限說明,所有的數據成員都是私有的【結果分析】類是一種用戶自定義的數據類型,類中成員均具有一種訪問權限。私有成員是被隱藏的數據,只有該類的成員函數或友元函數才可以訪問它。A. 所有類成員 B. private或protected的類成員C. public的類成員 D. public或private的類成員【結果分析】類是一種用戶自定義的數據類型,類中成員均具有一種訪問權限。私有成員是被隱藏的數據,只有該類的成員函數或友元函數才可以引用它??梢娫陬惗x的外部,可以被任意函數訪問的成員是public的類成員。A. 對象是類的一個實例B. 任何一個對象只能屬于一個具體的類C. 一個類只能有一個對象D. 類與對象的關系和數據類型與變量的關系相似【結果分析】C++語言的類就是一種用戶自己定義的數據類型,類和對象的關系就相當于基本數據類型與它的變量的關系,所以任何一個對象只能屬于一個具體的類,但一個類可以有多個對象。A. ∷ B. . C. amp。A. 成員函數可以無返回值B. 成員函數可以重載 C. 成員函數一定是內聯(lián)函數D. 成員函數可以設定參數的默認值【結果分析】與普通函數不同的是,成員函數是屬于某個類的。在類體外實現的成員函數不再是內聯(lián)函數。A. 系統(tǒng)可以提供默認的構造函數B. 構造函數可以有參數,所以也可以有返回值C. 構造函數可以重載D. 構造函數可以設置默認參數【結果分析】構造函數不能指定返回類型,即使是void類型也不可以,當然不可能有返回值。A. 1 B. 2 C. 3 D. 4【結果分析】聲明指針是不會調用構造函數的。A. 系統(tǒng)可以提供默認的析構函數 B. 析構函數必須由用戶定義C. 析構函數沒有參數 D. 析構函數可以設置默