程序设计Ⅱ(C++语言)期中考试试题班级:_________学号:_________姓名:_________一、简答题(每小题4分,共20分)1.在C++中声明类时,如何做到多个实例共享一个全局变量?2.引用和指针之间有什么区别?3.什么是抽象类?析构函数可以声时为虚函数吗如果可以,在什么情况下使用?4.什么是多态性?多态性是如何实现的?5.构造函数与析构函数的功能是什么?在继承层次上,构造函数和析构函数的调用顺序如何?二、程序改错题(每小题5分,共20分)1.下面的程序是否有错误,如果有错,请说明原因并改正。#includeint*FuncOne(){int*pint=newint(5);count<<"thevalueofpIntinFuncOneis:"<<*pint<func();A*aa=bb;aa->func();}以上程序的输出结果是。2.分析下面的程序,并写出运行结果。classSample{public:intv;Sample(){};Sample(intn):v(n){};Sample(Sample&x){v=2+x.v;}};SamplePrintAndDouble(Sampleo){cout<Print();Dd(4);d.Print();B*p=&d;p->Print();deletepb;}以上程序的输出结果是。四、程序填空题(每小题10分,共20分)1.填空使程序能编译通过,并写出运行的输出结果。classMyString{private:char*p;public:MyString(char*s){p=newchar[strlen(s)+1];strcpy(p,s);}MyString(MyString&o){strcpy(p,o.p);}~MyString(){delete[]p;}voidCopy(char*s){p=newchar[strlen(s)+1];strcpy(p,s);}constchar*c_str(){}};main(){MyStrings1("This"),s2=s1;s2.Copy("Hello");cout<template<>classmyclass{Ti;public:myclass(Ta){i=a;}voidshow(){cout<obj("This");obj.show();}该程序输出结果为:。五、程序设计题(共20分)设有如下定义的几个类,其中,Graphic是个抽象类,它定义了平面封闭图形应该具有的运算求面积getArea,它可以有任意多子类,如Circle和Rectangle便是它的两个子类。GraphicContainer是一个包含Graphic对象的类,该类有两个数据成员,其中:m_buffer是个数组,用于存放不同的Graphic对象;m_sum用来表示该数组中实际存放元素的个数,即Graphic对象的总数。现在要求你完成该类的求所有Graphic对象总面积函数getAllArea的实现代码。为了完成该函数,允许你在其它相关类中增加方法及其实现。程序设计Ⅱ(C++语言)期中考试参考答案一、简答题(每小题5分,共20分)6.在C++中声明类时,如何做到多个...