2017上半年計(jì)算機(jī)二級(jí)C++考前練習(xí)題及答案(3)

字號(hào):

選擇題
    1.數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)的一門(mén)學(xué)科,主要研究數(shù)據(jù)邏輯結(jié)構(gòu)、對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行運(yùn)算,及( )
    A.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)
    B.計(jì)算方法
    C.數(shù)據(jù)映象
    D.邏輯存儲(chǔ)
    【參考答案】 A
    2.在計(jì)算機(jī)中,算法是指( )
    A.加工方法
    B.解題方案的準(zhǔn)確而完整的描述
    C.排序方法
    D.查詢方法
    【參考答案】 B
    3.開(kāi)發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象稱做( )
    A.軟件投機(jī)
    B.軟件危機(jī)
    C.軟件工程
    D.軟件產(chǎn)生
    【參考答案】 B
    4.開(kāi)發(fā)大型軟件時(shí),產(chǎn)生困難的根本原因是( )
    A.大系統(tǒng)的復(fù)雜性
    B.人員知識(shí)不足
    C.客觀世界千變?nèi)f化
    D.時(shí)間緊、任務(wù)重
    【參考答案】 A
    5.數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)之間的關(guān)系是( )
    A.數(shù)據(jù)庫(kù)包括數(shù)據(jù)庫(kù)系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)
    B.數(shù)據(jù)庫(kù)系統(tǒng)包括數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)管理系統(tǒng)
    C.數(shù)據(jù)庫(kù)管理系統(tǒng)包括數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)系統(tǒng)
    D.3者沒(méi)有明顯的包含關(guān)系
    【參考答案】 B
    綜合應(yīng)用題
    使用VC6打開(kāi)考生文件夾下的工程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)谧⑨尅?/**1**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
    (2)為類Circle增加一個(gè)成員函數(shù)print(  ),使得可以輸出有關(guān)圓的信息,比如下列程序
    Circlec;
    c.SetRadius(5);
    c.Print(  );
    將輸出:Thecirclehasradiusof5!
    請(qǐng)?jiān)谧⑨尅?/**2**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
    (3)完成友元函數(shù)voidCompareR(Circle*c1,Circle*c2)的定義,在屏幕中輸出c1與c2比較radius大小結(jié)果,要求使用if-else結(jié)構(gòu)完成。請(qǐng)?jiān)谧⑨尅?/**3**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
    輸出結(jié)果如下:
    Thecirclehasradusof5!
    Thecirclehasradiusof10!
    c1
    注意:除在指定位置添加語(yǔ)句之外,請(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分支語(yǔ)句等知識(shí)點(diǎn)。友元函數(shù)的類體外的定義與一般函數(shù)一樣,其中if-else的使用,else總是與其最近的那個(gè)if配對(duì)使用的,書(shū)寫(xiě)時(shí)使用縮進(jìn)格式,將配對(duì)的if-else對(duì)齊,以免出錯(cuò)。