(31)有如下程序:
#include
using namespace std;
class A
{
public;
A(int i ){x= i ;}
Void sispa(){cout<
int x ;
};
class B;publicA
{
public;
B(int i):A(i +10) {x =i ;}
voud dispb() {dispa();cout<
Int x;
};
int main()
{
B b(2);
b.dispb()
retum 0:
}
运行时输出的结果是
A)10,2
B)12,10
C)12,2
D)2,2
(32)虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。有如下程序:
#include
using namespace std;
class Base
{
public:
virtual void f(){cout<<”f0+”;}
void g() {cout<<”g0+”;}
};
class Derived:public Base
{
public:
void f() {cout<<”f+”;}
void g() {cout<<”g+”;}
};
int main()
{
Derived d;
Base*p=&d;
p->f(); p->g();
return 0:
}
运行时输出的结果是
A)f+g+
B)f0+g+
C)f+g0+
D)f0+g0+
(33)下面程序中对一维坐标点类Point进行运算符重载
#include
using namespace std;
class point {
public:
point (int vaI) {x=val;}
point& operator++(){x++;retum*this;}
print operator++(int) {point old=*this,++(*this);retum old;}
int GetX() const {retum x;}
private:
int x;
};
int main()
{
point a(10);
cout<<(++a).GetX();
cout< retum();
}
编译和运行情况是
A)运行时输出1011
B)运行时输出1111
C)运行时输出1112
D)编译有错
(34)有如下程序:
#include
using namespace std;
int main()
{
char str[100],*p;
cout<<”please input a string:”;
cin>>str;
p=str;
for(int i =0;*p!=”\0”;p++, i ++);
cout<< i <
}
运行这个程序时,若输入字符串为
abcdefg abcd
则输出结果是
A)7
B)12
C)13
D)100
(35)有如下程序::
#include
using namespace std:
class Sample
{
friend long fun (Sample s);
public:
Sample (long a ){x=a;}
Private:
long x;
};
long fun (Sample s)
{
if(s.x<2)retum 1;
retum s.x*fun(Sample(s.x-a));
}
int main()
{
int sum=0
for(int i =0; i <6; i ++) { sum+=fun(Sample( i );) }
cout<
}
运行时输出的结果是
A)120
B)16
C)154
D)34
责任编辑:cyth