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頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、一、 填空題 (每空 1 分,共 14分)1、觀看以下程序:class pointpublic:void show() cout<<” point ” <<endl;void main()point p1;point *p;p=&p1;p1.show() / 通過對(duì)象 p1 訪問 show 函數(shù)p.show() / 通過指針 p 訪問 show 函數(shù)2、 在C+類中可以包含公共_、保護(hù)和_私有三種具有不同訪 問控制權(quán)的成員。3、 定義類時(shí),在類頭中將使用關(guān)鍵字 _class 來表示類定義的開始。4、如果一個(gè)類中至少有一個(gè)純虛函數(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è)計(jì)語言所特有的是(D )。(A)數(shù)據(jù)封裝(B)繼承(C)多態(tài)性(D)模板(D) protected )。2、( B )是給變量取一個(gè)別名,它引入了變量的同意詞。(A)指針(B)引用(C)枚舉(D)結(jié)構(gòu)3、 類成員

3、的訪問權(quán)限中,()只能被本類的成員函數(shù)和其友元函數(shù)訪問。(A) share(B) public(C) private4、關(guān)于構(gòu)造函數(shù),下列說法不正確的是(A)(B)(C)(D)構(gòu)造函數(shù)名字和類名相同 構(gòu)造函數(shù)在創(chuàng)建對(duì)象時(shí)自動(dòng)執(zhí)行 構(gòu)造函數(shù)無任何函數(shù)返回類型 構(gòu)造函數(shù)有且只有一個(gè)5、派生類可以訪問其基類的(B)保護(hù)成員(A)公有成員(C)私有派生6、F列關(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語言相比,它在求

4、解問題 方法上進(jìn)行的最大改進(jìn)是()(A)面向過程(B)面向?qū)ο?C)安全性(D)復(fù)用性8對(duì)于類中定義的成員,其隱含訪問權(quán)限為(A . tectedC . private.static9、下面有關(guān)重載函數(shù)的說法中正確的是(A)重載函數(shù)必須具有不同的返回值類型; 須不同;(C)重載函數(shù)必須有不同的形參列表10、有如下的對(duì)類“ CSample的說明,其中(class CSample A int a=23;B. CSample();public:(B)重載函數(shù)形參個(gè)數(shù)必(D)重載函數(shù)名可以不同;)是錯(cuò)誤的。(D)公有和保護(hù)成員C. CSample(int val);D. CSamp

5、le();11、 在 int a=3,int *p=&a;中,*p 的值是()A.變量a的地址值B.無意義C.變量p的地址值D.312、每個(gè)類()構(gòu)造函數(shù)。(A)只能有一個(gè)(B)只可有公有的(C)可以有多個(gè)(D)只可有缺省的13、 在一個(gè)類中可以對(duì)一個(gè)操作符進(jìn)行()重載。(A)1種(B)2種以下(C) 3種以下(D)多種14、在公有繼承的情況下,基類非私有成員在派生類中的訪問權(quán)限(A)受限制 (B)保持不變(C)受保護(hù)(D)15、 應(yīng)在下列程序劃線處填入的正確語句是()#i nclude <iostream.h>class Basepublic:void fun ()cou

6、t«"Base:fu n"v<ENDL;class Derived:public Base void fun()顯示調(diào)用基類的函數(shù)fun()cout<<"Derived:fu n"v<ENDL;(A) fun();( B) Base.fun();(C) Base:fun();(D)16、執(zhí)行下面的程序?qū)⑤敵觯ǎ?不受保護(hù)Base->fu n();#in clude <iostream.h> class BASEchar c;public:BASE(char n):c (n) virtual BASE()

7、cout<<c; ;class DERIVED:public BASEchar c;public:DERIVED(char n):BASE( n+1),c( n) DERIVED()cout<<c;int mai n()DERIVED a('X');return 0;(A) XY ? (B) YX? (C X?(D) Y17、下面描述中,表達(dá)錯(cuò)誤的是()(A)公有繼承時(shí)基類中的public成員在派生類中仍是 public的(B)公有繼承是基類中的private成員在派生類中仍是private 的(C)公有繼承時(shí)基類中的protected 成員在派生類中仍

8、是 protected 的(D)私有繼承時(shí)基類中的public成員在派生類中是private的18、定義析構(gòu)函數(shù)時(shí),應(yīng)該注意(A)其名與類名完全相同(C)無形參,也不可重載)(B)返回類型是void 類型(D)函數(shù)體中必須有delete 語句19、對(duì)于在類中定義的靜態(tài)數(shù)據(jù)成員,下面正確的說法是()A. 該類的每個(gè)對(duì)象中都有一個(gè)靜態(tài)數(shù)據(jù)成員B. 對(duì)象創(chuàng)建時(shí)產(chǎn)生C. 在類外進(jìn)行初始化D. 既可以在類外初始化,也可以在類內(nèi)初始化20、C+中聲明常量的關(guān)鍵字是()。A. const B. extern C. public D. enum三、改錯(cuò)題(每處2分,共6分)1、使用VC6打幵考生文件夾下的工程

9、proj1,此工程包含一個(gè)源程序文件main.cpp,但該程序運(yùn)行有問題, 請(qǐng)改正main函數(shù)中的錯(cuò)誤,使程序的輸出結(jié) 果為:member=0member=5men ber=10源程序文件ma in .cpp清單如下:#in elude <iostream.h>class?MyClasspublic:MyClass(i nt?i)member二i; void?SetMember(i nt?m)member二m; in t?GetMember()c on streturn?me nber; void?pri nt()co ntcout«"member二"

10、vvMEMBERvvENDL;private:in t?member; ;voed?ma in()MyClass?obj1; / obj1.pri nt();MyClass?obj2(3);obj1.member=5; /更正更正MyClass.SetMember(10); / obj1.pri nt();obj2.pri nt();更正四、寫出下列程序的執(zhí)行結(jié)果 (每小題5分,共20分)#in clude<iostream.h>class Sample int n;public:Sample(i nt i) n二i;frie nd int add(Sample & s1,

11、Sample & s2); ;int add(Sample & s1,Sample & s2)return s1. n+s2 .n;void mai n()Sample s1(10),s2(20);cout<<add(s1,s2)vve ndl;執(zhí)行結(jié)果是:#include<iostream.h>int add(int x,int y)return x+y+1;double add(double x,double y)return x+y-1;void main()int a=2,b=4;double c=2.6,d=7.4;cout<&l

12、t;add(a,b)<<","<<add(c,d)<<endl; 執(zhí)行結(jié)果是:3、#include<iostream.h>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;cout<<d.B:n<<","<<d.C:n<&

13、lt;endl;執(zhí)行結(jié)果是:4、#include <iostream.h>class myclassint a,b;static int s;public:myclass(int x,int y)a=x;b=y;s+;void print()cout<<s<<endl;int myclass:s=0;void main()myclass m1(1,2),m2(4,5),m3(6,7);m1.print();m2.print();m3.print();執(zhí)行結(jié)果是:五、 編程題(每題 10分、共 30分)1、 測(cè)試一個(gè)名為 rectangle 的矩形類,其屬性為

14、矩形的左下角與右上角兩個(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 類對(duì)象,對(duì)其車輪個(gè)數(shù)、車重、 載人數(shù)進(jìn)行設(shè)置并顯示。 (10 分 )一、 填空題 (每空 1 分,共 14 分)(1)p1.sho

15、w(); p->show()(2)公有、私有、保護(hù) ( 3)class (4)抽象類(5)成員函數(shù)、不是(6)friend( 7)11、11 (8)動(dòng)態(tài)申請(qǐng)內(nèi)存空間、釋放由 new 申請(qǐng)的空間二、 選擇題 (每小題 1.5 分,共 30 分)1、D 2 、B 3 、C 4 、D 5 、D 6 、B 7 、B 8 、C 9 、C 10 、A 11 、D 12 、C 13 、D 14 、B 15 、C 16 、 A 17 、B 18 、C 19 、C 20 、 A三、 改錯(cuò)題 (每錯(cuò) 2 分,共 6 分)MyClass obj1(0); obj1.SetMember(5); obj2.Set

16、Member(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分)1、 #include <iostream.h>#include <math.h>class rectangle /(2分 )private:int x1,y1,x2,y2; / (2 分)public:rectangle(int xx1,int yy1,int xx2,int yy2) /(1分 )x1

17、=xx1;y1=yy1;x2=xx2;y2=yy2;int getarea() /(2 分 )return abs(x2-x1)*(y1-y2);void main()rectangle rect1(3,7,8,5); (2分 )cout<<rect1.getarea()<<endl; (1分 )2、(10 分 )#include <iostream.h>class car; ( 1 分)class boatprivate:int weight; /(1 分 )public:boat(int w):weight(w) /(1 分)friend int tot

18、alweight(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()int passenger_load; /載人數(shù)car c1(1000);boat b1(2000);cout<<totalweight(b

19、1,c1)<<endl;(1分 )3、(10 分 )#include<iostream.h>class 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 分)public:car(int wheels,float weight,int passengers=4);int get_passengers();void show();vehicle:vehicle(int wheels1,float weight1) /(1wheels=wheels1;weight=weight1;int vehicle:get_wheels()return wheels;float vehicle:get_weigh

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論