面向对象程序设计复习题

更新时间:2024-01-06 18:47:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

面向对象程序设计复习题

概念填空题

1.运算符 能够用来访问与局部变量同名的全局变量。 2.运算符 动态分配一个对象。

3.类的 成员只能被该类的成员函数或友元函数访问。 4.类成员的默认访问模式是 的。

5.类的 数据成员是该类的所有对象共享的信息。 6.关键字 指定了不可修改的对象或变量。

7.要在类的对象上使用运算符,除了运算符 和 外,其它的必须都要被重载。

8.重载不能改变原运算符的 、 、 和对内部类型对象的原有含义。

9. 类的对象可作为 类的对象处理。

10.友元函数中可以直接访问类的 和 成员。 1l.公有成员函数的集合常称为类的 函数。私有成员函数的集合常称为类的 函数。

12.为了访问某个类的私有数据成员,必须在该类中声明该类的 。 13. 提供了一种描述通用类的方法。

14.运算new分配的内存要用运算符 回收。 15.参数 表示重载后缀 ++ 运算符函数。

16.当用受保护的继承从基类派生一个类时,基类的公有成员成为派生类的 的成员,基类的受保护成员成为派生类的 成员。

17.在C++中,关键字 、 和 用来建立新的数据类型。

18. 限定符用来声明只读变量。

19.函数 能够定义一个在不同数据类型基础上完成同一任务的函数。 20.指向基类对象的指针可以指向其 派生类的对象,但是不允许指向其 派生类的对象。 答案:

1:: 2 new 3私有和保护 4私有 5静态

6const 7=& 8 优先级 结合性 操作数个数 9派生类 基类 10 私有 受保护 11 接口 工具 12 友元 13 类模板

14 delete 15 int 16受保护 受保护 17class struct union 18 const 19模板 20公有 私有和保护 阅读程序写结果

1. #include

void main() {

int a(6),b(8),c; c=(a>b?++a:b-=2);

cout<

cout<

word文档 可自由复制编辑

}

输出结果:

答案:输出结果: 6,6,6 6,6,0

2. #include

void main() {

int i,j;

for(i=11; i<=20 ; i+=2) {

for(j=2;j

cout<

cout<

输出结果:

答案:12 14 15 16

3.#include #include int f(int p); void main() {

int a[]={1,2,3,4,5}; for(int i=0;i<5;i++) cout<

int f(int p) {

static int s=1; s*=p; return s; }

输出结果: 答案:

1 2 6 24 120

4.#include

word文档 可自由复制编辑

18

int f(int *p); void main() {

int a[]={1,2,3,4,5} for(int i=0;i<4;i++)

cout<

int f(int *p) {

static int s=0; s+=*p;

return s; }

输出结果: 答案:

1 3 6 10 15 4.

#include void main() {

int a[5],x,i=0; do {

cin>>x;

if(x%2==0) { a[i]=x; i++; }

}while(i<5); for(i=0;i<5;i++) cout<

输入:

1 6 5 8 2 0 7 10 输出结果:

答案:6 8 2 0 10

5. #include class myclass {

word文档 可自由复制编辑

private: int a,b; static int s; public:

myclass(int i, int j) {

a=i; b=j;

cout<<\ } ~myclass() {

cout<<\ }

void sum()

{ s+=a*b; } void print() {

cout<

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

myclass *a1, *a2; a1=new myclass(1,1); a2=new myclass(10,20); (*a1).sum(); (*a2).sum(); a1->print(); a2->print(); delete a1; delete a2; }

输出结果: 答案: Constructor. Constructor. 1,1 sum=201 10,20 sum=201 Destructor. Destructor. 6.

#include

word文档 可自由复制编辑

void main() { int a,b; for(a=1,b=1;b<=10;b++) { if(a>=10) break; if(a==1) { a+=3; continue; } a-=3; } cout<<\}

输出结果:

答案:

a=1b=11

7. #include class A {

private: int a,b; public:

A(int i, int j)

{ a=i; b=j; } void move(int m,int n) { a+=m; b+=n; }

void show() {

cout<<\ } };

class B: public A {

private: int x,y; public:

B(int i, int j,int k,int l):A(i,j)

word文档 可自由复制编辑

{ x=k; y=l; } void show()

{ cout<

void main() {

A e(10,20); e.show ();

B b(30,40,50,60); b.fun (); b.show(); b.f1(); }

输出结果: 答案: (10,20) 50,60 (60,90)

8. #include class B{ private: int Y; public:

B(int y=0) { Y=y; cout<<″B(″<

class D: public B{ private: int Z; public:

D (int y, int z):B(y) { Z=z;

cout<<″D(″<

}

~D() { cout<<″~D()\\n″; } void print() {

B∶∶print(); cout <

word文档 可自由复制编辑

}

void main() { D d(11,22);

d.print(); }

输出结果: 答案: B(11) D(11,22) 11 2 ~D() ~B() 9.

#include #include void main() { int i,j,k; for(i=1;i<=3;i++) //控制输出行 { for(j=1; j<=6-i; j++) //每行前的空格 cout<<\ \ //输出四个空格 for(k=1;k<=i;k++) cout<0 ;k--) cout<

输出结果:

答案:

1 1 2 1 1 2 3 2 1

10. #include class A {

private:

double X,Y; public:

A(double xx=0, double yy=0) { X=xx; Y=yy;

word文档 可自由复制编辑

cout<<″构造函数被调用(″<

A(A &p) { X=p.X; Y=p.Y; }

}; A f()

{ A a(1,2);

return a; }

void main()

{ A a(4,5); A b(a);

b = f(); }

输出结果: 答案:

构造函数被调用(4,5) 构造函数被调用(1,2)

11. #include class Areaclass {

public: Areaclass(double x=0,double y=0) { height=x; width=y; }

protected: double height; double width; };

class Box: public Areaclass {

public: Box(double h,double w):Areaclass (h,w){ } double Area(); };

class Triangle:public Areaclass {

public: Triangle(double h,double w):Areaclass(h,w){ } double Area( ); };

word文档 可自由复制编辑

double Box::Area(){ return height*width; }

double Triangle::Area(){ return width *height *0.5; } void main() {

Box obj1(2.5,4.0); Triangle obj2(4.0,3.5);

cout<<\ cout<<\}

输出结果:

答案: Box=10 Triangle=7

12. #include void main()

{ int a[9]={1,2,3,4,5,6,7,8,9};

for(int i=0; i<9; i++) {

cout << setw(4) << a[i]; if(i%3==2)

cout<

} }

输出结果: 答案: 1 2 3 4 5 6 7 8 9

13. #include template void print(T a[],int n ) { for(int i=0; i

{ cout<

if (i%5==4) cout<

}

cout<

void main() {

int a[]={1, 2, 3, 4, 5, 6, 7}; double b[4]={8, 9, 10, 11 };

word文档 可自由复制编辑

print(a,sizeof(a)/sizeof(int)); print(b,4);

}

输出结果: 答案:

1 2 3 4 5 6 7

8 9 10 11

14. #include class A {

private:

static int n; int X; public:

A(int x=0) { X=x; n++; } ~A() { n-- ; }

static int GetNum(){ return n; } void print(); };

void A∶∶print() { cout << ″n=″ << n << ″, X=″int A∶∶n = 0; void main()

{ A *p=new A(12);

p->print(); A a(34); a.print(); delete p;

cout << ″n=″ << A::GetNum() << endl; }

输出结果: 答案: n=1,X=12 n=2,X=34 n=1

15. #include void main(void) { int n=6, k;

cout << n << \for (k=2; k < n; k++)

if (n % k == 0) cout << k << \

word文档 可自由复制编辑

<< X<< endl; }

本文来源:https://www.bwwdw.com/article/56gx.html

Top