查看匯總:2014年計(jì)算機(jī)二級(jí)C++上機(jī)模擬試題及解析匯總
一、改錯(cuò)題
使用VC6打開(kāi)考生文件夾下的工程kt10_1,此工程包含一個(gè)源程序文件kt10_1.cpp,但該程序運(yùn)行有問(wèn)題,請(qǐng)改正程序中的錯(cuò)誤,使程序的輸出結(jié)果為:
classBase
classD1
classD2
classD3
finBase
源程序文件kt10_1.cpp清單如下:
#include
classBase
{ public:
Base(){cout<<"classBase"< voidf(){cout<<"finBase"< classD1:virtualpublicBase { public: D1(){cout<<"classD1"< voidf(){cout<<"finD1"< /**********found**********/ classD2:publicBase { public: D2(){cout<<"classD2"< /**********found**********/ classD3::publicD1,publicD2 { public: D3(){cout<<"classD3"< voidmain() { D3d; /**********found**********/ d.f(); } 【參考答案】 (1)將class D2:public Base 改為:class D2:virtual public Base (2)將class D3::public D1,public D2 改為:class D3:public D1,public D2 (3)將d.f();改為:d.Base::f(); 【試題解析】 (1)主要考查對(duì)虛基類的理解,虛基類可以解決二義性的問(wèn)題,其定義方式是在繼承列表中使用virtual關(guān)鍵字,使用虛基類可以避免程序運(yùn)行中對(duì)基類函數(shù)調(diào)用的不惟一; (2)主要考查對(duì)類的定義方法的掌握,“::”為作用域符,此處應(yīng)該使用“:”,因?yàn)楹竺媸抢^承列表; (3)主要考查對(duì)虛基類函數(shù)調(diào)用過(guò)程的理解,只有使用"::"限定才能訪問(wèn)基類函數(shù),否則將會(huì)調(diào)用自身的函數(shù),如果該類沒(méi)有該函數(shù)的定義,則會(huì)自動(dòng)調(diào)用其父類的該函數(shù),所以必須使用“::”符號(hào)。 相關(guān)推薦: 2014年計(jì)算機(jī)等級(jí)考試過(guò)關(guān)技巧
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |