OOP技术:面向对象技术1-10章习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

OOP技术:习题

第1章习题

1. 什么是面向对象技术?

2. 面向对象与面向过程程序设计有什么不同?

3. 面向对象技术有哪些优点?

4. 面向对象技术中的封装性有何优缺点?如何克服这些缺点?

5. 为什么要应用继承机制?

6. C++对多态性的支持体现在哪些方面?

7. 目前常用的面向对象程序设计语言有何异同?

8. 什么是.NET?

第2章习题

1. 写出下面程序的运行结果。

#include

void main()

{

int* a;

int* &p=a;

int b=10;

p=&b;

cout<<*a<

cout<<*p<

}

2. 写出下面程序的运行结果。

#include

void main()

{

int iarray[10]={0,2,4,6,8,10,12,14,16,18};

int sum=0;

int* iptr=iarray;

for(int i=0;i<10;i++)

{

sum+=*iptr;

iptr++;

}

cout<<"sum is"<

}

3. 写出下面程序的运行结果。

#include

int m=8;

int add3(int x,int y=7,int z=m)

{ return x+y+z; }

void main()

{

int a=1,b=2,c=3;

cout<

cout<

}

4. 编程求所有的水仙花数。如果一个三位数的个位数、十位数和百位数的立方和等于该数本身,则称该数为水仙花数。

5. 编程求1000以内所有素数。

6. 编写一个可以打印任何一年日历的程序。

7. 在10000以内验证哥德巴赫猜想之“1+1”命题:任意大的偶数,都可以表示为两个素数之和。

8. 编写一个函数,用冒泡法对输入的十个整数从小到大排序。

9. 编写一个函数,输入一个十六进制数,输出相应的十进制数。

10. 将给定的一个二维数组(3×3)转置,即行列互换。

11. 用非递归的函数调用方式求fibonaci数列第n项。fibonaci数列形如:

0,1,1,2,3,5,8,13,┄

其通项为:F0=0;F1=1;┄;F n=F n-1+F n-2。

12. 编写重载函数max,分别返回字符数组、int数组、long数组、float数组、double 数组和字符串数组的最大元素。

第3章习题

1. 类定义由哪些部分组成?在定义和使用时要注意什么问题?

2. 说明一个类的公有成员、保护成员和私有成员的区别。

3. 何时执行类构造函数及析构函数?若该对象作为类的成员,何时执行其构造函数和析构函数?

4. 创建一个Employee类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码。其功能有修改姓名、显示数据信息。要求其功能函数的原型放在类定义中,构造函数初始化每个成员,显示信息函数要求把对象中的完整信息打印出来。其中数据成员为保护的,函数为公有的。

5. 修改第4题中的类,将姓名构成Name类,其名和姓在该类中为保护数据成员,其构造函数为接受一个指向完整姓名字符串的指针。该类可显示姓名。然后将Employee类中的姓名成员(字符数组)修改为Name类对象。

6. 改正下列程序中的错误,并说明理由。

程序1:

include ;

class Student

{

public

void Student()

void display()

{

cin<<'number:'<

cout<

cout<

private:

int number,char* name,float score;

}

程序2:

include ;

class example()

{

private:

int date;

static int count

public;

void example(int y=10)(date=y;)

(

cout<<"date="<

return count;

)

}

7. 写出下面程序的运行结果。注意:构造函数和析构函数的执行次序、构造函数的初始化表。

#include

class Ex

{

public:

Ex(int x,char c='c');

~Ex()

{

cout<<'B'<

}

void outdata(void)

{

cout<

}

private:

int da;

char ch;

};

void main()

{

Ex x(3,'a'),y(1);

Ex z[2]={Ex(10,'a'),Ex(1,'d')};

x.outdata();

y.outdata();

z[0].outdata();

}

Ex::Ex(int x,char c):da(x),ch(c) {

cout<<'A'<

}

8. 写出下面程序的运行结果。

#include

#include

#include

class Ex

{

public:

Ex(const char* s)

{

len=strlen(s);

p=new char[len+1];

strcpy(p,s);

}

Ex()

{

p=new char[8];

cout<<"****"<

}

Ex(const Ex& st)

{

相关文档
最新文档