面向?qū)ο蟪绦蛟O(shè)計(jì)復(fù)習(xí)資料_第1頁
面向?qū)ο蟪绦蛟O(shè)計(jì)復(fù)習(xí)資料_第2頁
面向?qū)ο蟪绦蛟O(shè)計(jì)復(fù)習(xí)資料_第3頁
面向?qū)ο蟪绦蛟O(shè)計(jì)復(fù)習(xí)資料_第4頁
面向?qū)ο蟪绦蛟O(shè)計(jì)復(fù)習(xí)資料_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

面對對象程序設(shè)計(jì)期末總復(fù)習(xí)題一、單項(xiàng)選擇題1.下面關(guān)于對象概念的描述中,_______是錯(cuò)誤的。(B)A.對象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體 B.對象就是C語言中的結(jié)構(gòu)體變量C.對象是一個(gè)狀態(tài)和操作(或方法)的封裝體 D.對象之間的信息傳遞是通過消息進(jìn)行的2.繼承機(jī)制的作用是:(C)A.信息隱藏 B.?dāng)?shù)據(jù)封裝 C.定義新類 D.?dāng)?shù)據(jù)抽象3.有關(guān)析構(gòu)函數(shù)的說法不正確的是_________(D)A.析構(gòu)函數(shù)有且只有一個(gè) B.析構(gòu)函數(shù)無任何函數(shù)類型 C.析構(gòu)函數(shù)沒有形參D.析構(gòu)函數(shù)不能是虛函數(shù)4.友元的作用之一是__________(A)A.提高程序的運(yùn)行效率 B.加強(qiáng)類的封裝性 C.實(shí)現(xiàn)數(shù)據(jù)的隱藏性 D.增加成員函數(shù)的種類5.通??截悩?gòu)造函數(shù)的參數(shù)是__________。(C)A.某個(gè)對象名 B.某個(gè)對象的成員名 C.某個(gè)對象的引用名 D.某個(gè)對象的指針名6.假如在基類中將show聲明為不帶返回值的純虛函數(shù),正確的寫法是________。(C)A.virtualshow()=0; B.virtualvoidshow();C.virtualvoidshow()=0; D.voidshow=0virtual;7.下面關(guān)于友元的描述中,錯(cuò)誤的是_________。(D)A.友元函數(shù)可以訪問該類的私有數(shù)據(jù)成員B.一個(gè)類的友元類中的成員函數(shù)都是這個(gè)類的友元函數(shù)C.友元可以提高程序的運(yùn)行效率D.類與類之間的友元關(guān)系可以繼承8.在C++中,_________運(yùn)算符不能重載。(B)A.+ B.?: C.- D.<=9.下列關(guān)于運(yùn)算符重載的描述中,________是正確的。(D)A.運(yùn)算符重載可以變更操作數(shù)的個(gè)數(shù) B.運(yùn)算符重載可以變更優(yōu)先級C.運(yùn)算符重載可以變更結(jié)合性 D.運(yùn)算符重載不行以變更語法結(jié)構(gòu)10.在下列函數(shù)原型中,可以作為類AA構(gòu)造函數(shù)的是_________(D)A.voidAA(int); B.intAA(); C.AA(int)const; D.AA(int);11.在聲明類時(shí),下面的說法正確的是_________。(C)A.可以在類的聲明中給數(shù)據(jù)成員賦初值 B.數(shù)據(jù)成員的數(shù)據(jù)類型可以是registerC.private,public,protected可以按隨意依次出現(xiàn)D.沒有用private,public,protected定義的數(shù)據(jù)成員是公有成員12.繼承具有________,即當(dāng)基類本身也是某一個(gè)類的派生類時(shí),底層的派生類也會自動繼承間接基類的成員。(B)A.規(guī)律性 B.傳遞性 C.重復(fù)性 D.多樣性13.在多重繼承中,公有派生和私有派生對于基類成員在派生類中的可訪問性與單繼承的規(guī)則___________。(A)A.完全相同 B.完全不同 C.部分相同,部分不同 D.以上都不對14.對虛函數(shù)的調(diào)用__________。(D)A.肯定運(yùn)用動態(tài)聯(lián)編 B.必需運(yùn)用動態(tài)聯(lián)編 C.肯定運(yùn)用靜態(tài)聯(lián)編 D.不肯定運(yùn)用動態(tài)聯(lián)編15.關(guān)于成員函數(shù)特征的下述描述中,_______是錯(cuò)誤的。(A)A.成員函數(shù)肯定是內(nèi)置函數(shù) B.成員函數(shù)可以重載C.成員函數(shù)可以設(shè)置參數(shù)的默認(rèn)值 D.成員函數(shù)可以是靜態(tài)的16.下面關(guān)于c++語言變量的敘述錯(cuò)誤的是_______(B)A.在c++語言中變量分為auto,static,extern和register四種存儲類型B.自動變量和外部變量的作用域?yàn)檎麄€(gè)程序C.內(nèi)部變量的作用域是定義它的函數(shù)D.外部靜態(tài)變量的作用域是定義它的文件17.下列的各類函數(shù)中,_______不是類的成員函數(shù)。(C)A.構(gòu)造函數(shù) B.析構(gòu)函數(shù) C.友元函數(shù) D.拷貝構(gòu)造函數(shù)18.有如下類聲明:classFoo{ingbar;};則Foo類的成員bar是_________(C)A.公有數(shù)據(jù)成員 B.公有成員函數(shù) C.私有數(shù)據(jù)成員 D.私有成員函數(shù)19.下列表示引用的方法中,__________是正確的。已知:intm=10;(D)A.float&t=&m; B.int&y=10; C.int&z; D.int&x=m;20.設(shè)置虛基類的目的是________。(B)A.簡化程序 B.消退二義性 C.提高運(yùn)行效率 D.削減目標(biāo)代碼21.對于類中定義的成員,其隱含訪問權(quán)限為________(B)A.public B.private C.static D.protected22.關(guān)于類和對象不正確的說法是________(B)A.類是一種類型,它封裝了數(shù)據(jù)和操作 B.一個(gè)類的對象只有一個(gè)C.對象是類的實(shí)例 D.一個(gè)對象必屬于某個(gè)類23.聲明一個(gè)類的對象時(shí),系統(tǒng)自動調(diào)用一個(gè)函數(shù);撤消對象時(shí),系統(tǒng)自動調(diào)用一個(gè)函數(shù);該函數(shù)為___c___A.成員函數(shù);構(gòu)造函數(shù) B.復(fù)制構(gòu)造函數(shù);析構(gòu)函數(shù)C.構(gòu)造函數(shù);析構(gòu)函數(shù) D.析構(gòu)函數(shù);復(fù)制構(gòu)造函數(shù)24.當(dāng)一個(gè)派生類私有繼承一個(gè)基類時(shí),基類中的全部公有成員和愛護(hù)成員成為派生類的__A______A.private成員 B.protected成員C.public成員 D.友元25.在C++中,要實(shí)現(xiàn)動態(tài)聯(lián)編,必需運(yùn)用_____D___調(diào)用虛函數(shù)A.類名 B.派生類指針C.對象名 D.基類指針26.若一個(gè)類中含有純虛函數(shù),則該類稱為____A____A. 抽象類 B. 純基類C.派生類 D. 基類27.下列關(guān)于this指針的敘述中,正確的是___D_____A.任何與類相關(guān)的函數(shù)都有this指針B.類的成員函數(shù)都有this指針C.類的友元函數(shù)都有this指針D.類的非靜態(tài)成員函數(shù)才有this指針28.有如下類聲明:classBook{intnum();};則Book類的成員num是___D_____A.公有數(shù)據(jù)成員 B.公有成員函數(shù) C.私有數(shù)據(jù)成員 D.私有成員函數(shù)29.下面有關(guān)重載函數(shù)的說法中正確的是___C_____A.重載函數(shù)必需具有不同的返回值類型;B.重載函數(shù)形參個(gè)數(shù)必需不同;

C)重載函數(shù)必需有不同的形參列表; D.重載函數(shù)名可以不同;30.設(shè)置虛基類的目的是___A_____A.消退二義性 B.簡化代碼 C.提高運(yùn)行效率 D.削減目標(biāo)代碼31.在C++語言程序中,對象之間的相互通信通過___B_____ A.繼承實(shí)現(xiàn) B.調(diào)用成員函數(shù)實(shí)現(xiàn) C.封裝實(shí)現(xiàn) D.函數(shù)重載實(shí)現(xiàn)32.下列運(yùn)算符中,在C++語言中不能重載的是__C______

A.* B.>= C.:: D./33.下面對友元函數(shù)描述正確的是___C_____ A.友元函數(shù)的實(shí)現(xiàn)必需在類的內(nèi)部定義 B.友元函數(shù)是類的成員函數(shù) C.友元函數(shù)破壞了類的封裝性和隱藏性 D.友元函數(shù)不能訪問類的私有成員34.下面敘述不正確的是___A_____ A.基類的愛護(hù)成員在派生類中仍舊是愛護(hù)成員 B.基類的愛護(hù)成員在公有派生類中仍舊是愛護(hù)成員 C.基類的愛護(hù)成員在私有派生類中是私有成員 D.對基類成員的訪問必需是無二義性35.下面對靜態(tài)數(shù)據(jù)成員的描述中,正確的是___D_____ A.靜態(tài)數(shù)據(jù)成員可以在類體內(nèi)進(jìn)行初始化 B.靜態(tài)數(shù)據(jù)成員不行以被類的對象調(diào)用 C.靜態(tài)數(shù)據(jù)成員不能受private限制符的作用 D.靜態(tài)數(shù)據(jù)成員可以干脆用類名調(diào)用36.在C++類語言體系中,不能被派生類繼承的有_______BA.轉(zhuǎn)換函數(shù) B.構(gòu)造函數(shù) C.虛函數(shù) D.靜態(tài)成員函數(shù)37.在類的定義中,用于為對象安排內(nèi)存空間,對類的數(shù)據(jù)成員進(jìn)行初始化并執(zhí)行其他內(nèi)部管理操作的函數(shù)是____C____ A.友元函數(shù) B.虛函數(shù) C.構(gòu)造函數(shù) D.析構(gòu)函數(shù)38.下列關(guān)于虛基類的描述中,錯(cuò)誤的是_B_______ A.設(shè)置虛基類的目的是為了消退二義性; B.虛基類的構(gòu)造函數(shù)在非虛基類之后調(diào)用; C.若同一層包含多個(gè)虛基類,這些基類的構(gòu)造函數(shù)依據(jù)它們的次序調(diào)用; D.若虛基類由非基類派生而來,則仍舊先調(diào)用基類構(gòu)造函數(shù),再用派生類的構(gòu)造函數(shù);39.考慮函數(shù)原型void

test(int

a,intb=7,char="*"),下面的函數(shù)調(diào)用中,屬于不合法調(diào)用的是___C_____

A.test(5)

B.test(5,8) C.test(6,"#")

D.test(0,0."*");

40.下列關(guān)于構(gòu)造函數(shù)的描述中,錯(cuò)誤的是___D_____A.構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù); B.構(gòu)造函數(shù)在定義類對象時(shí)自動執(zhí)行C.構(gòu)造函數(shù)可以是內(nèi)聯(lián)函數(shù); D.構(gòu)造函數(shù)不行以重載

41.在重載一個(gè)運(yùn)算符時(shí),假如其參數(shù)表中有一個(gè)參數(shù),則說明該運(yùn)算符是()。DA.一元成員運(yùn)算符B.二元成員運(yùn)算符C.一元友元運(yùn)算符D.選項(xiàng)B和選項(xiàng)C都可能42.在公有派生狀況下,有關(guān)派生類對象和基類對象的關(guān)系,下列敘述不正確的是()。CA.派生類的對象可以賦給基類的對象B.派生類的對象可以初始化基類的引用C.派生類的對象可以干脆訪問基類中的成員D.派生類的對象的地址可以賦給指向基類的指針43.下面關(guān)于虛函數(shù)的描述,錯(cuò)誤的是()。B

A.在成員函數(shù)聲明的前面加上virtual修飾,就可把該函數(shù)聲明為虛函數(shù)B.基類中說明白虛函數(shù)后,派生類中對應(yīng)的函數(shù)也必需說明為虛函數(shù)C.虛函數(shù)可以是另一個(gè)類的友元函數(shù),但不能是靜態(tài)成員函數(shù)D.基類中說明的純虛函數(shù)在其任何派生類中都必需實(shí)現(xiàn)44.定義派生類時(shí),若不運(yùn)用關(guān)鍵字顯示地規(guī)定采納何種繼承方式,則默認(rèn)方式為()。AA.私有繼承B.非私有繼承C.愛護(hù)繼承D.公有繼承45.有如下程序:#includeusingnamespacestd;classONE{intc;public:ONE():c(0){cout<<1;}ONE(intn):c(n){cout<<2;}};classTWO{ONEonel;ONEone2;public:TWO(intm):one2(m){cout<<3;}};intmain(){TWOt4()return0}運(yùn)行時(shí)的輸出結(jié)果是()。CA.3B.23C.123D.21346.關(guān)于靜態(tài)數(shù)據(jù)成員的描述中正確的是DA)類的靜態(tài)數(shù)據(jù)成員不是類的全部對象共享的數(shù)據(jù)B)類的靜態(tài)數(shù)據(jù)成員不能被類的成員函數(shù)調(diào)用C)類的靜態(tài)數(shù)據(jù)成員不能被類的構(gòu)造函數(shù)調(diào)用D)類的靜態(tài)數(shù)據(jù)成員必需進(jìn)行初始化47下面正確的是,在父類中的訪問屬性訪問修飾符在子類中的訪問屬性()CA)public,private不能干脆訪問B)protect,public,publicC)private,public不能干脆訪問D)protect,private,protect48類A是類B的友元,類B是類C的友元,則下列說法正確的是DA)類B是類A的友元B)類C是類A的友元C)類A是類C的友元D)以上都不對49下列關(guān)于構(gòu)造函數(shù)說法不正確的是CA)構(gòu)造函數(shù)必需與類同名B)構(gòu)造函數(shù)可以省略不寫C)構(gòu)造函數(shù)必需有返回值D)在構(gòu)造函數(shù)中可以對類中的成員進(jìn)行初始化50.類的析構(gòu)函數(shù)的作用是DA)一般成員函數(shù)的初始化B)類的初始化C)對象的初始化D)刪除類創(chuàng)建的對象51.下列說法正確的是BA)內(nèi)聯(lián)函數(shù)在運(yùn)行時(shí)是將該函數(shù)的目標(biāo)代碼插入每個(gè)調(diào)用該函數(shù)的地方B)內(nèi)聯(lián)函數(shù)在編譯時(shí)是將該函數(shù)的目標(biāo)代碼插入每個(gè)調(diào)用該函數(shù)的地方C)類的內(nèi)聯(lián)函數(shù)必需在類體內(nèi)定義D)類的內(nèi)聯(lián)函數(shù)必需在類體外通過加關(guān)鍵字inline定義52.下面對靜態(tài)數(shù)據(jù)成員的描述中,正確的是DA)靜態(tài)數(shù)據(jù)成員可以在類體內(nèi)進(jìn)行初始化B)靜態(tài)數(shù)據(jù)成員不行以被類的對象調(diào)用C)靜態(tài)數(shù)據(jù)成員不能受private限制符的作用D)靜態(tài)數(shù)據(jù)成員可以干脆用類名調(diào)用二、學(xué)問點(diǎn)1.實(shí)現(xiàn)運(yùn)行時(shí)的多態(tài)性要運(yùn)用虛函數(shù)。2.假如一個(gè)類至少有一個(gè)純虛函數(shù),那么就稱該類為抽象類。3.運(yùn)算符重載不能變更操作符的個(gè)數(shù)、運(yùn)算符的優(yōu)先級、運(yùn)算符的結(jié)合性和運(yùn)算符的語法結(jié)構(gòu)。4.構(gòu)造函數(shù)是一種特別的成員函數(shù),它主要用來為對象安排內(nèi)存空間,對類的數(shù)據(jù)成員進(jìn)行初始化并執(zhí)行對象的其他內(nèi)部管理操作。5.靜態(tài)成員函數(shù)不能干脆引用類中說明的非靜態(tài)成員。6.引用是給對象取一個(gè)別名,它引入了對象的同義詞。7.設(shè)置友元函數(shù)的目的是為能夠訪問該類的私有成員。8.運(yùn)算符重載仍舊保持原來的優(yōu)先級、結(jié)合性和語法結(jié)構(gòu)。9.基類的私有成員不能被派生類的成員訪問。10.靜態(tài)聯(lián)編支持的多態(tài)性稱為編譯時(shí)的多態(tài)性,也稱靜態(tài)多態(tài)性。11.任何類中允許有三種訪問權(quán)限的數(shù)據(jù),這三種訪問權(quán)限分別是public、private、protected。12.為了滿意運(yùn)算符“+”的可交換性,必需將其重載為友元函數(shù)。13.對于含有對象成員的派生類,其構(gòu)造函數(shù)的執(zhí)行依次為:先執(zhí)行基類的構(gòu)造函數(shù)、再執(zhí)行對象成員的構(gòu)造函數(shù),后執(zhí)行派生類的構(gòu)造函數(shù)。14.利用成員函數(shù)對雙目運(yùn)算符重載,其左操作數(shù)為this指針指出的對象,右操作數(shù)為成員函數(shù)參數(shù)。15.C++允許在相同的作用域內(nèi)以相同的名字定義幾個(gè)不同實(shí)現(xiàn)的函數(shù),稱這種同一個(gè)函數(shù)名多個(gè)含義的現(xiàn)象為函數(shù)重載。通過運(yùn)用new和delete兩個(gè)運(yùn)算符進(jìn)行的安排為動態(tài)存儲安排。當(dāng)類定義中有數(shù)據(jù)成員為指針時(shí),解決淺拷貝出現(xiàn)的運(yùn)行錯(cuò)誤的方法是編寫拷貝構(gòu)造函數(shù)。假如運(yùn)用protected繼承基類,其公有成員就會變成派生類的愛護(hù)成員,其愛護(hù)成員就會變成派生類的愛護(hù)成員,其私有成員不能繼承一個(gè)函數(shù)功能不太困難但要求被頻繁調(diào)用,應(yīng)定義為內(nèi)聯(lián)函數(shù)。抽象類只能作為基類運(yùn)用,而不能聲明它的對象。構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)不行以重載。靜態(tài)成員函數(shù)沒有this指針。類有兩個(gè)特別的成員函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)。在表達(dá)式x+y*z中,+是作為成員函數(shù)重載的運(yùn)算符,*是作為非成員函數(shù)重載的運(yùn)算符。其中operator+有一個(gè)參數(shù),operator*有兩個(gè)參數(shù)。一個(gè)派生類只有一個(gè)基類的狀況稱為單繼承,而有多個(gè)干脆基類的狀況稱為多繼承。調(diào)用析構(gòu)函數(shù)的次序正好與調(diào)用構(gòu)造函數(shù)的次序相反。27.非成員函數(shù)應(yīng)說明為類的友元函數(shù)才能訪問這個(gè)類的private成員。28.通過運(yùn)用new和delete兩個(gè)運(yùn)算符進(jìn)行的安排為

動態(tài)存儲安排。29.假如類B繼承了類A,則稱類A為類B的基類,類B稱為類A的派生類

30.表達(dá)式operator+(x,y)還可以表示為x+y。31C32將x+y*z中的"+"用成員函數(shù)重載,"*"用友元函數(shù)重載,應(yīng)說明為x.operator+(operator*(y,z))33假如要把返回值為void的函數(shù)A聲明為類B的友元函數(shù),則應(yīng)在類B的定義中加入的語句是friendvoidA();34派生類的成員一般分為兩部分,一部分是從基類繼承的成員,另一部分是自己定義的新成員。35繼承的方式有公有繼承、私有繼承和愛護(hù)繼承3種。三、讀程序?qū)懡Y(jié)果1. 寫出下列程序的運(yùn)行結(jié)果 #include<iostream.h>classsample{public:sample(){cout<<”hello”<<endl;}};voidfn(inti){staticsamplec;cout<<”j=”<<i<<endl;}voidmain(){fn(20);fn(30);}helloj=20j=302.寫出下列程序的運(yùn)行結(jié)果() #include<iostream.h> intn=0;int&f(intm){n+=m;returnn;}voidmain(){f(22)+=20;cout<<”n=”<<n<<endl;}n=423. 寫出下列程序的運(yùn)行結(jié)果()#include<iostream.h>classA{public: intnum; A(inti){num=i;} A(A&a){num=a.num;num+=15;} voidprint(){cout<<num<<endl;}};voidmain(){ Aa(8);Ab(a); a.print(); b.print();}8234.寫出下列程序的運(yùn)行結(jié)果() #include<iostream.h>voidmain(){inta[10]={11,10,9,8,7,6,5,4,3},*p=a+5;cout<<*--p<<endl;*(p+3)+=5;cout<<p[3]<<endl;}795.寫出下列程序的運(yùn)行結(jié)果() #include<iostream.h>classA{inta;public: voidseta(intx){a=x;} voidshowa(){cout<<a<<endl;}};classB{intb;public: voidsetb(intx){b=x;} voidshowb(){cout<<b<<endl;}};classC:publicA,privateB{private: intc;public: voidsetc(intx,inty,intz) { c=z; seta(x); setb(y); } voidshowc(){cout<<c<<endl;}};voidmain(){Cc;c.seta(8);c.showa();c.setc(4,6,7);c.showc();}876.寫出下列程序的運(yùn)行結(jié)果() #include<iostream.h>classsample{intn;public: sample(){} sample(intm){n=m;} int&operator--(int) { n--; returnn; } voiddisp(){cout<<"n="<<n<<endl;}};voidmain(){samples(18);(s--)++;s.disp();}n=187. 寫出下列程序的運(yùn)行結(jié)果() #include<iostream.h>classsample{intx;public: sample(){} voidsetx(inti){x=i;} friendintfun(sampleb[],intn) { intm=0; for(inti=0;i<n;i++) if(b[i].x>m) m=b[i].x; returnm; }};voidmain(){samplea[10];intarr[]={9,8,4,7,55,32,20,15,68,65};for(inti=0;i<10;i++) a[i].setx(arr[i]);cout<<"theresultis"<<fun(a,10)<<endl;}theresultis688下列程序的輸出結(jié)果為()#include<iostream.h>voidfun(intx=0,inty=0){ cout<<x<<y<<endl;}voidmain(){ fun(18);}1809.寫出下列程序的運(yùn)行結(jié)果()#include<iostream.h>classM{public: M(inta=0,intb=0){x=a;y=b;} intgetx(){returnx;} intgety(){returny;}private: intx,y; };voidmain(){ Mop1(22,18); inti,j; i=op1.getx();j=op1.gety(); cout<<"j="<<i<<"i="<<j<<endl; }j=22i=1810寫出下列程序的運(yùn)行結(jié)果()#include<iostream.h>classCat{ intnum,age;public: Cat(inti,intj){num=i;age=j;} Cat(Cat&c){num=c.num;age=c.age;num++;} voidprint(){cout<<num<<","<<age<<endl;}};voidmain(){ Catc1(33,12); Catc2(c1); c2.print();}34,1211.寫出下列程序的運(yùn)行結(jié)果()#include<iostream>usingnamespacestd;classTest{ staticintcount;public: Test(){ ++count; cout<<"對象數(shù)量="<<count<<endl; } ~Test(){ --count; cout<<"對象數(shù)量="<<count<<endl; }};intTest::count=0;voidmain(){ Testt[3];}對象數(shù)量=1對象數(shù)量=2對象數(shù)量=3對象數(shù)量=2對象數(shù)量=1對象數(shù)量=012.寫出下列程序的運(yùn)行結(jié)果()#include<iostream.h>#include<string.h>classgirl{public: girl(char*n,intd){ name=newchar[strlen(n)+1]; strcpy(name,n); age=d; } friendvoiddisp(girl&);~girl() {delete[]name;}private: char*name; intage; };voiddisp(girl&x){cout<<"Girl\'snameis"<<<<",age:"<<x.age<<endl;}voidmain(){girl e("李華",28);disp(e);}Girl'snameis李華,age:2813.寫出下列程序的運(yùn)行結(jié)果()#include<iostream>usingnamespacestd;classBook{ intnum,price;public: Book(inta=0,intb=0){num=a;price=b;} voidshowMoney(){cout<<num*price<<endl;}};voidmain(){ Bookb[]={Book(2,8),Book(5,10),Book(13,20)}; Book*p; inti; p=&b[2]; for(i=0;i<3;i++,p--) p->showMoney();}260501614.寫出下列程序的運(yùn)行結(jié)果()#include<iostream.h>intf(int);intmain(){ inti; for(i=0;i<5;i++) cout<<f(i)<<""; return0;}intf(inti){ staticintk=3; for(;i>0;i--) k+=i*2; returnk;}3511234315.有如下程序voidmain(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′\0′;j+=2)s=10*s+p[i][j]-′0′;cout<<s;}該程序的輸出結(jié)果是:638516.以下程序的輸出結(jié)果是longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}voidmain(){cout<<fun(3);}117以下程序的輸出結(jié)果是。voidfun(){staticinta=0;a+=2;cout<<a<<"";}voidmain(){intcc;for(cc=1;cc<4;cc++)fun();cout<<endl;}246四、程序改錯(cuò)1.下面程序定義類point,并輸出其數(shù)據(jù)成員的值。依據(jù)注釋寫出正確的語句。 #include<iostream.h>classpoint{public: //正確的為private: intx,y;private: //正確的為public:point(intxx,yy) //正確的為 point(intxx,intyy) { x=xx;y=yy; } voiddisp() {cout<<x<<""<<y<<endl;}};voidmain(){pointp1(3,4);cout<<x<<y<<endl; //正確的為p1.disp();}2.下列程序定義一個(gè)時(shí)鐘類,并能設(shè)置和顯示時(shí)間,要求ShowTime()函數(shù)為內(nèi)聯(lián)函數(shù)。 #include<iostream.h>classClock{public: voidSetTime(intNewH=0,intNewM=0,intNewS);//正確的為voidSetTime(intNewH=0,intNewM=0,intNewS=0) voidShowTime();private: intHour,Minute,Second;};voidClock::SetTime(intNewH,intNewM,intNewS){Hour=NewH;Minute=NewM;Second=NewS;}voidClock::ShowTime() //正確的為inlinevoidClock::ShowTime(){cout<<Hour<<":"<<Minute<<":"<<Second<<endl;}intmain(){ClockmyClock;cout<<"Firsttimesetandoutput:"<<endl;SetTime(); //正確的為myClock.SetTime();myClock.ShowTime();cout<<"Secondtimesetandoutput:"<<endl;SetTime(8,30,30); //正確的為myClock.SetTime(8;30;30);myClock.ShowTime();return0;3.下列程序定義了一個(gè)多繼承的派生類,依據(jù)注釋找出錯(cuò)誤寫出正確的語句。虛基類與最派生類#include<iostream.h>classVehicle{protected: intweight;public: Vehicle(intw){weight=w;} voidshow(){cout<<"classVehicle"<<endl;}};classBoat:publicVehicle //正確的為virtualpublicVehicle{public: Boat(intwb):Vehicle(wb){} voidshow(){cout<<"我能在水中游!"<<endl;}};classPlane:publicVehicle //正確的為virtualpublicVehicle{public: Plane(intwp):Vehicle(wp){} voidshow(){cout<<"我能在天上飛!"<<endl;}};classAmphibian:publicBoat,publicPlane{public: Amphibian(intwa):Boat(wa),Plane(wa){} //正確的為:Vehicle(wa),Boat(wa),Plane(wa){} voidshow(){cout<<"我能在水中游又能在天上飛!"<<endl;}};voidmain(){ Amphibiana; //正確的為Amphibiana(2380);實(shí)參隨意正數(shù) a.show();}4.下列程序定義了運(yùn)算符重載,依據(jù)注釋找出錯(cuò)誤寫出正確的語句。運(yùn)算符重載#include<iostream.h>classM{ inta,b;public: M(){a=b=0;} M(intaa,intbb){a=aa,b=bb;} Moperator+(intx); //正確的為(M&x); Moperator-(Mx); //正確的為(M&x); voidOutB() { cout<<a<<''<<b<<endl;}};Moperator+(M&x) //正確的為MM::operator+(M&x){ Mr; r.a=a+x.a; r.b=b+x.b; returnr;}MM::operator-(M&x){ intr; //正確的為Mr r.a=a-x.a; r.b=b-x.b; returnr;}voidmain(){ Mx(3,5),y(8,4),z1,z2; z1=x+y;z2=x-y; z1.OutB();z2.OutB();}5依據(jù)注釋找出錯(cuò)誤寫出正確的語句classCommonBase{public:intx;};classDeriveCommonA::publicCommonBase//正確的為classDeriveCommonA:publicCommonBase{public:inty;};classDeriveCommonB:publicCommonBase{public:intz;};classOverlapping:publicDeriveCommonA;publicDeriveCommonB//正確的為classOverlapping:publicDeriveCommonA,publicDeriveCommonB{public:voidDisplay(){cout<<"Valuesare:"<<endl;}intmain(){Overlappingov;ov.x=1;//正確的為ov.DeriveCommonA::x=1ov.y=2;ov.z=3;ov.Display();return0;}五、編程題1.編寫一個(gè)程序,聲明抽象基類Shape,由它派生出3個(gè)派生類:Circl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論