资源描述:
《c期末练习题(带答案)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、(一)读程序题1.类中包括其他类的对象成员,构造函数中要列出成员对象名带实参,生成该类对象时,要先调用成员対象的构造函数。如果是成员対象的缺省构造函数可以不列,但生成该类对象时,仍耍先调用成员对彖的缺省构造函数。1.如下程序运行时的输出结果是1135。#includeclassONE{intc;public:ONE():c(0){cout«l;}ONE(intn):c(n){cout«3;}};classTWO:publicONE{ONEonel;ONEone2;public:TWO(intm):one2(m){cout«5;}};voidma
2、in(){TWOt(2);}二.派生类构造函数中要列出基类名带实参,生成派生类对彖时,要先调用基类的构造函数,再调用派生类的构造函数。冲突规则与支配规则。2.如下程序运行时的输出结果是。#includeclassA{public:intx;A(){x=10;}A(inti){x=i;}voidShow(){cout«"x="«x«'t'«"A";}};classB{public:inty;B(){y=3O;}B(inti){y=i;}voidShow(){cout«"y="«y«'t'«"B";}};classC:publicA,p
3、ublicB{public:inty;C(inta,intb,intc):A(a),B(b+30){y=c;}voidShow(){cout«,,y=,,«y«,t,«,,CH;}y=10Cx=20Ay=60BPressanykeytocontinue};voidmain(void){C€1(20,30,40);cl.y=10;cl.Show();cl.A::Show();cl.B::Show();}三•派生类屮包含对象成员,构造函数屮要列出基类名带实参,再列出成员对象名带实参,生成派生类对象时,要先调用基类的构造函数,再调用成员对象的构造函数,故后调用派生类的
4、构造函数。如果是调用基类或成员对象的缺省构造函数可以不列,但生成派生类对象吋,仍要先调川基类的缺省构造函数,再调川成员对彖的缺省构造函数。构造函数与析构函数调用顺序相反。3•如下程序运行吋的输出结果是。#ineludeclassA{public:A(){cout«nA()";}~A(){cout«"^A()";}};classB{public:B(){cout«"B()";}~B(){cout«"~B()";}};classC:publicB,publicA{Aa;public:anykeytocontinueC(){cout«
5、“C()”;}~C(){cout«,,~C()n;}};voidmain(){Cel;}4.如下程序运行时的输出结果是。^includeclassA{public:A(){cout<<"A?«endl;};classT{Aa;public:T(){cout<<,T*«endl;}};classXipublicA{Tt;public:X(){cout<<,X'<classA{public:A(){cout«"
6、A";}~A(){cout«"~A";}};classB:virtualpublicA{public:B():A(){cout«"B";}~B(){coutvv”~B“;}};classC:publicvirtualA{public:C():A(){cout«"C";}~C(){coutvv"~C";}};classD:publicC,publicB{public:D():B(),C(),A(){coutvv”D“;}~D(){coutvv"~D";}};voidmain()AATXPressanykegtocontinueACBD“B
7、“C“AP厂qssanykeytocontinuo{Ddl;}4.下列程序的输出结果是。#includeclassA{public:A(){cout«"A";}~A(){cout«"~A";}};classB:publicA{public:B():A(){cout«"B";}~B(){coutvv”~B“;}ACABD“DPressnnykeytocontinue};classC:publicA{public:C():A(){cout«"C";}~C(){coutvv"~C";}};classD:pub