c++面向?qū)ο髲?fù)習(xí)題答案版_第1頁(yè)
c++面向?qū)ο髲?fù)習(xí)題答案版_第2頁(yè)
c++面向?qū)ο髲?fù)習(xí)題答案版_第3頁(yè)
c++面向?qū)ο髲?fù)習(xí)題答案版_第4頁(yè)
c++面向?qū)ο髲?fù)習(xí)題答案版_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第 22 頁(yè) 共 22 頁(yè)一、 填空題1.C+中有兩種數(shù)據(jù)類型: ( char )和 ( int long )可以使用signed修飾符。在C+中,用數(shù)組、指針、和( 引用 )作為函數(shù)參數(shù),能夠?qū)?shù)值帶回。2.為了降低函數(shù)調(diào)用的時(shí)間開銷,建議將小的調(diào)用頻繁的函數(shù)定義為(內(nèi)聯(lián)函數(shù) ),方法是在函數(shù)類型前加上(inline)關(guān)鍵字。3.面向?qū)ο蟮某绦蛟O(shè)計(jì)有四大特征,它們是抽象、封裝、( 繼承 )、( 多態(tài) )。4.拷貝構(gòu)造函數(shù)是在用一個(gè)對(duì)象初始化另一個(gè)對(duì)象時(shí)被調(diào)用,系統(tǒng)缺省的拷貝構(gòu)造函數(shù)的工作方法是( 把對(duì)象的每個(gè)數(shù)據(jù)成員的值都復(fù)制到新建立的對(duì)象中)。5.用new申請(qǐng)某一個(gè)類的動(dòng)態(tài)對(duì)象數(shù)組時(shí),在

2、該類中必須能夠匹配到(該類的)構(gòu)造函數(shù),否則應(yīng)用程序會(huì)產(chǎn)生一個(gè)編譯錯(cuò)誤。6.靜態(tài)數(shù)據(jù)成員必須在類外進(jìn)行初始化,且靜態(tài)數(shù)據(jù)成員的一個(gè)拷貝被類的所有對(duì)象( 共享 )。7.在C+中,定義重載函數(shù)時(shí),應(yīng)至少使重載函數(shù)的參數(shù)個(gè)數(shù)或參數(shù)類型( 不同 )。8.在C+中,雖然友元提供了類之間數(shù)據(jù)進(jìn)行訪問的一種方式,但它破壞了面向?qū)ο蟪绦蛟O(shè)計(jì)的( 封裝 )特性。9.預(yù)編譯指令由三種,它們是:文件包含、 ( 宏定義 )和 ( 條件編譯 )。10.靜態(tài)的成員函數(shù)沒有隱含的 ( this ),所以,它們只能直接訪問類的靜態(tài)的數(shù)據(jù)成員。11.在C+中,函數(shù)的參數(shù)有兩種傳遞方式,它們是值傳遞和( 地址 )。12.當(dāng)非靜態(tài)

3、成員函數(shù)被調(diào)用時(shí),該成員函數(shù)的( this )指向調(diào)用它的對(duì)象。13.拷貝構(gòu)造函數(shù)使用( 引用 )作為參數(shù)初始化創(chuàng)建中的對(duì)象。14.在公有繼承的情況下,基類數(shù)據(jù)成員在派生類中的訪問權(quán)限( 不變 )。15.在C+中,構(gòu)造派生類對(duì)象時(shí),總是先從( 基類 )的初始化開始的。16.當(dāng)需要統(tǒng)計(jì)程序中某個(gè)類創(chuàng)建對(duì)象的個(gè)數(shù)時(shí),需要給該類定義(靜態(tài)數(shù)據(jù))成員。17.在多個(gè)類之間有重復(fù)繼承時(shí),為避免被重復(fù)繼承的基類數(shù)據(jù)成員在內(nèi)存中有多個(gè)拷貝,應(yīng)將該基類定義為( 虛基類 )。18.在C+類中,有一種不能定義對(duì)象的類,這樣的類只能被繼承,稱之為( 抽象類 ),定義該類至少具有一個(gè)( 純虛函數(shù) )。19.在C+中構(gòu)造

4、一個(gè)對(duì)象時(shí),其數(shù)據(jù)成員在構(gòu)造函數(shù)中初始化。對(duì)于內(nèi)嵌的對(duì)象、 ( 常量 )、 ( 引用 )數(shù)據(jù)成員需要在構(gòu)造函數(shù)的成員初始化列表中初始化。 20.在類的定義中,說(shuō)明為protected的數(shù)據(jù)成員稱為保護(hù)成員。保護(hù)數(shù)據(jù)成員具有雙重作用:對(duì)于其派生類而言, ( 可以訪問 );而對(duì)于其外部的程序而言, ( 不可以訪問 )。21.控制格式輸出的操縱符中,(setprecision)是設(shè)置數(shù)據(jù)精度的,( hex )是設(shè)置十六進(jìn)制的。22.如果s是int型變量,且s=6,則下面s%2+(s+1)%2表達(dá)式的值為_0_ _。23已知字母a的ASCII碼為十進(jìn)制數(shù)97,且設(shè)ch為字符型變量,則表達(dá)式ch=a+4

5、的值為_e_ _。24數(shù)組與函數(shù)參數(shù)聯(lián)系密切,當(dāng)用數(shù)組元素作函數(shù)參數(shù)時(shí),這是屬于值傳遞;當(dāng)數(shù)組名作為參數(shù)時(shí),這是屬于 地址 傳遞,對(duì)形參的改變可影響到實(shí)參。25利用“對(duì)象名.成員變量”形式訪問的對(duì)象成員僅限于被聲明為 公有 的成員;若要訪問其他成員變量,需要通過 公有 函數(shù)或友元函數(shù)函數(shù)。26一個(gè)_類_和_對(duì)象_的關(guān)系,正如基本數(shù)據(jù)類型與該類型的變量一個(gè)。27類成員的默認(rèn)訪問方式是_私有的_.28一個(gè)類有_多個(gè)_個(gè)構(gòu)造函數(shù),有_一個(gè)_析構(gòu)函數(shù)。29類的_靜態(tài)_成員函數(shù)不能對(duì)類中的非靜態(tài)成員進(jìn)行默認(rèn)訪問。30如果說(shuō)明類B是類A的友元類,則類B的所有成員函數(shù)都是類A的_友元函數(shù) _。31利用成員函

6、數(shù)對(duì)二元運(yùn)算符重載,其左操作數(shù)為對(duì)象,右操作數(shù)為實(shí)際參數(shù) 。32類有兩種用法:一種是類的實(shí)例化,即生成類的_模板類_ ;另一種是通過_基類_派生出新的類。33運(yùn)算函數(shù)中的關(guān)鍵字是_ _ operator _,它和運(yùn)算符一起組成該運(yùn)算符函數(shù)的函數(shù)名。34如果一個(gè)類中有一個(gè)或多個(gè)純虛函數(shù),則這個(gè)類稱為_ _抽象類_。35文件的打開是通過使用類_ _ _對(duì)象_的成員函數(shù)來(lái)實(shí)現(xiàn)的。36設(shè)所有變量均為整型,則表達(dá)式(e=2,f=5,e+,f+,e+f)的值為_9_。37已知c的ASCII碼為十進(jìn)制數(shù)99,設(shè)k為字符型變量,則表達(dá)式k=c+1的值為_d_。38函數(shù)的形參在未被調(diào)用之前 不被 分配空間,函數(shù)

7、的形參的類型 要和實(shí)參的相同。39類的成員分為數(shù)據(jù)成員和_ _ _成員函數(shù)_。40類完成了面向?qū)ο蟪绦蛟O(shè)計(jì)的_抽象_特性。41構(gòu)造函數(shù)是_對(duì)象_被創(chuàng)建時(shí)自動(dòng)執(zhí)行,對(duì)象消失時(shí)自動(dòng)執(zhí)行的成員函數(shù)稱為_析構(gòu)_對(duì)象 43在繼承機(jī)制下,當(dāng)對(duì)象消亡時(shí),編譯系統(tǒng)先執(zhí)行 派生類 的析構(gòu)函數(shù),然后才執(zhí)行派生類中子對(duì)象類的析構(gòu)函數(shù),最后執(zhí)行 基類 的析構(gòu)函數(shù)。44類的_靜態(tài)_數(shù)據(jù)成員是類所有對(duì)象共享的成員。45友元函數(shù)_不是_類的成員函數(shù)。(是/不是)46如果類A繼承了類B,則類A稱為_派生類_,類B稱為_基類_。47運(yùn)算符重載后,原運(yùn)算符的優(yōu)先級(jí)和結(jié)合特性_不會(huì)_改變。(會(huì)/不會(huì))48_純虛函數(shù)_是一個(gè)在基類中

8、說(shuō)明的虛函數(shù),但未給出具體的實(shí)現(xiàn),要求在其派生類實(shí)現(xiàn)。49文件的關(guān)閉是通過通過使用類_的成員函數(shù)_來(lái)實(shí)現(xiàn)的。(去掉)二、選擇題1面向?qū)ο蟮模?B )是一種信息隱蔽技術(shù),目的在于將對(duì)象的使用者與設(shè)計(jì)者分開。不允許使用者直接存取對(duì)象的屬性,只能通過有限的接口與對(duì)象發(fā)生聯(lián)系。A多態(tài)性 B封裝性 C繼承性 D重用性2C+的合法注釋是( B )。A/*This is a C program/* B/ This is a C programC “This is a C program” D/*This is a C program/3關(guān)于C+和C語(yǔ)言的描述中,( C )是錯(cuò)誤的?AC是C+的一個(gè)子集 B

9、C程序在C+環(huán)境可以運(yùn)行C C+程序在C環(huán)境可以運(yùn)行 D C+是面向?qū)ο蟮亩鳦是面向過程的4運(yùn)算符 +、<=、=、% 中,優(yōu)先級(jí)最低的運(yùn)算符是( C )。A. + B.<= C.= D.% 5已知a=4,b=6,c=8,d=9,則“(a+,b>a+&&c>d)?+d:a<b” 值為( D )。A9 B6 C8 D06對(duì)while、dowhile循環(huán)結(jié)構(gòu),下面說(shuō)法正確的是( B )。 A只是表達(dá)形式不同 Bdowhile結(jié)構(gòu)中的語(yǔ)句至少執(zhí)行一次Cwhile結(jié)構(gòu)中的語(yǔ)句至少執(zhí)行一次 D條件成立時(shí),它們有可能一次也不執(zhí)行7對(duì)中斷語(yǔ)句的說(shuō)法下面不正確的是(

10、 B )。A用戶可以指定中斷的位置 B用戶可以指定轉(zhuǎn)移的位置Cbreak語(yǔ)句可以跳出本循環(huán) Dcontinue語(yǔ)句可以結(jié)束本次循環(huán)8以下正確的說(shuō)法是(D)。A用戶若需要調(diào)用標(biāo)準(zhǔn)函數(shù),調(diào)用前必須重新定義B用戶可以直接調(diào)用所有標(biāo)準(zhǔn)庫(kù)函數(shù) C用戶可以定義和標(biāo)準(zhǔn)庫(kù)函數(shù)重名的函數(shù),但是在使用時(shí)調(diào)用的是系統(tǒng)庫(kù)函數(shù)D用戶可以通過文件包含命令將系統(tǒng)庫(kù)函數(shù)包含到用戶源文件中,然后調(diào)用系統(tǒng)庫(kù)函數(shù)9下列哪個(gè)不是重載函數(shù)在調(diào)用時(shí)選擇的依據(jù)(D )。A參數(shù)類型 B參數(shù)個(gè)數(shù) C函數(shù)類型 D函數(shù)名10對(duì)數(shù)組名作函數(shù)的參數(shù),下面描述正確的是(B)。A數(shù)組名作函數(shù)的參數(shù),調(diào)用時(shí)將實(shí)參數(shù)組復(fù)制給形參數(shù)組B數(shù)組名作函數(shù)的參數(shù),主調(diào)

11、函數(shù)和被調(diào)函數(shù)共用一段存儲(chǔ)單元C數(shù)組名作參數(shù)時(shí),形參定義的數(shù)組長(zhǎng)度不能省略D數(shù)組名作參數(shù),不能改變主調(diào)函數(shù)中的數(shù)據(jù)11如果x是整型變量,則合法的形式是( D )。A(x+5)B*xC&*xD*&x12在定義一個(gè)共用體變量時(shí),系統(tǒng)為其分配存儲(chǔ)空間的原則是(B)。A 按所有成員需要的存儲(chǔ)空間總和分配。B 按成員中占存儲(chǔ)空間最大者分配。C 按成員占存儲(chǔ)空間最小者分配。 D按第一個(gè)成員所需的存儲(chǔ)空間分配。13下面( B )項(xiàng)是對(duì)構(gòu)造函數(shù)和析構(gòu)函數(shù)的正確定義。Avoid X:X(), void X:X()BX:X(參數(shù)), X:X()CX:X(參數(shù)), X:X(參數(shù))Dvoid X:X(

12、參數(shù)), void X:X(參數(shù))14拷貝構(gòu)造函數(shù)具有的下列特點(diǎn)中,( D )是錯(cuò)誤的。A  如果一個(gè)類中沒有定義拷貝構(gòu)造函數(shù)時(shí),系統(tǒng)將自動(dòng)生成一個(gè)默認(rèn)的B  拷貝構(gòu)造函數(shù)只有一個(gè)參數(shù),并且是該類對(duì)象的引用C 拷貝構(gòu)造函數(shù)是一種成員函數(shù)D 拷貝構(gòu)造函數(shù)的名字不能用類名15類的析構(gòu)函數(shù)的作用是( D )。A.一般成員函數(shù) B.類的初始化 C.對(duì)象初始化 D.刪除對(duì)象16下列對(duì)派生類的描述中,( D )是錯(cuò)誤的。A一個(gè)派生類可以作為另一個(gè)派生類的基類B派生類至少有一個(gè)基類C派生類的成員除了它自己的成員外,還包含了它的基類成員D派生類中繼承的基類成員的訪問權(quán)限到派生類保持不變17

13、繼承具有( B, C ),即當(dāng)基類本身也是某一個(gè)類派生類時(shí),底層的派生類也會(huì)自動(dòng)繼承間接基類的成員。A規(guī)律性 B.傳遞性 C.重復(fù)性 D.多樣性18C+類體系中,能被派生類繼承的是( A,B,C )。A構(gòu)造函數(shù) B虛函數(shù) C析構(gòu)函數(shù) D友元函數(shù)19下列關(guān)于動(dòng)態(tài)聯(lián)編的描述中,錯(cuò)誤的是(D)。 A動(dòng)態(tài)聯(lián)編是以虛函數(shù)為基礎(chǔ) B動(dòng)態(tài)聯(lián)編是運(yùn)行時(shí)確定所調(diào)用的函數(shù)代碼的 C動(dòng)態(tài)聯(lián)編調(diào)用函數(shù)操作是指向?qū)ο蟮闹羔樆驅(qū)ο笠?D動(dòng)態(tài)聯(lián)編是在編譯時(shí)確定操作函數(shù)的20關(guān)于純虛函數(shù)和抽象類的描述中,錯(cuò)誤的是( C )。 A純虛函數(shù)是一種特殊的虛函數(shù),它沒有具體的實(shí)現(xiàn) B抽象類是指具有純虛函數(shù)的類 C一個(gè)基類中說(shuō)明有純

14、虛函數(shù),該基類派生類一定不再是抽象類D. 抽象類只能作為基類來(lái)使用,其純虛函數(shù)的實(shí)現(xiàn)由派生類給出21C+源文件的擴(kuò)展名為( A )。Acpp Bc Ctxt Dexe22在C+語(yǔ)言中,( A )的陳述是正確的。A能使用關(guān)鍵字并區(qū)分大小寫 B能使用關(guān)鍵字并不區(qū)分大小寫C 不能使用關(guān)鍵字并區(qū)分大小寫 D不能使用關(guān)鍵字并不區(qū)分大小寫23運(yùn)算符+、=、*、>=中,優(yōu)先級(jí)最高的運(yùn)算符是( C )。A+ B= C* D>=24下列不合法的變量名為(A )。Aint Bint1 Cname_1 Dname025已知x=43,ch=A,y=0;則表達(dá)式(x>=y&&ch<

15、;B&&!y)的值是( C )。A0 B語(yǔ)法錯(cuò) C1 D“假” A語(yǔ)句for(i=0;i+)表示無(wú)限循環(huán) Bfor(;)表示無(wú)限循環(huán)26以下不正確的是(c)。?Cfor()也表示無(wú)限循環(huán) Dwhile(1)表示無(wú)限循環(huán)27在函數(shù)的返回值類型與返回值表達(dá)式的類型的描述中,錯(cuò)誤的是( B,D )。A 函數(shù)返回值的類型是在定義函數(shù)時(shí)確定,在函數(shù)調(diào)用時(shí)是不能改變的B 函數(shù)返回值的類型就是返回值表達(dá)式的類型C 函數(shù)返回值表達(dá)式類型與返回值類型不同時(shí),函數(shù)表達(dá)式類型應(yīng)轉(zhuǎn)換成返回值類型D 函數(shù)返回值類型決定了返回值表達(dá)式的類型28如果一個(gè)函數(shù)無(wú)返回值,定義時(shí)它的函數(shù)類型應(yīng)是(C)。A任意 B

16、int Cvoid D無(wú)29在C+語(yǔ)言中,關(guān)于參數(shù)默認(rèn)值的描述正確的是(A,B)。A只能在函數(shù)定義時(shí)設(shè)置參數(shù)默認(rèn)值B設(shè)置參數(shù)默認(rèn)值時(shí),應(yīng)當(dāng)從右向左設(shè)置C設(shè)置參數(shù)默認(rèn)值時(shí),應(yīng)當(dāng)全部設(shè)置D設(shè)置參數(shù)默認(rèn)值后,調(diào)用函數(shù)不能再對(duì)參數(shù)賦值30若有以下定義,則說(shuō)法錯(cuò)誤的是( D )。 int a=100,*p=&a ;A聲明變量p,其中*表示p是一個(gè)指針變量B變量p經(jīng)初始化,獲得變量a的地址C變量p只可以指向一個(gè)整形變量D變量p的值為10031列關(guān)于結(jié)構(gòu)體的說(shuō)法錯(cuò)誤的是(D )。A結(jié)構(gòu)體是由用戶自定義的一種數(shù)據(jù)類型B結(jié)構(gòu)體中可設(shè)定若干個(gè)不同數(shù)據(jù)類型的成員C結(jié)構(gòu)體中成員的數(shù)據(jù)類型可以是另一個(gè)已定義的結(jié)

17、構(gòu)體D在定義結(jié)構(gòu)體時(shí),可以為成員設(shè)置默認(rèn)值32下列有關(guān)類的說(shuō)法不正確的是( C )。A  對(duì)象是類的一個(gè)實(shí)例B  任何一個(gè)對(duì)象只能屬于一個(gè)具體的類C  一個(gè)類只能有一個(gè)對(duì)象D 類與對(duì)象的關(guān)系和數(shù)據(jù)類型與變量的關(guān)系相似33( C )的功能是對(duì)象進(jìn)行初始化。A析構(gòu)函數(shù) B. 數(shù)據(jù)成員 C.構(gòu)造函數(shù) D.靜態(tài)成員函數(shù)34關(guān)于友元的描述中,( A )是錯(cuò)誤的。A  友元函數(shù)是成員函數(shù),它被說(shuō)明在類體內(nèi)B   友元函數(shù)可直接訪問類中的私有成員C   友元函數(shù)破壞封裝性,使用時(shí)盡量少用D   友元類中的所有

18、成員函數(shù)都是友元函數(shù)35為了使類中的某個(gè)成員不能被類的對(duì)象通過成員操作符訪問,則不能把該成員的訪問權(quán)限定義為(A,B,C )。A.public B. protected C.private D. static36派生類的對(duì)象對(duì)它的( A,B,D )是可以訪問的。A公有繼承的基類的公有成員 B. 公有繼承的基類的保護(hù)成員C. 公有繼承的基類的私有成員 D. 保護(hù)繼承的基類的公有成員37多繼承派生類構(gòu)造函數(shù)構(gòu)造對(duì)象時(shí),(B )被最先調(diào)用。A派生類自己的構(gòu)造函數(shù) B虛基類的構(gòu)造函數(shù)C非虛基類的構(gòu)造函數(shù) D派生類中子對(duì)象類的構(gòu)造函數(shù)38C+類體系中,不能被派生類繼承的有(C )。A.構(gòu)造函數(shù) B.虛函

19、數(shù) C.靜態(tài)成員函數(shù) D.賦值操作函數(shù)39編譯時(shí)的多態(tài)性可以通過使用(A,D )獲得。A虛函數(shù)和指針 B重載函數(shù)和析構(gòu)函數(shù) C虛函數(shù)和對(duì)象 D虛函數(shù)和引用40下列描述中,( A )是抽象類的特征。A可以說(shuō)明虛函數(shù) B可以進(jìn)行構(gòu)造函數(shù)重載 C可以定義友元函數(shù) D不能說(shuō)明其對(duì)象三、指出并改正下列程序段中的語(yǔ)法錯(cuò)誤。題目答案1.float x=3.26f;int &ref1=x;/ float1.類型不一致2.int d1=3, d2=2;int * const dp=&d1;dp=&d2;*dp=5;2.常指針3. /Nums為已定義的類Nums *fp;fp=new in

20、t4;3.類型不一致4. void func(int first, int 2_secnd);4.標(biāo)識(shí)符得字母開頭5.void Pixel:operator=(Pixel &p1, Pixel &p2);5.“=”運(yùn)算符重載函數(shù)返回類型不對(duì)6./Pixel有兩個(gè)整型成員x和yPixel Pixel:operator+=(Pixle&p)constx+=p.x;y+=p.y;return *this;6.在這里this是指向常量的常指針2、指出并改正下列程序段中的語(yǔ)法錯(cuò)誤。題目答案1.int x=13;const int &ref=x;ref=10;1.常引用不能

21、賦值了2.double *fp;fp=new int(3);2.類型不一致3. void func( first, int secnd);3. first不是類型說(shuō)明4. /Pixel有兩個(gè)整型成員x和y,其拷/貝構(gòu)造函數(shù)定義如下:void Pixel(const Pixle& p);4.不能有“void”5.friend Pixel & operator=(Pixel &p1, Pixel&p2);5.不能定義友元函數(shù),只能是成員函數(shù)。6. /Pixel有兩個(gè)整型成員x和yPixel Pixel:operator+(int) Pixel temp; temp=

22、*this;x+;y+;return *this;temp;6.四、程序填空1編寫函數(shù)將字符串按逆序存放。#include<iostream.h>#include<stdio.h>#include<string.h>void main()int i,n;char s100,temp;cout<<"input string:"<<endl; (1) get(s); n= (2) strlen(s); for(i=0;i<n/2;i+)temp=si;si=sn-i-1; sn-i-1=temp;cout<

23、<"Now,string:"<<endl;puts(s); 2.下列程序定義了類Pixel,請(qǐng)完成前置+和后置+的運(yùn)算符函數(shù)的定義。class Pixelint x,y;public:Pixel(int xx=0,int yy=0) x=xx; y=yy; Pixel operator +();Pixel operator +(int);void display();Pixel Pixel:operator +() x+;y+;return (3) *this Pixel Pixel:operator +(int) ( 4 )Pixel temp=*thi

24、s; x+; y+;return ( 5 ) temp; void Pixel:display()cout<<"("<<x<<","<<y<<")"<<endl;3. 根據(jù)給定的程序執(zhí)行結(jié)果,將下列程序補(bǔ)充完整。#include <iostream.h>class Basepublic: ( 6 )Base() cout<<” Delete Derived”<<lend; ;class Derived:public Basepu

25、blic: ( 7 )Derived ()cout<<” Delete Base”<<lend; ;void main() Base *p1= ( 8 )new Derived ; delete p1; 程序的執(zhí)行結(jié)果如下:Delete DerivedDelete Base4定義一個(gè)字符串類String,有兩個(gè)私有數(shù)據(jù)成員:char* content和int len;要求1)在構(gòu)造函數(shù)中提示用戶輸入字符串,;2) 用戶能提取和顯示字符串;(分別由兩個(gè)函數(shù)完成)3)實(shí)現(xiàn)對(duì)字符串中所有小寫字母變成大寫,并顯示。注意內(nèi)存的分配與釋放。類定義的部分代碼如下,請(qǐng)補(bǔ)充代碼使類的定義

26、完整。#include <iostream.h>#include <string>#include <stdlib.h>class Stringchar* content;int len;public:String(); String() ( 1 ) delete content; void display();void upper_str();char* get_str() const ( 2 ) return content; ;String:String() char ch50;/?cout<<"enter a string: n

27、"cin>>ch;len=strlen(ch);content= ( 3 )new char50; if(!content)cout<<" Memory allocation eror!"exit(1);strcpy(content,ch);void String:display()cout<<content<<" have "<<len <<" characters."<<endl; void String:upper_str() for

28、(int i=0;i<len;i+)if ( 4 )(a<= contenti&& contenti <=z) contenti= ( 5 ) contenti+32; 5. 下列程序定義了類Point,請(qǐng)完成前置-和后置-的運(yùn)算符函數(shù)的定義。class Pointfloat x,y;public:Point(float xx=0,float yy=0) x=xx; y=yy; Point operator -();Point operator -(int);void display();Point Point:operator -() x-;y-;retur

29、n ( 6 )*this; Point Point:operator -(int) ( 7 ) Point temp;temp=*this; x-; y=y-; ( 8 )return temp; void Point:display()cout<<"("<<x<<","<<y<<")"<<endl;6、程序填空,直接將答案寫在空行上1._#incolude <iostream.h>_/_1_class A int a;public: A(int i)

30、a=i; void print()cout<<a<<endl;class B A obj_a; int b;public:_B(int i): obj_a (i)_ _ b=i; void print();_void B:print()_/3_obj_a.print();cout<<b<<endl;int main( )B obj_b(3,4);obj_b.print();return 0; 2.#include <iostream.h>5#include <math.h>class Complexdouble real,

31、image;public:Complex(double r=0,double i=0) real=r; image=i; ; 4 friend ostream & operator <<( ostream &, Complex &) ; 5 ostream & operator <<( ostream & output , Complex & obj) ; output << obj.real << obj.image; 6 return output ;int main()4Complex c;c

32、out<<c;return 0;/重載<<五、寫出程序的運(yùn)行結(jié)果1.#include <iostream.h>int main(void)char str="configuration"char *p=str; cout<<p<<endl; for(int i=0;i<sizeof(str);i=i+2)cout<<stri; cout<<endl;/字符c的ASCII碼是99for(i=0;i<4;i+)cout<<*p+i<<' 'co

33、ut<<endl;return 0;第1題的運(yùn)行結(jié)果如下:configurationcniuaincdef2.# include<iostream.h>class Nodepublic:int data;Node *next;Node(int d,Node * q=0) data=d;next=q; 第2題程序運(yùn)行結(jié)果:67->45->23->int main()int n;Node * p;Node * q=0;while (cin>>n)p=new Node(n,q);q=p;for(p=q;p;p=p->next)cout<

34、;<p->data<<"->"cout<<"*n"return 0;/假定,輸入如下3個(gè)數(shù)據(jù):23 45 673.#include <iostream.h>class ConstTestint m1,m2;public:ConstTest(int x,int y) m1=x;m2=y;void print()cout<<m1<<","<<m2<<endl;void print() const;void ConstTest:print(

35、) constcout<<"const fun: "<<m1+m2<<endl;int main()ConstTest a(6,9);a.print();const ConstTest b(2,5);第3題程序運(yùn)行結(jié)果:6, 9const fun: 7b.print(); return 0;4.#include <iostream.h>class Planeprotected:int x,y;public:Plane(int a,int b)x=a;y=b;virtual void print() cout<<&#

36、39;('<<x<<','<<y<<')'<<endl;virtual void increase(int d); ;class Solid:public Planeint z;public:Solid(int a,int b,int c):Plane(a,b)z=c;void print() cout<<'('<<x<<','<<y<<','<<z<<')

37、'<<endl;void increase(int d); ;void Plane:increase(int d)x+=d;y+=d;void Solid:increase(int d)x+=d;y+=d;z+=d;/接右邊的代碼int main()Plane d1(3,6);Solid d2(2,7,9);Plane *ptr;ptr=&d1;ptr->print(); ptr=&d2;ptr->print(); ptr->increase(4); ptr->print(); d2.print ();(3, 6)(2, 7, 9)(

38、6,11,13)(6,11,13) 第4題運(yùn)行結(jié)果:(3,6)(2,7)(6,11)(6,11,9)5.去掉上題(即第4小題)程序中的 “ virtual”關(guān)鍵字,運(yùn)行結(jié)果如何? (8 分)第5題運(yùn)行結(jié)果:6. #include <iostream.h>class Countstatic int count;public:Count()count+;static int Getc()return count;Count()count-;int Count:count=100;int main(void)Count c1,c2;cout<<Count:Getc()<

39、<endl;Count c3;cout<<Count:Getc()<<endl;cout<<Count:Getc()<<endl;return 0;第6題102105102的運(yùn)行結(jié)果:1. #include <iostream.h>void main(void)char string="fortunate "char *p=string; cout<<string<<endl;cout<<*p<<*(p+2)<<*(p+4)<<*(p+6

40、)<<endl;for(int i=1; i<sizeof(string); i+=2)cout<<stringi; 2. #include<iostream.h>void main() int a;cout<<"please input a number:"cin>>a;switch(a%2) case 0: cout<<"a是偶數(shù)"<<endl;default: cout<<"a是奇數(shù)"<<endl;a=a/4;cou

41、t<<a<<endl; 如果輸入數(shù)為6,則輸出結(jié)果是什么? 14.( 3 分)#include<iostream.h>class Point int x,y; public: Point(int a=0,int b=0) x=a; y=b; void move(int xoffset,int yoffset) x+=xoffset; y+=yoffset; int getx() return x; int gety() return y;class Rectangle:public Point int length,width; public: Rectan

42、gle(int x,int y,int l,int w):Point(x,y) length=l;width=w; int getlength()return length; int getwidth()return width;void main() Rectangle r(0,0,4,9);r.move(33,66);cout<<r.getx()<<","<<r.gety()<<","<<r.getlength()<<","<<r.getwidth

43、()<<endl;5.#include <iostream.h>class Base public:virtual void show()cout<<"Base:show()"<<endl;class Derived1: public Basepublic:void show()cout<<"Derived1:show()"<<endl;class Derived2: public Derived1public:void show()cout<<"Derived

44、2:show()"<<endl;void main()Base b;Derived1 d1;Derived2 d2;Base *ptr3=&b,&d1,&d2;for (int i=0;i<3;i+) ptri->show();Base:show()Derived1:show()Derived2:show()6.去掉上題(即第5小題)程序中的 “ virtual”關(guān)鍵字,運(yùn)行結(jié)果如何?Base:show()Base:show()Base:show() 2. #include<iostream.h>void main() in

45、t a,b;int n=0;for(a=1,b=1;a<=100;a+) if(b>=10) break;if(b%3=1) b+=3; n+; continue;cout<<a<<endl;cout<<b<<endl;cout<<n<<endl; 3.#include<iostream.h>class Pixel int x, y;public:static int count;Pixel()count+;Pixel()count-;int Pixel:count =0;int main()Pix

46、el p6;Pixel p1=p2;cout<<Pixel:count <<endl;Pixel p24;cout<<Pixel:count <<endl;cout<<Pixel:count <<endl;4. #include <iostream.h>class Aint a1,a2;public:A(int i,int j)a1=i;a2=j;void printA()cout<<a1<<","<<a2<<endl;class BA a;

47、int b1;public:B(int i,int j,int k); void printB();B:B(int i,int j,int k):a(k,j) b1=i; void B:printB()a.printA();cout<<b1<<endl;int main(void)B bbb(8,2,6);bbb.printB();return 0;5.#include <iostream.h>class Pixelprotected:int x,y;public:Pixel(int a,int b)x=a;y=b;virtual void print()

48、cout<<"("<<x<<","<<y<<")"<<endl;virtual void move(int d); ;class Pixel_3d:public Pixelint z;public:Pixel_3d(int a,int b,int c):Pixel(a,b)z=c;void print() cout<<""<<x<<","<<y<<",&q

49、uot;<<z<<""<<endl;void move(int d); ;void Pixel:move(int d)x+=d;y+=d;void Pixel_3d:move(int d)x+=d;y+=d;z+=d;void main()Pixel d1(6,3);Pixel_3d d2(2,7,9);Pixel *ptr;ptr=&d1;ptr->print(); ptr=&d2;ptr->print(); ptr->move(5); ptr=&d1;ptr->print(); ptr=

50、&d2;ptr->print(); 6.去掉上題(即第5小題)程序中的 “ virtual”關(guān)鍵字,運(yùn)行結(jié)果如何? 1. #include <iostream.h>void main(void)char string="successful "char *p=string; cout<<string<<endl;cout<<*p<<*(p+2)<<*(p+4)<<*(p+6)<<endl; for(int i=1; i<sizeof(string); i+=2

51、) cout<<stringi; 第1題運(yùn)行結(jié)果:2. #include <iostream.h>int main( )int x,y;cout<<"Input x,y:"cin>>x>>y; cout<<"x="<<x<<,<<"y="<<y<<endl;cout<<"x-y="<<x-y<<"n" ;cout<<”

52、x*y=”<<x*y<<endl;return 0;/假定,輸入如下兩個(gè)數(shù)據(jù):9 3第2題運(yùn)行結(jié)果:3.#include<iostream.h>class Pixelint x, y;public:static int count;Pixel()count+;Pixel()count-;Pixel(const Pixel & obj)x=obj.x; y=obj.y; count+; int Pixel:count =0; int main()Pixel p5;cout<<Pixel:count <<endl;Pixel p1

53、=p1;Pixel p2=p2;cout<<Pixel:count <<endl;Pixel p23;cout<<Pixel:count <<endl;cout<<Pixel:count <<endl; /第3題運(yùn)行結(jié)果:4.#include <iostream.h>class A int a;protected: int protect;public: A(int x)a=x;protect=x+5;cout<<"A"<<endl; void show()cout<<a<<" "<<protect<<endl;class Bint b;public: B(int x)b=x;cout<<"B"<<endl;int Getb()return b;class C:public AABC1,62,5 int c; B obj_b; public: C(int x,int y,int z);void

溫馨提示

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

評(píng)論

0/150

提交評(píng)論