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

字號(hào):

一、選擇題(每小題1分,共40分)
    1、下列排序方法中,最壞情況下比較次數(shù)最少的是(  )。
    A.冒泡排序
    B.簡(jiǎn)單選擇排序
    C.直接插入排序
    D.堆排序
    2、下面程序的運(yùn)行結(jié)果為( )。
    #include
    class A
    {
    public:
    A(){tout<<”1”;}
    ~A(){tout<<”2”;}
    };
    class B:public A
    {
    public:
    B(){cout<<”3”;}
    ~B(){cout<<”4”;}
    };
    void main()
    {
    B b;
    }
    A.1234
    B.1324
    C.1342
    D.3142
    3、以下程序中調(diào)用cin函數(shù)給變量a輸入數(shù)值的方法是錯(cuò)誤的,其錯(cuò)誤原因是( )。
    #include
    void main()
    {int * P,* q,a,b;
    P=&a:
    eout<<”input a:”;
    cin>>P:
    A.* P表示的是指針變量P的地址
    B.P表示的是變量a的地址,而不是變量a的值
    C.*P表示的是指針變量P的值
    D.*P只能用來說明P是一個(gè)指針變量
    4、與語(yǔ)句coutB.cout<<‘\l2’:
    C.cout <<’\xA’;
    D.cout<<‘\0’:
    5、如果表達(dá)式x * y+z中,“*”是作為友元函數(shù)重載的,“+”是作為成員函數(shù)重載的,則該表達(dá)式還可為 ( )。
    A.operator+(operator$(X,Y),z)
    B.x.operator+(operator * (x,y),Z)
    C.Y.operator * (operator+(x,Y),z)
    D.x.operator+(operator{(X,Y))
    6、在下列關(guān)鍵字中,不能用來表示繼承方式的是( )。
    A.private
    B.static
    C.public
    D.protected
    7、下面的( ?。┻x項(xiàng)不能作為函數(shù)的返回類型。
    A.void
    B.int
    C.new
    D.long
    8、有如下函數(shù)定義:
    void funC(int a,int&B.{a++;b++;} 若執(zhí)行代碼段:
    int x=0,Y=1: funC(X,y);
    則變量X和y的值分別是( )。
    A.0和1
    B.1和1
    C.0和2
    D.1和2
    9、定義無(wú)符號(hào)整數(shù)類為UInt,下面可以作.為類UInt實(shí)例化值的是( )。
    A.一369
    B.369
    C.0.369
    D.整數(shù)集合{1,2,3,4,5}
    10、下列關(guān)于類定義的說法中,正確的是( ?。?BR>    A.類定義中包括數(shù)據(jù)成員和函數(shù)成員的聲明
    B.類成員的缺省訪問權(quán)限是保護(hù)的
    C.?dāng)?shù)據(jù)成員必須被聲明為私有的
    D.成員函數(shù)只能在類體外進(jìn)行定義
    11、 有如下程序:
    #nclude
    using namespace std;
    int main()
    {
    void function(double val);
    double val;
    function(val);
    cout< return 0;
    }
    void function(double val)
    } val=3;}
    編譯運(yùn)行這個(gè)程序?qū)⒊霈F(xiàn)的情況是(  )。
    A.編譯出錯(cuò),無(wú)法運(yùn)行
    B.輸出:3
    C.輸出:3.0
    D.輸出一個(gè)不確定的數(shù)
    12、 this指針是C++語(yǔ)言實(shí)現(xiàn)( )的一種機(jī)制。
    A.抽象
    B.封裝
    C.繼承
    D.重載
    13、 下面關(guān)于虛函數(shù)的描述,錯(cuò)誤的是( )。
    A.在成員函數(shù)聲明的前面加上virtual修飾,就可把該函數(shù)聲明為虛函數(shù)
    B.基類中說明了虛函數(shù)后,派生類中對(duì)應(yīng)的函數(shù)也必須說明為虛數(shù)
    C.虛函數(shù)可以是另一個(gè)類的友元函數(shù),但不能是靜態(tài)成員函數(shù)
    D.基類中說明的純虛函數(shù)在其任何派生類中都必須實(shí)現(xiàn)
    14、 有如下程序:
    #include
    using namespaee std;
    int main()
    {
    void function(double val);
    double val:
    function(val);
    eout< return 0;
    }
    void function(double val)
    {
    val=3;
    }
    編譯運(yùn)行這個(gè)程序?qū)⒊霈F(xiàn)的情況是( )。
    A.編譯出錯(cuò),無(wú)法運(yùn)行
    B.輸出:3
    C.輸出:3.0
    D.輸出一個(gè)不確定的數(shù)
    15、 面向?qū)ο蠓椒ㄖ?,繼承是指( )。
    A.一組對(duì)象所具有的相似性質(zhì)
    B.一個(gè)對(duì)象具有另一個(gè)對(duì)象的性質(zhì)
    C.各對(duì)象之間的共同性質(zhì)
    D.類之間共享屬性和操作的機(jī)制
    16、 下列程序的運(yùn)行結(jié)果為( )。 #include
    void main() {
    int a=2:
    int b=a+1: coutB.0
    C.0.7
    D.0.66666666…
    17、 有如下定義:
    int a[5]={1,3,5,7,9},* P=a;
    下列表達(dá)式中不能得到數(shù)值5的是( )。
    A.a(chǎn)[2]
    B.a(chǎn)[3]
    C.*(P+2)
    D.+P+4
    18、 C++系統(tǒng)預(yù)定義了4個(gè)用于標(biāo)準(zhǔn)數(shù)據(jù)流的對(duì)象,下列選項(xiàng)中不屬于此類對(duì)象的是( )。
    A.cout
    B.cin
    C.cerr
    D.cset
    19、 有如下程序:
    #include
    using namespace std;
    class GA{
    public:
    virtual int f()t retum l;}
    };
    class GB:public GA{
    public:
    virtual int f(){retum 2;}
    };
    void show(GA g){eout<<9.f();}
    void display(GA&g){cout<<9.f();}
    int main()
    {
    GA a;show(A.;display(A.;
    GB b;show(B.;display(B.;
    return 0;
    }
    執(zhí)行這個(gè)程序的輸出結(jié)果是( )。
    A.1111
    B.1211
    C.1112
    D.1212
    20、 下列敘述中正確的是( )。
    A.有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)
    B.只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)
    C.循環(huán)鏈表是非線性結(jié)構(gòu)
    D.雙向鏈表是非線性結(jié)構(gòu)
    21、 下列關(guān)于虛函數(shù)的說明中,正確的是( ?。?。
    A.從虛基類繼承的函數(shù)都是虛函數(shù)
    B.虛函數(shù)不得是靜態(tài)成員函數(shù)
    C.只能通過指針或引用調(diào)用虛函數(shù)
    D.抽象類中的成員函數(shù)都是虛函數(shù)
    22、 某二叉樹共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有l(wèi)個(gè),則該二叉樹的深度為(假設(shè)根結(jié)點(diǎn)在第1層)( )。
    A.3
    B.4
    C.6
    D.7
    23、 在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將E~R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于( )。
    A.需求分析階段
    B.概念設(shè)計(jì)階段
    C.邏輯設(shè)計(jì)階段
    D.物理設(shè)計(jì)階段
    24、 下列關(guān)于類模板的模板參數(shù)的敘述中,錯(cuò)誤的是( )。
    A.模板參數(shù)可以作為數(shù)據(jù)成員的類型
    B.模板參數(shù)可以作為成員函數(shù)的返回類型
    C.模板參數(shù)可以作為成員函數(shù)的參數(shù)類型
    D.模板參數(shù)不能作為成員函數(shù)的局部變量的類型
    25、 在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是( )。
    A.可行性分析報(bào)告
    B.軟件需求規(guī)格說明書
    C.概要沒計(jì)說明書
    D.集成測(cè)試計(jì)劃
    26、 下面關(guān)于模板的描述,錯(cuò)誤的是( )。
    A.函數(shù)模板和類模板的參數(shù)可以是任意的數(shù)據(jù)類型
    B.類模板不能直接使用,必須先實(shí)例化為相應(yīng)的模板類,然后定義了模板類的對(duì)象后才能使用
    C.函數(shù)模板不能直接使用,需要實(shí)例化為模板函數(shù)后才能使用
    D.類模板的成員函數(shù)都是模板函數(shù)
    27、 數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式不包括( )。
    A.概念模式
    B.內(nèi)模式
    C.外模式
    D.?dāng)?shù)據(jù)模式
    28、下列語(yǔ)句中不是死循環(huán)的是( )。
    A.int i=10;
    B.for(int i=1;j<10;i++)
    while(1) {
    { i--; i--; }
    if(i==1)break;
    C.int i-0;
    D.int i=1:
    29、 為了取代c中帶參數(shù)的宏,在c++中使用( ?。?BR>    A.重載函數(shù)
    B.內(nèi)聯(lián)函數(shù)
    C.遞歸函數(shù)
    D.友元函數(shù)
    30、 C++語(yǔ)言對(duì)C語(yǔ)言做了很多改進(jìn),C++語(yǔ)言相對(duì)于C語(yǔ)言的最根本的變化是( )。
    A.增加了一些新的運(yùn)算符
    B.允許函數(shù)重載,并允許設(shè)置默認(rèn)參數(shù)
    C.規(guī)定函數(shù)說明符必須用原型
    D.引進(jìn)了類和對(duì)象的概念
    31、 派生類的成員函數(shù)不能訪問基類的(  )。
    A.公有成員和保護(hù)成員
    B.公有成員
    C.私有成員
    D.保護(hù)成員
    32、下列代碼段中聲明了3個(gè)類:
    Class Person{};
    Class Student:publiC Person{};
    Class Undergraduate:Student{};
    下列關(guān)于這些類之間關(guān)系的描述中,錯(cuò)誤的是( )。
    A.類Person是類Undergraduate的基類
    B.類Undergraduate從類Student公有繼承
    C.類Student是類Person的派生類
    D.類Undergraduate是類Person的派生類
    33、 若有下面的函數(shù)調(diào)用:
    fun(fl+b,3,max(n一1,B.)
    則fun的實(shí)參個(gè)數(shù)是( ?。?。
    A.3
    B.4
    C.5
    D.6
    34、 有如下兩個(gè)類定義:
    class XX{
    private:
    double xl;
    protected:
    double x2;
    public:
    double x3;
    };
    class YY:protected XX{
    private:
    double yl;
    protected:
    double y2;
    public:
    double y3;
    在類YY中保護(hù)成員變量的個(gè)數(shù)是( )。
    A.1
    B.2
    C.3
    D.4
    35、 下列關(guān)于運(yùn)算符重載的描述中,正確的是( )。
    A.運(yùn)算符重載為成員函數(shù)時(shí),若參數(shù)表中無(wú)參數(shù),重載的是一元運(yùn)算符
    B.一元運(yùn)算符只能作為成員函數(shù)重載
    C.二元運(yùn)算符重載為非成員函數(shù)時(shí),參數(shù)表中有一個(gè)參數(shù)
    D.C++中可以重載所有的運(yùn)算符
    36、 建立派生類對(duì)象時(shí),3種構(gòu)造函數(shù)分別是a(基類的構(gòu)造函數(shù))、b(成員對(duì)象的構(gòu)造函數(shù))、C(派生類)構(gòu)造函數(shù)),這3種構(gòu)造函數(shù)的調(diào)用順序?yàn)? )。
    A.a(chǎn)bC
    B.a(chǎn)Cb
    C.Cab
    D.Cba
    37、 在下列枚舉符號(hào)中,用來表示“相對(duì)于當(dāng)前位置”文件定位方式的是(  )。
    A.ios_base::cur
    B.ios—base::beg
    C.los_base::0ut
    D.ios—base::end
    38、 當(dāng)使用ifstream流類定義一個(gè)流對(duì)象并打開一個(gè)磁盤文件時(shí),文件的默認(rèn)打開方式為( ?。?。
    A.ios—base::in
    B.ios—base::in l ios base::0ut
    C.los base;:0ut
    D.ios_base::in&ios_base::0ut
    39、 下列有關(guān)運(yùn)算符重載的敘述中,正確的是( ?。?。
    A.運(yùn)算符重載是多態(tài)性的一種表現(xiàn)
    B.C++中可以通過運(yùn)算符重載創(chuàng)造新的運(yùn)算符
    C.C++中所有運(yùn)算符都可以作為非成員函數(shù)重載
    D.重載運(yùn)算符時(shí)可以改變其結(jié)合性
    40、 必須用一對(duì)大括號(hào)括起來的程序段是( ?。?。
    A.switCh語(yǔ)句中的ease標(biāo)號(hào)語(yǔ)句
    B.if語(yǔ)句的分支
    C.循環(huán)語(yǔ)句的循環(huán)體
    D.函數(shù)的函數(shù)體