c面向?qū)ο蟪绦蛟O(shè)計方案試題和答案(經(jīng)典題目)_第1頁
c面向?qū)ο蟪绦蛟O(shè)計方案試題和答案(經(jīng)典題目)_第2頁
免費預(yù)覽已結(jié)束,剩余10頁可下載查看

下載本文檔

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

文檔簡介

1、一、 填空題 (每空 1 分,共 14 分)1、觀看以下程序:class pointpublic:void show() cout” point ” endl 。 。void main()point p1 。point *p 。p=&p1。_ p1.show() _/ 通過對象 p1 訪問 show 函數(shù)_p.show() _/ 通過指針 p 訪問 show 函數(shù)2、 在 C+類中可以包含 公共、保護_和私有三種具有不同訪問控制 權(quán)的成員。3、 定義類時,在類頭中將使用關(guān)鍵字_class_ 來表示類定義的開始。4、 如果一個類中至少有一個純虛函數(shù),則該類稱為 _ 抽象類 _。5、 C+

2、類的組成包括數(shù)據(jù)成員和 _ 成員函數(shù)_ ,友元是(是、不是)該類的成員函數(shù)。6、 友員函數(shù)是用關(guān)鍵字 _ friend_ 修飾的非成員函數(shù)。7、 若有:int i 。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è)計語言所特有的是(D )。(A)數(shù)據(jù)封裝(B)繼承(C)多態(tài)性(D)模板2、( B )是給變量取一個別名,它引入了變量的同意詞。(A)指針(B)引用(C)枚舉(D)

3、結(jié)構(gòu)3、類成員的訪問權(quán)限中,()只能被本類的成員函數(shù)和其友元函數(shù)訪問。(B)面向?qū)ο?0 安全性其隱含訪問權(quán)限為()。B. protectedD. static9、 下面有關(guān)重載函數(shù)的說法中正確的是()(A)重載函數(shù)必須具有不同的返回值類型;(B)重載函數(shù)形參個數(shù)必須不同;(C)重載函數(shù)必須有不同的形參列表 (D)重載函數(shù)名可以不同;10、 有如下的對類“ CSample 的說明,其中()是錯誤的。class CSample A. int a=23。B. CSample()。public:C. CSample(int val)。D. CSample()。11、 在 int a=3,int *p

4、=&a;中,*p 的值是()A.變量 a 的地址值B.無意義C.變量 p 的地址值D.312、每個類()構(gòu)造函數(shù)。(A)只能有一個(B)只可有公有的(A) share ( B) public( C) private4、關(guān)于構(gòu)造函數(shù),下列說法不正確的是(構(gòu)造函數(shù)名字和類名相同(A)(B)構(gòu)造函數(shù)在創(chuàng)建對象時自動執(zhí)行(C) 構(gòu)造函數(shù)無任何函數(shù)返回類型(D)protected)。(D)5、派生類可以訪問其基類的(A)公有成員(C)私有派生6、下列關(guān)于運算符重載的描述中,錯誤的是(運算符重載不可以改變操作數(shù)的個數(shù)運算符重載不可以改變運算符的功能運算符重載不可以改變結(jié)合方向 運算符重載不可以改變

5、運算優(yōu)先級構(gòu)造函數(shù)有且只有一個(A)(B)(C)(D)7、C+語言是從早期的)。(B)(D)。保護成員公有和保護成員C 語言逐漸發(fā)展演變而來的C 語言相比,它在求解冋題方法上進行的最大改進是()(A)面向過程&對于類中定義的成員,A . publicC . private(D)復(fù)用性(C)可以有多個(D)只可有缺省的13、在一個類中可以對一個操作符進行( )重載。(A) 1 種(B) 2 種以下(C) 3 種以下(D)多種14、在公有繼承的情況下,基類非私有成員在派生類中的訪問權(quán)限()(A 受限制(B)保持不變(C)受保護(D)不受保護15、應(yīng)在下列程序劃線處填入的正確語句是()#in

6、 elude classBasepublic:voidfun()coutBase:funENDL。classDerived:publicBasevoidfu n()_ /顯示調(diào)用基類的函數(shù)fun()coutDerived:fu nfun()。16、執(zhí)行下面的程序?qū)⑤敵?)#in clude class BASEchar c。public:BASE(char n):c( n)virtual BASE()coutc。class DERIVED:public BASEchar c。public:DERIVED(char n):BASE( n+1),c( n)DERIVED()coutc 。int m

7、ai n()DERIVED a(X)。return 0。(A) XY(B) YX(C) X17、下面描述中,表達錯誤的是()(A)公有繼承時基類中的public 成員在派生類中仍是public的(B)公有繼承是基類中的private 成員在派生類中仍是private的(C)公有繼承時基類中的protected 成員在派生類中仍是protected 的(D)私有繼承時基類中的public 成員在派生類中是private 的18、定義析構(gòu)函數(shù)時,應(yīng)該注意( )(A)其名與類名完全相同(B)返回類型是 void 類型(C)無形參,也不可重載(D)函數(shù)體中必須有delete 語句19、 對于在類中定義

8、的靜態(tài)數(shù)據(jù)成員,下面正確的說法是()A. 該類的每個對象中都有一個靜態(tài)數(shù)據(jù)成員B. 對象創(chuàng)建時產(chǎn)生C. 在類外進行初始化D. 既可以在類外初始化,也可以在類內(nèi)初始化20、C+沖聲明常量的關(guān)鍵字是()。A. const B. exter n C. public D. enum三、改錯題(每處 2 分,共 6 分)1、使用 VC6 打開考生文件夾下的工程proj1,此工程包含一個源程序文件main.cpp,但該程序運行有問題,請改正 main 函數(shù)中的錯誤,使程序的輸出結(jié)果為:member=0member=5men ber=10源程序文件 main.cpp 清單如下:#in clude class

9、 MyClasspublic:MyClass(inti)member=i 。void SetMember(int m)member=m intGetMember()constreturnmenber。voidprint()contcoutmember=MEMBERENDL。(D) Yprivate:intmembe。 voed main()MyClass obj1。/ 更正obj1.pri nt()。MyClass obj2(3)。obj1.member=5。/ 更正MyClass.SetMember(IO) / 更正_objl.pri nt()obj2.pri nt()四、寫出下列程序的執(zhí)行

10、結(jié)果(每小題 5 分,共 20 分)1、#in cludeclass Sample int n 。public:Sample(int i)n=i。friend int add(Sample &s1,Sample & s2)。int add(Sample & s1,Sample & s2)retur n s1. n+s2 .n。void mai n()Sample s1(10),s2(20)。coutadd(s1,s2)e ndl 。執(zhí)行結(jié)果是:2、#in cludeint add(int x,int y)return x+y+1 。double add(doub

11、le x,double y)return x+y-1 。void main()int a=2,b=4 。double c=2.6,d=7.4 。coutadd(a,b),add(c,d)endl執(zhí)行結(jié)果是:3、#include class Apublic:int n 。class B:virtual public A class C:virtual public A class D:public B,public Cint getn()return B:n。 。void main()D d。d.B:n=10 。d.C:n=20 。coutd.B:n,d.C:nendl執(zhí)行結(jié)果是:4、#incl

12、ude class myclassint a,b 。 static int s 。public:myclass(int x,int y)a=x。b=y。s+。void print()coutsshow() ( 2)公有、私有、保護 (3) class ( 4)抽象類( 5)成員函數(shù)、不是(6) friend (7) 11、 11 ( 8)動態(tài)申請內(nèi)存空間、釋放由new申請的空間二、選擇題 (每小題 1.5 分,共 30 分)1、D 2、B 3 、C 4、D 5、D 6、B三、改錯題 (每錯 2 分,共 6 分 ) MyClassobj1(0) 。 obj1.SetMember(5) 。四、 寫

13、出下列程序的執(zhí)行結(jié)果 (每小題 5 分,共 20 分)(1)30 (5 分)(2)7 9 (每個 2.5 分)(3) 20 20 (每個 2.5 分)(4)3(2 分)3(2 分)3(1 分)五、編程題 (每題 10 分、共 30 分)1、#include #include class rectangle /(2 分 )private:int x1,y1,x2,y2 。 / (2 分 ) public:rectangle(int xx1,int yy1,int xx2,int yy2) /(1 分 )7 、B 8 、C 9 、C 10、A 11、D 12、C13、D14、B 15 、C 16、

14、A 17、B 18、C 19、C 20、 Aobj2.SetMember(10) 。x1=xx1 。 y 仁 yy1 。 x2=xx2。 y2=yy2。int getarea() /(2 分 )return abs(x2-x1)*(y1-y2) 。void main()rectangle rect1(3,7,8,5) 。 (2 分) coutrect1.getarea()endl 。 (1 分 )2、(10 分) #include class car( 1 分) class boat private:int weight 。 /(1 分 )public:boat(int w):weight(w

15、) /(1分)friend int totalweight(boat b1,car c1) 。/(2 分)。class car /(1 分)private:int weight 。 (1 分 ) public:car(int w):weight(w) 。friend int totalweight(boat b1,car c1) 。 (1 分) 。int totalweight(boat b1,car c1) /(1 分)return b1.weight+c1.weight 。void main()car c1(1000) 。 boat b1(2000) 。 couttotalweight(b

16、1,c1)endl 。(1 分)3、(10 分)#includeclass vehicle / 定義汽車類 (3 分 )protected:int wheels 。 / 車輪數(shù)float weight 。 / 重量public:vehicle(int wheels,float weight) 。int get_wheels() 。float get_weight() 。float wheel_load() 。void show() 。class car:public vehicle / 定義小車類 (3 分 )int passenger_load。 / 載人數(shù)public:car(int wh

17、eels,float weight,int passengers=4) 。int get_passengers()。 void show() 。vehicle:vehicle(int wheels1,float weight1) /(1 分 )wheels=wheels1。 weight=weight1 。int vehicle:get_wheels()return wheels 。float vehicle:get_weight()return weight 。void vehicle:show() (1 分 )cout 車輪 : wheels 個 endl 。 cout 重量: weight 公斤 endl。car:car(int wheels, float weight, int passenger

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論