OOP技术:面向对象技术1-10章习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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) {