- 相關推薦
計算機二級C++練習題:程序改錯題
為了使廣大考生在備戰計算機等級考試時,更快的掌握相應知識點,下面是小編搜索整理的計算機二級C++練習題:程序改錯題,供參考練習,預祝考生們考出自己理想的成績!
計算機二級C++練習題:程序改錯題01
使用VC6打開考生文件夾下的工程kt9_1,此工程包含一個源程序文件kt9_1.cpp,但該程序運行有問題,請改正程序中的錯誤,使程序的輸出結果如下:
4,5
20
源程序文件清單如下:
#include
classA
{protected:
intn,m;
public:
voidset(inta,intb){m=a;n=b;}
voidshow(){cout<<m<<","<<n<<endl;}
/**********found**********/}
classB:publicA
{ints;
public:
voidset(){s=m*n;}
voidshows(){cout<<s<<endl;}};
voidmain()
{
Bb;
/**********found**********/
b.set();
b.show();
b.set();
/**********found**********/
b.show();
}
【參考答案】
(1)在“}”后添加分號
(2)將b.set();改為:b.A::set(4,5);
(3)將b.show();改為:b.shows();
【試題解析】
(1)主要考查對類定義格式的掌握,類的結尾應該使用";";
(2)主要考查對基類與派生類函數調用關系的掌握,根據所要求的輸出結果,應該調用的函數為類A的set,而不是類B自身的.set函數,應該避免調用的二義性;
(3)主要考查對繼承與派生的理解,由所要求輸出結果可知正確:b.shows()。
計算機二級C++練習題:程序改錯題02
使用VC6打開考生文件夾下的工程kt10_1,此工程包含一個源程序文件kt10_1.cpp,但該程序運行有問題,請改正程序中的錯誤,使程序的輸出結果為:
classBase
classD1
classD2
classD3
finBase
源程序文件kt10_1.cpp清單如下:
#include
classBase
{public:
Base(){cout<<"classBase"<<endl;}
voidf(){cout<<"finBase"<<endl;}};
classD1:virtualpublicBase
{public:
D1(){cout<<"classD1"<<endl;}
voidf(){cout<<"finD1"<<endl;}};
/**********found**********/
classD2:publicBase
{public:
D2(){cout<<"classD2"<<endl;}};
/**********found**********/
classD3::publicD1,publicD2
{public:
D3(){cout<<"classD3"<<endl;}};
voidmain()
{D3d;
/**********found**********/
d.f();}
【參考答案】
(1)將classD2:publicBase
改為:classD2:virtualpublicBase
(2)將classD3::publicD1,publicD2
改為:classD3:publicD1,publicD2
(3)將d.f();改為:d.Base::f();
【試題解析】
(1)主要考查對虛基類的理解,虛基類可以解決二義性的`問題,其定義方式是在繼承列表中使用virtual關鍵字,使用虛基類可以避免程序運行中對基類函數調用的不惟一;
(2)主要考查對類的定義方法的掌握,“::”為作用域符,此處應該使用“:”,因為后面是繼承列表;
(3)主要考查對虛基類函數調用過程的理解,只有使用"::"限定才能訪問基類函數,否則將會調用自身的函數,如果該類沒有該函數的定義,則會自動調用其父類的該函數,所以必須使用“::”符號。
【計算機二級C++練習題:程序改錯題】相關文章:
計算機二級C++練習題:改錯題08-11
計算機二級C++練習題:改錯題及答案06-17
計算機二級C上機:程序改錯題05-07
計算機二級C++程序題及答案解析12-29
2016計算機二級《C++》練習題及答案08-14
2017計算機二級C++考前練習題04-19
2017計算機二級C++強化練習題04-14
2016計算機二級《C++》上機練習題06-09
計算機二級C上機考試程序改錯題及答案05-06