- 相關(guān)推薦
全國計(jì)算機(jī)二級考試C++上機(jī)考試試題及答案
全國計(jì)算機(jī)二級考試上機(jī)試題是一個(gè)比較難的模塊,需要大家在考前不斷的做一些練習(xí)試題,下面就是小編跟大家分享全國計(jì)算機(jī)二級考試C++上機(jī)考試試題及答案,歡迎大家閱讀!
一、程序改錯(cuò)題
使用VC++6.0打開考生文件夾下的源程序文件
1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請改正程序中的錯(cuò)誤。本程序要求實(shí)現(xiàn)的功能為從鍵盤輸入一個(gè)字符串,并將結(jié)果保存到文件1.txt中。
注意:不要改動main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語句在
//******error******的下面。
試題程序:
#include
#include
//********error********
usingstd;
voidWriteFile(char*s)
{
ofstreamout1;
//********error********
out1.open("1.txt",binary|app);
for(inti=0;s[i]!=0;i++)
{
//********error********
out1.puts(s[i]);
}
out1.close();
}
voidClearFile()
{
ofstreamout1;
out1.open("1.txt");
out1.close();
}
intmain()
{
chars[1024];
ClearFile();
cout<<"pleaseinputastrin9:"< cin.getline(s,1024);
WriteFile(s);
return0;
}
二、簡單應(yīng)用題
使用VC++6.0打開考生文件夾下的源程序文件2.cpp。請完成函數(shù)fun(intx)的定義,該函數(shù)功能是判定x的所有約數(shù),并且在函數(shù)中調(diào)用寫函數(shù)WriteFile將結(jié)果輸出到2.txt文件中。
例如:x=100的約數(shù)為124510202550100。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include #include(fstream)
#include(cmath)
usingnamespacestd;
voidWriteFile(intc)
{
ofstreamout1;
out1.open("2.txt",ios_base::binary|ios_base::app);
out1< out1.close();
}
voidfun(intx)
{
}
voidClearFile()
{
ofstreamout1;
out1.open("2.txt");
out1.close();
}
intmain()
{
ClearFile();
fun(100);
return0;
}
三、綜合應(yīng)用題
使用VC++6.0打開考生文件夾下的源程序文件3.cpp,其中定義了用于表示坐標(biāo)的類TCl,但類TCl的定義并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。
(1)聲明TC2類為TC1類的友元類,請?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。
(2)完成類的構(gòu)造函數(shù),分別對成員變量賦值,請?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。
(3)完成類的構(gòu)造函數(shù),分別對成員變量賦值,請?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。
(4)完成計(jì)算平面上兩點(diǎn)之間距離的函數(shù)JuL,計(jì)算的方法為X坐標(biāo)之差的平方與Y坐標(biāo)之差的平方之和的開方。請?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。
注意:僅在函數(shù)指定位置添加語句,請勿改動主函數(shù)main與其他函數(shù)中的任何內(nèi)容。
試題程序:
#include(iostream)
#include(cmath)
usingnamespacestd;
classTC1
{
//********1********
public:
//********2********
{
X=a;
Y=b;.
}
//********3********
{
X=a:
Y=0;
}
voidprint()
{
cout<<"x="< cout<<"y="< }
private:
floatX,Y:
};
classTC2
{
public:
floatJuL(TC1&p,TC1&q);
};
floatTC2;:JuL(TCl&p,TCl&q)
{
floatresult;
//********4********
cout< returnresult;
}
intmain()
{
TClp(10,10),q(20);
TC2d;
d.JuL(p,q);
return0;
}
上機(jī)考試試題答案與解析
一、程序改錯(cuò)題
(1)應(yīng)改為“usingnamespacestd;”。
(2)應(yīng)改為“outl.open("1.txt",ios::binary|ios::app);”。
(3)應(yīng)改為“out1.put(s[i]);”。
【解析】本題第1處的“usingstd;”是在程序中引入標(biāo)準(zhǔn)命名空間std,對于C++中引入標(biāo)準(zhǔn)命名空間的格式,缺少namespace,所以第1處的語句修改為“usingnamespacestd;”。第2處,調(diào)用成員函數(shù)open中,輸入、輸出方式是在ios類中定義的,所以“out1.open("1.txt",binary|app);”語句缺少類ios,即第2處的語句修改為“out1.open("1.txt",ios::binary|ios::app);”。第3個(gè)標(biāo)識應(yīng)該用流成員函數(shù)put輸出字符,所以第3處的語句修改為“out1.put(s[i]);”。
二、簡單應(yīng)用題
for(inti=1:i<=x;i++)
{
if(x%i==0)//如果x被i整除,那么i為X的約數(shù)
{
writeFile(i);//將約數(shù)i存入文件
}
}
【解析】本題中由1到x,循環(huán)判斷其中是否有X的約數(shù)。如果x被i整除,那么i為x的約數(shù)最后調(diào)用Write-File函數(shù),將約數(shù)i存入文件。
三、綜合應(yīng)用題
(1)應(yīng)添加“friendclassTC2;”。
(2)應(yīng)添加“TCl(floata,floatb)”。
(3)應(yīng)添加“TCl(floata)”。
(4)應(yīng)添加“result=sqrt((P.X-q.X)*(p.X-q.X)+(p.Y-q.Y)*(p.Y-q.Y));”。
【解析】本題中第1處要求“聲明TC2類為TC1類的友元類”。C++中聲明友元類的一般形式為“friend類名;”,所以這里補(bǔ)全“friendclassTC2;”。第2處要求“完成類的構(gòu)造函數(shù),分別對成員變量賦值”。程序中TC1類的構(gòu)造函數(shù)缺少定義,構(gòu)造函數(shù)首部的一般格式為構(gòu)造函數(shù)名(類型1形參1,類型2形參2,……),所以在第2處補(bǔ)金“TC1(floata,float
b)”。第3處要求“完成類的構(gòu)造函數(shù),旁別對成員變量賦值”。同理,第3個(gè)標(biāo)識下補(bǔ)全“TC1(floata)”。第4處要求“完成計(jì)算平面上兩點(diǎn)之間的距離函數(shù)JuL”。題目中已經(jīng)給出了計(jì)算方法,X坐標(biāo)之差的平方與Y坐標(biāo)之差的平方之和的開方。利用C++中的開方函數(shù)sqrt補(bǔ)全函數(shù)中的兩點(diǎn)之間的距離。即“result=sqrt((P.X-q.X)*(p.X-q.X)+(p.Y-a.Y)*(p.Y-q.Y));”。
【全國計(jì)算機(jī)二級考試C++上機(jī)考試試題及答案】相關(guān)文章:
計(jì)算機(jī)二級考試C++上機(jī)考試試題及答案02-08
2017計(jì)算機(jī)二級考試《C++》上機(jī)考試題及答案03-03
全國計(jì)算機(jī)二級《C++》上機(jī)試題及答案08-15
計(jì)算機(jī)二級考試C++上機(jī)考試試題05-22
全國計(jì)算機(jī)二級考試C++精選試題及答案12-28
2017計(jì)算機(jī)二級C++上機(jī)考試試題及答案06-20
2016計(jì)算機(jī)二級C++上機(jī)考試試題及答案01-22