2003年10月C++全國(guó)高等教育自學(xué)考試試卷_第1頁(yè)
2003年10月C++全國(guó)高等教育自學(xué)考試試卷_第2頁(yè)
2003年10月C++全國(guó)高等教育自學(xué)考試試卷_第3頁(yè)
2003年10月C++全國(guó)高等教育自學(xué)考試試卷_第4頁(yè)
2003年10月C++全國(guó)高等教育自學(xué)考試試卷_第5頁(yè)
已閱讀5頁(yè),還剩16頁(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、Object - Oriented Programming,2003年10月全國(guó)高等教育自學(xué)考試試卷與參考答案,1,一、單項(xiàng)選擇題 ( 共 10 小題,每小題 2 分),1. 下列特性中, C 與 C+ 共有的是 ( ) A. 繼承B. 封裝 C. 多態(tài)性 D. 函數(shù)定義不能嵌套 2. 通常情況下,函數(shù)模板中的類(lèi)型參數(shù)個(gè)數(shù) 不能 是 ( ) A.0 B.2 C.4 D.3 3. 在下列表達(dá)式中,運(yùn)算符“ + ”的意義不相同的一對(duì)是 ( ) A.5.0+2.0 和 5.0+2 B.5.0+2.0 和 5+2.0 C.5.0+2.0 和 5+2 D.5+2.0 和 5.0+2 4. 類(lèi)的指針成員初

2、始化是通過(guò)函數(shù)完成,這個(gè)函數(shù)通常是 ( ) A. 析構(gòu)函數(shù) B. 構(gòu)造函數(shù) C. 其它成員函數(shù) D. 友元函數(shù),D,C,B,A,2,5. 要禁止修改指針 p 本身,又要禁止修改 p 所指向的數(shù)據(jù),這樣的指針應(yīng)定義為 ( ) A.const char *p= “ ABCD ”; B.char const *p= “ ABCD ”; C.char *const p= “ ABCD ”; D.const char * const p= “ ABCD ”; 6. 靜態(tài)成員函數(shù)沒(méi)有 ( ) A. 返回值 B.this 指針C. 指針參數(shù)D. 返回類(lèi)型 7. 當(dāng)一個(gè)類(lèi)的某個(gè)函數(shù)被說(shuō)明為 virtual 時(shí)

3、,該函數(shù)在該類(lèi)的所有派生類(lèi)中 ( ) A. 都是虛函數(shù) B. 只有被重新說(shuō)明時(shí)才是虛函數(shù) C. 只有被重新說(shuō)明為 virtual 時(shí)才是虛函數(shù) D. 都不是虛函數(shù),D,B,A,3,8. 下面敘述 不正確 的是 ( ) A. 派生類(lèi)一般都用公有派生 B. 對(duì)基類(lèi)成員的訪問(wèn)必須是無(wú)二義性的 C. 賦值兼容規(guī)則也適用于多重繼承的組合 D. 基類(lèi)的公有成員在派生類(lèi)中仍然是公有的 9. 在 C+ 中實(shí)現(xiàn)封裝是借助于 ( ) A. 枚舉 B. 類(lèi) C. 數(shù)組 D. 函數(shù) 10. 所有在函數(shù)中定義的變量,都是 ( ) A. 全局變量 B. 局部變量 C. 靜態(tài)變量 D. 寄存器變量,D,A,B,4,二、填空

4、題 (每小題 2 分,共 20 分 ),11. 設(shè)函數(shù) max 是由函數(shù)模板實(shí)現(xiàn)的,并且 max(3.5, 5) 和 max(10,5) 都是正確的函數(shù)調(diào)用,則模板具有 _ 個(gè)類(lèi)型參數(shù)。 12. 在單繼承和多繼承方式中,面向?qū)ο蟮某绦蛟O(shè)計(jì)應(yīng)盡量使用 _ 繼承。 13. 語(yǔ)句 ifstream datafile ; datafile.open( “ data.dat ” ) ; 的功能可用一個(gè)語(yǔ)句實(shí)現(xiàn),這個(gè)語(yǔ)句是 _ 。 14. 將關(guān)鍵字 const 寫(xiě)在函數(shù)頭之后,函數(shù)體之前,說(shuō)明該函數(shù)是一個(gè) const 成員函數(shù)。此時(shí) const 不是指定函數(shù)的返回值,而是修飾 _ 指針。,2,單,ifst

5、ream datafile ( “ data.dat ” ),this,5,15. 一個(gè)抽象類(lèi)的派生類(lèi)可以實(shí)例化的必要條件是實(shí)現(xiàn)了所有的 _ 。 16. 在 C+ 中,虛函數(shù)幫助實(shí)現(xiàn)了類(lèi)的 _ 性。 17. 通過(guò) C+ 語(yǔ)言中類(lèi)的 _ ,可以擴(kuò)充和完善已有類(lèi)以適應(yīng)新的需求。 18. 為了在對(duì)象生存期結(jié)束時(shí)釋放其指針成員所指向的動(dòng)態(tài)存儲(chǔ)空間,通常需要為該類(lèi)定義 _。 19. 在聯(lián)合中,所有數(shù)據(jù)成員具有 _ 的地址,任一時(shí)刻只有 _ 個(gè)數(shù)據(jù)成員有效。 20. 在已經(jīng)定義了整型指針 ip 后,為了得到一個(gè)包括 10 個(gè)整數(shù)的數(shù)組并由 ip 所指向,應(yīng)使用語(yǔ)句 _ 。,虛函數(shù),多態(tài),繼承,析構(gòu)函數(shù),相

6、同,1,ip=new int10;,6,21.下面的類(lèi)定義有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并改正錯(cuò)誤。 class A int a; public: A(int aa):a=aa ;,22.下面的程序有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并改正錯(cuò)誤。 # include class Test public; static int x; ; int x=20;/ 對(duì)類(lèi)成員初始化 void main ( ) coutTest:x; ,三、改錯(cuò)題 (每小題 2 分,共 10 分 ),A(int aa):a=aa 出錯(cuò) 改為: A(int aa):a(aa) ,int x=20;出錯(cuò) 改為: int

7、 Test:x=20;,7,23.下面的程序先把字符串“ Look out! ”輸出到一個(gè)文件中,然后再?gòu)脑撐募斎耄@示在屏幕上,顯示效果為 Look out! 。程序中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行,并給出更改意見(jiàn)。 # include void main() ofstream outf( c:tem.dat,ios:trunc); outfk; coutk; inf.close( ); ,infk;只能讀出Look 改為: inf.getline(k,20);,8,24.下面的程序類(lèi) B 的定義中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并說(shuō)明錯(cuò)誤原因。 # include # inc

8、lude class A public: A(const char *nm)strcpy(name,nm); private: char name80; ; class B:public A public: B(const char *nm):A(nm) void PrintName( )const; void B:PrintName( ) const cout name: nameendl; void main( ) B b1( wang li ); b1.PrintName( ); ,cout name: nameendl;出錯(cuò) 原因: 私有成員在子類(lèi)中不能訪問(wèn),9,25.用下橫線標(biāo)出下面

9、程序 main 函數(shù)中的錯(cuò)誤所在行,并說(shuō)明錯(cuò)誤原因。 # include class Location private: int X,Y; public: void init(int initX,int initY); int sumXY( ); ; void Location:init(int initX,int initY) X=initX;Y=initY; int Location:sumXY( ) return X+Y; void main( ) Location A1; int x,y; A1.init(5,3); x=A1.X;y=A1.Y; coutx+y A1.sumXY( )

10、endl; ,x=A1.X; y=A1.Y;出錯(cuò) 原因: 私有成員不能被main函數(shù)訪問(wèn),10,四、完成程序題 ( 每小題 4 分,共 20 分 ),26.在下面橫線處填上適當(dāng)內(nèi)容,使該程序結(jié)果為: 12 和 88 # include template class Tany public: _; void pr( ) if (sizeof(int)= _ ) couty? x:y)y? y:x) dobj=12.0,88.0; dobj.pr( ); Tany iobj=12,88; iobj.pr( ); ,sizeof( T ),T x,y,11,27. 在下面的橫線處填上適當(dāng)內(nèi)容,使程序

11、完整。 # include # include class loc private: float x,y; public: loc(_ ) x=x1; y=y1; float getx( )return x; float gety( )return y; _ float dis(loc ,static,float x1, float y1,12,28. 在下面程序中的橫線處填上適當(dāng)內(nèi)容,使程序完整。 # include class vehicle protected: int speed; public: void setSpeed(int s)speed=s; _ getSpeedLevel

12、( )return speed/10; ; class car:public vehicle public: int getSpeedLevel( ) return speed/5; ; class truck:public vehicle public: int getSpeedLevel( )return speed/15; ; int maxSpeedLevel(vehicle _,vehicle _) if(v1.getSpeedLevel( )v2.getSpeedLevel( ) return 1; elsereturn 2; void main( ) truck t;car c;

13、 t.setSpeed(130);c.setSpeed(60); coutmaxSpeedLevel(t,c)endl; /此結(jié)果輸出為 2,virtual int, A(int i) a=i; void print( ) couta , ; private: int a; ; class B:public A public: B( ) b1=b2=0; B( _ ) b1=i;b2=0; B(int i,int j,int k): _ b1=j;b2=k; /使 a 的值為 i void print( ) A:print( );coutb1 , b2endl; private:int b1,

14、b2; ;,int i,A(i),14,30.根據(jù)注釋在空白處填寫(xiě)適當(dāng)內(nèi)容。 # include class Location private: int X,Y; public: void init(int initX,int initY) X=initX; Y=initY; int GetX( ) return X ; int GetY( ) return Y ; ; void main( ) Location A1;A1.init(20,90); _ / 定義一個(gè)指向 A1 的引用 rA1 _ /用 rA1 在屏幕上輸出對(duì)象 A1 的數(shù)據(jù)成員 X 和 Y 的值 ,Location ,cou

15、trA1.GetX(),rA1.GetY()endl;,15,五、程序分析題 (每小題 5 分,共 30 分 ),31. 給出下面程序的輸出結(jié)果。 # include class FunArray int *pa; / 指向一個(gè)數(shù)組空間 int size; / 數(shù)組元素個(gè)數(shù) public: FunArray(int a,int thesize):pa(a),size(thesize) int Size( ) return size; int ,執(zhí)行結(jié)果: 3,7,9,1,5,4,,16,32.給出下面程序的輸出結(jié)果。 # include template class Tclass T x,y;

16、 public: Tclass(T a,T b):x(a) y=b; Tclass(T a) y=(T)0,x=a; void pr( ) char c; c=(y=(T)0 ? + : - ); cout(T)0? y:-y)a(10.5,-5.8); a.pr( ); Tclassb(10); b.pr( ); ,執(zhí)行結(jié)果: 10.5-5.8i 10+0i,17,給出下面程序的輸出結(jié)果。 # include class Test private: static int val; int a; public: static int func( ) return val+; void sfun

17、c(Test ,執(zhí)行結(jié)果: Result1=200 Result2=201 Result3=125,18,34. 運(yùn)行下面的程序,寫(xiě)出當(dāng)輸入 25 , 60 時(shí)的輸出結(jié)果。 # include class A public: virtual void print( )cout class A. endl; ; class B:public A public: void print( ) ; class C:public B public: void print( )cout class C. endl; ; void show(A ,執(zhí)行結(jié)果: class A. class C.,19,35.

18、 寫(xiě)出輸出結(jié)果。 # include class A public: A( )a=0; A(int i) a=i; void Print( ) couta , ; int Geta( ) return a; private:int a; ; class B:public A public:B( ) b=0; B(int i,int j,int k):A(i),aa(j) b=k; void Print( ) A:Print( ); coutb , aa.Geta( )endl; private: int b; A aa; ; void main( ) B bb2; bb0=B(1,2,5); bb1=B(3,4,7); for(int i=0;i2;i+)bbi.Print( ); ,執(zhí)行結(jié)果: 1, 5, 2 3, 7, 4,20,36. 運(yùn)行下面的程序,寫(xiě)出輸出結(jié)果。 # include class Location int X,Y; public: void init(int=0,int=0); void valueX (int val) X=val; int valueX( ) return

溫馨提示

  • 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)論