- 相關(guān)推薦
2017計算機二級C++考點習(xí)題及答案
成績的取得離不開我們平時的努力,以下是百分網(wǎng)小編為大家整理的2017計算機二級C++考點習(xí)題及答案,希望對大家的學(xué)習(xí)起到幫助!
一、簡單應(yīng)用題
已知考生的記錄由學(xué)號和學(xué)習(xí)成績構(gòu)成,N名考生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。請編寫函數(shù)fun,該函數(shù)的功能是:找出成績最低的考生記錄,通過形參返回主函數(shù)(規(guī)定只有一個最低分)。已給予出函數(shù)的首部,請完成該函數(shù)。
注意:部分源程序已存在文件kt8_2.cpp中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
文件kt8_2.cpp的內(nèi)容如下:
#include
#include
#include
#defineN10
typedefstructss
{charnum[10];
ints;
}STU;
voidfun(STUa[],STU*s)
{
}
voidmain()
{STU
a[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m;
fun(a,&m);
cout<<"*****Theoriginaldate*****"<
cout<<"Thelowest:"<
【參考答案】
fun(STU a[],STU *s)
{int i, min;
min=a[0].s;
for(i=0;i
if(a[i].s
{min=a[i].s;
*s=a[i];}}
【試題解析】
解題思路為:先假設(shè)第一個考生的成績最優(yōu),通過循環(huán)找到最低成績,并將最低成績的考生記錄傳給指針s,帶回主函數(shù)。
二、綜合應(yīng)用題
使用VC6打開考生文件夾下的工程kt7_3,此工程包含一個源程序文件kt7_3.cpp,其中含有一個類Circle的定義,但該類的定義并不完整。請按要求完成下列操作,將類Circle的定義補充完整。
(1)為類Circle增加一個構(gòu)造函數(shù),該函數(shù)有一個參數(shù),并在構(gòu)造時將該參數(shù)值賦給成員radius。將該函數(shù)實現(xiàn)為一個非內(nèi)聯(lián)函數(shù),并且使用參數(shù)列表的方式將類成員賦值。請在注釋“//**1**”之后添加適當(dāng)?shù)恼Z句。
(2)為類Circle增加一個成員函數(shù)print( ),使得可以輸出有關(guān)圓的信息,比如下列程序
Circlec;
c.SetRadius(5);
c.Print( );
將輸出:Thecirclehasradiusof5!
請在注釋“//**2**”之后添加適當(dāng)?shù)恼Z句。
(3)完成友元函數(shù)voidCompareR(Circle*c1,Circle*c2)的定義,在屏幕中輸出c1與c2比較radius大小結(jié)果,要求使用if-else結(jié)構(gòu)完成。請在注釋“//**3**”之后添加適當(dāng)?shù)恼Z句。
輸出結(jié)果如下:
Thecirclehasradusof5!
Thecirclehasradiusof10!
c1
注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。
源程序文件kt7_3.cpp清單如下:
#include
classCircle{
public:
Circle( ):radius(5){}
//**1**
voidSetRadius(intr){radius=r;}
intGetRadius( ){returnradius;}
//**2**
friendvoidCompareR(Circle*c1,Circle*c2);
private:
intradius;};
voidCompareR(Circle*c1,Circle*c2)
{//**3**
cout<<"c1>c2"<
else
if((c1->GetRadius( ))==(c2->GetRadius( )))
cout<<"c1=c2"<
else
if((c1->GetRadius( ))<(c2->GetRadius( )))
cout<<"c1
voidmain( )
{Circlec1;
c1.SetRadius(5);
c1.Print( );
Circlec2(10);
c2.Print( );
CompareR(&c1,&c2);}
【參考答案】
(1)Circle(intrad):radius(rad){}
(2)voidPrint( ){cout<<"Thecirclehasradiusof"<
(3)if((c1->GetRadius( ))>(c2->GetRadius( )))
【試題解析】
本題考查成員函數(shù)的定義與實現(xiàn),友元函數(shù),if分支語句等知識點。友元函數(shù)的類體外的定義與一般函數(shù)一樣,其中if-else的使用,else總是與其最近的那個if配對使用的,書寫時最好使用縮進(jìn)格式,將配對的if-else對齊,以免出錯。
【計算機二級C++考點習(xí)題及答案】相關(guān)文章:
計算機二級C++函數(shù)考點12-04
2016計算機二級考試C++復(fù)習(xí)題及答案03-27
2017計算機二級C++基礎(chǔ)練習(xí)題及答案12-05