




已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一、概念題1類和對(duì)象有什么區(qū)別和聯(lián)系? 類是一種復(fù)雜的數(shù)據(jù)類型,它是將不同類型的數(shù)據(jù)和與這些數(shù)據(jù)相關(guān)的操作封裝在一起的集合體。類是對(duì)某一類對(duì)象的抽象,而對(duì)象是某一種類的實(shí)例。2 什么是類的實(shí)現(xiàn)? 將類所有未編寫函數(shù)體的成員函數(shù)在類體外全部編寫出來。3 this指針的概念是什么? 類中所有的成員函數(shù)(靜態(tài)成員函數(shù)除外)都隱含了第一個(gè)參數(shù),這個(gè)隱含的第一個(gè)參數(shù)就是this指針,在成員函數(shù)的實(shí)現(xiàn)代碼中,所有涉及對(duì)類的數(shù)據(jù)成員的操作都隱含為對(duì)this指針?biāo)笇?duì)象的操作。4 為什么要引入構(gòu)造函數(shù)和析構(gòu)函數(shù)? 構(gòu)造函數(shù)的作用是為類對(duì)象的數(shù)據(jù)成員賦初值,構(gòu)造函數(shù)在定義類對(duì)象時(shí)由系統(tǒng)自動(dòng)調(diào)用;在一個(gè)對(duì)象死亡或者說退出生存期時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用析構(gòu)函數(shù),因此可以在析構(gòu)函數(shù)定義中,設(shè)置語句釋放該對(duì)象所占用的一些資源。5 什么時(shí)候需要自定義拷貝構(gòu)造函數(shù)?若程序員沒有定義拷貝構(gòu)造函數(shù),則編譯器自動(dòng)生成一個(gè)缺省的拷貝構(gòu)造函數(shù),它可能會(huì)產(chǎn)生什么問題? 當(dāng)有用一個(gè)已經(jīng)存在對(duì)象創(chuàng)建一個(gè)同類型的新對(duì)象的需求時(shí)。當(dāng)對(duì)象含有指針數(shù)據(jù)成員,并用它初始化同類型的另一個(gè)對(duì)象時(shí),默認(rèn)的拷貝構(gòu)造函數(shù)只能將該對(duì)象的數(shù)據(jù)成員復(fù)制給另一個(gè)對(duì)象,而不能將該對(duì)象中指針?biāo)赶虻膬?nèi)存單元也復(fù)制過去。這樣,就可能出現(xiàn)同一內(nèi)存單元釋放兩次,導(dǎo)致程序運(yùn)行出錯(cuò)。6 什么是堆對(duì)象?創(chuàng)建和回收堆對(duì)象的方法是什么? 堆區(qū)用來存放在程序運(yùn)行期間,根據(jù)需要隨時(shí)建立的變量(對(duì)象),建立在堆區(qū)的對(duì)象稱為堆對(duì)象,當(dāng)堆對(duì)象不再使用時(shí),應(yīng)予以刪除,回收所占用的動(dòng)態(tài)內(nèi)存。創(chuàng)建和回收堆對(duì)象的方法是使用new和delete運(yùn)算符。7 為什么需要靜態(tài)數(shù)據(jù)成員?靜態(tài)數(shù)據(jù)成員的定義和初始化方法是什么? 定義靜態(tài)數(shù)據(jù)成員是為了同一個(gè)類的不同對(duì)象之間共享公共數(shù)據(jù)成員;用關(guān)鍵字static可以把數(shù)據(jù)成員定義成靜態(tài)數(shù)據(jù)成員;在定義的類被使用前,要對(duì)其中的靜態(tài)數(shù)據(jù)成員進(jìn)行初始化,初始化時(shí)不必添加關(guān)鍵字static。8 什么是靜態(tài)成員函數(shù)?靜態(tài)成員函數(shù)和非靜態(tài)成員函數(shù)有什么區(qū)別? 用關(guān)鍵字static可以把這成員函數(shù)定義成靜態(tài)成員函數(shù)。 靜態(tài)成員函數(shù)只能訪問類的靜態(tài)數(shù)據(jù)成員,不能訪問類的非靜態(tài)數(shù)據(jù)成員。因?yàn)殪o態(tài)成員函數(shù)是類的成員,不涉及具體的對(duì)象,訪問靜態(tài)成員函數(shù)常用類名引導(dǎo)。 非靜態(tài)成員函數(shù)可以訪問類的靜態(tài)數(shù)據(jù)成員,也可以訪問非靜態(tài)數(shù)據(jù)成員。因?yàn)轭惖撵o態(tài)成員總是存在的。 靜態(tài)成員函數(shù)和非靜態(tài)成員函數(shù),最主要的差別是非靜態(tài)成員函數(shù)隱含了第一個(gè)參數(shù)this指針,靜態(tài)成員函數(shù)不含this指針。9 結(jié)構(gòu)struct和類class有什么異同? struct和class都可以定義類,但是缺省訪問權(quán)限說明時(shí),struct的成員是公有的,而class的成員是私有的。在C+中,struct可被class代替。10 比較類的三種繼承方式public、protected、private之間的區(qū)別。 采用public公有派生,基類成員的訪問權(quán)限在派生類中保持不變,即基類所有的公有或保護(hù)成員在派生類中仍為公有或保護(hù)成員。public派生最常用,可以在派生類的成員函數(shù)中訪問基類的非私有成員,可通過派生類的對(duì)象直接訪問基類的公有成員。采用private私有派生,基類所有的公有和保護(hù)成員在派生類中都成為私有成員,只允許在派生類的成員函數(shù)中訪問基類的非私有成員。private派生很少使用。采用protected保護(hù)派生,基類所有的公有和保護(hù)成員在派生類中都成為保護(hù)成員,只允許在派生類的成員函數(shù)和該派生類的派生類的成員函數(shù)中訪問基類的非私有成員。11 派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)執(zhí)行的次序是怎樣的? 派生類構(gòu)造函數(shù)的執(zhí)行次序:首先,調(diào)用基類構(gòu)造函數(shù),調(diào)用順序按照它們被繼承時(shí)聲明的基類名順序執(zhí)行;其次,調(diào)用內(nèi)嵌對(duì)象構(gòu)造函數(shù),調(diào)用次序?yàn)楦鱾€(gè)對(duì)象在派生類內(nèi)聲明的順序;最后,執(zhí)行派生類構(gòu)造函數(shù)體中的內(nèi)容。派生類析構(gòu)函數(shù)執(zhí)行過程與構(gòu)造函數(shù)執(zhí)行過程相反。即當(dāng)派生類對(duì)象的生存期結(jié)束時(shí),首先調(diào)用派生類的析構(gòu)函數(shù),然后調(diào)用內(nèi)嵌對(duì)象的析構(gòu)函數(shù),再調(diào)用基類的析構(gòu)函數(shù)。12 什么叫虛基類?有什么作用? 在多重繼承中,如果多條繼承路徑上有一個(gè)公共的基類,則在這些路徑的匯合點(diǎn)上的派生類會(huì)產(chǎn)生來自不同路徑的公共基類的多個(gè)拷貝,如果用virtual把公共基類定義成虛基類,則只會(huì)保留公共基類的一個(gè)拷貝。引進(jìn)虛基類的目的是為了解決二義性問題,使得公共基類在它的派生類對(duì)象中只產(chǎn)生一個(gè)基類子對(duì)象。13 什么是多態(tài)性,在C+中是如何實(shí)現(xiàn)多態(tài)的?多態(tài)是指同樣的消息被不同類型的對(duì)象接收時(shí)導(dǎo)致完全不同的行為,是對(duì)類的特定成員函數(shù)的再抽象。C+支持的多態(tài)有多種類型,重載(包括函數(shù)重載和運(yùn)算符重載)和虛函數(shù)是其中主要的方式。14 什么是抽象類,其有何作用?抽象類的派生類是否一定要給出純虛函數(shù)的實(shí)現(xiàn)?含有純虛函數(shù)的類稱為抽象類。抽象類的主要作用是通過它為一個(gè)類族建立一個(gè)公共的接口,使它們能夠更有效地發(fā)揮多態(tài)特性。抽象類聲明了一組派生類共同操作接口的通用語義,而接口的完整實(shí)現(xiàn),即純虛函數(shù)的函數(shù)體,要由派生類自己給出,抽象類只能作為基類被繼承使用。抽象類的派生類不一定要給出純虛函數(shù)的實(shí)現(xiàn),沒有給出純虛函數(shù)的實(shí)現(xiàn)的派生類仍然還是抽象類。15 在C+中能否聲明虛構(gòu)造函數(shù),為什么?能否聲明虛析構(gòu)函數(shù),有什么作用?在C+中不能聲明虛構(gòu)造函數(shù)。多態(tài)是不同的對(duì)象對(duì)同一消息有不同的行為特性,虛函數(shù)作為運(yùn)行過程中多態(tài)的基礎(chǔ),主要是針對(duì)對(duì)象的,而構(gòu)造函數(shù)是在對(duì)象產(chǎn)生之前運(yùn)行的,因此虛構(gòu)造函數(shù)是沒有童義的。在C+中可以聲明虛析構(gòu)函數(shù)。析構(gòu)函數(shù)的功能是在該類對(duì)象消亡之前進(jìn)行一些必要的清理工作,如果一個(gè)類的析構(gòu)函數(shù)是虛函數(shù),那么,由它派生而來的所有子類的析構(gòu)函數(shù)也是虛函數(shù)。析構(gòu)函數(shù)設(shè)置為虛函數(shù)之后,在使用指針引用時(shí)可以動(dòng)態(tài)聯(lián)編,實(shí)現(xiàn)運(yùn)行時(shí)的多態(tài),保證使用基類的指針就能夠調(diào)用適當(dāng)?shù)奈鰳?gòu)函數(shù)對(duì)不同的對(duì)象進(jìn)行清理工作。二、填空題1拷貝構(gòu)造函數(shù)使用_作為參數(shù)初始化創(chuàng)建中的對(duì)象。2在C+中,對(duì)于構(gòu)造函數(shù)和析構(gòu)函數(shù)來說,_是可以重載的,而_是不可以重載的。3B類中包含一個(gè)A類的成員a,則生成B類的對(duì)象時(shí)構(gòu)造函數(shù)的調(diào)用順序?yàn)開。4類的每一個(gè)成員函數(shù)(靜態(tài)成員函數(shù)除外)都有一個(gè)隱含的參數(shù),叫做_。假設(shè)類名為A,則該參數(shù)的類型為_。5類的靜態(tài)成員分為_和_。6聲明友元的關(guān)鍵字是_。7如果類A繼承了B,則類A稱為_,類B稱為_。8派生類對(duì)基類的繼承有三種方式:_、_和_。9如果只想保留公共基類的一個(gè)拷貝,就必須使用關(guān)鍵字_把這個(gè)公共基類定義為虛基類。10派生類的成員有兩種來源,即_和_。11要想訪問基類的private成員變量,只能通過基類提供的_進(jìn)行間接訪問。12.重載運(yùn)算符應(yīng)仍保持其原有的操作數(shù)個(gè)數(shù)、結(jié)合性和_。13.對(duì)于雙目運(yùn)算符,若重載為類的成員函數(shù),有_個(gè)參數(shù);若重載為友元函數(shù),則有_個(gè)參數(shù)。14.后綴+重載為類的成員函數(shù)(設(shè)類名為A)的形式為_,重載為類的友元函數(shù)(設(shè)類名為A)的形式為_。15.設(shè)有一時(shí)間類Time,現(xiàn)欲用成員函數(shù)方法重載運(yùn)算符+,實(shí)現(xiàn)一個(gè)時(shí)間與一個(gè)整數(shù)的相加運(yùn)算,所得結(jié)果為一個(gè)新時(shí)間,則成員函數(shù)的聲明語句為_。16C+語言支持的兩種多態(tài)性分別是編譯時(shí)的多態(tài)性和_的多態(tài)性。17聯(lián)編有兩種方式,即_和_。18抽象類必須至少包含一個(gè)_。21Windows系統(tǒng)中消息的主要類型有_、_和_。22當(dāng)用戶在窗口中按下鼠標(biāo)左鍵時(shí),Windows系統(tǒng)就會(huì)自動(dòng)發(fā)送_消息給該窗口,如果程序要對(duì)此消息作出反應(yīng),則程序中應(yīng)包含類似_函數(shù)。23OnDraw()函數(shù)有一個(gè)指向_類的指針參數(shù),通過該參數(shù)可以直接向視圖輸出。24應(yīng)用程序?qū)⑷魏螙|西畫到設(shè)備中之前,必須明確索取一個(gè)_。25對(duì)話框分為_和_兩種。26對(duì)話框的初始化工作一般在_和_中完成。27MFC中公用對(duì)話框有_、_、_、_和_。28視圖派生類可以選擇_類作其基類,可以實(shí)現(xiàn)文本編輯功能。29對(duì)于文檔類,數(shù)據(jù)成員的初始化工作是在_函數(shù)中完成的。30.如果修改了文檔類中的數(shù)據(jù),并要求重新顯示,要用_或_發(fā)出重畫消息,引起對(duì)OnDraw()的調(diào)用。31.當(dāng)執(zhí)行cout語句輸出endl數(shù)據(jù)項(xiàng)時(shí),將使C+顯示輸出屏幕上的光標(biāo)從當(dāng)前位置移動(dòng)到_的開始位置。32.假定x和y為整型,其值分別為16和5,則a/y和double(x)/y的值分別為_ 和 _。33.strlen(“apple”)的值為_。34.C+程序運(yùn)行時(shí)的內(nèi)在空間可以分為全局?jǐn)?shù)據(jù)區(qū),堆區(qū),棧區(qū)和_區(qū)。35.假定a是一個(gè)一維指針數(shù)組,則a+i所指對(duì)象的地址比a大_字節(jié)。36.如果一個(gè)派生類只有一個(gè)唯一的基類,則這樣的繼承稱為_。37.假定AA是一個(gè)類,“AA * abc()const;”是該類中的一個(gè)成員函數(shù)的原型,在該函數(shù)體中_向*this或其成員賦值。38.假定用戶沒有給一個(gè)名為AB的類定義構(gòu)造函數(shù),則系統(tǒng)為其定義的構(gòu)造函數(shù)為_。39.假定用戶為類AB定義了一個(gè)構(gòu)造函數(shù)“AB(int aa)a=aa;”,該構(gòu)造函數(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)_的初始化。40.作為類的成員函數(shù)重載地個(gè)運(yùn)算符時(shí),參數(shù)表中只有一個(gè)參數(shù),說明該運(yùn)算符有_個(gè)操作數(shù)。41.C+有兩種聯(lián)編方式,其中在程序編譯時(shí)的聯(lián)編叫做_聯(lián)編42.虛函數(shù)可以是另一類的_函數(shù)43.定義虛函數(shù)需要用_關(guān)鍵字44.將函數(shù)“void vf()”定義為純虛數(shù)的格式是virtual void vf()_45.擁有純虛函數(shù)的類就是_,該類不能產(chǎn)生類的實(shí)例46.派生類沒有重載基類的純虛函數(shù),則此派生類也是_47.有如下程序#include class CSAI_A public:virtual void fun()coutA;class CSAI_B:public CSAI_A public:virtual void fun()CSAI_A:fun();coutfun();delete p;執(zhí)行這個(gè)程序的輸出結(jié)果是()答案:_48. 有如下程序#include const int T=8; void main() int i,s=0; for(i=1;i=T;i+) s+=i*i; couts ; coutendl; 運(yùn)行結(jié)果:_49. 有如下程序int ff(int x,int y) int z; coutx+yz; if(x+y=z) return 1;else return 0; 函數(shù)功能:_50. 有如下程序char *f(char *s) int n=strlen(s); char * r=new charn+1; for(int i=0;i=a & si”重載為類CSAI的友元函數(shù)的格式是:friend instream& operator _56.this指針_破壞類的封裝性。57.通過指向基類的指針調(diào)用派生類對(duì)象的函數(shù)時(shí),采用_調(diào)用。58.下面是對(duì)按從小到大排列的有序數(shù)組an中進(jìn)行二分查找x的算法,若查找成功返回該元素的下標(biāo),否則返回-1。int BinnarySearch(int a,int n,int x) int low=0,high=n-1;/定義并初始化區(qū)間下界和上界變量 int mid; /定義保存中點(diǎn)元素下標(biāo)的變量 while(low=high) mid=(low+high)/2; if(x=amid) _ else if(xamid)high=mid-1; else _ return -1;59.請(qǐng)補(bǔ)充完整如下的類定義: #include class A char *a;public: A()a=0;/定義無參構(gòu)造函數(shù),使A的值為空 A(char *aa) a= _ ; /進(jìn)行動(dòng)態(tài)存儲(chǔ)分配 strcpy(a,aa);/用aa所指字符串初始化a所指向的動(dòng)態(tài)存儲(chǔ)空間 _ ; /定義析構(gòu)函數(shù),刪除a所指向的動(dòng)態(tài)存儲(chǔ)空間 ;三、編程題1創(chuàng)建一個(gè)Employee類,該類中有字符數(shù)組表示姓名、街道地址、市、省和郵政編碼。把表示構(gòu)造函數(shù)、ChangeName函數(shù)、Display函數(shù)的函數(shù)原型放在類定義中,構(gòu)造函數(shù)初始化每個(gè)成員,Display函數(shù)把完整的對(duì)象數(shù)據(jù)打印出來。其中的數(shù)據(jù)成員是保護(hù)的,函數(shù)是公共的。2設(shè)計(jì)并測(cè)試類Point,其數(shù)據(jù)成員是直角坐標(biāo)系的點(diǎn)坐標(biāo)。友元函數(shù)distance用來計(jì)算兩點(diǎn)間的距離。3定義一個(gè)Rectangle類,有寬width、長(zhǎng)length等屬性,重載其構(gòu)造函數(shù)Rectangle、Rectangle(int width , int length)。4編寫一個(gè)程序,設(shè)計(jì)一個(gè)Cdate類,它應(yīng)該滿足下面的條件。 用這樣的格式輸出日期:日-月-年。 輸出在當(dāng)前日期上加兩天后的日期。 設(shè)置日期。5按照下面函數(shù)原型語句編寫一個(gè)遞歸函數(shù)求出并返回?cái)?shù)組a中n個(gè)元素的平方和。 int f(int a,int n)6根據(jù)下面類中Sum函數(shù)成員的原型和注釋寫出它的類外定義。 class AA int *a; int n; int MS; public: void InitAA(int aa,int nn,int ms) if(nnms)coutError!endl;exit(1); MS=ms; a=new intMS; for(int i=0;in;i+)ai=aai; int Sum();/求出并返回?cái)?shù)組a中前n個(gè)元素之和 ;7定義一個(gè)基類有姓名、性別、年齡,再由基類派生出教師類和學(xué)生類,教師類增加工號(hào)、職稱和工資,學(xué)生類增加學(xué)號(hào)、班級(jí)、專業(yè)和入學(xué)成績(jī)。8下列Shape類是一個(gè)表示形狀的抽象類,area()為求圖形面積的函數(shù),total()則是一個(gè)通用的用以求不同形狀的圖形面積總和的函數(shù)。請(qǐng)從Shape類派生三角形類(Triangle)、矩形類(Rectangle),并給出具體的求面積函數(shù)。class Shape public: virtual float area()=0; float total(Shape *s,int n) float sum=0.0; for(int i=0;iarea(); return sum; 9聲明一個(gè)Shape類(形狀)基類,它有兩個(gè)派生類:Circle(圓)和Square(正方形),要求如下。 根據(jù)給出的圓心坐標(biāo)計(jì)算圓的面積。 根據(jù)給出的正方形中心坐標(biāo)和一個(gè)頂點(diǎn)坐標(biāo)計(jì)算該正方形的面積。提示:Shape類的數(shù)據(jù)成員包括中心的坐標(biāo),Circle類和Square類由Shape類派生,Circle類新增一個(gè)數(shù)據(jù)成員,即圓的半徑,Square類新增兩個(gè)數(shù)據(jù)成員,即頂點(diǎn)坐標(biāo)。明該對(duì)話框?qū)ο笠巡淮嬖诹?。二、填空題1引用2構(gòu)造函數(shù) 析構(gòu)函數(shù)3A(),B()4this, A *5靜態(tài)數(shù)據(jù)成員 靜態(tài)成員函數(shù)6friend7派生類 基類8public、protected、private9virtual10基類 派生類自身11成員函數(shù)12. 運(yùn)行時(shí)13. 靜態(tài)聯(lián)編,動(dòng)態(tài)聯(lián)編14. public vehicle ,public vehicle15. 基類 A中的成員函數(shù). 派生類B中的成員函數(shù).16. C類 B類17抽象函數(shù)18. 優(yōu)先級(jí) 2. 1 219. A operator +(int) friend A operator +(A &,int)20. Time Time:operator +(int)21輸入消息、控制消息、系統(tǒng)消息、用戶消息22WM_LBOTTONDOWN OnLButtonDown23CDC24設(shè)備環(huán)境25模態(tài)對(duì)話框 非模態(tài)對(duì)話框26構(gòu)造函數(shù) OnInitDialog()函數(shù)27CColorDialog、CFileDialog、CFindReplaceDialog、CFontDialog、CPrintDialog28CeditView29OnNewDocument()30Invalidate()或InvalidateRect()31下一行323 和 3.2 335 34代碼354i 36單繼承37不能夠38AB( )39 a 40241靜態(tài)42友元43virtual44=045抽象類46抽象類47AB481 5 14 30 55 91 140 20449輸入2個(gè)整數(shù)相加的結(jié)果,結(jié)果正確返回1,否則返回050將字符串中的小寫字母轉(zhuǎn)換為大寫51非多態(tài)調(diào)用52第一操作數(shù)53operatro double()54operator +=(x,y)55 (istream &,CSAI &)56. 不能57. 多態(tài)58. return mid low=mid+159. new charstrlen(aa)+1 A()delete a;三、編程題1 #include #include class Employee protected:char name20;char address100;char city20;char province20;char zipcode10;public: Employee(char *nm,char *addr,char *city, char *prov, char *zip); void ChangeName(char * newName); char * Display(char * buffer);Employee:Employee(char *nm, char *adr, char *cit, char *prov, char *zip) strcpy(name,nm);strcpy(address,adr);strcpy(city,cit);strcpy(province,prov);strcpy(zipcode,zip); void Employee:ChangeName(char * newName)strcpy(name, newName);char * Employee:Display(char *buffer)strcpy(buffer, name);strcat(buffer, address);return buffer;2 #include #include class Pointprivate:float x, y;public:Point(float xx, float yy) x=xx; y=yy; float GetX() return x; float GetY() return y; friend float distance(Point&, Point&);float distance(Point& a, Point& b)float dx = a.x - b.x;float dy = a.y - b.y;cout 用友元函數(shù) distance(). 顯示兩點(diǎn)的坐標(biāo) : n ;couta.x, a.y b.x, b.yendl; return sqrt(dx*dx+dy*dy);void main()float d;Point p1(10.5, 20.5), p2(2.5, 6.5);d=distance(p1, p2);cout 兩點(diǎn)的距離 : d = dendl;cin.get();3 #includeclass Rectanglepublic:Rectangle();Rectangle(int width,int length);Rectangle()int GetWidth()constreturn m_width;int GetLength()return m_length;private:int m_width;int m_length;Rectangle:Rectangle()m_width=5;m_length=10;Rectangle:Rectangle(int width,int length)m_width=width;m_length=length;int main()Rectangle rect1;coutrect1 width:rect1.GetWidth()endl;coutrect1 length:rect1.GetLength()endl;int a,b;couta;coutb;Rectangle rect2(a,b);coutnrect2 width:rect2.GetWidth()endl;coutrect2 length:rect2.GetLength()endl;return 0;4 #includeclass Cdateint year,month,day; int y1,m1,d1;public:void setdate(int y,int m,int d)year=y;month=m;day=d;void show()cout當(dāng)前日期: day-month-yearendl; cout兩天后日期:d1-m1-y1endl; void datetwo() /加一天后的年月日 d1=day;y1=year;m1=month;for(int i=0;i2;i+) d1+; switch(d1) case 29:if(!(month=2 &(year%400=0|year%4=0&year%100!=0) m1=3;d1=1;break; case 30:if(month=2 &(year%400=0|year%4=0&year%100!=0) m1=3;d1=1;break; case 31:if(month=4|month=6|month=9|month=11) m1=m1+1;d1=1;break; case 32: m1=m1+1;d1=1;if(month=12)y1=y1+1;m1=1;break; ;void main()Cdate d; int y,m,d1;coutymd1; d.setdate(y,m,d1);/加一天 d.setdate(y,m,d1);/再加一天 d.datetwo(); d.show();5程序如下: int f(int a,int n) if(n=1)return a0*a0; else return an-1*an-1+f(a,n-1); 6程序如下: int AA:Sum() int sum=0; for(int i=0;in;i+) sum+=ai; return sum ; 7 #include#include#includeclass base /定義一個(gè)基類protected: char name20; /姓名 char sex3; /性別 int age; /年齡 ;class teacher:public base /基類派生出教師類 int sno; /工號(hào) char zc20; /職稱 double wages; /工資 ;class student :public base /基類派生出學(xué)生類 int sno; /學(xué)號(hào) char bj10; /班級(jí) char zy10; /專業(yè) double score; /入學(xué)成績(jī);8 class Shape public: virtual float area()=0; float total(Shape *s,int n) float sum=0.0; for(int i=0;iarea(); return sum; class Triangle:public Shapepublic:Triangle(double h,double w)H=h;W=w;double area() constreturn H*W*0.5;private:double H,W; class Rectangle:public Shapepublic:Rectangle(double h,double w)H=h;W=w;double area()constreturn H*W;private:double H,W;9 #include class Shape public: virtual double GetArea()=0; ; class Circle:public Shape double radius; public: Circle(double r):radius(r) double GetArea()return 3.1416*radius*radius; ; class Square:public Rectangle public: Square(double l):Rectangle(l,l) ; int main() Rectangle r(3.5,4.0); Circle c(2.0); Square s(5.0); coutr.GetArea()endl; coutc.GetArea()endl; couts.GetArea()endl; return 0; 一、選擇題1、類的實(shí)例化是指( C )。A、定義類 B、指明具體類 C、創(chuàng)建類的對(duì)象 D、調(diào)用類的成員2、關(guān)于類和對(duì)象的說法不正確的是( B )。A、對(duì)象是類的一個(gè)實(shí)例 B、一個(gè)類只能有一個(gè)對(duì)象 C、一個(gè)對(duì)象只屬于一個(gè)具體類 D、類與對(duì)象的關(guān)系和數(shù)據(jù)類型與變量的關(guān)系相似3、下面說法正確的是( B )。A、內(nèi)置函數(shù)在運(yùn)行時(shí)是將該函數(shù)的目標(biāo)代碼插入每個(gè)調(diào)用該函數(shù)的地方B、內(nèi)置函數(shù)在編譯時(shí)是將該函數(shù)的目標(biāo)代碼插入每個(gè)調(diào)用該函數(shù)的地方C、類的內(nèi)置函數(shù)必須在類體內(nèi)定義D、類的內(nèi)置函數(shù)必須在類體外通過加關(guān)鍵字inline定義4、對(duì)于任意一個(gè)類,析構(gòu)函數(shù)的個(gè)數(shù)最多為( A )。A、1 B、2 C、和構(gòu)造函數(shù)個(gè)數(shù)一樣 D、任意多個(gè)5、在下面的類定義中,錯(cuò)誤的語句是( D )。class samplepublic: sample(int val);/(1) sample( ); /(2) private: int a=2.5;/(3) sample( );/(4); A、(1)(2)(3)(4) B、(1)(2)(3) C、(2) D、(3)6、有關(guān)構(gòu)造函數(shù)的說法不正確的是( D )。A、構(gòu)造函數(shù)名字和類的名字一樣B、構(gòu)造函數(shù)在定義類變量時(shí)自動(dòng)執(zhí)行C、構(gòu)造函數(shù)無任何函數(shù)類型D、構(gòu)造函數(shù)有且只有一個(gè)7、不屬于成員函數(shù)的是( B )。A、靜態(tài)成員函數(shù) B、友元函數(shù) C、構(gòu)造函數(shù) D、析構(gòu)函數(shù)8、已知類A是類B的友元,類B是類C的友元,則( D )。A、類A一定是類C的友元 B、類C一定是類A的友元C、類C的成員函數(shù)可以訪問類B的對(duì)象的任何成員 D、類A的成員函數(shù)可以訪問類B的對(duì)象的任何成員9、在建立類對(duì)象時(shí)( A )。A、只為每個(gè)對(duì)象分配用于保存數(shù)據(jù)成員的內(nèi)存 B、只為每個(gè)對(duì)象分配用于保存函數(shù)員的內(nèi)存C、為所有對(duì)象的數(shù)據(jù)成員和函數(shù)成員分配一個(gè)共享的內(nèi)存 D、為每個(gè)對(duì)象的數(shù)據(jù)成員和函數(shù)成員同時(shí)分配不同的內(nèi)存10、下列說法錯(cuò)誤的是( B )。A、封裝是將一組數(shù)據(jù)和這組數(shù)據(jù)有關(guān)的操作組裝在一起 B、封裝使對(duì)象之間不需要確定接口C、封裝要求對(duì)象應(yīng)具有明確的功能 D、封裝使得一個(gè)對(duì)象可以像一個(gè)部件一樣用在各種程序中11、要禁止修改指針p本身,也要禁止修改p所指向的數(shù)據(jù),這樣的指針應(yīng)定義為( D )。A、const char *p=”abcd”; B、char const *p=”abcd”; C、char *const p=”abcd”; D、const char *const p=”abcd”;12、下面有關(guān)析構(gòu)函數(shù)正確的是( A )。A、一個(gè)類只能定義一個(gè)析構(gòu)函數(shù)B、析構(gòu)函數(shù)的名字與類名可以不同C、析構(gòu)函數(shù)只能定義在類內(nèi)D、析構(gòu)函數(shù)至少包含一個(gè)參數(shù)13、下列運(yùn)算符中,不能重載的是( B )。A、! B、sizeof() C、new D、=14、下列關(guān)于運(yùn)算符重載的說法,正確的是( D )。A、可以改變參與運(yùn)算的操作數(shù)個(gè)數(shù)B、可以改變運(yùn)算符原來的優(yōu)先級(jí)C、可以改變運(yùn)算符原來的結(jié)合性D、不能改變?cè)\(yùn)算符的語義15、下列運(yùn)算符中,必須重載為友元函數(shù)的是( D )。A、+ B、- C、 D、=16、下列關(guān)于運(yùn)算符重載的敘述中,正確
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 文化藝術(shù)品市場(chǎng)交易數(shù)據(jù)概覽表
- 2025年市場(chǎng)調(diào)研與分析職稱考試試題及答案
- 2025年人力資源開發(fā)與管理碩士專業(yè)考試試題及答案
- 2025年家政服務(wù)職業(yè)技能鑒定考試題及答案
- 2025年國(guó)際營(yíng)銷策略與實(shí)踐考試試題及答案
- 2025年電氣工程師考試模擬試卷及答案
- 2025年甘肅省民航機(jī)場(chǎng)集團(tuán)校園招聘45人筆試參考題庫(kù)及答案詳解1套
- 物資采購(gòu)規(guī)章管理制度
- 特教機(jī)構(gòu)老師管理制度
- 特殊醫(yī)療設(shè)備管理制度
- 車輛收費(fèi)及管理制度
- T/CAS 612-2022碳中和管理體系要求
- 2025-2030中國(guó)顯微鏡行業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 平臺(tái)合伙人合同協(xié)議書
- 運(yùn)維安全保密措施
- 糧食加工消防安全管理規(guī)定
- 《國(guó)有資產(chǎn)管理》課件
- 苗木采購(gòu)管理規(guī)章制度
- 2022版義務(wù)教育語文課程標(biāo)準(zhǔn)(2022版含新增和修訂部分)
- 幼兒園課件:《鉛筆不能咬》
- 沒有斑馬線的馬路課件
評(píng)論
0/150
提交評(píng)論