c++面向?qū)ο蟪绦虻脑O(shè)計(jì)試題和答案_第1頁
c++面向?qū)ο蟪绦虻脑O(shè)計(jì)試題和答案_第2頁
c++面向?qū)ο蟪绦虻脑O(shè)計(jì)試題和答案_第3頁
c++面向?qū)ο蟪绦虻脑O(shè)計(jì)試題和答案_第4頁
c++面向?qū)ο蟪绦虻脑O(shè)計(jì)試題和答案_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

一、填空題(每空1分,共14分)1、觀看以下程序:classpoint{public:voidshow(){cout<<"point"<<endl;}};voidmain(){pointp1;point*p;p=&p1;p1.show()/通過對象p1訪問show函數(shù)p.show()/通過指針p訪問show函數(shù)}2、 在C++類中可以包含—公共___、—保護(hù)—和—私有__三種具有不同訪問控制權(quán)的成員。3、 定義類時(shí),在類頭中將使用關(guān)鍵字__class—來表示類定義的開始。4、如果一個(gè)類中至少有一個(gè)純虛函數(shù),則該類稱為抽象類。5、C++類的組成包括數(shù)據(jù)成員和成員函數(shù),友元—是—(是、不是)該類的成員函數(shù)。6、友員函數(shù)是用關(guān)鍵字—friend修飾的非成員函數(shù)。7、 若有:inti;int&j=i;i=10;j=i+1;則i=―11,j=___11。8、new的功能是分配內(nèi)存空間delete的功能是 釋放內(nèi)存空間。二、選擇題(每小題1.5分,共30分)1、 下列特性中不是面向?qū)ο蟪绦蛟O(shè)計(jì)語言所特有的是(D)。(A)數(shù)據(jù)封裝(B)繼承(C)多態(tài)性(D)模板2、(B)是給變量取一個(gè)別名,它引入了變量的同意詞。(A)指針(B)引用(C)枚舉(D)結(jié)構(gòu)3、 類成員的訪問權(quán)限中,( )只能被本類的成員函數(shù)和其友元函數(shù)訪問。(A)share(B)public(C)private(D)protected4、 關(guān)于構(gòu)造函數(shù),下列說法不正確的是( )。(A) 構(gòu)造函數(shù)名字和類名相同(B) 構(gòu)造函數(shù)在創(chuàng)建對象時(shí)自動(dòng)執(zhí)行(C) 構(gòu)造函數(shù)無任何函數(shù)返回類型(D) 構(gòu)造函數(shù)有且只有一個(gè)5、 派生類可以訪問其基類的( )。(A)公有成員 (B)保護(hù)成員(C)私有派生 (D)公有和保護(hù)成員6、 下列關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的是( )。(A) 運(yùn)算符重載不可以改變操作數(shù)的個(gè)數(shù)(B) 運(yùn)算符重載不可以改變運(yùn)算符的功能(C) 運(yùn)算符重載不可以改變結(jié)合方向(D) 運(yùn)算符重載不可以改變運(yùn)算優(yōu)先級(jí)7、 C++語言是從早期的C語言逐漸發(fā)展演變而來的.與C語言相比,它在求解問題方法TOC\o"1-5"\h\z上進(jìn)行的最大改進(jìn)是( )(A)面向過程(B)面向?qū)ο?(C)安全性(D)復(fù)用性8、 對于類中定義的成員,其隱含訪問權(quán)限為( )。A.public B.protectedC.private D.static9、下面有關(guān)重載函數(shù)的說法中正確的是( )(A)重載函數(shù)必須具有不同的返回值類型; (B)重載函數(shù)形參個(gè)數(shù)必須不同;(C)重載函數(shù)必須有不同的形參列表 (D)重載函數(shù)名可以不同;10、 有如下的對類“CSample”的說明,其中( )是錯(cuò)誤的。classCSample(A.inta=23;B.CSample();public:C.CSample(intval);D.~CSample();11、 在inta=3,int*p=&a;中,*p的值是()A.變量a的地址值 B.無意義C.變量p的地址值 D.312、 每個(gè)類( )構(gòu)造函數(shù)。(A)只能有一個(gè) (B)只可有公有的(C)可以有多個(gè)(D)只可有缺省的13、 在一個(gè)類中可以對一個(gè)操作符進(jìn)行( )重載。(A)1種(B)2種以下(C)3種以下(D)多種14、在公有繼承的情況下,基類非私有成員在派生類中的訪問權(quán)限( )(A)受限制(B)保持不變 (C)受保護(hù)(D)不受保護(hù)15、應(yīng)在下列程序劃線處填入的正確語句是( )#include<iostream.h>classBase(public:fun(){cout<<"Base::fun"<<ENDL;}};voidclassDerived:publicBase(voidfun()(/顯示調(diào)用基類的函數(shù)fun()cout<<"Derived::fun"<<ENDL;}; }(A)fun();(B)Base.fun();(C)Base::fun();(D)Base->fun();16、執(zhí)行下面的程序?qū)⑤敵? )#include<iostream.h>classBASE{charc;public:BASE(charn):c(n){}virtual~BASE(){cout<<c;}};classDERIVED:publicBASE{charc;public:DERIVED(charn):BASE(n+1),c(n){}~DERIVED(){cout<<c;}};intmain(){DERIVEDa('X');return0;}(A)XY(B)YX(C)X(D)Y17、 下面描述中,表達(dá)錯(cuò)誤的是( )(A)公有繼承時(shí)基類中的public成員在派生類中仍是public的(B)公有繼承是基類中的private成員在派生類中仍是private的(C)公有繼承時(shí)基類中的protected成員在派生類中仍是protected的(D)私有繼承時(shí)基類中的public成員在派生類中是private的18、 定義析構(gòu)函數(shù)時(shí),應(yīng)該注意( )(A)其名與類名完全相同 (B)返回類型是void類型——第4頁——(C)無形參,也不可重載 (D)函數(shù)體中必須有delete語句19、對于在類中定義的靜態(tài)數(shù)據(jù)成員,下面正確的說法是( )A.該類的每個(gè)對象中都有一個(gè)靜態(tài)數(shù)據(jù)成員日.對象創(chuàng)建時(shí)產(chǎn)生在類外進(jìn)行初始化既可以在類外初始化,也可以在類內(nèi)初始化20、 C++中聲明常量的關(guān)鍵字是()。A.constB.externC.publicD.enum三、改錯(cuò)題(每處2分,共6分)1、使用VC6打開考生文件夾下的工程proj1,此工程包含一個(gè)源程序文件main.cpp,但該程序運(yùn)行有問題,請改正main函數(shù)中的錯(cuò)誤,使程序的輸出結(jié)果為:member=0member■=5源程序文件main.cpp清單如下:<iostream.h>#incliMyClasspasspublMyClass(inti)(member=i;}voidSetMember(intm)(member=m;}intGetMember()const(returnmenber;}voidprint()cont{cout<<"member="<<MEMBER<<ENDL;}privan:member;);main()voed{MyClassobjl;//更正 obj1.print();MyClassobj2(3);obj1.member=5; //更正MyClass.SetMember(10); //更正obj1.print();obj2.print();}四、寫出下列程序的執(zhí)行結(jié)果(每小題5分,共20分)1、#include<iostream.h>classSample{intn;public:Sample(inti){n=i;}friendintadd(Sample&s1,Sample&s2);};intadd(Sample&s1,Sample&s2){returns1.n+s2.n;}voidmain(){Samples1(10),s2(20);cout<<add(s1,s2)<<endl;}執(zhí)行結(jié)果是:2、#include<iostream.h>intadd(intx,inty){returnx+y+1;}doubleadd(doublex,doubley){returnx+y-1;}voidmain(){inta=2,b=4;doublec=2.6,d=7.4;cout<<add(a,b)<<”,"<<add(c,d)<<endl;}執(zhí)行結(jié)果是:3、#include<iostream.h>classA{public:intn;};classB:virtualpublicA{};classC:virtualpublicA{};classD:publicB,publicC{intgetn(){returnB::n;}};voidmain(){Dd;d.B::n=10;d.C::n=20;cout<<d.B::n<<”,"<<d.C::n<<endl;執(zhí)行結(jié)果是:4、#include<iostream.h>classmyclass{inta,b;staticints;public:myclass(intx,inty){a=x;b=y;s++;}voidprint(){cout<<s<<endl;}};intmyclass::s=0;voidmain(){myclassm1(1,2),m2(4,5),m3(6,7);m1.print();m2.print();m3.print();}執(zhí)行結(jié)果是:五、編程題(每題10分、共30分)1、測試一個(gè)名為rectangle的矩形類,其屬性為矩形的左下角與右上角兩個(gè)點(diǎn)的坐標(biāo),能計(jì)算矩形的面積。(10分)2、定義一boat與car兩個(gè)類,二者都有weight屬性,定義二者的一個(gè)友元函數(shù)totalweight(),計(jì)算二者的重量和。(10分)3、設(shè)計(jì)一個(gè)汽車類vehicle,包含的數(shù)據(jù)成員有車輪個(gè)數(shù)wheels和車重weight。小車類car是它的派生類,其中包含載人數(shù)passenger_load。每個(gè)類都有相關(guān)數(shù)據(jù)的輸出方法。在主程序中定義一個(gè)car類對象,對其車輪個(gè)數(shù)、車重、載人數(shù)進(jìn)行設(shè)置并顯示。(10分)-、 填空題(每空1分,共14分)(1)p1.show();p->show()(2)公有、私有、保護(hù)(3)class(4)抽象類(5)成員函數(shù)、不是(6)friend(7)11、11 (8)動(dòng)態(tài)申請內(nèi)存空間、釋放由new申請的空間選擇題(每小題1.5分,共30分)1、D2、B3、C4、D5、D6、B7、B8、C9、C10、A 11、D12、C13、D14、B15、C16、A 17、B18、C19、C20、A三、 改錯(cuò)題(每錯(cuò)2分,共6分)MyClassobj1(0);obj1.SetMember(5);obj2.SetMember(10);四、 寫出下列程序的執(zhí)行結(jié)果(每小題5分,共20分)(1)30 (5分)(2)7 9 (每個(gè)2.5分)(3)20 20(每個(gè)2.5分)(4)3(2分)3(2分)3(1分)五、 編程題(每題10分、共30分)#include<iostream.h>#include<math.h>classrectangle//(2分){private:intx1,y1,x2,y2;//(2分)public:rectangle(intxx1,intyy1,intxx2,intyy2)//(1分){x1=xx1;y1=yy1;x2=xx2;y2=yy2;}intgetarea()//(2分){returnabs((x2-x1)*(y1-y2));}};voidmain(){rectanglerect1(3,7,8,5);(2分)cout<<rect1.getarea()<<endl;(1分)2、(10分)#include<iostream.h>classcar;(1分)classboat{private:intweight;//(1分)public:boat(intw):weight(w){}//(1分)friendinttotalweight(boatb1,carc1);//(2分)};classcar{/(1分)private:intweight;(1分)public:car(intw):weight(w){};friendinttotalweight(boatb1,carc1);(1分)};inttotalweight(boatb1,carc1)//(1分)returnbl.weight+cl.weight;}voidmain(){carc1(1000);boatb1(2000);cout<<totalweight(b1,c1)<<endl;(1分)}3、(10分)#include<iostream.h>classvehicle//定義汽車類(3分){protected:intwheels;//車輪數(shù)floatweight;//重量public:vehicle(intwheels,floatweight);intget_wheels();floatget_weight();floatwheel_load();voidshow();};classcar:publicvehicle//定義小車類(3分){intpassenger_load;//載人數(shù)public:car(intwheels,floatweight,intpassengers=4);intget_passengers();voidshow()

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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

提交評論