2014年全國計(jì)算機(jī)等級《二級C++》考前押密試卷

字號:

一、選擇題(每小題1分,共40分)
    1、關(guān)于運(yùn)算符重載,下列表述中正確的是(  )。
    A.c++已有的任何運(yùn)算符都可以重載
    B.運(yùn)算符函數(shù)的返回類型不能聲明為基本數(shù)據(jù)類型
    C.在類型轉(zhuǎn)換符函數(shù)的定義中不需要聲明返回類型
    D.可以通過運(yùn)算符重載來創(chuàng)建c++中原來沒有的運(yùn)算符
    2、在類的定義中,用于為對象分配內(nèi)存空間,對類的數(shù)據(jù)成員進(jìn)行初始化并執(zhí)行其他內(nèi)部管理操作的函數(shù)是( )。
    A.友元函數(shù)
    B.虛函數(shù)
    C.構(gòu)造函數(shù)
    D.析構(gòu)函數(shù)
    3、軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是( )。
    A.低內(nèi)聚低耦合
    B.高內(nèi)聚低耦合
    C.低內(nèi)聚高耦合
    D.高內(nèi)聚高耦合
    4、如果類A被說明成類B的友元,則( )。
    A.類A的成員即類B的成員
    B.類B的成員即類A的成員
    C.類A的成員函數(shù)不得訪問類B的成員
    D.類B不一定是類A的友元
    5、有如下類定義:
    class Foo
    {
    public:
    Foo(int v):value(V){}//①
    ~Foo(){}//②
    private:
    Foo(){}//③
    int value=0://④
    };
    其中存在語法錯誤的行是( ?。?。
    A.①
    B.②
    C.③
    D.④
    6、下面關(guān)于數(shù)組的描述錯誤的是( )。
    A.在C++語言中數(shù)組的名字就是指向該數(shù)組第一個元素的指針
    B.長度為n的數(shù)組,下標(biāo)的范圍是0~n-1
    C.?dāng)?shù)組的大小必須在編譯時確定
    D.?dāng)?shù)組只能通過值參數(shù)和引用參數(shù)兩種方式傳遞給函數(shù)
    7、運(yùn)算符重載是對已有的運(yùn)算符賦予多重含義,因此( )。
    A.可以對基本類型(如int類型)的數(shù)據(jù),重新定義“+”運(yùn)算符的含義
    B.可以改變一個已有運(yùn)算符的優(yōu)先級和操作數(shù)個數(shù)
    C.只能重載c++中已經(jīng)有的運(yùn)算符,不能定義新運(yùn)算符
    D.C++中已經(jīng)有的所有運(yùn)算符都可以重載
    8、有如下類和對象的定義:
    class Constants{
    public:
    static double getPI(){return 3.1416;}
    };
    Constants constants:
    下列各組語句中,能輸出3.1416的是( )。
    A.cout    D.cout<
    9、 程序流程圖中帶有箭頭的線段表示的是( )。
    A.圖元關(guān)系
    B.?dāng)?shù)據(jù)流
    C.控制流
    D.調(diào)用關(guān)系
    10、下列程序的執(zhí)行結(jié)果為( )。
    #include
    void main()
    {
    int a=3,b=0;
    int*P =&a;
    b=+a++;
    cout<<*P<<”,”< }
    A.3,4
    B.4,3
    C.3,4
    D.4,4
    11、 對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(rt一1)/2的排序方法是( )。
    A.快速排序
    B.冒泡排序
    C.直接插入排序
    D.堆排序
    12、 字面常量42、4.2、42L的數(shù)據(jù)類型分別是(  )。
    A.long,double、int
    B.lon9、float、int
    C.int、double、long
    D.int、float、long
    13、 下列敘述中正確的是( ?。?。
    A.棧是“先進(jìn)先出”的線性表
    B.隊(duì)列是“先進(jìn)后出”的線性表
    C.循環(huán)隊(duì)列是非線性結(jié)構(gòu)
    D.有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)
    14、 不能作為重載函數(shù)的調(diào)用的依據(jù)是( ?。?BR>    A.參數(shù)個數(shù)
    B.參數(shù)類型
    C.函數(shù)類型
    D.函數(shù)名稱
    15、 下列語句中,錯誤的是( ?。?。
    A.const int buffer=256;
    B.const double*point;
    C.int const buffer=256;
    D.double*eonst point:
    16、 下列運(yùn)算符中,在c++語言中不能重載的是( )。
    A.*
    B.>=
    C.::
    D./
    17、 有如下說明:
    int a[10]={1,2,3,4,5,6,7,8,9,10},* P=a; 則數(shù)值為9的表達(dá)式是( )。
    A.*P+9
    B.木(P+8)
    C.*P+=9
    D.P+8
    18、 執(zhí)行下列語句段后,輸出字符“*”的個數(shù)是( )。
    for(int i=50;i>1;i-=2)Cout<<'*':
    A.24
    B.25
    C.26
    D.50
    19、 算法的有窮性是指( )。
    A.算法程序的運(yùn)行時間是有限的
    B.算法程序所處理的數(shù)據(jù)量是有限的
    C.算法程序的長度是有限的
    D.算法只能被有限的用戶使用
    20、 下面關(guān)于break語句的描述中,不正確的是( )。
    A.break可以用于循環(huán)體內(nèi)
    B.break語句可以在for循環(huán)語句中出現(xiàn)多次
    C.break語句可以在switch語句中出現(xiàn)多次
    D.break語句可用于if條件判斷語句內(nèi)
    21、 有如下類定義:
    class Point
    {
    int xx.yy;
    public:
    Point():xx(0),yy(0){}
    Point(int x,int Y=0):xx(X),YY(Y){}
    };
    若執(zhí)行語句
    Point a(2),b[3],幸c[4];
    則Point類的構(gòu)造函數(shù)被調(diào)用的次數(shù)是( ?。?。
    A.2次
    B.3次
    C.4次
    D.5次
    22、 有如下程序:
    #include
    using namespace std;
    class Basel
    {
    public:
    BaseI(int D.{cout< 一Basel(){}
    };
    class Base2
    {
    public:
    Base2(int D.{tout< ~Base2(){}
    };
    class Derived:public Basel,Base2
    {
    public:
    Derived(int a,int b,int c,int D.:Basel(B.,Base2(A.,bl(D.,b2(C.{}
    private:
    int bl:
    int b2:
    };
    int main()
    {
    Derived d(1,2,3,4);
    return 0;
    }
    執(zhí)行這個程序的輸出結(jié)果是( ?。?。
    A.1234
    B.2134
    C.12
    D.21
    23、 以下敘述正確的是( )。
    A.函數(shù)可以嵌套定義但不能嵌套調(diào)用
    B.函數(shù)既可以嵌套調(diào)用也可以嵌套定義
    C.函數(shù)既不可以嵌套定義也不可以嵌套調(diào)用
    D.函數(shù)可以嵌套調(diào)用但不可以嵌套定義
    24、 必須用一對大括號括起來的程序段是( )。
    A.switCh語句中的Case標(biāo)號語句
    B.if語句的分支
    C.循環(huán)語句的循環(huán)體
    D.函數(shù)的函數(shù)體
    25、 軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是( )。
    A.學(xué)生成績管理系統(tǒng)
    B.C語言編譯程序
    C.UNIX操作系統(tǒng)
    D.?dāng)?shù)據(jù)庫管理系統(tǒng)
    26、 下面程序的運(yùn)行結(jié)果為( )。
    #include
    void main()
    {
    for(int a=0,x=0;!x&&a<=10;a++)
    {
    a++:
    }
    cout< }
    A.10
    B.1l
    C.12
    D.0
    27、 有如下程序:
    #include
    using namespace std;
    int i=1;
    class Fun{
    public:
    static int i;
    int value(){return i—l;}
    int value()const{return i+1;}
    };
    int Fun::i=2;
    int main(){
    int i=3;
    Fun funl;
    const Fun fun2:
    __________________
    return 0;
    }
    若程序的輸出結(jié)果是:
    123
    則程序中下畫線處遺漏的語句是( ?。?。
    A.cout    28、 下列有關(guān)模板的敘述中,正確的是( )。
    A.函數(shù)模板不能含有常規(guī)形參
    B.函數(shù)模板的一個實(shí)例就是一個函數(shù)定義
    C.類模板的成員函數(shù)不能是模板函數(shù)
    D.用類模板定義對象時,絕對不能省略模板實(shí)參
    29、 運(yùn)算符重載時不需要保持的性質(zhì)是( )。
    A.操作數(shù)個數(shù)
    B.操作數(shù)類型
    C.優(yōu)先級
    D.結(jié)合性
    30、 下列程序的輸出結(jié)果為( )。
    #include {
    if(n<1)return l;
    else return n+time(n一1); return 0;
    }
    void main() {
    cout< }
    A.0
    B.10
    C.15
    D.16
    31、 有如下程序:
    #include
    using namespace std;
    class MyClass{
    public:
    MyClass(int i=0){cout<<1;}
    MyClass(const MyClass&x){cout<<2;}
    MyClass&operator=(const MyClass&x){cout<<3;retum$this;}
    ~MyClass()}cout<<4;}
    };
    int main()
    {
    MyClass objl(1),obj2(2),obj3(objl);
    retum 0;
    {
    執(zhí)行這個程序的輸出結(jié)果是( )。
    A.112444
    B.11114444
    C.121444
    D.11314444
    32、 在下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是( )。
    A.外模式
    B.內(nèi)模式
    C.概念模式
    D.邏輯模式
    33、 有如下程序:
    #inClude using namespaCe std; Class Base{
    publiC:
    void output(){Cout<<1;}
    virtual void Print(){Cout<<'B’;} };
    Class Derived:publiC Base{ publiC:
    void output(){Cout<<2;} void Print(){Cout<<’D ';} };
    int main() {
    Base * ptr=new Derived; ptr一>output();
    ptr一>Print(); delete ptr;
    retum0; }
    執(zhí)行這個程序的輸出結(jié)果是( )。
    A.1B
    B.lD
    C.2B
    D.2D
    34、以下程序中,錯誤的行為是( )。
    ①#include
    ②class A
    ③{
    ④public:
     ⑤ int n=2;
    ⑥ A(int val){cout< ⑦ -A(){};
    ⑧};
    ⑨void main() ⑩{
    ? A a(0);
    ?}
    A.⑤
    B.⑥
    C.⑦
    D.?
    35、 下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是( )。
    A.循環(huán)隊(duì)列
    B.帶鏈隊(duì)列
    C.二叉樹
    D.帶鏈棧
    36、 有如下程序:
    #inClude using namespaCe std; Class A{
    publiC:
    statiC int a;
    void init( ?。﹞。a=1;}
    A(int a=2){init( ?。?;a++;} };
    int A::a:0: A obj;
    int main( ?。?{
    Cout< }
    運(yùn)行時輸出的結(jié)果是( ?。?BR>    A.0
    B.1
    C.2
    D.3
    38、 秘序調(diào)試的任務(wù)是( )。
    A.設(shè)計(jì)測試用例
    B.驗(yàn)證程序的正確性
    C.發(fā)現(xiàn)程序中的錯誤
    D.診斷和改正程序中的錯誤
    39、 有如下程序:
    #include
    using namespace std;
    class A{
    public:
    virtual void fancl(){cout<<”Al”;}
    void func2(){cout<<”A2”;}
    };
    class B:public A{
    public:
    void funcI(){tout<<”Bl”;}
    void func2(){tout<<”B2”;}
    };
    intmain()}
    A*P=new B:
    P—>funcl();
    P—>func2();
    delete p;
    return 0;
    }
    執(zhí)行這個程序的輸出結(jié)果是( ?。?。
    A.B182
    B.A1A2
    C.B1A2
    D.AIB2
    40、 下列字符串中。不可以用做c++標(biāo)識符的是( ?。?。
    A.y_2006
    B._EST_H
    C.Return
    D.switch