全國計算機二級考試C++上機考試試題及答案
全國計算機二級考試上機試題是一個比較難的模塊,需要大家在考前不斷的做一些練習試題,下面就是小編跟大家分享全國計算機二級考試C++上機考試試題及答案,歡迎大家閲讀!
一、程序改錯題
使用VC++6.0打開考生文件夾下的源程序文件
,該程序運行時有錯誤,請改正程序中的錯誤。本程序要求實現的功能為從鍵盤輸入一個字符串,並將結果保存到文件中。
注意:不要改動main函數,不能增加或刪除行,也不能更改程序的結構,錯誤的語句在
//******error******的下面。
試題程序:
#include
#include
//********error********
usingstd;
voidWriteFile(char*s)
{
ofstreamout1;
//********error********
("",binary|app);
for(inti=0;s[i]!=0;i++)
{
//********error********
(s[i]);
}
e();
}
voidClearFile()
{
ofstreamout1;
("");
e();
}
intmain()
{
chars[1024];
ClearFile();
cout<<"pleaseinputastrin9:"< ine(s,1024);
WriteFile(s);
return0;
}
二、簡單應用題
使用VC++6.0打開考生文件夾下的源程序文件。請完成函數fun(intx)的定義,該函數功能是判定x的所有約數,並且在函數中調用寫函數WriteFile將結果輸出到文件中。
例如:x=100的約數為124510202550100。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
#include #include(fstream)
#include(cmath)
usingnamespacestd;
voidWriteFile(intc)
{
ofstreamout1;
("",ios_base::binary|ios_base::app);
out1< e();
}
voidfun(intx)
{
}
voidClearFile()
{
ofstreamout1;
("");
e();
}
intmain()
{
ClearFile();
fun(100);
return0;
}
三、綜合應用題
使用VC++6.0打開考生文件夾下的源程序文件,其中定義了用於表示座標的類TCl,但類TCl的定義並不完整,按要求完成下列操作,將類的定義補充完整。
(1)聲明TC2類為TC1類的友元類,請在註釋1後添加適當的語句。
(2)完成類的構造函數,分別對成員變量賦值,請在註釋2後添加適當的語句。
(3)完成類的構造函數,分別對成員變量賦值,請在註釋3後添加適當的語句。
(4)完成計算平面上兩點之間距離的函數JuL,計算的方法為X座標之差的平方與Y座標之差的平方之和的開方。請在註釋4後添加適當的語句。
注意:僅在函數指定位置添加語句,請勿改動主函數main與其他函數中的任何內容。
試題程序:
#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;
(p,q);
return0;
}
上機考試試題答案與解析
一、程序改錯題
(1)應改為“usingnamespacestd;”。
(2)應改為“("",ios::binary|ios::app);”。
(3)應改為“(s[i]);”。
【解析】本題第1處的“usingstd;”是在程序中引入標準命名空間std,對於C++中引入標準命名空間的格式,缺少namespace,所以第1處的語句修改為“usingnamespacestd;”。第2處,調用成員函數open中,輸入、輸出方式是在ios類中定義的,所以“("",binary|app);”語句缺少類ios,即第2處的語句修改為“("",ios::binary|ios::app);”。第3個標識應該用流成員函數put輸出字符,所以第3處的語句修改為“(s[i]);”。
二、簡單應用題
for(inti=1:i<=x;i++)
{
if(x%i==0)//如果x被i整除,那麼i為X的約數
{
writeFile(i);//將約數i存入文件
}
}
【解析】本題中由1到x,循環判斷其中是否有X的約數。如果x被i整除,那麼i為x的`約數最後調用Write-File函數,將約數i存入文件。
三、綜合應用題
(1)應添加“friendclassTC2;”。
(2)應添加“TCl(floata,floatb)”。
(3)應添加“TCl(floata)”。
(4)應添加“result=sqrt((P.X-q.X)*(p.X-q.X)+(p.Y-q.Y)*(p.Y-q.Y));”。
【解析】本題中第1處要求“聲明TC2類為TC1類的友元類”。C++中聲明友元類的一般形式為“friend類名;”,所以這裏補全“friendclassTC2;”。第2處要求“完成類的構造函數,分別對成員變量賦值”。程序中TC1類的構造函數缺少定義,構造函數首部的一般格式為構造函數名(類型1形參1,類型2形參2,……),所以在第2處補金“TC1(floata,float
b)”。第3處要求“完成類的構造函數,旁別對成員變量賦值”。同理,第3個標識下補全“TC1(floata)”。第4處要求“完成計算平面上兩點之間的距離函數JuL”。題目中已經給出了計算方法,X座標之差的平方與Y座標之差的平方之和的開方。利用C++中的開方函數sqrt補全函數中的兩點之間的距離。即“result=sqrt((P.X-q.X)*(p.X-q.X)+(p.Y-a.Y)*(p.Y-q.Y));”。
-
2009年3月全國計算機二級考試Access真題
一、選擇題(每小題2分,共70分)1、下面敍述中正確的是A.棧是先進先出的線性表B.隊列是先進後出的線性表C.循環隊列是非線性結構D.有序線性表既可以採用順序存儲結構,也可以採用鏈式存儲結構2、支持子程序調用的數據結構是A.棧B.樹C.隊列D.二叉樹3、某二叉樹有5個...
-
2017年9月計算機二級《公共基礎》模擬試題
2017年9月計算機二級考試越來越近了,不知道考生們都複習得怎麼樣了呢?下面是小編分享的2017年9月計算機二級《公共基礎》模擬試題,歡迎大家練習!一、選擇題(1)下面敍述正確的是(C)A.算法的執行效率與數據的存儲結構無關(有關)B.算法的空間複雜度是指算法程序中指令(...
-
2016年9月二級《MSoffice》備考練習題及答案
選擇題1.下面敍述中錯誤的是().A.軟件測試的目的是發現錯誤並改正錯誤B.對被調試的程序進行錯誤定位是程序調試的必要步驟C.程序調試通常也稱為DebugD.軟件測試應嚴格執行測試計劃,排除測試的隨意性2.數據庫應用系統中的核心問題是().A.數據庫設計B.數據庫系統...
-
2017計算機二級MSoffice模擬練習及答案
任何考試都需要練習,計算機二級MSoffice也是如此,下面是小編整理的計算機二級MSoffice模擬練習,希望對大家有所幫助!1、下列各組軟件中,全部屬於應用軟件的是______。A、程序語言處理程序、操作系統、數據庫管理系統B、文字處理程序、編輯程序、Unix操作系統C、財...