計算機等級考試二級C++試題及答案7
一、改錯題
使用VC6打開考生文件夾下的工程kt7_1,此工程包含一個源程序文件kt7_1.cpp,但該程序運行有問題,請改正程序中的錯誤,使程序的輸出結果如下:
Constructor1
Constructor1
Constructor1
Destructor
Constructor2
Destructor
x=0
x=5
Destructor
Destructor
源程序文件kt21_1.cpp清單如下:
#include
classB
{intx;
public:
B(){x=0;cout<<"Constructor1"<
B(inti){x=i;cout<<"Constructor2"<
~B(){cout<<"Destructor"<
/**********found**********/
~B(inti){cout<
voidprint(){cout<<"x="<
voidmain()
{B*ptr;
ptr=newB[2];
/**********found**********/
ptr[0]=B(0);
ptr[1]=B(5);
/**********found**********/
for(inti=0;i<2;)
ptr[i].print();
delete[]ptr;}
【參考答案】
(1)將~B(int i){cout<
(2)將ptr[0]=B(0);改為:ptr[0]=B();
(3)將for (int i=0;i<2;)改為:for(int i=0;i<2;i++)
【試題解析】
(1)主要考查對析構函數(shù)特性的掌握,析構函數(shù)不能帶參數(shù)也不能重載,一個類中只能定義一個析構函數(shù),因為析構函數(shù)在刪除對象的時候被默認調用,如果含有多個析構函數(shù)則可能引起多次刪除產生的意外錯誤;
(2)主要考查對構造函數(shù)與函數(shù)重載的掌握,由輸出結果可知其應該調用不帶參數(shù)的構造函數(shù)B();
(3)主要考查對for循環(huán)語句的使用,如果在for循環(huán)中不寫第三個表達式就意味著該循環(huán)一直會執(zhí)行下去,因為i的值總是小于2。
使用VC6打開考生文件夾下的工程kt7_1,此工程包含一個源程序文件kt7_1.cpp,但該程序運行有問題,請改正程序中的錯誤,使程序的輸出結果如下:
Constructor1
Constructor1
Constructor1
Destructor
Constructor2
Destructor
x=0
x=5
Destructor
Destructor
源程序文件kt21_1.cpp清單如下:
#include
classB
{intx;
public:
B(){x=0;cout<<"Constructor1"<
B(inti){x=i;cout<<"Constructor2"<
~B(){cout<<"Destructor"<
/**********found**********/
~B(inti){cout<
voidprint(){cout<<"x="<
voidmain()
{B*ptr;
ptr=newB[2];
/**********found**********/
ptr[0]=B(0);
ptr[1]=B(5);
/**********found**********/
for(inti=0;i<2;)
ptr[i].print();
delete[]ptr;}
【參考答案】
(1)將~B(int i){cout<
(2)將ptr[0]=B(0);改為:ptr[0]=B();
(3)將for (int i=0;i<2;)改為:for(int i=0;i<2;i++)
【試題解析】
(1)主要考查對析構函數(shù)特性的掌握,析構函數(shù)不能帶參數(shù)也不能重載,一個類中只能定義一個析構函數(shù),因為析構函數(shù)在刪除對象的時候被默認調用,如果含有多個析構函數(shù)則可能引起多次刪除產生的意外錯誤;
(2)主要考查對構造函數(shù)與函數(shù)重載的掌握,由輸出結果可知其應該調用不帶參數(shù)的構造函數(shù)B();
(3)主要考查對for循環(huán)語句的使用,如果在for循環(huán)中不寫第三個表達式就意味著該循環(huán)一直會執(zhí)行下去,因為i的值總是小于2。
時間:2013-06-21 責任編輯:admin
相關文章
無相關信息