第 1 頁:上機試題 |
第 2 頁:參考答案 |
一、程序改錯題
(1)刪除“private:”語句。
(2)應改為“TC2(inti)”。
(3)應改為“std::cout< 【解析】本題中第1處的“virtual~TC1()”語句是TC1析構函數,不是私有函數,所以刪除“private:”。第2處“ex-plicitTC2(inti)”構造函數語句中的“explicit”是禁止隱式轉換。程序中無法實現對類TC2的直接使用,所以這里應該將其刪除。即“TC2(inti)”。在第3處實現fun函數中m-i的標準輸出,即在屏幕上輸出10。在程序中用到C++標準庫時,要使用std標準命名空間進行限定。cout為標準庫函數,所以要聲明cout是在命名空間std中定義的流對象,即“std::cout< 二、簡單應用題
charstr[32];
inti;
for(i=30;i>=0;i--)//計算二進制
{
if(x%2)str[i]=’1’;//求余,如果余不為零字符串
str第i位為1
elsestr[i]=’0’;//否則為0
x>>=1;
if(!x)break;
}
str[31]=’\0’;//串加尾符
cout<<&str[i]< writeFile(&str[i]);
【解析】本題要求定義存放二進制的字符串str。利用for循環對十進制數字x進行取余運算,直到余數為0結束。如果取余結果為0,則二進制字符串這個字符位的值為0,否則為1。調用WriteFile,將運算結果存入文件。
三、綜合應用題
(1)將“classTC2”補充完整為“classTC2:publicTCl”。
(2)將“voidprint()”補充完整為“virtualvoidprint()”。
(3)將“p=obj3;”修改為“p=&obj3;”。
(4)將“P.print();”修改為“p->print();”。
【解析】本題中第1處要求“類TC2公共繼承于TC1”。從已有的類產生一個新的子類,成為類的派生。聲明派生類的一般形式為“class派生類名:[繼承方式]基類名”。根據題目中的要求以及派生類的一般形式,在第1處添加語
句“ClaSSTC2:publicTC1”。第2處要求“print函數為虛函數”。在C++中,用virtual聲明的函數為虛函數。因此第2處的語句應修改為“virtualvoidprint()”。第3處要求“使得P指定對象obj3”。p為指針變量,obj3為類的對象,將一個指針變量指向另一個變量,只要把被指向的變量的地址賦給指針變量即可。取對象obj3地址的語句為&obj3,所以這里補全語句為“p=&obj3;”。第4處要求“利用P調用print()函數”。C++中用“->”運算符實現成員訪問,因此調用print函數,應將第4處的語句修改為“p->print();”。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: