全國(guó)2005年10月面向?qū)ο蟪绦蛟O(shè)計(jì)試題_第1頁(yè)
全國(guó)2005年10月面向?qū)ο蟪绦蛟O(shè)計(jì)試題_第2頁(yè)
全國(guó)2005年10月面向?qū)ο蟪绦蛟O(shè)計(jì)試題_第3頁(yè)
全國(guó)2005年10月面向?qū)ο蟪绦蛟O(shè)計(jì)試題_第4頁(yè)
全國(guó)2005年10月面向?qū)ο蟪绦蛟O(shè)計(jì)試題_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、全國(guó)2005年10月面向?qū)ο蟪绦蛟O(shè)計(jì)試題課程代碼:02328一、單項(xiàng)選擇題(本大題共12小題,每小題2分,共24分)在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫(xiě)在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無(wú)分。1. 所謂多態(tài)性是指 ( )A. 不同的對(duì)象調(diào)用不同名稱的函數(shù) B. 不同的對(duì)象調(diào)用相同名稱的函數(shù) C. 一個(gè)對(duì)象調(diào)用不同名稱的函數(shù) D. 一個(gè)對(duì)象調(diào)用不同名稱的對(duì)象2. 有如下程序段:int *p,a6=-1,0,1,2,3,4; p=a+3; 執(zhí)行該程序段后,*p的值為 ( )A. 4 B. 2 C. 1 D. NULL3.類MyA的拷貝初始化構(gòu)造函數(shù)是 ( )A. My

2、A() B. MyA(MyA*) C. MyA(MyA&) D. MyA(MyA)4.一個(gè)函數(shù)功能不太復(fù)雜,但要求被頻繁調(diào)用,則應(yīng)把它定義為 ( )A. 內(nèi)聯(lián)函數(shù) B. 重載函數(shù) C. 遞歸函數(shù) D. 嵌套函數(shù)5.以下有關(guān)繼承的敘述正確的是 ( )A. 構(gòu)造函數(shù)和析構(gòu)函數(shù)都能被繼承B. 派生類是基類的組合C. 派生類對(duì)象除了能訪問(wèn)自己的成員以外,不能訪問(wèn)基類中的所有成員D. 基類的公有成員一定能被派生類的對(duì)象訪問(wèn)6. 解決二義性問(wèn)題的方法有( )A. 只能使用作用域分辨操作符 B. 使用作用域分辨操作符或賦值兼容規(guī)則C. 使用作用域分辨操作符或虛基類 D. 使用虛基類或賦值兼容規(guī)則7. 假設(shè)類

3、X以類Y作為它的一個(gè)基類,并且X類的名字func()支配Y類的名字func(),obj為類X的對(duì)象,則obj.func()語(yǔ)句實(shí)現(xiàn)的功能為 ( )A. 先執(zhí)行類X的func(),再執(zhí)行訪問(wèn)類Y的func()B. 先執(zhí)行類Y的func(),再執(zhí)行訪問(wèn)類X的func() C. 執(zhí)行類X的func()D. 執(zhí)行類Y的func()8.以下敘述正確的是( )A. 構(gòu)造函數(shù)調(diào)用虛函數(shù)采用動(dòng)態(tài)聯(lián)編B. 構(gòu)造函數(shù)可以說(shuō)明為虛函數(shù)C. 當(dāng)基類的析構(gòu)函數(shù)是虛函數(shù)時(shí),它的派生類的析構(gòu)函數(shù)也是虛函數(shù)D. 析構(gòu)函數(shù)調(diào)用虛函數(shù)采用動(dòng)態(tài)聯(lián)編9.以下關(guān)于抽象類的描述正確的是 ( )A. 不能說(shuō)明指向抽象類對(duì)象的指針或引用B.

4、 可以說(shuō)明抽象類對(duì)象C. 抽象類的純虛函數(shù)的實(shí)現(xiàn)可以由自身給出,也可以由派生類給出D. 抽象類的純虛函數(shù)的實(shí)現(xiàn)由派生類給出10.在下面格式化命令的解釋中,錯(cuò)誤的是 ( )A. ios:skipws 跳過(guò)輸入中的空白字符B. ios:fill() 獲得當(dāng)前的填充字符C. ios:hex 轉(zhuǎn)換基數(shù)為八進(jìn)制形式D. ios:precision 返回當(dāng)前的精度11.下面運(yùn)算符中,不能被重載的運(yùn)算符是( )A. = B. C. ?: D. 12.下列有關(guān)模板和繼承的敘述正確的是 ( )A. 模板和繼承都可以派生出一個(gè)類系B. 從類系的成員看,模板類系的成員比繼承類系的成員較為穩(wěn)定C. 從動(dòng)態(tài)性能看, 繼

5、承類系比模板類系具有更多的動(dòng)態(tài)特性D. 相同類模板的不同實(shí)例一般沒(méi)有聯(lián)系,而派生類各種類之間有兄弟父子等關(guān)系二、填空題(本大題共8小題,每小題2分,共16分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。13. 在C+中函數(shù)原型不但能標(biāo)識(shí)函數(shù)的_,而且能標(biāo)識(shí)函數(shù)參數(shù)的_。14. 如果類的名稱是MyClass則析構(gòu)函數(shù)名為_(kāi),一個(gè)類最多能有_個(gè)析構(gòu)函數(shù)。15. 假設(shè)類X的對(duì)象x是類Y的成員對(duì)象,則“Y Obj”語(yǔ)句執(zhí)行時(shí),先調(diào)用類_的構(gòu)造函數(shù),再調(diào)用類_的構(gòu)造函數(shù)。16. 基類的公有成員在私有派生類中是_成員,基類的保護(hù)成員在公有派生類中是_成員。17. 對(duì)虛函數(shù)使用對(duì)象指針或引用,系統(tǒng)使用

6、_聯(lián)編,對(duì)虛函數(shù)使用對(duì)象調(diào)用時(shí),系統(tǒng)使用_聯(lián)編。18. 靜態(tài)成員定義的關(guān)鍵字為_(kāi),一般通過(guò)_來(lái)訪問(wèn)靜態(tài)成員。19. 類在面向?qū)ο蟪绦蛟O(shè)計(jì)中非常重要,在設(shè)計(jì)類時(shí)可以參考一些原則,如充分利用_增加類的自身可靠性,通過(guò)繼承建立_等等。20. 將關(guān)鍵字_寫(xiě)在函數(shù)體之前函數(shù)頭之后,說(shuō)明該函數(shù)是一個(gè)_,可以防止函數(shù)改變數(shù)據(jù)成員的值。三、改錯(cuò)題(本大題共5小題,每小題2分,共10分)21.指出下面引用性說(shuō)明類MyClass的用法的錯(cuò)誤之處,并說(shuō)明出錯(cuò)原因。class MyClass;void main() MyClass obj1;MyClass *p;void func( MyClass obj);22.

7、下面程序中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并說(shuō)明出錯(cuò)原因。class baseprotected:int p;public:Base(int m)p=m;void f() Base a(10); couta.pendl;23.下面程序中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并說(shuō)明出錯(cuò)原因。class base public: int x;class One:public base;class Two:public base;class OT:public One,public Twopublic: int func();void main() OT p;p.base:x;24.下面程序中有一

8、處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并說(shuō)明出錯(cuò)原因。class Basepublic: virtual void fun()=0;class Test: public Basepublic: virtual void fun()coutTest.fun=endl;void main() Base a;Test*p; p=&a;25.下面程序中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并提出修改意見(jiàn)。class Aprivate: static int x;void func(int a)x=a;四、完成程序題(本大題共5小題,每小題4分,共20分)26.為使下面程序輸出結(jié)果為:1*23+4 請(qǐng)?jiān)跈M線處填

9、上適當(dāng)?shù)淖志?,以使程序完整?include class A private: int R1, R2;public:A(int r1, int r2) R1=r1; R2=r2; void print(); void print() const; void A:print() coutR1 _R2endl; void A:print() const coutR1 _R2endl; void main() A a(1, 2); const A b(3, 4); a.print(); b.print(); 27. 在下面橫線處填上適當(dāng)字句,完成類中成員函數(shù)的定義。#include class A

10、private: int X,Y;public: A() X=Y=0; A(int xx,int yy) :X(xx),Y(yy) A(A &a) _ int GetX() return X; int GetY() return Y; void SetXY(int x,int y) X=x; Y=y; ;int main() A * Ptr=new A2; Ptr0.SetXY(5,10); Ptr1.SetXY(15,20); coutRelease Ptr endl; _; /釋放動(dòng)態(tài)分配內(nèi)存 return 0;28.請(qǐng)?jiān)跈M線處填上適當(dāng)?shù)淖志洌允钩绦蛲暾?include #includ

11、e math.hclass Point private:double X,Y;_Line;public:Point(double x=0, double y=0) X=x; Y=y;Point(Point &p) X=p.X; Y=p.Y;class Lineprivate: Point p1,p2;public: Line(Point &xp1, Point &xp2): _ double GetLength();double Line:GetLength() double dx=p2.X-p1.X; double dy=p2.Y-p1.Y;return sqrt(dx*dx + dy*dy

12、);void main() Point p1,p2(3,4); Line L1(p1,p2); coutL1.GetLength()endl;29.下面程序橫線處填上適當(dāng)?shù)淖志?,使類定義完整。#include#include class ArrayFloat protected:float *pA; int size; /數(shù)組大?。ㄔ貍€(gè)數(shù))public:ArrayFloat(int sz=10) size=sz;pA=new floatsize; ArrayFloat(void) _; /釋放動(dòng)態(tài)內(nèi)存 int GetSize(void) const return size;float& op

13、erator(int i) /重載數(shù)組元素操作符 return pAi;void Print(); ;void ArrayFloat:Print() int i;for(i=0; i _; i+) if (i%10=0) cout endl;coutsetw(6)pAi; coutendl;void main() ArrayFloat a(20);for (int i=0; ia.GetSize(); i+) ai=(float)i* 2;a.Print(); 30.在橫線處填上適當(dāng)字句,完成下面復(fù)數(shù)類的定義。#include class Complexprivate:double real,

14、 image;public:Complex(double r=0,double i=0) real=r; image=i; friend Complex operator+(Complex &a,const Complex &c); /復(fù)數(shù)加法運(yùn)算符Complex operator=(Complex c2); /復(fù)數(shù)賦值運(yùn)算符 ;Complex operator+(Complex &a,const Complex &b) Complex *t = new Complex (_);return *t;Complex Complex: operator = (Complex c2) real= c

15、2.real;image = c2.image;return ( _);五、程序分析題(本大題共6小題,每小題5分,共30分)31.寫(xiě)出下面程序的輸出結(jié)果。#include class B private: int Y;public: B(int y=0) Y=y; coutB(y)n; B() coutB()n; void print() cout Y ; ; class D: public Bprivate: int Z;public: D (int y, int z):B(y) Z=z;coutD(y,z)n; D() coutD()n; void print() Bprint();co

16、ut Zendl; ; void main() D d(11,22);d.print(); 32.寫(xiě)出下面程序的輸出結(jié)果。#include class Aprivate: double X,Y;public: A(double xx=0, double yy=0) X=xx; Y=yy;cout構(gòu)造函數(shù)被調(diào)用(X,Y)endl;A(A &p) X=p.X; Y=p.Y; ;A f() A a(1,2);return a;void main() A a(4,5); A b(a);b = f();33.寫(xiě)出下面程序的輸出結(jié)果。#include class A public:virtual void

17、 f() coutA:f()n; ; class B:public Aprivate: char *buf;public:B(int i) buf=new chari; void f() coutf(); delete a;a=new B(15); a-f();34.寫(xiě)出下面程序的輸出結(jié)果。#include void main() int a9=1,2,3,4,5,6,7,8,9; for(int i=0; i9; i+) cout setw(4) ai; if(i%3=2) coutendl; 35.寫(xiě)出下面程序的輸出結(jié)果。#include template void print(T a,int n ) for(int i=0; in; i+) coutai ;if (i%5=4) coutendl;coutendl;void main() int a=1, 2, 3, 4, 5, 6, 7;double b4=8, 9, 10, 1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論