四、完成程序题(本大题共5小题,每小题4分,共20分)。根据题目要求,完成程序填空。
26.在下面程序横线处填上适当内容,以使该程序执行结果为:
12
88 # include
template
class Tany{
public:
① ;
void pr(){
if(sizeof(int)==② )
count<<(x>y? x:y)< else
cout<<(x>y? y:x)< }
};
void main( ){
Tanydobj={12.0,88.0};
dobj.pr( );
Tany iobj={12,88};
iobj.pr( );
}
27.在下面的横线处填上适当内容,使程序完整。
# 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&,loc&);
};
float loc::dis(loc&a,loc&b)
{
flost dx=a.x-b.x;
flost dy=a.y-b.y;
return sqrt(dx*dx+dy*dy);
}
void main( )
{
loc pl(3.5,4.5),p2(5.5,6.5);
float d=loc::dis(p1,p2);
cout<<“The distance is”< }
28.在下面程序中的横线处填上适当内容,使程序完整。
# include
class vehicle
{
protected:
int size;
int speed;
public;
void setSpeed(int s){speed=s;}
① getSpeedLevel( ){return speed/10;}
};
class car:public vehicle
{
public:
int getSpeedLeve( ){return speed/5;}
};
class truck:public vehicle
{
public:
int getspeedLevel( ){return speed/15;}
};
int maxSpeedLevel(vehicle ② ,vehicle ③ )
{
if(v1.getSpeedLevel( )>v2.getSpeedLevel( ))
return 1;
else
reutrn 2;
}
void main()
{
turck t;
car c;
t.setSpeed(130);
c.setSpeed(60);
cout< }
29.在下面横线处填上合适内容,完成类B的定义。
# include
class A{
public:A( ){a=0;}
A(int i){a=i;}
void print( ){cout< 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( );cout< private:int b1,b2;
}
30.根据注释在空白处填写适当内容。
class Location{
private:
int X,Y;
public:
void init(int initX,int initY);
int GetX( );
int GetY( );
};
void Location::init(int initX,int initY)
{
X=initX;
Y=initY;
}
int Location::GetX( )
{
reutrn X;
}
int Location::GetY( )
{
reutrn Y;
}
# include
void main( )
{
Location A1;A1.init(20,90);
① //定义一个指向A1的引用rA1 ② //用rA1在屏幕上输出对象A1的数据成员X和Y的值
}
五、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。
31.写出下面程序的输出结果:
# include
class FunArray{
来源:91 考试网 int *pa; //指向一个数组空间
int size; //数组元素个数
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< }
32.写出下面程序的输出结果:
# include
template
class Tclass{
T x,y;
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)<<″i″< }
};
void main( ){
Tclassa(10.5,-5.8);
a.pr( );
Tclassb(10);
b.pr( );
}
33.写出下面程序的输出结果:
# include
class Test{
private:
static int val;
int a;
public;
static int func( );
void sfunc(Test &r);
};
int Test::val=200;
int Test::func( )
{
return val++;
}
void Test::sfunc(Test &r)
{
r.a=125;
cout<<″ Result3=″< }
void main( )
{
cout<<”Result1=”< Test a;
cout<<”Result2=”< a.sfunc(a);
}
34.写出下面程序的输出结果:
# include
class A
{
public;
virtual void print( ){cout<<”This is class A printing.”< };
class B:public A
{
public:
void print( ){ }
};
class C:public B
{
public:
void print( ){cout<<“This is class C printing.”< };
void show(A&a)
{
a.print( );
}
void main( )
{
A a;
B b;
C c;
show(a);
show(b);
show(c);
}
35.写出下面程序的输出结果:
# include
class A{
public: A( ){a=0;}
A(int i){a=i;}
void Print( ){cout< int Geta( ){return a;}
private:int a;
};
class B:public A{
public:B( ){b=0;}
B(int i,int j,int k);
void Print( );
private:int b;
A aa;
};
B::B(int i,int j,int k):A(i),aa(j){b=k;}
void B::Print( ){
A::Print( );
cout< }
void main( ){
B bb[2];
bb[0]=B(1,2,5);
bb[1]=B(3,4,7);
for(int i=0;i<2;i++)
bb[i].Print( );
}
36.写出下面程序的输出结果:
# include
class Location{
int X,Y;
public:
void init(int=0,int=0);
void valueX(int val){X=val;}
int valueX( ){return X;}
void valueY(int val){Y=val;}
int valueY( ){return Y;}
};
void Location::init(int initX,int initY)
{
X=initX;
Y=initY;
}
void main( )
{
Location A,B;
A.init( );
cout< A.valueX(5);
cout< B.init(6,2);
B.valueY(4);
cout< }