2015年計算機(jī)二級《C++》上機(jī)考試練習(xí)選擇題

字號:

一、選擇題(每小題1分,共40分)
    1、有如下程序:
    #include
    using namespace std;
    class Base{
    protected:
    Base(){cout<<’A’;}
    Base(char C){cout< };
    class Derived:public Base{
    public:
    Derived(char C){tout< };
    int main(){
    Derived dl(’B’);
    retum 0;
    }
    執(zhí)行這個程序的輸出結(jié)果是(  )。
    A.B
    B.BA
    C.AB
    D.BB
    2、下列符號中能夠作為C++標(biāo)識符的是( )。
    A.Coflst
    B.2a
    C._shape
    D..Count
    3、有如下程序:
    #include
    using namespace std;
    class Base
    {
    private:
    void funl()const{tout<<”funl”;}
    protected:
    void fun2()const{tout<<”fun2”;}
    public:
    void fun3()const{cout<<”fhll3”;}
    };
    class Derived:protected Base
    {
    public:
    void fhn4()const{cout<<”filn4”;}
    };
    int main()
    {
    Derived obj;
    obj.funl();//①
    obj.fun2();//②
    obj.furd();//③
    obj.fun4();//④
    return U:
    }
    其中有語法錯誤的語句是( ?。?。
    A.①②③④
    B.①②③
    C.②③④
    D.①④
    4、有如下程序:
    #include
    using namespace std;
    class Instrument{
    public:
    virtual void Display()=0;
    };
    class Pian0:public Instrument}
    public:
    void Display(){/*函數(shù)體略*/}
    };
    intmain(){
    Instrument S;
    Instrument*P=0:
    //…;
    return 0;
    }
    下列敘述中正確的是( ?。?。
    A.語句“Insturment*P=0;”編譯時出錯
    B.語句“Instnunent s;”編譯時出錯
    C.類Pian0中的Display函數(shù)不是虛函數(shù)
    D.類Instrument是一個虛基類
    5、如下函數(shù)模板:
    templateT square(T x){return x*x;} 其中T是( ?。?。
    A.函數(shù)形參
    B.函數(shù)實參
    C.模板形參
    D.模板實參
    6、為了提高函數(shù)調(diào)用的實際運行速度,可以將較簡單的函數(shù)定義為( )。
    A.內(nèi)聯(lián)函數(shù)
    B.重載函數(shù)
    C.遞歸函數(shù)
    D.函數(shù)模板
    7、有如下程序:
    #inClude using namespaCe std; Class Point{
    publiC:
    statiC int number;
    publiC:
    Point( ?。﹖.number++;} ~Point( ?。﹞number--;}
    }; , int P0int::number=0;
    int main( ?。﹞
    Point *ptr:
    Point A,B; Point*ptr_point=new Point[3]; ptr=ptr_point;’
    }
    Point C;
    Cout< return 0; }
    執(zhí)行這個程序的輸出結(jié)果是( ?。?。
    A.3
    B.4
    C.6
    D.7
    8、有三個關(guān)系R、S和T如下.
    由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為( )。
    A.并
    B.自然連接
    C.笛卡爾積
    D.交
    9、下列符號中,正確的c++標(biāo)識符是( )。
    A.enum
    B.2b
    C.f00一9
    D._32
    10、下列關(guān)于C++預(yù)定義流對象的敘述中,正確的是( )。
    A.Cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對象
    B.Cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類
    C.Cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對象
    D.Cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類
    11、 下列情況中,不會調(diào)用拷貝構(gòu)造函數(shù)的是(  )。
    A.用一個對象去初始化同一類的另一個新對象時
    B.將類的一個對象賦值給該類的另一個對象時
    C.函數(shù)的形參是類的對象,調(diào)用函數(shù)進(jìn)行形參和實參結(jié)合時
    D.函數(shù)的返回值是類的對象,函數(shù)執(zhí)行返回調(diào)用時
    12、 下列敘述中正確的是( )。
    A.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)所需要的存儲空間是相同的
    B.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要多于順序存儲結(jié)構(gòu)
    C.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要少于順序存儲結(jié)構(gòu)
    D.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)在存儲空間的需求上沒有可比性
    13、 類的析構(gòu)函數(shù)的作用是( )。
    A.一般成員函數(shù)的初始化
    B.類的初始化
    C.對象的初始化
    D.刪除類創(chuàng)建的對象
    14、 下列運算符不能重載為友元函數(shù)的是( )。
    A.=()( )->
    B. + - ++ --
    C.> < >= <=
    D.+= -= *=/=
    15、 下面關(guān)于運算符重載的描述錯誤的是( )。
    A.運算符重載不能改變操作數(shù)的個數(shù)、運算符的優(yōu)先級、運算符的結(jié)合性和運算符的語法結(jié)構(gòu)
    B.不是所有的運算符都可以進(jìn)行重載
    C.運算符函數(shù)的調(diào)用必須使用關(guān)鍵字operat。
    D.在C+十語言中不可通過運算符重載創(chuàng)造出新的運算符
    16、 當(dāng)使用fstream流類定義一個流對象并打開一個磁盤文件時,文件的隱含打開方式為( )。
    A.ios::in
    B.ios::0ut
    C.ios::in I ios::0ut
    D.以上都不對
    17、 由于常對象不能被更新,因此( )。
    A.通過常對象只能調(diào)用它的常成員函數(shù)
    B.通過常對象只能調(diào)用靜態(tài)成員函數(shù)
    C.常對象的成員都是常成員
    D.通過常對象可以調(diào)用任何不改變對象值的成員函數(shù)
    18、 支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是( ?。?BR>    A.棧
    B.樹
    C.隊列
    D.二叉樹
    19、 有如下類定義:
    class B
    {
    public:void funl(){}
    private:void fun2(){}
    protected:void fun3(){}
    };
    class D:public B
    j
    protected:void fun4(){}
    };
    若obj是類D的對象,則下列語句中不違反訪問控制權(quán)限的是( ?。?BR>    A.obj.fun1();
    B.obj.fun2();
    C.obj.tim3();
    D.ohj.fun4();
    20、 有如下語句序列:
    Char str[10];Cin>>str;
    當(dāng)從鍵盤輸入“I love this game”時,str中的字符串是( )。
    A.”I love this game”
    B.”I love thi”
    C.”I love”
    D.”I”
    21、 繼承機(jī)制的作用是( )。
    A.信息隱藏
    B.?dāng)?shù)據(jù)封裝
    C.定義新類
    D.?dāng)?shù)據(jù)抽象
    22、 模板對類型的參數(shù)化提供了很好的支持,因此( ?。?。
    A.類模板的主要作用是生成抽象類
    B.類模板實例化時,編譯器將根據(jù)給出的模板實參生成一個類
    C.在類模板中的數(shù)據(jù)成員都具有同樣類型
    D.類模板中的成員函數(shù)都沒有返回值
    23、if語句的語法格式可描述為:
    格式l:if(<條件>)<語句>
    或
    格式2:if(<條件>)<語句l>
    else<語句2>
    關(guān)于上面的語法格式,下列表述中錯誤的是( ?。?BR>    A.<條件>部分可以是一個if語句,例如if(if(a==0)…)…
    B.<語句>部分可以是一個if語句,例如if(…)if(…)…
    C.如果在<條件>前加上邏輯非運算符!并交換<語句l>和<語句2>的位置,語句功能不變
    D.<語句>部分可以是一個循環(huán)語句,例如if(…)while(…)…
    24、 下面的程序中,錯誤的語句是(  )。
    ①#inClude
    ②void main()
    ③{
    ④ int *p=new int[1];
    ⑧P=9;
    ⑥cout<<.*P< ⑦delete[]p;
    ⑧}
    A.④
    B.⑤
    C.⑥
    D.⑦
    25、 下面有關(guān)for循環(huán)的正確描述是( )。
    A.for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況
    B.for循環(huán)是先執(zhí)行循環(huán)體語句,后判斷表達(dá)式
    C.在for循環(huán)中,不能用break語句跳出循環(huán)體
    D.在for循環(huán)的循環(huán)體語句中,可以包含多條語句,但必須用花括號括起來
    26、 下列敘述中正確的是( )。
    A.算法就是程序
    B.設(shè)計算法時只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計
    C.設(shè)計算法時只需要考慮結(jié)果的可靠性
    D.以上三種說法都不對
    27、 由于常對象不能被更新,因此(  )。
    A.通過常對象只能調(diào)用它的常成員函數(shù)
    B.通過常對象只能調(diào)用靜態(tài)成員函數(shù)
    C.常對象的成員都是常成員
    D.通過常對象可以調(diào)用任何不改變對象值的成員函數(shù)
    28、 有如下程序:
    #include
    using namespace std;
    class MyClass{
    public:
    MyClass(){cout<<’A’;}
    MyClass(char C.{cout< ~MyClass(){cout<<’B’;}
    };
    int main(){
    MyClass pl,+p2;
    p2=new MyClass(’X’);
    delete p2;
    return 0;
    }
    執(zhí)行這個程序的輸出結(jié)果是(  )。
    A.ABX
    B.ABXB
    C.AXB
    D.AXBB
    29、有如下程序:
    #include
    using namespace std;
    class Pair{
    int m,n;
    public:
    Pair(int j,int k):m(j),n(k){}
    int get(){return m;}
    int get()const{return m+n;}
    };
    int main(){
    Pair a(3,5);
    const Pair b(3,5);
    tout< return U:
    }
    執(zhí)行這個程序的輸出結(jié)果是(  )。
    A.33
    B.38
    C.83
    D.88
    30、 執(zhí)行下列語句段后,輸出字符“*”的個數(shù)是(  )。
    for(int i=50;i>1;--i) Cout<<'*':
    A.48
    B.49
    C.50
    D.51
    31、 有三個關(guān)系R、S和T如下:
    則由關(guān)系R和S得到關(guān)系T的操作是( )。
    A.自然連接
    B.交
    C.投影
    D.并
    32、 軟件測試的目的是( )。
    A.評估軟件可靠性
    B.發(fā)現(xiàn)并改正程序中的錯誤
    C.改正程序中的錯誤
    D.發(fā)現(xiàn)程序中的錯誤
    33、 軟件設(shè)計中劃分模塊的一個準(zhǔn)則是( )。
    A.低內(nèi)聚低耦合
    B.高內(nèi)聚低耦合
    C.低內(nèi)聚高耦合
    D.高內(nèi)聚高耦合
    34、 下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是( )。
    A.循環(huán)隊列
    B.棧
    C.隊列
    D.二叉樹
    35、 有如下程序:
    #inClude using namespaCe std; Class Base{
    publiC:
    Base(int x=0){Cout< Class Derived:publiC Base{ publiC:
    Derived(int X=0){Cout< Base val; };
    int main() {
    Derived d(1); return 0;
    }
    執(zhí)行這個程序的輸出結(jié)果是( )。
    A.0
    B.1
    C.01
    D.001
    36、 已知Value是一個類,value是Value的一個對象。下列以非成員函數(shù)形式重載的運算符函數(shù)原型中,正確的是( )。
    A.Value operator+(Value v,int i);
    B.Value operator+(Value v=value,int i);
    C.Value operator+(Value v,inl:i=0):
    D.Value operator+(Value v=vallle,int i=0);
    37、 有如下程序段:
    int i=0,J=1;
    nt&r=i;//④ ’ r=j;//②
    int * P=&i;//③ * P=&r;//④
    其中會產(chǎn)生編譯錯誤的語句是(  )。
    A.④
    B.③
    C.②
    D.①
    38、 有如下程序:
    ﹟nclude
    using namespace std;
    int main()
    {
    int*P;
    *P=9:
    cout<<”The value at p:”<< *p;
    return 0;
    }
    編譯運行程序?qū)⒊霈F(xiàn)的情況是( )。
    A.編譯時出現(xiàn)語法錯誤,不能生成可執(zhí)行文件
    B.運行時一定輸出:l'lle value at P:9
    C.運行時一定輸出:llle value at P:*9
    D.運行時有可能出錯
    39、 在軟件設(shè)計中不使用的工具是( )。
    A.系統(tǒng)結(jié)構(gòu)圖
    B.PAD圖
    C.?dāng)?shù)據(jù)流圖(DFD圖)
    D.程序流程圖
    40、 C++中的模板包括( ?。?。
    A.對象模板和函數(shù)模板
    B.對象模板和類模板
    C.函數(shù)模板和類模板
    D.變量模板和對象模板