c++面向对象程序设计试题和答案(经典题目) 下载本文

精品

(C)无形参,也不可重载 (D)函数体中必须有 delete 语句 19、对于在类中定义的静态数据成员,下面正确的说法是( ) A.该类的每个对象中都有一个静态数据成员 B.对象创建时产生 C.在类外进行初始化

D.既可以在类外初始化,也可以在类内初始化

20、C++中声明常量的关键字是( )。

A. const B. extern C. public D. enum

三、 改错题(每处2分,共6分)

1、 使用VC6打开考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但

该程序运行有问题,请改正main函数中的错误,使程序的输出结果为: member=0 member=5 menber=10

源程序文件main.cpp清单如下: #include class MyClass {

public:

MyClass(int i){member=i;}

void SetMember(int m){member=m;} int GetMember()const{return menber;}

void print()cont{cout<<\ private:

int member; };

voed main()

感谢下载载

{

MyClass obj1; //更正_____________________________ obj1.print(); MyClass obj2(3);

obj1.member=5; //更正__________________________ MyClass.SetMember(10); //更正_______________________ obj1.print(); obj2.print(); }

四、 写出下列程序的执行结果(每小题5分,共20分) 1、

#include class Sample { int n; public:

Sample(int i){n=i;}

friend int add(Sample &s1,Sample &s2); };

int add(Sample &s1,Sample &s2) {

return s1.n+s2.n; }

void main() {

Sample s1(10),s2(20); cout<

执行结果是: 2、

#include int add(int x,int y) {

——第6页——

精品

return x+y+1; }

double add(double x,double y) {

return x+y-1; }

void main() {

int a=2,b=4; double c=2.6,d=7.4;

cout<

执行结果是: 3、

#include class A { public: int n; };

class B:virtual public A{}; class C:virtual public A{}; class D:public B,public C {

int getn(){return B::n;} };

void main() { D d; d.B::n=10; d.C::n=20;

cout<

感谢下载载

}

执行结果是: 4、

#include

class myclass { int a,b; static int s; public:

myclass(int x,int y) {a=x;b=y;s++;} void print() {cout<

int myclass::s=0; void main() {

myclass m1(1,2),m2(4,5),m3(6,7); m1.print();

——第8页——