2003年10月C++全國高等教育自學考試試卷-臨時分類-文檔在線_第1頁
2003年10月C++全國高等教育自學考試試卷-臨時分類-文檔在線_第2頁
2003年10月C++全國高等教育自學考試試卷-臨時分類-文檔在線_第3頁
2003年10月C++全國高等教育自學考試試卷-臨時分類-文檔在線_第4頁
2003年10月C++全國高等教育自學考試試卷-臨時分類-文檔在線_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Object

-

OrientedProgramming2003年10月全國高等教育自學考試試卷與參考答案2003年10月全國高等教育自學考試試卷與參考答案A.5.0+2.0和5.0+2C.5.0+2.0和5+2B.5.0+2.0和5+2.0D.5+2.0和5.0+2A.析構(gòu)函數(shù)C.其它成員函數(shù)B.構(gòu)造函數(shù)D.友元函數(shù)4.

類的指針成員初始化是通過函數(shù)完成,這個函數(shù)通常是

B(

)一、單項選擇題(共10小題,每小題2分)下列特性中,C與C++共有的是(D

)A.

繼承 B.

封裝 C.

多態(tài)性 D.

函數(shù)定義不能嵌套通常情況下,函數(shù)模板中的類型參數(shù)個數(shù)

不能

(A

)A.0

B.2

C.4

D.3在下列表達式中,運算符“

+

”的意義不相同的一對是C

(

)22003年10月全國高等教育自學考試試卷與參考答案要禁止修改指針p本身,又要禁止修改p所指向的數(shù)據(jù),這樣的指針應定義為(D

)const

char

*p=

ABCD

”;char

const

*p=

ABCD

”;char

*const

p=

ABCD

”;const

char

*

const

p=

ABCD

”;靜態(tài)成員函數(shù)沒有

(B

)A.

返回值 B.this

指針 C.

指針參數(shù)

D.

返回類型當一個類的某個函數(shù)被說明為virtual時,該函數(shù)在該類的所有派生類中(A

)都是虛函數(shù)只有被重新說明時才是虛函數(shù)只有被重新說明為virtual時才是虛函數(shù)都不是虛函數(shù)32003年10月全國高等教育自學考試試卷與參考答案A.枚舉C.數(shù)組B.類D.函數(shù)10.

所有在函數(shù)中定義的變量,都是

(

)A.全局變量C.靜態(tài)變量B.局部變量D.寄存器變量下面敘述

不正確

的是

(D

)派生類一般都用公有派生對基類成員的訪問必須是無二義性的賦值兼容規(guī)則也適用于多重繼承的組合基類的公有成員在派生類中仍然是公有的在C++中實現(xiàn)封裝是借助于(A

)B42003年10月全國高等教育自學考試試卷與參考答案而是修飾

指針。二、填空題(每小題2分,共20分)設函數(shù)max是由函數(shù)模板實現(xiàn)的,并且max(3.5,5)和

max(10,5)都是正確的函數(shù)調(diào)用,則模板具有_2_個類型參數(shù)。在單繼承和多繼承方式中,面向?qū)ο蟮某绦蛟O計應盡量使用

繼承。語句ifstream

datafile;datafile.open(“data.dat;的功能i可fs用tr一r一e個am語da句ta實fi現(xiàn)le,(這“個d語at句a.是dat”)

。將關鍵字const寫在函數(shù)頭之后,函數(shù)體之前,說明該函數(shù)是一個contshtis成員函數(shù)。此時const不是指定函數(shù)的返回值,52003年10月全國高等教育自學考試試卷與參考答案15.一個抽象類的派生類可以實例化的必要條件是實現(xiàn)了所有的整數(shù)的數(shù)組并由ip所指向,應使用語句虛函數(shù)。在

C++

中,虛函數(shù)幫助實現(xiàn)了類的

多態(tài)

性。通過

C++

語言中類的

繼承

,可以擴充和完善已有類以適應新的需求。為了在對象生存期結(jié)束時釋放其指針成員所指向的動態(tài)存儲空間,通常需要為該類定義析構(gòu)函數(shù)

。在聯(lián)合中,所有數(shù)據(jù)成員具有

相同

的地址,任一時刻只有

1

個數(shù)據(jù)成員有效。在已經(jīng)定義了整型指針ip后,為了得到一個包括10個ip=new

int[10];。62003年10月全國高等教育自學考試試卷與參考答案class

A{ int

a;public:A(int

aa):a=aa

{

}};22.下面的程序有一處錯誤,請用下橫線標出錯誤所在行并改正錯誤。#

include<iostream.h>class

Test{

public;static

int

x;

};int

x=20;//對類成員初始化void

main(){

cout<<Test::x;

}三、改錯題(每小題2分,共10分)21.下面的類定義有一處錯誤,請用下橫線標出錯誤所在行并改正錯誤。A(int

aa):a=aa{}出錯

改為:A(int

aa):a(aa){}int

x=20;出錯改為:int

Test::x=20;72003年10月全國高等教育自學考試試卷與參考答案23.下面的程序先把字符串“Look

out!”輸出到一個文件中,然后再從該文件輸入,并顯示在屏幕上,顯示效果為

Look

out!。程序中有一處錯誤,請用下橫線標出錯誤所在行,并給出更改意見。#

include<fstream.h>void

main(){ofstream

outf(

"c:\\tem.dat",ios::trunc);outf<<

"Look

out!"

;outf.close(

);ifstream

inf(

"c:\\tem.dat"

);char

k[20];inf>>k;cout<<k;inf.close(

);}inf>>k;只能讀出Look改為:inf.getline(k,20);82003年10月全國高等教育自學考試試卷與參考答案24.下面的程序類B的定義中有一處錯誤,請用下橫線標出錯誤所在行并說明錯誤原因。#

include<iostream.h>#

include<string.h>class

A{

public: A(const

char

*nm){strcpy(name,nm);}private:

char

name[80];

};class

B:public

A{ public:

B(const

char

*nm):A(nm){

}void

PrintName(

)const;};void

B::PrintName(

)

const{

cout<<

"name:

"

<<name<<endl;

}void

main(

){b1.PrintName(

);

}cout<<"name:"<<name<<endl;出錯B

b1("wang

li");原因:私有成員在子類中不能訪問92003年10月全國高等教育自學考試試卷與參考答案25.用下橫線標出下面程序main函數(shù)中的錯誤所在行,并說明錯誤原因。#

include<iostream.h>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;cout<<x+y<<

"

"

<<A1.sumXY(

)<<endl;

}x=A1.X;y=A1.Y;出錯原因:私有成員不能被main函數(shù)訪問102003年10月全國高等教育自學考試試卷與參考答案四、完成程序題(每小題4分,共20分)26.在下面橫線處填上適當內(nèi)容,使該程序結(jié)果為:12和88#include<iostream.h>template<class

T>class

Tany;void

pr(

))

cout<<(x>y?

x:y)<<endlelse cout<<(x>y?

y:x)<<endl;

}

};void

main(

){Tany<double>

dobj={12.0,88.0};dobj.pr(

);Tany<int>

iobj={12,88};iobj.pr(

);

}{ if

(sizeof(int)s=s==ii=zeof(

T

){

public:

T_T

x,y112003年10月全國高等教育自學考試試卷與參考答案return

sqrt(dx*dx+dy*dy);

}void

main(

){ loc

p1(3.5,4.5),p2(5.5,6.5);float

d=loc::dis(p1,p2);cout<<

"

The

distance

is

"

<<d;

}27.在下面的橫線處填上適當內(nèi)容,使程序完整。

#include<iostream.h>#

include<math.h>class

loc{ private:

float

x,y;public:

loc(

float

x1,

float

y1

)

{

x=x1;

y=y1;

}float

getx(

){return

x;}float

gety(

){return

y;}

static

float

dis(loc&,loc&);

};float

loc::dis(loc&a,loc&b){ float

dx=a.x-b.x; float

dy=a.y-b.y;122003年10月全國高等教育自學考試試卷與參考答案{ if(v1.getSpeedLevel(

)>v2.getSpeedLevel(

))

return

1;else return

2;

}void

main(

){ truck

t;car

c;

t.setSpeed(130);

c.setSpeed(60);cout<<maxSpeedLevel(t,c)<<endl;}//此結(jié)果輸出為228.在下面程序中的橫線處填上適當內(nèi)容,使程序完整。

#include<iostream.h>class

vehicle{

protected: int

speed;public:

void

setSpeed(int

s){speed=s;}_v_i_r_t_u_a_l_i_ngtetSpeedLevel(

){return

speed/10;}

};class

car:public

vehicle{ public:

int

getSpeedLevel(

)

{return

speed/5;}

};class

truck:public

vehicle{ public:

int

getSpeedLevel(

){return

speed/15;}

};&v1int

maxSpeedLevel(vehicle ,vehicle

&v2

)132003年10月全國高等教育自學考試試卷與參考答案private:int

b1,b2;

};29.在下面橫線處填上合適內(nèi)容,完成類B的定義。

#include<iostream.h>class

A{

public:A(

)

{a=0;}A(int

i)

{a=i;}void

print(

)

{cout<<a<<

"

,

"

;}private: int

a;

};class

B:public

A{

public:B(

)

{b1=b2=0;}B(

int

i

)

{b1=i;b2=0;}B(int

i,int

j,int

Ak()i:)

{b1=j;b2=k;}//使a的值為void

print(){

A::print(

);cout<<b1<<

"

,"

<<b2<<endl;}142003年10月全國高等教育自學考試試卷與參考答案30.根據(jù)注釋在空白處填寫適當內(nèi)容。

#include<iostream.h>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);//定義一個指向A1的引用rA1}Location

&rA1=A1;_c_c_o_o_u_u_t_t_<_<_<_<_r_r_A_A_1._._G_G_e_e_t_t_X_X_(_(_)_)_<_<_<_<_"_"_,_,_"_"_<_<_<_<_r_r_A_A_1_1_._._G_G_e_e_t_t_Y_Y(_(_)_)<_<_<_<_e_e_n_n_d_d_l_l;//用rA1在屏幕上輸出對象A1的數(shù)據(jù)成員X和Y的值152003年10月全國高等教育自學考試試卷與參考答案五、程序分析題(每小題5分,共30分)31.

給出下面程序的輸出結(jié)果。#

include<iostream.h>class

FunArray{int

*pa;//指向一個數(shù)組空間int

size;//數(shù)組元素個數(shù)public:FunArray(int

a[],int

thesize):pa(a),size(thesize){int

Size(

)

{return

size;}int

&

operator[](int

index){return

pa[index-1];}

};void

main(

){int

s[

]={3,7,2,1,5,4};FunArray

ma(s,sizeof(s)/sizeof(int));ma[3]=9;for(int

i=1;i<=ma.Size(

);i++)cout<<ma[i]<<

"

,"

;

}執(zhí)行結(jié)果:3,7,9,1,5,4,162003年10月全國高等教育自學考試試卷與參考答案32.給出下面程序的輸出結(jié)果。

#include<iostream.h>template<class

T>class

Tclass{T

x,y;public:Tclass(T

a,T

b):x(a){y=b;}{y=(T)0,x=a;}Tclass(T

a)void

pr(

){

char

c;執(zhí)行結(jié)果:10.5-5.8i10+0ic=(y>=(T)0

?

"+"

:

"-"

);cout<<x<<c<<(y>(T)0?

y:-y)<<

"i"

<<endl;

}

};void

main(

){ Tclass<double>a(10.5,-5.8); a.pr(

);Tclass<int>b(10); b.pr(

);

}172003年10月全國高等教育自學考試試卷與參考答案33.給出下面程序的輸出結(jié)果。

#include<iostream.h>33.class

Test33.{

private:33. static

int

val;33. int

a;33.

public:33.static

int

func(

)

{ return

val++;

}33.void

sfunc(Test

&r)33.{ r.a=125;cout<<

"

Result3=

"

<<r.a;

}};33.int

Test::val=200;33.void

main(

)33.{ cout<<

"

Result1=

"

<<Test::func(

)<<endl;33. Test

a;33. cout<<

"

Result2=

"

<<a.func(

);33. a.sfunc(a);

}執(zhí)行結(jié)果:Result1=200Result2=201Result3=125182003年10月全國高等教育自學考試試卷與參考答案34.運行下面的程序,寫出當輸入25,60時的輸出結(jié)果。

#include<iostream.h>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&a)

{

a.print(

);

}void

main(

){ A

a;

B

b;

C

c;show(a);

show(b); show(c);

}執(zhí)行結(jié)果:class

A.class

C.192003年10月全國高等教育自學考試試卷與參考答案35.寫出輸出結(jié)果。#

include<iostream.h>class

A{

public: A(

){a=0;}A(int

i)

{a=i;}void

Print(

)

{cout<<a<<

"

,

"

;}int

Geta(

) {return

a;}執(zhí)行結(jié)果:1,5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論