點擊查看:2018年9月計算機(jī)二級C++考試考前過關(guān)練習(xí)題匯總
程序改錯題
使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時有錯誤,請改正程序中的錯誤,使得程序輸出為
10
TC1
注意:不要改動main函數(shù),不能增加或刪除行,也不能
更改程序的結(jié)構(gòu),錯誤的語句在//******error******的下面。
試題程序:
#include
classTC1
{
public:
TC1()
{
}
//********error********
private:
virtual~TC1()
{
usingnamespacestd;
cout<<"TCl"< }
};
classTC2:publicTC1
{
public:
//********error********
explicitTC2(inti)
{
m_i=i;
}
TC2&operator()(inti)
{
this->m_i=i;
}
voidprint()
{
//********error********
cout< }
private:
intm_i;
};
voidfun(TC2C1)
{
C1.print();
}
intmain()
{
fun(TC2(10));
return0;
}
參考答案:
(1)刪除“private:”語句。
(2)應(yīng)改為“TC2(inti)”。
(3)應(yīng)改為“std::cout<
【解析】本題中第1處的“virtual~TC1()”語句是TC1析構(gòu)函數(shù),不是私有函數(shù),所以刪除“private:”。第2處“ex-plicitTC2(inti)”構(gòu)造函數(shù)語句中的“explicit”是禁止隱式轉(zhuǎn)換。程序中無法實現(xiàn)對類TC2的直接使用,所以這里應(yīng)該將其刪除。即“TC2(inti)”。在第3處實現(xiàn)fun函數(shù)中m-i的標(biāo)準(zhǔn)輸出,即在屏幕上輸出10。在程序中用到C++標(biāo)準(zhǔn)庫時,要使用std標(biāo)準(zhǔn)命名空間進(jìn)行限定。cout為標(biāo)準(zhǔn)庫函數(shù),所以要聲明cout是在命名空間std中定義的流對象,即“std::cout< 二、簡單應(yīng)用題
charstr[32];
inti;
for(i=30;i>=0;i--)//計算二進(jìn)制
{
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]);
【解析】本題要求定義存放二進(jìn)制的字符串str。利用for循環(huán)對十進(jìn)制數(shù)字x進(jìn)行取余運(yùn)算,直到余數(shù)為0結(jié)束。如果取余結(jié)果為0,則二進(jìn)制字符串這個字符位的值為0,否則為1。調(diào)用WriteFile,將運(yùn)算結(jié)果存入文件。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關(guān)推薦:
2018年全國計算機(jī)等級考試復(fù)習(xí)知識點匯總(各科目)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |