




已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο蟪绦蛟O(shè)計(jì)課程 復(fù)習(xí)題一、選擇題,從供選擇的答案中選出正確的答案(每小題2分,共計(jì)20分)1、由C+源程序文件編譯而成的目標(biāo)文件的缺省擴(kuò)展名為( )。Acpp BexeCobj Dlik2、設(shè)x和y均為bool量,則x&y為真的條件是( )。A它們均為真 B其中一個(gè)為真C它們均為假 D其中一個(gè)為假 3、下列的常量名中,( )是非法的。AYEAR2002 Bwelcome_homeCzhang mail D_SIZE_2MB4、在內(nèi)存中所存儲(chǔ)的含L個(gè)字符的一個(gè)字符串常量是( )。A一串相應(yīng)的ASCII碼值,占用L個(gè)字節(jié)B一串相應(yīng)的ASCII碼值,占用L+1個(gè)字節(jié)C一組相應(yīng)的正整數(shù),占用L個(gè)字節(jié)D一組相應(yīng)的整數(shù),占用2L個(gè)字節(jié)5、AB為一個(gè)類,則執(zhí)行“AB a,b(3),*p;”語句時(shí)共調(diào)用該類構(gòu)造函數(shù)的次數(shù)為( )。A2 B3 C4 D56、返回類型就是函數(shù)返回結(jié)果值的數(shù)據(jù)類型。返回類型可以是( )。A除數(shù)組和類以外的任意數(shù)據(jù)類型B除數(shù)組和結(jié)構(gòu)類型以外的任意數(shù)據(jù)類型C除數(shù)組類型以外的任意數(shù)據(jù)類型D除指針和引用類型以外的任意數(shù)據(jù)類型7、重載函數(shù)是( )。A以函數(shù)參數(shù)來區(qū)分,而不用函數(shù)的返回值來區(qū)分不同的函數(shù)B以函數(shù)的返回值來區(qū)分,而不用函數(shù)參數(shù)來區(qū)分不同的函數(shù)C參數(shù)表完全相同而返回值類型不同的兩個(gè)或多個(gè)同名函數(shù)D參數(shù)表和返回值類型都必須是不同的兩個(gè)或多個(gè)同名函數(shù)8、當(dāng)保護(hù)繼承時(shí),基類的( )在派生類中成為保護(hù)成員,不能通過派生類的對(duì)象來直接訪問該成員。A任何成員B公有成員和保護(hù)成員C保護(hù)成員和私有成員D公有成員和私有成員9、引入內(nèi)聯(lián)函數(shù)的主要目的是( )。A縮短程序代碼,少占用內(nèi)存空間B既可以保證程序的可讀性,又能提高程序的運(yùn)行效率C占用內(nèi)存空間少,執(zhí)行速度快 D使程序的結(jié)構(gòu)比較清晰10、在下面的二維數(shù)組定義中,正確的是( )。Aint a5 Bint a5Cint a3=1,3,5,2 Dint a(10)c+基礎(chǔ)知識(shí)1、 函數(shù)的參數(shù)和返回值類型可以是簡單數(shù)據(jù)類型,也可以是指針、引用、數(shù)組和類。()2、 C+程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行。()3、 C+語言是在C語言基礎(chǔ)上擴(kuò)充了函數(shù)功能而得來的。( )4、 在VC6.0開發(fā)環(huán)境中,對(duì)導(dǎo)入的所有位圖資源都可以進(jìn)行修改。()5、 在C+中,標(biāo)識(shí)符Max和MAX是不一樣的。( )6、 C+函數(shù)必須有返回值,否則不能使用函數(shù)。( )7、 采用 inline 定義內(nèi)聯(lián)函數(shù)時(shí),在對(duì)于函數(shù)代碼少、頻繁調(diào)用的情況下特別有效。()8、 引入內(nèi)聯(lián)函數(shù)的主要目的是縮短程序代碼,讓程序少占用內(nèi)存空間。( )9、 在C+程序中,可以使用命名空間,也可不使用命名空間。( )10、 C+中,如果條件表達(dá)式值為-1,則表示邏輯為假。()11、 ASCII碼文件和二進(jìn)制文件都可在記事本中直接打開。( )12、 在C+語言中,表達(dá)式:“b+;” 和“+b;”在任何地方的作用都是不一樣的。( ) 編程工具相關(guān)知識(shí)1、 在MFC編程中,通過Invalidate(TRUE)可以發(fā)出重繪視圖的消息。( )2、 在MFC編程中,視圖/文檔類程序是通過OnDraw()函數(shù)進(jìn)行進(jìn)行輸出的。( 3、 使用MFC編程時(shí),OnDraw函數(shù)是CView類的成員函數(shù)。( )4、 在文檔/視圖結(jié)構(gòu)的程序中,輸出是在OnDraw()函數(shù)中完成的。( )5、 在VC6.0開發(fā)環(huán)境中,可以同時(shí)開發(fā)幾個(gè)工程。( )6、 Visual C+集成開發(fā)環(huán)境中,一個(gè)Workspace可以創(chuàng)建多個(gè)Project。( )7程序的編譯是以文件為單位的,因此將程序分到多個(gè)文件中可以減少每次對(duì)程序修改所帶來的編譯工作量。 ( )8、在C語言中,不使用命名空間,但在C+程序中,一定要使用命名空間。( )字符串、數(shù)組、指針及地址1、 字符串”hello,world”在內(nèi)存中存放時(shí),占用11個(gè)字節(jié)的空間(X )2、 當(dāng)函數(shù)的返回值是數(shù)組類型的,傳遞的是數(shù)組第一個(gè)元素的地址。()3、 每個(gè)對(duì)象也有地址,該地址就是存儲(chǔ)此對(duì)象數(shù)據(jù)成員的單元的首地址。( )4、 在C+語言中,指針的概念與C語言是一樣的,都是指變量的地址。( )5、 在內(nèi)存中,一個(gè)字符常量或變量是以ASCII碼值存儲(chǔ)的,它可直接作為整數(shù)值參加運(yùn)算。()6、 char *const p 表明p是一個(gè)指針,它只能指向一個(gè)字符串常量。()7、 在定義二維數(shù)組時(shí),語句“int a4=1,2,3,4;”是不正確的。()8、 設(shè)Time是一個(gè)類,現(xiàn)有指針p的定義語句:const Time *p;則通過指針p不可以修改Time類對(duì)象的公有數(shù)據(jù)成員。()9、 在定義二維數(shù)組時(shí),語句:int a5;是錯(cuò)誤的。()靜態(tài)及動(dòng)態(tài)成員函數(shù)、類中的靜態(tài)成員數(shù)據(jù)為該類的所有對(duì)象所共享,并且,在該類對(duì)象被撤銷時(shí),靜態(tài)成員并沒有撤銷。( )、如果在一個(gè)類的對(duì)象之間要進(jìn)行數(shù)據(jù)交換,可以使用該類的靜態(tài)數(shù)據(jù)成員來完成。( )類函數(shù)1、 在C+中,也可使用struct來聲明類,但在該類中不能聲明成員函數(shù)。( )2、 在c+語言中,也可以使用struct(結(jié)構(gòu)體)來定義一個(gè)類。()3、 語句“ typedef struct _MYSTRUC int x; int y; double z; MYSTRUC; ”是非法語句。 ()4、 在C+語言中,使用struct(結(jié)構(gòu)體)定義的類與使用class定義的類是一樣的。()5、 在聲明一個(gè)類時(shí),必須同時(shí)聲明類的數(shù)據(jù)成員和成員函數(shù)。()6、 設(shè)函數(shù)fun( )是一個(gè)不屬于任何類的普通函數(shù),則在調(diào)用該函數(shù)時(shí)只能用fun()方式,而不能用:fun()方式來調(diào)用。( )7、 如果一個(gè)類的所有對(duì)象都共享某一個(gè)變量,則應(yīng)當(dāng)將該變量定義為該類的私有成員。( )派生類1、 派生類的成員函數(shù)可以直接訪問基類的所有成員。 ()2、 如果派生類的繼承方式是protected的,則在main( )函數(shù)中,可以通過派生類對(duì)象來訪問基類的公有的成員。( )3、 如果派生類的成員函數(shù)的原型與基類中被定義為虛函數(shù)的成員函數(shù)原型相同,那么,這個(gè)函數(shù)自動(dòng)繼承基類中虛函數(shù)的特性。 ()函數(shù)重載1、 函數(shù)重載既要求兩函數(shù)參數(shù)對(duì)應(yīng)的類型不同又要求參數(shù)個(gè)數(shù)不同。(X) 2、 函數(shù)重載時(shí),它們的參數(shù)個(gè)數(shù)和類型要求都不能相同。()3、 在C+中,可以通過ofstream類對(duì)象來建立一個(gè)輸出文件流。( )4、 在C+中,文件的輸入輸出可以通過iostream類對(duì)象來完成。( )5、 cout屬于標(biāo)準(zhǔn)輸出流,而cerr和clog則不屬于標(biāo)準(zhǔn)輸出流。( )類的友元函數(shù)1、 類的友員函數(shù)是指可以訪問本類私有成員的其它類的成員函數(shù)。( )2、 能訪問一個(gè)類CMyClass中的private成員的可以是類CMyClass的成員函數(shù),友元函數(shù)和友元類中的函數(shù)。( )構(gòu)造函數(shù)和析構(gòu)函數(shù)1、 構(gòu)造函數(shù)和析構(gòu)函數(shù)均不能被說明為虛函數(shù)。( )2、 構(gòu)造函數(shù)和析構(gòu)函數(shù)均都可以被說明為虛函數(shù),只是構(gòu)造函數(shù)和析構(gòu)函數(shù)的功能不同而已。( )3、 類的構(gòu)造函數(shù)和析構(gòu)函數(shù)一般都聲明為虛函數(shù)。( )4、 析構(gòu)函數(shù)的作用是當(dāng)對(duì)象不用時(shí),刪除對(duì)象。( )5、 構(gòu)造函數(shù)不具備的特征是構(gòu)造函數(shù)需指定類型說明。()6、 對(duì)對(duì)象成員的構(gòu)造函數(shù)的調(diào)用順序,取決于這些對(duì)象成員在成員初始化列表中的順序。( ) 二、簡答題1、面向過程的程序設(shè)計(jì)和面向?qū)ο蟮某绦蛟O(shè)計(jì)的主要區(qū)別是什么? 答:主要區(qū)別:面向過程的程序設(shè)計(jì):以功能為中心,采用函數(shù)來描述,函數(shù)和操作的數(shù)據(jù)是分離的。程序的實(shí)現(xiàn)通過函數(shù)的順序執(zhí)行來實(shí)現(xiàn)。面向?qū)ο蟮某绦蛟O(shè)計(jì):它吸取了面向過程的程序設(shè)計(jì)的優(yōu)點(diǎn),同時(shí)又考慮了現(xiàn)實(shí)世界和計(jì)算機(jī)處理的關(guān)系,它的整個(gè)程序由一系列相互作用的對(duì)象構(gòu)成,對(duì)象之間的交互通過發(fā)送消息來實(shí)現(xiàn),對(duì)象通過響應(yīng)消息來實(shí)現(xiàn)程序的功能。2、在VC+6.0中,語句CWnd:Invalidate();和語句CWnd:UpdateData(TRUE);的功能分別是什么?答:CWnd:Invalidate();的功能是:發(fā)送重繪視圖的消息,即執(zhí)行重繪視圖的OnDraw()函數(shù)。CWnd:UpdateData(TRUE);的功能是:說明對(duì)話框中控件的數(shù)據(jù)有效,這些數(shù)據(jù)放入對(duì)應(yīng)控件的變量中。3、什么是面向?qū)ο蟮某绦蛟O(shè)計(jì)? 答:面向?qū)ο蟮某绦蛟O(shè)計(jì):它的整個(gè)程序由一系列相互作用的對(duì)象構(gòu)成,對(duì)象之間的交互通過發(fā)送消息來實(shí)現(xiàn),對(duì)象通過響應(yīng)消息來實(shí)現(xiàn)程序的功能。它有四個(gè)基本的特征,即抽象、封裝、繼承和多態(tài)性。4、簡要說明面向?qū)ο蟮某绦蛟O(shè)計(jì)的四個(gè)主要特征。(評(píng)分標(biāo)準(zhǔn):兩個(gè)知識(shí)點(diǎn)各4分,后一個(gè)知識(shí)點(diǎn)每小點(diǎn)2分)答:主要特征:1)、抽象,即忽略當(dāng)前主題中與目標(biāo)無關(guān)的那些方面,把它的主要特征抽取出來。抽象包括數(shù)據(jù)抽象和代碼抽象。2)、封裝,它是將抽象得到的數(shù)據(jù)成員和代碼相結(jié)合,形成一個(gè)有機(jī)的整體。并且,封裝可以隱藏內(nèi)部的細(xì)節(jié)。3)、繼承,它提供了代碼重用的一種方式,派生類可以重用基類的屬性和行為。4)、多態(tài)性,它是指不同類的對(duì)象對(duì)同一消息作出不同反應(yīng),即c+的代碼可以根據(jù)運(yùn)行情況的不同而執(zhí)行不同的操作。5、什么是類?什么是對(duì)象?什么是封裝?什么是多態(tài)性? 答:類:是指具有相同的屬性和操作方法,并遵守相同規(guī)則的對(duì)象的集合。對(duì)象:是包含現(xiàn)實(shí)世界物體特征的抽象實(shí)體,每個(gè)對(duì)象有內(nèi)部的屬性和操作方法。封裝:是指將抽象得到的數(shù)據(jù)成員和代碼相結(jié)合,形成一個(gè)有機(jī)的整體,并且將它們的細(xì)節(jié)隱藏起來的一種方法。多態(tài)性:是指允許不同類的對(duì)象對(duì)同一消息作出響應(yīng),即實(shí)現(xiàn)“一個(gè)接口,多種方法”或者說是向不同的對(duì)象發(fā)送同一個(gè)消息,不同的對(duì)象在接收時(shí)會(huì)產(chǎn)生不同的行為(即方法)。C+中,多態(tài)性是通過指針和虛函數(shù)來實(shí)現(xiàn)的。6、類和結(jié)構(gòu)有什么異同? (評(píng)分標(biāo)準(zhǔn):兩個(gè)知識(shí)點(diǎn)各4分)答:結(jié)構(gòu)是類的一種特例,在結(jié)構(gòu)體中也可以定義成員函數(shù)、構(gòu)造函數(shù)和析構(gòu)函數(shù),成員也可使用private、protected、public。結(jié)構(gòu)和類的區(qū)別是:在缺省情況下,結(jié)構(gòu)中的所有成員都是公有的,而在類中是私有的7、在VC+6.0中,模態(tài)對(duì)話框和非模態(tài)對(duì)話框的主要區(qū)別是什么?答:主要區(qū)別:模態(tài)對(duì)話框使用DoModal()來啟動(dòng),它壟斷了消息循環(huán),它只有在關(guān)閉后,才能返回應(yīng)用程序。非模態(tài)對(duì)話框使用Create()函數(shù)來產(chǎn)生,用DestroyWindow()函數(shù)來關(guān)閉。它與應(yīng)用程序共用一個(gè)消息循環(huán),它產(chǎn)生后,應(yīng)用程序一樣可以接收消息循環(huán)。8、什么是簡單繼承?什么是多重繼承?在軟件開發(fā)過程中,繼承有什么好處?答: 簡單繼承:派生類的基類只有一個(gè)的繼承方法。(3分) 多重繼承:派生類的基類同時(shí)有多個(gè)時(shí)的繼承方法。(3分)繼承的好處:由于可以利用已有的軟件基礎(chǔ)來進(jìn)行新的軟件開發(fā),所以能提高軟件開發(fā)效率和軟件質(zhì)量。(2分)9、什么是函數(shù)重載?函數(shù)重載的主要作用是什么?調(diào)用不同的重載函數(shù)是在編譯時(shí)決定還是在運(yùn)行時(shí)決定?函數(shù)重載時(shí)參數(shù)個(gè)數(shù)不同時(shí),能否有缺省參數(shù),為什么?答:函數(shù)重載:C+允許用同一函數(shù)名定義多個(gè)函數(shù),這些函數(shù)的參數(shù)個(gè)數(shù)和參數(shù)類型不同。函數(shù)重載主要作用是:用同一個(gè)函數(shù)名可以去調(diào)用不同參數(shù)或功能的函數(shù),即用同一個(gè)函數(shù)實(shí)現(xiàn)不同的操作。調(diào)用不同的重載函數(shù)是在編譯時(shí)決定的。函數(shù)重載時(shí)參數(shù)個(gè)數(shù)不同時(shí),不能有缺省參數(shù)。因?yàn)椋河腥笔?shù)時(shí),就會(huì)發(fā)生二義性,編譯出錯(cuò)。10、什么是友元函數(shù)?友元函數(shù)的作用是什么?(評(píng)分標(biāo)準(zhǔn):前兩個(gè)知識(shí)點(diǎn)各4分)答:在一個(gè)類中,用friend聲明的非本類函數(shù)就是友元函數(shù)。友元函數(shù)的作用:可以直接訪問本類的私有成員,提高編程的靈活性和程序執(zhí)行效率。11、c+中,什么是函數(shù)重載?什么是運(yùn)算符重載?什么是構(gòu)造函數(shù)?什么是析構(gòu)函數(shù)?答:(評(píng)分標(biāo)準(zhǔn):每小題2分,不完全正確,適當(dāng)扣分,等價(jià)寫法給滿分)函數(shù)重載:函數(shù)的名稱相同,參數(shù)的個(gè)數(shù)或類型不同的函數(shù)。運(yùn)算符重載:對(duì)運(yùn)算符賦予新的含義,使之一名多用(主要是指運(yùn)算對(duì)象包含類對(duì)象)。構(gòu)造函數(shù):構(gòu)造函數(shù)的名字必須與類名同名,它不具有任何類型,不返回任何值,主要用于對(duì)象初始化。析構(gòu)函數(shù):函數(shù)名與類名相同,只是在前邊加“”符號(hào),它不具有任何類型,不返回任何值,主要用于對(duì)象撤銷后的清理工作。12、構(gòu)造函數(shù)和析構(gòu)函數(shù)的作用是什么?什么時(shí)候需要自己定義構(gòu)造函數(shù)和析構(gòu)函數(shù)?(評(píng)分標(biāo)準(zhǔn):前兩個(gè)知識(shí)點(diǎn)各2分,后一個(gè)知識(shí)點(diǎn)4分)答:構(gòu)造函數(shù)的作用:用于新建對(duì)象的初始化工作。(2分)析構(gòu)函數(shù)的作用:用于在撤銷對(duì)象前,完成一些清理工作,比如:釋放內(nèi)存等。(2分)每當(dāng)創(chuàng)建對(duì)象時(shí),需要添加初始化代碼時(shí),則需要定義自己的構(gòu)造函數(shù);而對(duì)象撤銷時(shí),需要自己添加清理工作的代碼時(shí),則需要定義自己的析構(gòu)函數(shù)。(4分)3、 填空題(8分)鏈表相關(guān)題目、 假定有定義為“struct NODEint data;NODE * next;”,下面算法根據(jù)table數(shù)組中的n個(gè)元素建立一個(gè)表頭指針為L的鏈表,鏈表中結(jié)點(diǎn)值的順序與數(shù)組元素值的順序相同。 void f5(NODE * & L,int table ,int n) if(nnext= (2) ; p-data= (3) ; i+; p-next=NULL; /把最后一個(gè)結(jié)點(diǎn)的指針域置空 p=L; L=L-next; /使L指向鏈表的第一個(gè)帶值的結(jié)點(diǎn) Delete p; 參考答案:(1) in (2) new NODE (3)tablei、下面程序中的Create函數(shù)根據(jù)table數(shù)組中的前n個(gè)元素建立一個(gè)表頭指針為Head的鏈表,鏈表中結(jié)點(diǎn)值的順序與數(shù)組元素值的順序相同。填充程序中不完整的部分,使程序完整正確。#include #include struct NODEint data;NODE * next;void Create(NODE * & Head,int table ,int n)int i;NODE *p; if(ndata = _(2)_; i=1; p=Head; while( idata= tablei ; _(4)_; _(5)_; /把最后一個(gè)結(jié)點(diǎn)的指針域置空 return;void main() int a10=1,2,3,4,5;NODE *H;Create(H,a,5);參考答案:(1) Head=NULL(2) table0(3) p-next (4) i+(5) p-next=NULL、下面的函數(shù)是判斷由pHead所指向的鏈表是否是循環(huán)鏈表,如果是循環(huán)鏈表,則函數(shù)返回1,否則返回0。鏈表的結(jié)構(gòu)為:struct MyLinkint data;MyLink *Next;補(bǔ)充程序中不完整的地方。int CheckLink(MyLink *pHead) MyLink *p; if (pHead=NULL) return 0; p = _(1)_;while (p!=NULL) if(p=pHead) _(2)_; else p = _(3)_; return 0; 參考答案:(1) pHead-Next(2) return 1(3) p-Next遞歸函數(shù)題、根據(jù)程序說明和程序中的注釋,填充程序中不完整的部分。類Number的成員函數(shù)Factorial是遞歸函數(shù),功能是求n?。磏的階乘,假設(shè)n0)。#include using namespace std;class Number private:int Num;public:int n; int Factorial (int n) /遞歸函數(shù)Factorial (n)求n! 。if (_(1)_) return 1;else return _(2)_; int GetNum()return Num;Number(int n=1) if (n=0) Num=1; else Num = n;void main()Number *p1,*p2; p1 = _(3)_;/動(dòng)態(tài)生成由p1指向的Number對(duì)象,使用缺省參數(shù)。P2 =_(4)_;/動(dòng)態(tài)生成由p2指向的Number對(duì)象,并使Num為7。coutFactorial(_(5)_);/輸出Num!。delete p1; delete p2;參考答案:(1)n=0(2)n*Factorial (n-1)(3)new Number(4)new Number(7)(5)p2-GetNum()、下面遞歸函數(shù)NTimes (n,m)求nm 。填充程序中不完整的部分(假設(shè)m=0,否則返回值為0)。int NTimes (int n,int m) /遞歸函數(shù)NTimes (n,m)求nm。 if (m0) return 0; if (m=0) (1) ; else return (2) ; 參考答案:(1) return 1(2) n*Ntimes(n,m-1)、根據(jù)程序說明和程序中的注釋,填充程序中不完整的部分。類Number的成員函數(shù)TwoTimes是遞歸函數(shù),功能是求2n (假設(shè)n0時(shí)返回值為0)。#include using namespace std;class Number private:int Num;public:int n;int TwoTimes (int n) /遞歸函數(shù)TwoTimes (n)求2n 。if (_(1)_) return 0; if (n=0) _(2)_; else return _(3)_; int GetNum()return Num;Number(int n=0) Num = n;void main()Number *p;p =_(4)_;/動(dòng)態(tài)生成由p指向的Number對(duì)象,并使Num為5。coutTwoTimes(_(5)_);/輸出2Numdelete p;參考答案:(1) nGetNum()構(gòu)造函數(shù)類、 請(qǐng)按提示要求完成以下程序段的填空#include class studentpublic:string name; /姓名float score; /成績static float total; /學(xué)生的總成績student(string n=”li”,float s=60.0) name = n; score = s; /定義類的構(gòu)造函數(shù) (3) ; /在類外初始化靜態(tài)成員total的初值為0。void main() student *p1,*p2; (4) ; /調(diào)用無參構(gòu)造函數(shù)生成由p1指向的動(dòng)態(tài)對(duì)象 (5) ; /調(diào)用帶參構(gòu)造函數(shù)生成由p2指向的動(dòng)態(tài)對(duì)象,/姓名為“zhang”,成績?yōu)?0。p1-total = p1-score + p2-score; if (p1!=NULL) delete p1;if (p2!=NULL) delete p2;return ;參考答案:(3) student: total = 0.0(4) p1 = new student( )(5) p2 = new student(“zhang”,90)、根據(jù)程序說明和程序中的注釋,填充程序中不完整的部分。MyString是自定義的一個(gè)字符串類,其成員函數(shù) IsPalindrome判斷該字符串對(duì)象是否是回文(即字符串順讀和倒讀是一致的,比如字符串“12321”和“abba”都是回文,而“12345”則不是回文)。構(gòu)造函數(shù)用于給字符串賦值。#include using namespace std;#define MaxLen 100class MyString private:int Len; /字符串的長度char ValueMaxLen;/字符串的值public:int IsPalindrome() /判斷Value是否是回文,是則返回1,不是返回0。int i=0;while(iMaxLen) Len = MaxLen;else Len=n;if (Len=0) Len=0;Value0=0;elsei=0;while (iLen) Valuei+ = _(4)_;int main()MyString s1(3,aba),*p;p = _(5)_; /動(dòng)態(tài)生成由p指向的MyString對(duì)象,并使Len為5,其他參數(shù)任意。couts1.IsPalindrome()endlIsPalindrome()endl;delete p;return 1;參考答案:(1) ValueLen-i-1(2) i+(3) return 1(4) *pstr+(5) new MyString(5,12345)、請(qǐng)按提示要求完成以下程序段的填空。#include class A int a,b;public:A(int aa=0,int bb=0) a=aa; b=bb; /定義類A的構(gòu)造函數(shù),使參數(shù)aa和bb的默認(rèn)值為0,/在函數(shù)體中用aa初始化a,用bb初始化b;void main() A *p1,*p2;_(4)_; /調(diào)用無參構(gòu)造函數(shù)生成由p1指向的動(dòng)態(tài)對(duì)象_(5)_; /調(diào)用帶參構(gòu)造函數(shù)生成由p2指向的動(dòng)態(tài)對(duì)象,/使a和b成員分別被初始化為2和3if (p1!=NULL) delete p1;if (p2!=NULL) delete p2;return ;參考答案:(4) p1 = new A( )(5) p2 = new A(2,3)4、 閱讀下面的程序,寫出程序運(yùn)行的結(jié)果。(共20分)c+基礎(chǔ)知識(shí)程序題程序1(6分)#include class CStr int n; char str50; public: CStr( char *p,int len=0)int i; n=len;for (i=0;in;i+) stri=*p+;friend void GetChar(CStr &a); void GetChar(CStr &a)int i; char ch;for (i=0;i=a) & (a.stri=z)ch = a.stri+1;elsech = a.stri-1;coutch;void main() CStr a(ab23E3F!HKe33,12); GetChar(a);參考答案:程序運(yùn)行結(jié)果為:bc12D2E程序2(6分)#include using namespace std;int main() int a=5,b; int &c=b; int f(int x,int y,int z); b=a+; c=f(a,b,c); couta=a c=cendl; return 0;int f(int x,int y,int z) int m; m = x+y+z; return(m); 參考答案:(評(píng)分標(biāo)準(zhǔn):a和c正確分別得3分)a=6 c=16程序3(6分)#include using namespace std;int main()int f(int &x,int y);int a=4,b=5,c;while(b)c=f(a,b); couta b c20) b=0;else b=b+5; return 0;int f(int &x,int y)int m; x=y+; m=x+y;return(m); 答:(評(píng)分標(biāo)準(zhǔn):a和c正確分別得3分)5 5 1110 10 21程序4(6分)#include class A int n; char str100; public: A( char *p,int len=0)int i; n=len;for (i=0;in;i+) stri=*p+;friend void GetChar(A &a); void GetChar(A &a)int i;for (i=0;ia.n;i+)if(a.stri9) couta.stri;void main() A a(wer33p8tr,10); GetChar(a);(評(píng)分標(biāo)準(zhǔn):完全正確得6分)答:程序運(yùn)行結(jié)果為:werptr基類、繼承類程序題閱讀下面的程序,寫出程序運(yùn)行的結(jié)果。程序1、 (10分)#include class Pet /基類public:virtual void Speak() coutHow does a pet speak ?endl; ; class Cat : public Pet /派生類public:virtual void Speak() coutmiao!miao!endl; ; class Dog : public Pet/派生類public:virtual void Speak() coutwang!wang!Speak(); p2=new Cat; p2-Speak();p3=new Dog; p3-Speak();Pet&p4 = cat1; p4.Speak();delete p2;delete p3;程序1參考答案: (10分)How does a pet speak ?wang!wang!miao!miao!miao!miao!wang!wang!miao!miao!程序2(10分)#include class Win public:virtual void shape( ) coutWinendl; void act() shape();class But: public Winpublic: Virtual void shape( ) coutButshape();p1 = &b1;p1-shape();p1-act();參考答案:WinButWinButBut程序3(10分)#include class Pen public:char color; Pen() coutbeginendl; virtual void write( ) coutPenendl; void Rewrite() write();class Pencil: public Penpublic:Virtual void write() coutPencilwrite();pt1 = &pencil1;pt1-write();pt1-Rewrite();參考答案:程序運(yùn)行結(jié)果為:beginbeginPenPencilPencil程序4(10分)#include class Window public:int size; Window() coutWin Beginendl;virtual void OutWin( ) coutWinendl; void Open() coutOpenWinendl;class Button: public Windowpublic: virtual void OutWin() coutButendl; void Open() coutOpenButOutWin();pt1-Open();pt1 = &b1;pt1-OutWin();pt1-Open();答:程序運(yùn)行結(jié)果為:(10分,評(píng)分標(biāo)準(zhǔn):前4行每行2分,后2行每行1分)Win BeginWin BeginWinOpenWinButOpenWin程序5(10分)#include class Base public:virtual int fun( ) return 25; ;class Derive: public Base public: virtual int fun() return 60; ;void main()Derive d; Base &b = d, b2,*p; coutd.fun() endl;cout b.fun() endl;cout b.Base:fun() endl;p = &d;coutfun()endl;p=&b2;coutfun()endl;(10分,評(píng)分標(biāo)準(zhǔn):每對(duì)一行給2分)答:程序運(yùn)行結(jié)果為:6060256025基類、繼承類程序題閱讀下面的程序,寫出程序運(yùn)行的結(jié)果。程序1、 (10分)#include class Pet /基類public:virtual void Speak() coutHow does a pet speak ?endl; ; class Cat : public Pet /派生類public:virtual void Speak() coutmiao!miao!endl; ; class Dog : public Pet/派生類public:virtual void Speak() coutwang!wang!Speak(); p2=new Cat; p2-Speak();p3=new Dog; p3-Speak();Pet&p4 = cat1; p4.Speak();delete p2;delete p3;程序1參考答案: (10分)How does a pet speak ?wang!wang!miao!miao!miao!miao!wang!wang!miao!miao!程序2(10分)#include class Win public:virtual void shape( ) coutWinendl; void act() shape();class But: public Winpublic: Virtual void shape( ) coutButshape();p1 = &b1;p1-shape();p1-act();參考答案:WinButWinButBut程序3(10分)#include class Pen public:char color; Pen() coutbeginendl; virtual void write( ) coutPenendl; void Rewrite() write();class Pencil: public Penpublic:Virtual void write() coutPencilwrite();pt1 = &pencil1;pt1-write();pt1-Rewrite();參考答案:程序運(yùn)行結(jié)果為:beginbeginPenPencilPencil程序4(10分)#include class Window public:int size; Window() coutWin Beginendl;virtual void OutWin( ) coutWinendl; void Open() coutOpenWinendl;class Button: public Windowpublic: virtual void OutWin() coutButendl; void Open() coutOpenButOutWin();pt1-Open();pt1 = &b1;pt1-OutWin();pt1-Open();答:程序運(yùn)行結(jié)果為:(10分,評(píng)分標(biāo)準(zhǔn):前4行每行2分,后2行每行1分)Win BeginWin BeginWinOpenWinButOpenWin程序5(10分)#include class Base public:virtual int fun( ) return 25; ;class Derive: public Base public: virtual int fun() return 60; ;void main()Derive d; Base &b = d, b2,*p; coutd.fun() endl;cout b.fun() endl;cout b.Base:fun() endl;p = &d;coutfun()endl;p=&b2;coutfun()endl;(10分,評(píng)分標(biāo)準(zhǔn):每對(duì)一行給2分)答:程序運(yùn)行結(jié)果為:6060256025函數(shù)重載1、閱讀下面程序,分析其運(yùn)行結(jié)果#include class comple
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司組織考試活動(dòng)方案
- 公司新員工打卡活動(dòng)方案
- 2025年網(wǎng)絡(luò)安全工程師考試試題及答案
- 2025年心理素質(zhì)與情商訓(xùn)練考試試題及答案
- 2025年水利工程師資格考試試題及答案
- 2025年交通工程專業(yè)知識(shí)考試試題及答案
- 2025年國際法與人權(quán)保障方法考試試題及答案
- 關(guān)于烏鎮(zhèn)導(dǎo)游詞
- 2024年度浙江省二級(jí)造價(jià)工程師之土建建設(shè)工程計(jì)量與計(jì)價(jià)實(shí)務(wù)題庫練習(xí)試卷A卷附答案
- 2024年度浙江省二級(jí)造價(jià)工程師之土建建設(shè)工程計(jì)量與計(jì)價(jià)實(shí)務(wù)高分通關(guān)題庫A4可打印版
- 2025年江蘇瑞海投資控股集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 醫(yī)療廢物應(yīng)急處理流程與方案
- 簡陽市2024-2025學(xué)年數(shù)學(xué)五下期末統(tǒng)考試題含答案
- 體檢中心投訴處理流程
- 2025山西焦煤集團(tuán)公司招聘高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 2025年中國東方航空股份有限公司招聘筆試參考題庫含答案解析
- 畜牧飼養(yǎng)行業(yè)安全生產(chǎn)培訓(xùn)
- 《水龍頭知識(shí)培訓(xùn)》課件
- (八省聯(lián)考)河南省2025年高考綜合改革適應(yīng)性演練 化學(xué)試卷合集(含答案逐題解析)
- 用戶體驗(yàn)量化評(píng)估-洞察分析
- 農(nóng)場(chǎng)租賃合同范本:養(yǎng)殖場(chǎng)租賃
評(píng)論
0/150
提交評(píng)論