《2022年面向对象程序设计样卷.docx》由会员分享,可在线阅读,更多相关《2022年面向对象程序设计样卷.docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 面对对象程序设计样卷一、挑选题 (本大题共 10 小题,每题 2 分,共 20 分)4在以下定义的引用中, B 是错误的;A.int i;B.int i;int &j = i;float &j=i;C.float i;D.char d ;float &j = i;char &e = d;5. 假定 BB为一个类 , 就执行 BB y ;语句时将自动调用该类的 B A. 有参构造函数 B. 无参构造函数 C. 拷贝构造函数 D. 赋值重载函数7以下对派生类的描述中, C 是错误的; A. 一个派生类可以作为另一个派生类的基类B派生类至少应有一个基
2、类 C. 基类中成员拜访权限继承到派生类中都保持不变 D 派生类成员除了自己定义的成员外,仍包含了它的基类成员10. 掌握输出格式的掌握符中, D 是设置输出宽度的;A.ws B.ends C. setfill D.setw 二、填空题 (本大题共 10 小题,每题 2 分,共 20 分)1. 以 /*开头,以 */ 终止,在 /*和 */ 之间的部分即为注释;2重载函数在参数类型或参数个数上不同,但函数名和类名 _相同;3.假如一个类的名称为 MyClass ,使用这个类的一个对象初始化该类的另一个对象时,可以调用 _拷贝 _构造函数来完成此功能;4当删除对象时,程序自动调用析构函数;5.
3、对于每一个类的非静态成员函数,都有一个隐含的 8. 抽象类是指类里有一个函数,是纯嘘函数;_this_ 指针;三、改错题 (下面程序或程序段中有一处错误,请用注释标明错误所在行的出 错缘由;本大题共 5 小题,每题 2 分,共 10 分)1#include using namespace std;int main coutThis is a program. endl ; return 0; 2#include ;using namespace std int main x=3; int y=x*x;1 / 6 名师归纳总结 - - - - - - -第 1 页,共 6 页精选学习资料 - -
4、 - - - - - - - couty=yn;return 0; 3#include using namespace std;class Aa public: Aaint i=0a=i; coutConstructor aendl; Aa coutDestructor aendl; void print coutaendl; private: int a; ;int main Aa al1,a22;al.print;couta2.aendl;return 0; 4class A int a,b;=78 a=aa ;b=bb; public: Aint aa,int bb ;int main
5、A x2,y4,9;return 0; 5#include using namespace std;class Test public: static int x; ; int Test : x=20;int main coutTest:x;2 / 6 名师归纳总结 - - - - - - -第 2 页,共 6 页精选学习资料 - - - - - - - - - return 0; 四、程序分析题 (分析程序,写出运行结果;本大题共4 小题,每题5 分,共20 分)1#include using namespace std;class Test private: int num;public:
6、 Test;” dst ”numendl; Testint n;Testcout ;Test:Test cout ” Init defa” endl ;num=0; Test:Test( int n) cout ”Init” ” “nendl ;num=n; int main Test xx10; Test yy2; return 0 2 #include using namespace std;class My public: Myint aa A=aa ;B-=aa ; ;static void funMy m private: int A;static int B; ;void My:f
7、unMy m coutA=m.Aendl;3 / 6 名师归纳总结 - - - - - - -第 3 页,共 6 页精选学习资料 - - - - - - - - - coutB=Bendl; int My:B=100;int main My P8,Q6; My:funP Q.funQreturn 0; 3#include using namespace std;int main void funint&,int; int a,b; funa,2; funb,4; couta+b=a+bendl; return 0; void funint &m,int n m=n+4; 4#include u
8、sing namespace std;class big private: int a;public: bigint i a=i;coutcst big a= aendl; big coutdst big a= aendl; ;class small:public big private: int d;public: smallint i,int j; small coutdst small d=dendl; ;small:smallint i,int j:bigi d=10*j; coutcst small d=dendl; int main small x18,19;return 0;4
9、/ 6 名师归纳总结 - - - - - - -第 4 页,共 6 页精选学习资料 - - - - - - - - - 五、简答题(阅读程序,回答疑题;本大题共1.#include using namespace std;const double PI=3.14;class Figure public: Figure;virtual double circumference=0; ;class Circle : public Figure public: Circledouble myrR=myr; 2 小题,每题 9 分,共 18 分)double circumferencereturn 2
10、*PI*R; protected: double R; ;class Rectangle : public Figure public: Rectangle double myl,double mywL=myl; W=myw; double circumferencereturn 2*L+W; private: ; double L,W ;void funcFigure &p coutp.circumferenceendl; int main Circle c3.0;coutCircumference of circle is funcc; Rectangle rec4.0,5.0;coutC
11、ircumferenceof rectangle is funcrec;return 0; (1)每个类的作用是什么?2)写出程序的运行结果;3 )假如将 Figure 类中的 virtual double circumference=0;改为doublecircumferencereturn 0.0;, 程序的运行结果如何变化?5 / 6 名师归纳总结 - - - - - - -第 5 页,共 6 页精选学习资料 - - - - - - - - - 2#include using namespace std;#include class Myclass public: Myclassdoub
12、le i=0 x=y=i; Myclassdouble i,double jx=i;y=j ; friend double distanceMyclass &a,Myclass &b;private: double x,y; ;double distanceMyclass &a,Myclass &b double dx=a.x-b.x; double dy=a.y-b.y; return sqrtdx*dx+dy*dy int main Myclass ml,m25,m33,4; coutThe distance1: distanceml,m3endl; coutThe distance2: distancem2,m3endl; coutThe distance4: distanceml,m2endl; (1)指出重载的构造函数;(2)指出设置默认参数的构造函数;(3)指出友元函数,它的作用是什么?六、程序设计题 (4 个大题每个非常)1老师留的与类相关的编程作业题;2设计 table 桌子类,设计成员变量和成员函数,留意构造函数3设计 food 食物类 ,并设计其子类 pie ,留意构造函数6 / 6 名师归纳总结 - - - - - - -第 6 页,共 6 页