简单面试题

三、试编写求两个数中最小值的函数模板。(分)

四、输入一字符串,去掉当中的重复字符。如字符串“ABADB”, 去掉重复字符后的字符串应为“ABD”。(分)

五、求下列分数序列的前15项之和。(分)

六、下面是一个利用重载运算符实现复数加和乘的类。在该类中复数加运算的实现代码已完成,但复数乘运算还未完成,试在类体外完成之。(分)

class complex
{
public:
complex (double r=0,double i=0) { real=r; imag=i;}
complex operator + (const complex & c)
{ return complex(real+c.real, imag+c.imag); }
complex operator * (const complex & c);
private:
double real, imag;
};

七、找出下列程序中的语法错误,并注明出错类型。(分)
class A
{ virtual A( ){ };
};
class B: A
{ };
int add(int x, int y, int z=10)
{ return x+y+z; }
int add(int x, int y)
{ return x+y; }
void main( )
{ int x;
const int z=5;
int &y=x+1;
z=x;
x=&z;
add(1, 2);
if(x==1) continue;
x = new int[5];
return 1;
}

八、分析下列程序,并回答后面的问题。(分)
程序内容如下:
#include <iostream.h>
class A
{
public:
A(int i=0, int j=0){ a1=i; a2=j;}
virtual void Print( )
{
cout<<a1+a2<<endl;
}
protected:
int a1,a2;
};

class B: public A
{
public:
B(int i=0, int j=0): A(i,j){}
void Print()
{
cout<<a1-a2<<endl;
}
};

class C: public A
{
public:
C(int i=0, int j=0): A(i,j){}
void Print()
{
cout<<a1*a2<<endl;
}
};

void main()
{ int i=10, j=8;
A a(i, j);
B b(i, j);
C c(i, j);
A *m[3]={&c, &b, &a};
for(int n=0; n<3; n++) m[n]->Print();
A &ra=c;
ra.Print();
A aa=c;
aa.Print();
}

请回答下列问题:
(1)执行该程序后,输出结果是什么?
(2)该程序中哪些语句采用了动态联编?
(3)去掉virtual void Print( )中的关键字virtual后,该程序的输出结果是什么?

九、分析下列程序,并回答后面的问题。(分)
程序内容如下:
#include <iostream.h>
class A
{
public:
A(int i){
a=i;
cout<<”a=”<<a<<endl;
}
~A(){ cout<<”A’s destructor “<<a<<endl; }
int a;
};
class B: virtual public A
{
public:
B(int i, int j): A(i) { cout<<”B:”<<j<<endl; }
};

class C: virtual public A
{
public:
C(int i, int j): A(i)
{ cout<<”C:”<<i+j<<endl; }
};
class D: public B, public C
{
public:
D(int k1, int k2, int k3, int k4): B(k1,k2), C(k4,k3), A(k1)
{
cout<<”D:”<<k4<<endl;
}
};
void main()
{ D d(1,2,3,4);
A a(5);
a=A(6);
cout<<”a.a=”<<a.a<<endl;
cout<<”d.a=”<<d.a<<endl;
}

请回答下列问题:
(1)执行该程序后,输出结果是什么?
(2)去掉class B: virtual public A 和class C: virtual public A中的关键字virtual后,该程序的哪个语句的执行会出现二义性?
(3)将class D: public B, public C修改成class D: public C, public B后,输出结果是否有变化?
(4)将B(k1,k2), C(k4,k3), A(k1) 修改成C(k4,k3), B(k1,k2), A(k1)后,输出结果是否有变化

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值