2012年3月計(jì)算機(jī)二級(jí)C++第三套筆試模擬試題(三)

字號(hào):


    一、選擇題
    在下列各題的A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確的選項(xiàng)涂寫(xiě)在答題卡相應(yīng)位置上,答在試卷上不得分。
    (1)最簡(jiǎn)單的交換排序方法是
    A)快速排序
    B)選擇排序
    C)堆排序
    D)冒泡排序
    (2)棧通常采用的兩種存儲(chǔ)結(jié)構(gòu)是
    A)線(xiàn)性存儲(chǔ)結(jié)構(gòu)和鏈表存儲(chǔ)結(jié)構(gòu)
    B)散列方式和索引方式
    C)鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組
    D)線(xiàn)性存儲(chǔ)結(jié)構(gòu)和非線(xiàn)性存儲(chǔ)結(jié)構(gòu)
    (3)線(xiàn)性表的順序存儲(chǔ)結(jié)構(gòu)和線(xiàn)性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是
    A)順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)
    B)隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)
    C)隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)
    D)任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu)
    (4)完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例的測(cè)試方法是
    A)黑箱測(cè)試法
    B)白箱測(cè)試法
    C)錯(cuò)誤推測(cè)法
    D)安裝測(cè)試法
    (5)在結(jié)構(gòu)化設(shè)計(jì)方法中,生成的結(jié)構(gòu)圖(SC)中,帶有箭頭的連線(xiàn)表示
    A)模塊之間的調(diào)用關(guān)系
    B)程序的組成成分
    C)控制程序的執(zhí)行順序
    D)數(shù)據(jù)的流向
    (6)下列選項(xiàng)中,不屬于模塊間耦合的是
    A)數(shù)據(jù)耦合
    B)同構(gòu)耦合
    C)異構(gòu)耦合
    D)公用耦合
    (7)一個(gè)關(guān)系中屬性個(gè)數(shù)為1時(shí),稱(chēng)此關(guān)系為
    A)對(duì)應(yīng)關(guān)系
    B)單一關(guān)系
    C)一元關(guān)系
    D)二元關(guān)系
    (8)為用戶(hù)與數(shù)據(jù)庫(kù)系統(tǒng)提供接口的語(yǔ)言是
    A)高級(jí)語(yǔ)言
    B)數(shù)據(jù)描述語(yǔ)言(DDL)
    C)數(shù)據(jù)操縱語(yǔ)言(DML)
    D)匯編語(yǔ)言
    (9)相對(duì)于數(shù)據(jù)庫(kù)系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和
    A)可重用性差
    B)安全性差
    C)非持久性
    D)冗余性
    (10)需求分析階段的任務(wù)是確定
    A)軟件開(kāi)發(fā)方法
    B)軟件開(kāi)發(fā)工具
    C)軟件開(kāi)發(fā)費(fèi)用
    D)軟件系統(tǒng)功能
    (11)以下哪個(gè)特征不是面向?qū)ο笏枷胫械闹饕卣鳎?BR>    A)多態(tài)
    B)繼承
    C)封裝
    D)垃圾回收
    (12)以下哪個(gè)不是C++語(yǔ)言中的有效標(biāo)識(shí)符?
    A)34a
    B)_AB
    C)A_B
    D)A25
    (13)C++中運(yùn)算符優(yōu)先級(jí)由高到低排列正確的是
    A):: ++ + ||
    B)< * || ,
    C)sizeof % + ::
    D), && new sizeof
    (14)下面程序的運(yùn)行結(jié)果是
    #include"iostream.h"
    #define sum(a,b)a*b
    void main()
    { int x;
    x=sum(1+2,3);
    cout<  }
    A)0
    B)9
    C)7
    D)5
    (15)以下for語(yǔ)句中不是死循環(huán)的是
    A)for(int i=0;i<1;++i);
    B)for(int i=0;;++i);
    C)for(int i=1;i>0;++i);
    D)for( ; ; );
    (16)關(guān)于continue語(yǔ)句敘述不正確的是
    A)continue語(yǔ)句用于循環(huán)體中,結(jié)束循環(huán)
    B)continue語(yǔ)句用于循環(huán)體中,它使執(zhí)行流跳出循環(huán)體中尚未執(zhí)行的語(yǔ)句,并進(jìn)行下一循環(huán)判斷
    C)continue可以用于if語(yǔ)句中
    D)continue語(yǔ)句不能代替break語(yǔ)句
    (17)以下定義數(shù)組中錯(cuò)誤的是
    A)int a[10];
    B)int a[2][20];
    C)int a[20][ ];
    D)int a[];
    (18)下面程序的執(zhí)行結(jié)果是
    #include"iostream.h"
    void main()
    { int *p,r;
    p = new int;
    *p = 20;
    r=sizeof(*p);
    cout<  delete p;
    }
    A)程序錯(cuò)誤
    B)內(nèi)存為20地址的大小
    C)20
    D)4
    (19)下面程序錯(cuò)誤的語(yǔ)句是
    #include "iostream.h"
    ① void main()
    ② {
    ③ int A = 0;
    ④ int & B;
    ⑤ B = A;
    ⑥ cout << B;
    ⑦ cout << A;
    ⑧ }
    A)②
    B)③
    C)④
    D)⑥
    (20)下列程序的輸出結(jié)果是
    #include "iostream"
    using namespace std;
    int Max( int a, int b )
    {
    if( a > b)
    return a;
    else
    return b;
    }
    void main()
    {
    int m, n;
    m =10,n=5;
    int max = Max( m, n );
    cout << max << endl;
    }
    A)10
    B)程序有誤
    C)1
    D)0
     (21)函數(shù)int test( int a , int b=1, int c = 0),下列調(diào)用不合法的個(gè)數(shù)是
    test( 0 );test( 0, 0 );test( );test( 0, 0, 0 );
    A)0
    B)1
    C)2
    D)3
    (22)C++語(yǔ)言中類(lèi)定義中默認(rèn)的訪(fǎng)問(wèn)權(quán)限是
    A)public
    B)protected
    C)private
    D)default
    (23)C++語(yǔ)言中關(guān)于構(gòu)造函數(shù)的說(shuō)法正確的是
    A)構(gòu)造函數(shù)的函數(shù)名不必和類(lèi)名相同
    B)構(gòu)造函數(shù)只能每一個(gè)
    C)每個(gè)類(lèi)必定有構(gòu)造函數(shù)
    D)構(gòu)造函數(shù)必有返回值
    (24)關(guān)于構(gòu)造函數(shù)A()的拷貝構(gòu)造函數(shù)正確的是
    A)A( A *B );
    B)A( A B );
    C)A( A & B );
    D)A( A );
    (25)下面程序的執(zhí)行結(jié)果為
    #include "iostream"
    using namespace std;
    class A
    {
    int a;
    public:
    void Seta( int x ){ a = x;}
    void Display_a(){ cout << a << endl; }
    };
    class B
    {
    int b;
    public:
    void Setb( int x ){ b = x;}
    void Dispaly_b(){ cout << b << endl; }
    };
    class C : public A, private B
    {
    private:
    int c;
    public:
    void Setc( int x, int y, int z )
    { c = z; Seta( x ); Setb( y ); }
    void Display_c(){ cout << c << endl; }
    };
    ① void main()
    ② {
    ③ C cc;
    ④ cc.Seta( 1 );
    ⑤ cc.Display_a();
    ⑥ cc.Setc( 2, 2, 3 );
    ⑦ cc.Dispaly_b();
    ⑧ cc.Display_c();
    }
    A)輸出為223
    B)有錯(cuò)誤在第5行
    C)輸出為123
    D)有錯(cuò)誤在第7行
    (26)虛函數(shù)必須是類(lèi)的
    A)成員函數(shù)
    B)友元函數(shù)
    C)構(gòu)造函數(shù)
    D)析構(gòu)函數(shù)
    (27)多態(tài)性指的是
    A)以任何方式調(diào)用一個(gè)虛函數(shù)
    B)以任何方式調(diào)用一個(gè)純虛函數(shù)
    C)借助于指向?qū)ο蟮幕?lèi)指針或引用調(diào)用一個(gè)虛函數(shù)
    D)借助于指向?qū)ο蟮幕?lèi)指針或引用調(diào)用一個(gè)純虛函數(shù)
    (28)不能重載的運(yùn)算符是
    A)new
    B)sizeof
    C).*
    D)++
    (29)只能作為成員函數(shù)重載的是
    A)=
    B)++
    C)*
    D)new
    (30)關(guān)于模板下列說(shuō)法不正確的是
    A)用類(lèi)模板定義一個(gè)對(duì)象時(shí),不能省略實(shí)參
    B)類(lèi)模板只能有虛擬類(lèi)型參數(shù)
    C)類(lèi)模板本身在編譯中不會(huì)生成任何代碼
    D)類(lèi)模板的成員函數(shù)都是模板函數(shù)
     ?。?1)語(yǔ)句cout << setprecision (2)<< 1024.4567;的輸出結(jié)果為
    A)1024.4567
    B)1024
    C)1024.45
    D)1e+003
    (32)下面程序的結(jié)果為
    #include"iostream.h"
    void change( int a, int b )
    {
    int temp;
    temp = a;
    a = b;
    b = temp;
    }
    void main()
    {
    int m, n;
    m = 8;
    n = 9;
    change( m, n );
    cout << m << " " << n << endl;
    }
    A)8 9
    B)9 8
    C)程序有錯(cuò)誤
    D)9 9
    (33)下面程序的結(jié)果是
    #include "iostream.h"
    void main()
    {
    char *str;
    str = "test!";
    cout << str[5];
    }
    A)程序錯(cuò)誤
    B)!
    C)′\0′
    D)為空字符
    (34)下面程序輸出的結(jié)果為
    #include "iostream.h"
    class A
    {
    public:
    A(){ cout << "CLASS A" << endl; }
    ~A(){}
    };
    class B : public A
    {
    public:
    B(){ cout << "CLASS B" << endl; }
    ~B(){}
    };
    void main()
    {
    A *p;
    p = new B;
    B *q;
    q = new B;
    }
    A)CLASS A
    CLASS B
    B)CLASS A
    CLASS B
    CLASS B
    C)CLASS A
    CLASS B
    CLASS A
    CLASS B
    D)CLASS A
    CLASS B
    CLASS B
    CLASS B
    (35)C++語(yǔ)言函數(shù)中不能由系統(tǒng)自動(dòng)生成的是
    A)析構(gòu)函數(shù)
    B)構(gòu)造函數(shù)
    C)內(nèi)聯(lián)函數(shù)
    D)拷貝構(gòu)造函數(shù)
     二、填空題
    請(qǐng)將每一個(gè)空的正確答案寫(xiě)在答題卡序號(hào)的橫線(xiàn)上,答在試卷上不給分。
    (1)棧和隊(duì)列通常采用的存儲(chǔ)結(jié)構(gòu)是 1 。
    (2)在程序設(shè)計(jì)階段應(yīng)該采取 2 和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而用某種程序設(shè)計(jì)語(yǔ)言寫(xiě)成程序。
    (3)軟件結(jié)構(gòu)是以 3 為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。
    (4)數(shù)據(jù)庫(kù)系統(tǒng)階段的數(shù)據(jù)具有較高獨(dú)立性,數(shù)據(jù)獨(dú)立性包括物理獨(dú)立性和 4 兩個(gè)含義。
    (5)數(shù)據(jù)庫(kù)保護(hù)分為安全性控制、 5 、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
    (6) 6 是C++語(yǔ)言程序的入口。
    (7)程序
    #include"iostream.h"
    void main()
    {
    int i = 10;
    int j = 5;
    cout << j + i++ <  }
    的結(jié)果為 7 。
    (8)C++語(yǔ)言的基本控制結(jié)構(gòu)為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和 8 。
    (9)語(yǔ)句int *i; i = new int[10]; ,釋放指針i的語(yǔ)句是 9 。
    (10)函數(shù)重載要求重載的函數(shù)必須有和原函數(shù)一樣的 10 。
    (11)在C++語(yǔ)言中每個(gè)類(lèi)都有一個(gè) 11 指針,該指針指向正在調(diào)用成員函數(shù)的對(duì)象。
    (12)設(shè)置虛基類(lèi)的目的是 12 ,通過(guò) 13 表示虛基類(lèi)。
    (13)程序的結(jié)果為 14 。
    #include "iostream.h"
    template
    T total( T *data )
    { T s = 0;
    while( *data )
    {
    s += *data++;
    }
    return s;
    }
    int main()
    { int x[] = { 2,4,6,8,0,12,14,16,18 };
    cout << total(x);
    return 0;
    cout<
    (14)語(yǔ)句cout << ′\n′ 還可表示為 15 。