2012年3月全國計算機(jī)等級考試 二級C++ 筆試模擬試題(五)

字號:


    一、選擇題
    在下列各題的A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
    (1)算法的空間復(fù)雜度是指
    A)算法程序的長度
    B)算法程序中的指令條數(shù)
    C)算法程序所占的存儲空間
    D)執(zhí)行過程中所需要的存儲空間
    (2)用鏈表表示線性表的優(yōu)點是
    A)便于隨機(jī)存取
    B)花費的存儲空間較順序存儲少
    C)便于插入和刪除操作
    D)數(shù)據(jù)元素的物理順序與邏輯順序相同
    (3)數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機(jī)無關(guān)的是數(shù)據(jù)的
    A)存儲結(jié)構(gòu)
    B)物理結(jié)構(gòu)
    C)邏輯結(jié)構(gòu)
    D)物理和存儲結(jié)構(gòu)
    (4)結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的是
    A)程序的規(guī)模
    B)程序的效率
    C)程序設(shè)計語言的先進(jìn)性
    D)程序易讀性
    (5)軟件設(shè)計包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計,其中軟件的過程設(shè)計是指
    A)模塊間的關(guān)系
    B)系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述
    C)軟件層次結(jié)構(gòu)
    D)軟件開發(fā)過程
    (6)檢查軟件產(chǎn)品是否符合需求定義的過程稱為
    A)確認(rèn)測試
    B)集成測試
    C)驗證測試
    D)驗收測試
    (7)數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是
    A)控制流
    B)加工
    C)數(shù)據(jù)存儲
    D)源和潭
    (8)應(yīng)用數(shù)據(jù)庫的主要目的是
    A)解決數(shù)據(jù)保密問題
    B)解決數(shù)據(jù)完整性問題
    C)解決數(shù)據(jù)共享問題
    D)解決數(shù)據(jù)量大的問題
    (9)在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于
    A)需求分析階段
    B)邏輯設(shè)計階段
    C)概念設(shè)計階段
    D)物理設(shè)計階段
    (10)在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性的階段是
    A)數(shù)據(jù)庫系統(tǒng)
    B)文件系統(tǒng)
    C)人工管理
    D)數(shù)據(jù)項管理
     ?。?1)下面關(guān)于C++語言的描述錯誤的是
    A)C++語言支持?jǐn)?shù)據(jù)封裝
    B)C++語言中引入友元沒有破壞封裝性
    C)C++語言允許函數(shù)名和運(yùn)算符重載
    D)C++語言支持動態(tài)聯(lián)編
    (12)設(shè)有定義int a=1;float f=12;char c=′a′;,則下列表示錯誤的是
    A)++a;
    B)f--;
    C)c++;
    D)8++;
    (13)下列程序的運(yùn)行結(jié)果為
    #include
    void main()
    {
    int a=2;
    int b=a+1;
    cout<  }
    A)0.66667
    B)0
    C)0.7
    D)0.66666666
    (14)設(shè)int a=1,b=2;,則(a++)+b和a+++b這兩個表達(dá)式的值分別為
    A)3,3
    B)3,4
    C)4,3
    D)4,4
    (15)下面程序的運(yùn)行結(jié)果為
    #include
    void main()
    {
    char a=′3′;
    switch(a)
    {
    case ′3′: cout<<"3";
    case ′2′: cout<<"2"; break;
    default:cout<<"1";
    }
    }
    A)3
    B)321
    C)31
    D)32
    (16)有如下數(shù)組聲明:int num[10];,下標(biāo)值引用錯誤的是
    A)num[10]
    B)num[5]
    C)num[3]
    D)num[0]
    (17)存在定義int a[10],x,*pa;,若pa=&a[0],下列的哪個選項和其他3個選項不是等價的?
    A)x=*pa;
    B)x=*(a+1);
    C)x=*(pa+1);
    D)x=a[1];
    (18)下面程序的運(yùn)行結(jié)果為
    #include
    void swap(int &a,int b)
    {
    int temp;
    temp=a++;
    a=b;
    b=temp;
    }
    void main()
    {
    int a=2,b=3;
    swap(a,b);
    cout<  }
    A)2,3
    B)3,2
    C)2,2
    D)3,3
    (19)一個函數(shù)功能不太復(fù)雜但要求被頻繁調(diào)用,應(yīng)選用
    A)內(nèi)聯(lián)函數(shù)
    B)重載函數(shù)
    C)遞歸函數(shù)
    D)嵌套函數(shù)
    (20)下面關(guān)于C++語言變量的敘述錯誤的是
    A)C++語言中變量分為auto,static,extern和register四種存儲類型
    B)自動變量和外部變量的作用域為整個程序
    C)內(nèi)部靜態(tài)變量的作用域是定義它的函數(shù)
    D)外部靜態(tài)變量的作用域是定義它的文件
     ?。?1)為了使類中的某個成員不能被類的對象通過成員操作符訪問,則不能把該成員的訪問權(quán)限定義為
    A)public
    B)protected
    C)private
    D)static
    (22)在C++語言程序中,對象之間的相互通信通過
    A)繼承實現(xiàn)
    B)調(diào)用成員函數(shù)實現(xiàn)
    C)封裝實現(xiàn)
    D)函數(shù)重載實現(xiàn)
    (23)類的析構(gòu)函數(shù)是在什么時候調(diào)用的?
    A)類創(chuàng)建時
    B)創(chuàng)建對象時
    C)刪除對象時
    D)不自動調(diào)用
    (24)通??截悩?gòu)造函數(shù)的參數(shù)是
    A)某個對象名
    B)某個對象的成員名
    C)某個對象的引用名
    D)某個對象的指針名
    (25)下面程序的運(yùn)行結(jié)果為
    #include
    class A
    {
    static int n;
    public:
    A(){n=1;}
    A(int num){n=num;}
    void print(){cout<  };
    int A::n=2;
    void main()
    {
    A a,b (3);
    a.print();
    b.print();
    cout<  }
    A)11
    B)13
    C)23
    D)33
    (26)下列不是描述類的成員函數(shù)的是
    A)構(gòu)造函數(shù)
    B)析構(gòu)函數(shù)
    C)友元函數(shù)
    D)拷貝構(gòu)造函數(shù)
    (27)繼承機(jī)制的作用是
    A)信息隱藏
    B)數(shù)據(jù)封裝
    C)定義新類
    D)數(shù)據(jù)抽象
    (28)C++語言類體系中,不能被派生類繼承的有
    A)轉(zhuǎn)換函數(shù)
    B)構(gòu)造函數(shù)
    C)虛函數(shù)
    D)靜態(tài)成員函數(shù)
    (29)下面程序的運(yùn)行結(jié)果是
    #include
    class base{
    protected:
    int a;
    public:
    base(){cout<<"0";}
    };
    class base1:virtual base{
    public:
    base1(){cout<<"1";}
    };
    class base2:virtual base{
    public:
    base2(){cout<<"2";}
    };
    class derived:public base1,public base2{
    public:
    derived(){cout<<"3";}
    };
    void main()
    {
    derived obj;
    cout<  }
    A)0123
    B)3120
    C)0312
    D)3012
    (30)對于類定義
    class A{
    public:
    virtual void func1(){}
    void func2(){}
    };
    class B:public A{
    public:
    void func1(){cout<<″class B func 1″<  virtual void func2(){cout<<″class B func 2″<  };
    下面正確的敘述是
    A) A::func2()和B::func1()都是虛函數(shù)
    B) A::func2()和B::func1()都不是虛函數(shù)
    C) B::func1()是虛函數(shù),而A::func2()不是虛函數(shù)
    D) B::func1()不是虛函數(shù),而A::func2()是虛函數(shù)
     ?。?1)下面關(guān)于運(yùn)算符重載的描述錯誤的是
    A)運(yùn)算符重載不能改變操作數(shù)的個數(shù)、運(yùn)算符的優(yōu)先級、運(yùn)算符的結(jié)合性和運(yùn)算符的語法結(jié)構(gòu)
    B)不是所有的運(yùn)算符都可以進(jìn)行重載
    C)運(yùn)算符函數(shù)的調(diào)用必須使用關(guān)鍵字operator
    D)在C++語言中不可通過運(yùn)算符重載創(chuàng)造出新的運(yùn)算符
    (32)與語句cout<  A)cout<<′\n′;
    B)cout<<′\12′;
    C)cout<<′\xA′;
    D)cout<<′\0′;
    (33)下面程序的運(yùn)行結(jié)果是
    #include
    int fun(int a[],int n)
    {
    int result=1;
    for(int i=1;i  result=result*a[i];
    return result;
    }
    void main()
    {
    int a[3]={3,4,5};
    cout<  }
    A)12
    B)15
    C)20
    D)60
    (34)下面程序的運(yùn)行結(jié)果是
    #include
    void main()
    {
    int i=1;
    while(i<=8)
    if (++i%3!=2)continue;
    else cout<  }
    A)25
    B)36
    C)258
    D)369
    (35)下列程序的運(yùn)行結(jié)果為
    #include
    template
    class FF
    { TT a1, a2, a3;
    public:
    FF(TT b1, TT b2, TT b3){a1=b1; a2=b2; a3=b3;}
    TT Sum(){return a1+a2+a3;}};
    void main()
    { FF x(int(1.1),2,3),y(int(4.2),5,6);
    cout<  A)6.1 15.2
    B)6 15
    C)6 15.2
    D)6.1 15
    二、填空題
    請將每一個空的正確答案寫在答題卡序號的橫線上,答在試卷上不給分。
    (1)數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和 1 兩大類。
    (2)順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置 2 的存儲單元中。
    (3)一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的 3 。
    (4)軟件工程研究的內(nèi)容主要包括: 4 技術(shù)和軟件工程管理。
    (5)關(guān)系操作的特點是 5 操作。
    (6)C++中封裝性、繼承性和 6 是面向?qū)ο笏枷氲闹饕卣鳌?BR>    (7)下面程序的結(jié)果為 7 。
    #include
    void main()
    {
    int a=1,b=2;
    bool c=1;
    if((a>b)||c)cout<<"true"<  else
    cout<<"false"<  }
    (8)下列for語句的循環(huán)次數(shù)為 8 。
    for(int a=0,b=1;b&&a<5;a++);
    (9)下面程序的輸出結(jié)果是 9 。
    #include
    void main()
    {
    int a[6]={1,2,3,4,5,6};
    for(int i=0;i<5;i++)
    cout<  }