【正文】
ate:int num。(3) 類的實(shí)例化是指創(chuàng)建類的對象還是定義類?【問題解答】指創(chuàng)建類的對象。A. friend class類名; B. youyuan class類名; C. class friend類名; D. friends class類名; (22) 下面對友元的錯誤描述是( D )。(18) 對靜態(tài)數(shù)據(jù)成員的不正確描述是( CD )。(14) 下列關(guān)于子對象的描述中,( B )是錯誤的。(10) 類的析構(gòu)函數(shù)是( D )時被調(diào)用的。(7) 下面對構(gòu)造函數(shù)的不正確描述是( B )。(4) 關(guān)于類和對象的說法( C )是錯誤的。關(guān)鍵字public、protected 和private以后的成員的訪問權(quán)限分別是公有、保護(hù)和私有的,所有成員默認(rèn)定義為private的。(9) 靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)可由 任意訪問權(quán)限許可的函數(shù)訪問。(3) 在程序運(yùn)行時,通過為對象分配內(nèi)存來創(chuàng)建對象。cinxy。七、 程序設(shè)計題寫出一個完整的C++程序,使用系統(tǒng)函數(shù)pow(x,y)計算xy的值,注意包含頭文件cmath。 coutnum=numendl。(5) 函數(shù)原型中的參數(shù)名與函數(shù)定義中的參數(shù)名以及函數(shù)調(diào)用中的參數(shù)名必須一致嗎?【問題解答】不必一致。于是,在被調(diào)用函數(shù)中對形參的操作實(shí)質(zhì)是對實(shí)參的直接操作,即數(shù)據(jù)的傳遞是雙向的。(8) 運(yùn)算符new分配的空間由運(yùn)算符delete釋放。( )【結(jié)果分析】如果用const 定義的是一個整型常量,則類型說明符int可以省略。(8) 下面說法正確的是( BC )。(6) 對重載的函數(shù)來說,下面敘述不正確的是( D )。xx; ”,則*pp等價于( C )。A. int p1,*p2,p3。y=x。來定義一個引用,對引用的存取都是對它所引用的對象的存取。(2) C++有兩種注釋符號,一種是//,另一種是 /*……*/。(3) 結(jié)構(gòu)化程序設(shè)計方法與面向?qū)ο蟪绦蛟O(shè)計方法在對待數(shù)據(jù)結(jié)構(gòu)和算法關(guān)系上有 什么不同?【問題解答】結(jié)構(gòu)化程序設(shè)計方法中,把數(shù)據(jù)結(jié)構(gòu)和算法分離為相互獨(dú)立的實(shí)體; 而在面向?qū)ο蟪绦蛟O(shè)計中,數(shù)據(jù)結(jié)構(gòu)和算法封裝在一起,結(jié)合成一個獨(dú)立的單位,即對象,并盡可能隱蔽對象的內(nèi)部細(xì)節(jié)。對象之間存在各種聯(lián)系,它們之間通過消息進(jìn)行通信。由于數(shù)據(jù)被每個模塊所共用,因此是不安全的,一旦出錯,很難查明原因。( √ ) (6) C++語言和Java語言均不是一個純正的面向?qū)ο蟮某绦蛟O(shè)計的語言。( ) 【結(jié)果分析】C++語言不僅支持面向?qū)ο蠹夹g(shù)的抽象性、封裝性、繼承性等特性,而且支持多態(tài)性。將數(shù)據(jù)結(jié)構(gòu)和算法置于同一個類內(nèi),即為數(shù)據(jù)封裝。A. 對象 B. 類 C. 消息 D. 接口(4) 面向?qū)ο蟪绦蛟O(shè)計中,對象與對象之間的通信機(jī)制是( C )。二、 填空題(1) 目前有面向過程的結(jié)構(gòu)化程序設(shè)計方法和面向?qū)ο蟮某绦蛟O(shè)計方法兩種重要的程序設(shè)計方法。一個消息就是一個對象要求另一個對象實(shí)施某種操作的一個請求。A. 抽象 B. 繼承 C. 封裝 D. 多態(tài)(3) 在面向?qū)ο蟪绦蛟O(shè)計中,類通過( D )與外界發(fā)生關(guān)系。A. 將數(shù)據(jù)結(jié)構(gòu)和算法置于同一個函數(shù)內(nèi),即為數(shù)據(jù)封裝 B. 一個類通過繼承可以獲得另一個類的特性C. 面向?qū)ο笠蟪绦騿T集中于事物的本質(zhì)特征,用抽象的觀點(diǎn)看待程序D. 同一消息為不同的對象接受時,產(chǎn)生的行為是一樣的,這稱為一致性【結(jié)果分析】面向?qū)ο蟪绦蛟O(shè)計方法具有抽象性、封裝性、繼承性和多態(tài)性等特點(diǎn)。( √ ) (2) C++語言只支持面向?qū)ο蠹夹g(shù)的抽象性、封裝性、繼承性等特性,而不支持多態(tài)性。(5) 類的設(shè)計和類的繼承機(jī)制實(shí)現(xiàn)了軟件模塊的可重用性。首先是數(shù)據(jù)安全性問題??梢?,在面向?qū)ο蟮某绦蛟O(shè)計方法中,對象是數(shù)據(jù)結(jié)構(gòu)和算法的封裝體。并且面向?qū)ο蟪绦蛟O(shè)計方法提供了軟件重用、解決大問題和復(fù)雜問題的有效途徑,具有抽象性、封裝性、繼承性和多態(tài)性等特點(diǎn)。二、 填空題(1) 一般情況下,用C++語言編寫的程序是由函數(shù)加上類組成的。(7) C++使用運(yùn)算符amp。int main(){int x=10,amp。} 三、 選擇題(至少選一個,可以多選)(1) 在整型指針變量pp3的定義中,錯誤的是( A )。 (2) 若有定義“double xx=,*pp=amp。A. 函數(shù)名 B. 函數(shù)體 C. 返回值類型 D. 函數(shù)參數(shù)【結(jié)果分析】函數(shù)的定義可以缺省形式參數(shù),此時稱為無參函數(shù)?!粼O(shè)置默認(rèn)參數(shù)可使用表達(dá)式,但表達(dá)式中不可用局部變量。( √ )(2) 使用const說明常量時,可以不必指出類型。( )【結(jié)果分析】函數(shù)可設(shè)置默認(rèn)參數(shù),且允許將一個函數(shù)的所有參數(shù)都設(shè)置為默認(rèn)參數(shù)。實(shí)參傳遞給形參,相當(dāng)于在被調(diào)用函數(shù)中使用了實(shí)參的別名。◆對內(nèi)聯(lián)函數(shù)也不能進(jìn)行異常接口聲明。 ref=ref+10。這樣,無論是對num還是對ref進(jìn)行操作,實(shí)際上都是對那個一開始放著50的物理單元的內(nèi)容進(jìn)行操作。coutplease input 2 floats to x,y:。(2) 定義成員函數(shù)時,運(yùn)算符“∷”是作用域運(yùn)算符,“MyClass∷”用于表明其后的成員函數(shù)是在“MyClass類”中說明的。(8) 數(shù)據(jù)定義為全局變量,破壞了數(shù)據(jù)的 封裝性; 較好的解決辦法是將所要共享的數(shù)據(jù)定義為類的 靜態(tài)成員。A. 類是一種用戶自定義的數(shù)據(jù)類型B. 只有類的成員函數(shù)才能訪問類的私有數(shù)據(jù)成員C. 在類中,如不做權(quán)限說明,所有的數(shù)據(jù)成員都是公有的D. 在類中,如不做權(quán)限說明,所有的數(shù)據(jù)成員都是私有的【結(jié)果分析】類是一種用戶自定義的數(shù)據(jù)類型,類中成員均具有一種訪問權(quán)限??梢娫陬惗x的外部,可以被任意函數(shù)訪問的成員是public的類成員。在類體外實(shí)現(xiàn)的成員函數(shù)不再是內(nèi)聯(lián)函數(shù)。析構(gòu)函數(shù)沒有參數(shù),當(dāng)然不可能設(shè)置默認(rèn)參數(shù)。但只有非靜態(tài)成員函數(shù)才擁有this指針,并通過該指針來處理對象。A. 使用靜態(tài)數(shù)據(jù)成員,實(shí)際上是為了消除全局變量B. 可以使用“”或者“類名∷靜態(tài)成員”來訪問靜態(tài)數(shù)據(jù)成員C. 靜態(tài)數(shù)據(jù)成員只能在靜態(tài)成員函數(shù)中引用 D. 所有對象的靜態(tài)數(shù)據(jù)成員占用同一內(nèi)存單元【結(jié)果分析】靜態(tài)數(shù)據(jù)成員可以在靜態(tài)成員函數(shù)中引用,也可以在非靜態(tài)成員函數(shù)中引用。(21) 友元類的聲明方法是( A )。訪問權(quán)限共有3種: 分別是公有(public)、保護(hù)(protected)和私有(private)。四、 程序分析題(寫出程序的輸出結(jié)果,并分析結(jié)果)(1) includeiostream using namespace std。num=n。由于對象x是對象數(shù)組,每個數(shù)組元素被創(chuàng)建時都要調(diào)用構(gòu)造函數(shù),所以默認(rèn)構(gòu)造函數(shù)被調(diào)用了2次,輸出第2行結(jié)果。 // 語句1coutExit mainendl。(3) ,其他部分不變,寫出輸出結(jié)果。Whole∷Whole(int i):p2(i),p1(){coutConstructor of Wholeendl。當(dāng)建立Whole類的對象w時,子對象pp2和p3被建立,相應(yīng)的構(gòu)造函數(shù)被執(zhí)行。sumnum=w。執(zhí)行語句2時,調(diào)用構(gòu)造函數(shù),sumnum變?yōu)?