华东师大C++期中课堂练习(附答).doc_第1页
华东师大C++期中课堂练习(附答).doc_第2页
华东师大C++期中课堂练习(附答).doc_第3页
华东师大C++期中课堂练习(附答).doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+面向对象程序设计课程练习一分析下列程序,写出程序执行的结果并作简单解析。51 . #include using namespace std; Class date Public: int year; int month; int day; date(int y,int m,int d) year=y; month=m; day=d; ; void displaydate(void)coutyear”年”month”月”day”日”endl; ; int main(void) date d5= date(2005,1,8), date(2005,2,8), date(2005,3,8), date(2005,4,8), date(2005,5,8); int i; for(i=0; i5;i+) di.displaydate(); Return 0; 答:2005年1月8日 2005年2月8日 2005年3月8日 2005年4月8日 2005年5月8日2. #includeusing namespace std; class A public: A() cout”A”; A()cout”A”; ; class B A a; Public: B( )cout”B”; B()cout”B”; ; int main() B b; return 0; 答:ABBA 3. #includeusing namespace std;class pumpkin public: pumpkin() +count; pumpkin() -count; static void total_count() coutcountpumpkin(s) endl; private: static int count;int pumpkin:count=0;int main() pumpkin p110; pumpkin:total_count(); return 0; 1 0pumpkin(s) 4. #includeusing namespace std;class base public: void show() coutclass base show() is called.n;class derived:public base public: void show() coutclass derived show() is called.n;int main() base demo1; derived demo2; demo1.show(); demo2.show(); demo2.base:show(); return 0; 答:class base show() is called.class derived show() is called. class base show() is called. 5. #includeusing namespace std;class base public: base() coutconstructing base classendl; base() coutdestructing base classendl; ;class subs:public base public: subs() coutconstructing sub classendl; -subs() coutdestructing sub classendl; ; int main() subs s; return 0; 答:constructing base class constructing sub class destructing sub class destrcuting base class 6. #includeusing namespace std;class A public: int n; ;class B:virtual public A; class C:virtual public A;class D:public B,public C int getn() return B:n; ;int main() D d; d.B:n=10; d.C:n=20; coutd.B:n,d.C:nendl; return 0; 答:20,20 二程序设计与程序填空1.编写程序,用引用作为函数参数来实现两个整数交换。答:#include using namespace std;int main()void swap(int &,int &); int i=3,j=5; swap(i,j); couti=i j=jendl; return 0;void swap(int &a,int &b)int temp; temp=a; a=b; b=temp;2. 建立一个对象数组,内放5个学生的数据(学号、成绩),用指针指向数组首元素,输出第1,3,5个学生的数据。 答:题解与上机指导P29 第4题。3完善下列程序,程序要求:将运算符“+”重载为适用于复数加法,重载函数不作为成员函数,而放在类外,作为Complex类的友元函数。#include using namespace std;class Complex public: Complex()real=0;imag=0; Complex(double r)real=r;imag=0; void display(); private: double real; double imag; ; void Complex:display()cout(real,imagi)endl;int main()Complex c1(3,4),c2(5,-10),c3; c3=c1+c2; coutc1=; c1.display(); coutc2=; c2.display(); coutc1+c2=; c3.display(); return 0;答: Complex(double r,double i)real=r;imag=i; friend Complex operator+ (Complex &c1,Complex &c2);Complex operator+ (Complex &c1,Complex &c2) return Complex(c1.real+c2.real, c1.imag+c2.imag);4有以下程序结构,分析访问属性class A public: void f1( ); int i; protected: void f2(); int j; private: int k;class B: public A public: void f3( ); protected: int m; private: int n;class C: public B public: void f4(); private: int p;int main()A a1; B b1; C c1; return 0;在main 函数中能否用b1.i, b1.j 和 b1.k 引用派生类B对象b1中基类A的成员?派生类B中的成员函数能否调用基类A中的成员函数f1和f2?派生类B中的成员函数能否引用基类A中的数据成员i, j, k,?答:(1) 可以用b1.i引用对象b1中的基类A的成员i,因为它是公用数据成员。 不能用b1.j引用对象b1中的基类A的成员j,因为它是保护数据成员,在类外不能访问。 不能用b1.k引用对象b1中的基类A的成员k,因为它是私有数据成员,在类外不能访问。 (2) 可以调用基类A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论