上機(jī)部分
一、改錯(cuò)題
使用VC6打開(kāi)考生文件夾下的工程kt5_1,此工程包含一個(gè)源程序文件kt5_1.cpp,但該程序運(yùn)行有問(wèn)題,請(qǐng)改正程序中的錯(cuò)誤,使程序的輸出結(jié)果如下:
(1,2)
5,6
(6,9)
源程序文件kt5_1.cpp清單如下:
#include
classA{
public:
A(inti,intj){a=i;b=j;}
/****************found*******************/
voidMove(intx,inty){a+=x;b+=y}
voidShow(){cout<<"("<
private:
inta,b;
};
classB:privateA
{
public:
/****************found*******************/
B(inti,intj,intk,intl):(i,j){x=k;y=l;}
voidShow(){cout<
voidfun(){Move(3,5);}
/****************found*******************/
voidf1(){Show();}
private:
intx,y;
};
voidmain()
{
Ae(1,2);
e.Show();
Bd(3,4,5,6);
d.fun();
d.Show();
d.f1();
}
【參考答案】
(1)將void Move( int x, int y) {a+=x;b+=y}
改為:void Move( int x, int y) {a+=x;b+=y;}
(2)將B(int i,int j,int k,int l):(i,j) {x=k;y=l;}
改為:B(int i,int j,int k,int l):A(i,j) {x=k;y=l;}
(3)將void f1(){Show();}
改為:void f1(){A::Show();}
【試題解析】
(1)主要考查對(duì)表達(dá)式定義規(guī)則的掌握,此處缺少一個(gè)“;”,任何一個(gè)表達(dá)式都應(yīng)該以分號(hào)作為結(jié)束標(biāo)志;
(2)主要考查對(duì)派生類(lèi)構(gòu)造函數(shù)定義的掌握,參數(shù)列表中基類(lèi)的成員應(yīng)使用基類(lèi)構(gòu)造函數(shù)初始化,因此必須向基類(lèi)傳遞參數(shù),傳遞時(shí)直接使用基類(lèi)名;
(3)主要考查對(duì)基類(lèi)函數(shù)調(diào)用方法的掌握,為了調(diào)用基類(lèi)的函數(shù)應(yīng)該使用作用域符“::”以限定訪問(wèn)的位置。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |