- 相關(guān)推薦
2017上半年計(jì)算機(jī)二級(jí)C++備考練習(xí)題及答案
成績(jī)的取得離不開我們平時(shí)的努力,以下是百分網(wǎng)小編為大家整理的2017上半年計(jì)算機(jī)二級(jí)C++備考練習(xí)題及答案,希望對(duì)大家的學(xué)習(xí)起到幫助!
一、 簡(jiǎn)單應(yīng)用題
已知考生的記錄由學(xué)號(hào)和學(xué)習(xí)成績(jī)構(gòu)成,N名考生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:找出成績(jī)最低的考生記錄,通過形參返回主函數(shù)(規(guī)定只有一個(gè)最低分)。已給予出函數(shù)的首部,請(qǐng)完成該函數(shù)。
注意:部分源程序已存在文件kt8_2.cpp中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
文件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è)第一個(gè)考生的成績(jī)最優(yōu),通過循環(huán)找到最低成績(jī),并將最低成績(jī)的考生記錄傳給指針s,帶回主函數(shù)。
二、綜合應(yīng)用題
使用VC6打開考生文件夾下的工程kt7_3,此工程包含一個(gè)源程序文件kt7_3.cpp,其中含有一個(gè)類Circle的定義,但該類的定義并不完整。請(qǐng)按要求完成下列操作,將類Circle的定義補(bǔ)充完整。
(1)為類Circle增加一個(gè)構(gòu)造函數(shù),該函數(shù)有一個(gè)參數(shù),并在構(gòu)造時(shí)將該參數(shù)值賦給成員radius。將該函數(shù)實(shí)現(xiàn)為一個(gè)非內(nèi)聯(lián)函數(shù),并且使用參數(shù)列表的方式將類成員賦值。請(qǐng)?jiān)谧⑨?ldquo;//**1**”之后添加適當(dāng)?shù)恼Z句。
(2)為類Circle增加一個(gè)成員函數(shù)print( ),使得可以輸出有關(guān)圓的信息,比如下列程序
Circlec;
c.SetRadius(5);
c.Print( );
將輸出:Thecirclehasradiusof5!
請(qǐng)?jiān)谧⑨?ldquo;//**2**”之后添加適當(dāng)?shù)恼Z句。
(3)完成友元函數(shù)voidCompareR(Circle*c1,Circle*c2)的定義,在屏幕中輸出c1與c2比較radius大小結(jié)果,要求使用if-else結(jié)構(gòu)完成。請(qǐng)?jiān)谧⑨?ldquo;//**3**”之后添加適當(dāng)?shù)恼Z句。
輸出結(jié)果如下:
Thecirclehasradusof5!
Thecirclehasradiusof10!
c1
注意:除在指定位置添加語句之外,請(qǐng)不要改動(dòng)程序中的其他內(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ù)的定義與實(shí)現(xiàn),友元函數(shù),if分支語句等知識(shí)點(diǎn)。友元函數(shù)的類體外的定義與一般函數(shù)一樣,其中if-else的使用,else總是與其最近的那個(gè)if配對(duì)使用的,書寫時(shí)最好使用縮進(jìn)格式,將配對(duì)的if-else對(duì)齊,以免出錯(cuò)。
【上半年計(jì)算機(jī)二級(jí)C++備考練習(xí)題及答案】相關(guān)文章:
C++備考計(jì)算機(jī)二級(jí)模擬練習(xí)題及答案04-29
計(jì)算機(jī)二級(jí)考試《C++》備考練習(xí)題與答案03-01
2017計(jì)算機(jī)二級(jí)C++備考練習(xí)題及答案04-03
2017計(jì)算機(jī)二級(jí)C++備考習(xí)題及答案02-10
2016年計(jì)算機(jī)二級(jí)《C++》備考練習(xí)題及答案07-14
2024年計(jì)算機(jī)二級(jí)C++備考練習(xí)題及答案01-23
計(jì)算機(jī)二級(jí)考試《C++》備考練習(xí)題05-13