《面向对象程序设计》编程题复习及其答案.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计》编程题复习及其答案.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象程序设计编程题复习及其答案 面向对象程序设计复习题 1、(C+的输入输出)天猫优惠券,我就要券 定义一个函数max,实现输入两个数a、b,比较并从小到大输出。 2、(函数的重载) (1)定义一个带两个参数的函数max,输出最大值。 (2)再定义一个带三个参数的函数max,输出最大值。 (3)主函数测试之。 3、(有默认参数的函数) 将题2用带默认参数的函数实现。 4、(变量的引用) (1)定义一个swap1函数,以普通形参传入两个变量a、b,互换a、b的值。 (2)定义一个swap2函数,以指针形参传入两个变量a、b,互换a、b的值。 (3)定义一个swap3函数,以引用形参输入两个变
2、量a、b,互换a、b的值。 (4)主函数定义两个变量x、y传入三个函数,观察x、y值前后的变化。 5、(类的定义) 定义一个student类,数据成员包括:学号num,姓名name,年龄age,性别sex,成员函数包括: (1) set函数,键盘输入学号,姓名,年龄,性别 (2) display函数,输出学生信息。 6、(构造函数和析构函数) 定义一个student类,数据成员包括:学号num,姓名name,年龄age,性别sex,成员函数包括: (1)构造函数,初始化学号,姓名,年龄,性别 (2)display函数,输出学生信息。 (3)析构函数,输出学生学号。 (4)主函数定义多个对象,并
3、注意构造函数和析构函数的调用顺序。 7、(构造函数的重载) 在题6基础上增加一个默认构造函数,实现构造函数的重载 8、将题6用带默认参数的构造函数实现。 9、(对象数组和对象的动态建立及释放) 在题8基础上,实现如下主函数: (1)在主函数中定义一个包含三个学生的数组,并初始化之。 (2)在主函数中定义一个student类指针p并用new运算符分配动态内存 (3)用delete删除p指向的动态内存。 (4)观察构造函数和析构函数的调用。 10、(复制构造函数) 在题8基础上新增加一个复制构造函数,并主函数新增复制构造对象。 11、(静态成员) 定义一个student类,数据成员包括:学号num
4、,姓名name,成绩score,累加总分sum,累计人数count。成员函数包括:构造函数统计人数count; (1)非静态成员total函数,求sum。 (2)静态成员average函数,求平均成绩。 (3)主函数定义包含3个学生的数组,求三个学生的平均成绩。 12、(友元函数) 定义一个Time类,私有数据成员包括:时hour、分minute、秒second 成员函数:构造函数Time() 13、(运算符重载) (1)定义一个复数类,实现对“+”,f; coutab; if(ab) coutb) coutb & ac) coutc) coutb & ac) coutc) coutnumna
5、meagesex; void display() coutnumnameagesex; */ student(int num,string name,int a,int s) coutnum=num; this-name=name; age=a; sex=s; 天猫优惠券,我就要券 void display() coutnumnameagesex; */ student() coutnum=num; this-name=name; age=a; sex=s; void display() coutnum=num; this-name=name; age=a; sex=s; void displ
6、ay() coutnum=num; this-name=name; age=a; sex=s; void display() coutdisplay(); coutnum=num; this-name=name; age=a; sex=s; student(student& s) num=s.num; name= ; age=s.age; sex=s.sex; void display() coutnum=num; this-name=name; score=s; count+; void display() cout学号:numendl; cout姓名:nameendl; cout成绩:sc
7、oreendl; void total(); static float average(); ; float student:sum=0.0; int student:count=0; void student:total() sum+=score; float student:average() return sum/count; int main() student s3=student(1001,张三,87),student(1002,李四),student(1003,王五,90); for (int i=0;i3;i+) si.total(); cout平均成绩:student:ave
8、rage()endl; return 0; 12、 #include / #include / using namespace std; class Time private: int hour; int minute; int second; public: Time(int h=12,int m=0,int s=0) hour=h; minute=m; second=s; friend void display(Time&); ; void display(Time& t) coutt.hour时t.minute分t.second秒endl; int main() Time t,t1(13,12,22); display(t); display(t1); return 0; 13、(1) /方法1:多次重载+ #include / #include / using namespace std; class Complex