文档详情

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

发布:2016-07-30约1.12万字共17页下载文档
文本预览下载声明
OOP技术:习题 第1章 习  题 1. 什么是面向对象技术? 2. 面向对象与面向过程程序设计有什么不同? 3. 面向对象技术有哪些优点? 4. 面向对象技术中的封装性有何优缺点?如何克服这些缺点? 5. 为什么要应用继承机制? 6. C++对多态性的支持体现在哪些方面? 7. 目前常用的面向对象程序设计语言有何异同? 8. 什么是.NET? 第2章 习  题 1. 写出下面程序的运行结果。 #include iostream.h void main() { int* a; int* p=a; int b=10; p=b; cout*aendl; cout*pendl; } 2. 写出下面程序的运行结果。 #include iostream.h 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;i10;i++) { sum+=*iptr; iptr++; } coutsum issumendl; } 3. 写出下面程序的运行结果。 #include iostream.h 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; coutadd3(a,b)endl; coutadd3(10)endl; } 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;┄;Fn=Fn-1+Fn-2。 12. 编写重载函数max,分别返回字符数组、int数组、long数组、float数组、double数组和字符串数组的最大元素。 第3章 习  题 1. 类定义由哪些部分组成?在定义和使用时要注意什么问题? 2. 说明一个类的公有成员、保护成员和私有成员的区别。 3. 何时执行类构造函数及析构函数?若该对象作为类的成员,何时执行其构造函数和析构函数? 4. 创建一个Employee类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码。其功能有修改姓名、显示数据信息。要求其功能函数的原型放在类定义中,构造函数初始化每个成员,显示信息函数要求把对象中的完整信息打印出来。其中数据成员为保护的,函数为公有的。 5. 修改第4题中的类,将姓名构成Name类,其名和姓在该类中为保护数据成员,其构造函数为接受一个指向完整姓名字符串的指针。该类可显示姓名。然后将Employee类中的姓名成员(字符数组)修改为Name类对象。 6. 改正下列程序中的错误,并说明理由。 程序1: include iostrea.h; class Student { public void Student() void display() { cinnumber:numberendl coutname:nameendl; coutscore:scoreendl; private: int number,char* name,float score; } 程序2: include iostream.h; class example() { private: int date; static int count public; void example(int y=10)(date=y;) ( coutdate=date; return count; ) } 7. 写出下面程序的运行结果。注意:构造函数和析构函数的执行次序、构造函数的初始化表#include iostream.h class Ex { public: Ex(int x,char c=c); ~Ex() { coutBendl; } void o
显示全部
相似文档