2016年計算機(jī)二級考試C++模擬練習(xí)題及答案

字號:

1[填空題]使用class定義的表中,成員的默認(rèn)訪問權(quán)限是 (1) 的;由struct定義的類中,成員的默認(rèn)的訪問權(quán)限是 (2) 的。
    參考答案:(1)私有、(2)公有
    2[單選題]數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,(  )沒有專門的軟件對數(shù)據(jù)進(jìn)行管理。
    Ⅰ.人工管理階段 Ⅱ.文件系統(tǒng)階段 Ⅲ.數(shù)據(jù)庫階段
    A.僅ⅠB.僅ⅢC.Ⅰ和ⅡD.Ⅱ和Ⅲ
    參考答案:A
    參考解析:數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,只有人工管理階段,沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。在文件系統(tǒng)階段,操作系統(tǒng)中已經(jīng)有了專門數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。在數(shù)據(jù)庫系統(tǒng)階段,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng),即數(shù)據(jù)庫管理系統(tǒng)。
    3[單選題]下列關(guān)于類和對象的敘述中,錯誤的是(  )
    A.一個類只能有一個對象
    B.對象是類的具體實例
    C.類是對某一類對象的抽象
    D.類和對象的關(guān)系是一種數(shù)據(jù)類型與變量的關(guān)系
    參考答案:A
    4[單選題] 下列說法正確的是(  )。
    A.內(nèi)聯(lián)函數(shù)在運行時將該函數(shù)的目標(biāo)代碼插入每個調(diào)用該函數(shù)的地方
    B.內(nèi)聯(lián)函數(shù)在編譯時將該函數(shù)的目標(biāo)代碼插入每個調(diào)用該函數(shù)的地方
    C.類的內(nèi)聯(lián)函數(shù)必須在類體內(nèi)定義
    D.類的內(nèi)聯(lián)函數(shù)必須在類體外通過加關(guān)鍵字inline定義
    參考答案:B
    參考解析:本題考查的是內(nèi)聯(lián)函數(shù)的定義,引入內(nèi)聯(lián)函數(shù)是為了解決程序中函數(shù)調(diào)用的效率問題,是以目標(biāo)代碼的增加為代價換取時間的節(jié)省;一般函數(shù)在運行時被調(diào)用,而調(diào)用的內(nèi)聯(lián)函數(shù)在編譯時就被替代了,如果不加in-line關(guān)鍵字,則編譯器會將在類說明部分定義的任何函數(shù)都被認(rèn)定為內(nèi)聯(lián)函數(shù)。
    5[單選題]
    參考答案:B
    6[單選題] 將x+y*z中的“+”用成員函數(shù)重載,“*”是友元函數(shù)重載應(yīng)寫為(  )。
    A.operator+(operator*(y,z))
    B.x.operator+(operator*(y,z))
    C.x.operator+(X*(y,z))
    D.x+(operator*(y,z))
    參考答案:B
    參考解析:在定義了重載運算符后的函數(shù)后,函數(shù)operator+重載了運算符“+”。如果在類以外的其他地方定義了一個函數(shù),在類體中用friend對該函數(shù)進(jìn)行聲明,此函數(shù)就稱為本類的友元函數(shù)?!?”用友元函數(shù)重載就是運算符函數(shù)不作為成員函數(shù),而把它放在類外,“*”被改寫為“operator*”。“+”為成員函數(shù)重載,X.operator+。所以“x+y*z”被改寫為“x.operator+(operator*(y,z))”。
    7[單選題]對于類定義:
    classA{
    public:
    virtualvoidfuncl(){}
    voidfunc2(){}
    };
    classB:publicA{
    public:
    voidfuncl(){cout<<"classBfunc1"<
    virtualvoidfunc2(){cout<<"classBfunc2"
    <
    };
    下面正確的敘述是(  )。
    A.A::func2(  )和B::func1(  )都是虛函數(shù)
    B.A::rune2(  )和B::func1(  )都不是虛函數(shù)
    C.B::func1(  )是虛函數(shù),而A::fune2(  )不是虛函數(shù)
    D.B::func1(  )不是虛函數(shù),而A::func2(  )是虛函數(shù)
    參考答案:C
    參考解析:基類中說明的虛函數(shù),在派生類中自然就是虛函數(shù),所以類B中funcl()是虛函數(shù);而類A中的func2()沒有被關(guān)鍵字virtual修飾;所以不是虛函數(shù)。
    8[單選題] 軟件詳細(xì)設(shè)計產(chǎn)生的圖如下:
    該圖是( )。
    A.N—S圖B.PAD圖C.程序流程圖D.E—R圖
    參考答案:C
    參考解析:N—S圖提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,所以A不對。PAD圖是問題分析圖,它是繼承程序流程圖和方框圖之后提出的又一種主要用于描述軟件詳細(xì)設(shè)計的圖形表示工具,所以B不對。E—R圖是數(shù)據(jù)庫中的用于表示E—R模型的圖示工具,所以D不對。根據(jù)圖中所示表示方法是進(jìn)行軟件詳細(xì)設(shè)計時使用的程序流程圖。
    9[單選題] 設(shè)int a=1,b=2;,則(a++)+b和a+++b這兩個表達(dá)式的值分別為( )。
    A.3,3B.3,4C.4,3D.4,4
    參考答案:A
    參考解析:單目的++運算優(yōu)先級高于雙目的+運算,不過++的結(jié)合性是自右向左的,而+是自左向右的,所以上面的兩個表達(dá)式都是先計算a+b的值之后,a再自加1。