上機(jī)部分
一、改錯(cuò)題
使用VC6打開考生文件夾下的工程kt18_1,此工程包含一個(gè)源程序文件kt18_1.cpp,但該程序運(yùn)行有問題,請改正函數(shù)中的錯(cuò)誤,使該程序的輸出結(jié)果為:
2isafactorof10
源程序文件kt18_1.cpp清單如下:
#include
classmyclass
{ /*****************found*****************/
intn,d
public:
myclass(inti,intj){n=i;d=j;}
friendintfactor(myclassob); };
/*****************found*****************/
intmyclass::factor(myclassob)
{ /*****************found*****************/
if(ob.n%ob.d)
return1;
else
return0; }
voidmain()
{ myclassob1(10,2),ob2(13,3);
if(factor(ob1))
cout<<"2isafactorof10\n";
if(factor(ob2))
cout<<"3isnotafactorof13\n"; }
【參考答案】
(1)將int n,d 改為:int n,d;
(2)將int myclass::factor(myclass ob)
改為:int factor(myclass ob)
(3)將if(ob.n%ob.d)
改為:if(!(ob.n%ob.d))
【試題解析】
(1)主要考查對變量定義的理解,同類型的變量定義中間使用逗號分開,同時(shí)可以進(jìn)行初始化,但是在整個(gè)定義的結(jié)尾必須使用分號,這是C++的規(guī)定;
(2)主要考查友元函數(shù)的定義,友元是在類的內(nèi)部聲明,類的外部實(shí)現(xiàn)的一種特殊的函數(shù),它可以訪問類內(nèi)的所有成員,不過在類外的實(shí)現(xiàn)和調(diào)用的時(shí)候均不需要使用作用域符號“::”限制;
(3)主要考查對if條件語句的掌握,只有括號內(nèi)的條件為真,即值為1時(shí),才執(zhí)行if后面的語句,根據(jù)題目要求應(yīng)該執(zhí)行的是對象ob1,即2可以整除10,所以應(yīng)該定義函數(shù)factor的返回值為能整除返回1,否則為0,而能夠整除即取余運(yùn)算值為0,所以在判斷前應(yīng)該加上非運(yùn)算。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |