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