2003年1月份浙江省高等教育自學(xué)考試面向?qū)ο蟪绦蛟O(shè)計試題

字號:

一、單項選擇題(在每小題的四個備選答案中,選出一個正確答案,并將正確答案的序號填在題干的括號內(nèi)。每小題2分,共40分)
    1.在公有繼承的情況下,基類成員在派生類中的訪問權(quán)限( )
    A.受限制 B.保持不變
    C.受保護(hù) D.不受保護(hù)
    2.通過( )調(diào)用虛函數(shù)時,采用動態(tài)束定。
    A.對象指針 B.對象名
    C.成員名限定 D.派生類名
    3.在int a=3,*p=&a;中,*p的值是( )
    A.變量a的地址值 B.無意義
    C.變量p的地址值 D. 3
    4.C++類體系中,不能被派生類繼承的有( )
    A.轉(zhuǎn)換函數(shù) B.構(gòu)造函數(shù)
    C.虛函數(shù) D.靜態(tài)成員函數(shù)
    5.假定一個類的構(gòu)造函數(shù)為A(int aa,int bb){a=aa-;b=a*bb-;},則執(zhí)行Ax(4,5);語句后,x.a和x.b的值分別為( )
    A. 4和5 B. 5和4
    C. 4和20 D. 20和5
    6.C++對C語言作了很多改進(jìn),即從面向過程變成為面向?qū)ο蟮闹饕蚴牵?)
    A.增加了一些新的運算符
    B.允許函數(shù)重載,并允許設(shè)置缺省參數(shù)
    C.規(guī)定函數(shù)說明符必須用原型
    D.引進(jìn)了類和對象的概念
    7.下列符號不能組成標(biāo)識符的是( )
    A.連接符 B.下劃線
    C.大小寫字母 D.數(shù)字字符
    8.類型修飾符unsigned不能修飾( )
    A. virtual B. int
    C. long int D. float
    9.一個函數(shù)功能不太復(fù)雜,但要求被頻繁調(diào)用,選用( )
    A.內(nèi)聯(lián)函數(shù) B.重載函數(shù)
    C.遞歸函數(shù) D.嵌套函數(shù)
    10.下列不是描述類的成員函數(shù)的是( )
    A.構(gòu)造函數(shù) B.析構(gòu)函數(shù)
    C.友元函數(shù) D.拷貝構(gòu)造函數(shù)
    11.C++語言中所有在函數(shù)中定義的變量,連同形式參數(shù),都屬于( )
    A.全局變量 B.局部變量
    C.靜態(tài)變量 D.函數(shù)
    12.定義新類是通過( )實現(xiàn)的。
    A.信息隱藏 B.數(shù)據(jù)封裝
    C.繼承機制 D.數(shù)據(jù)抽象
    13.下面有關(guān)類說法不正確的是( )
    A.一個類可以有多個構(gòu)造函數(shù)
    B.一個類只有一個析構(gòu)函數(shù)
    C.析構(gòu)函數(shù)需要指定參數(shù)
    D.在一個類中可以說明具有類類型的數(shù)據(jù)成員
    14.派生類的對象只能對它的( )是可訪問的。
    A.公有繼承的公有成員 B.公有繼承的私有成員
    C.公有繼承的保護(hù)成員 D.私有繼承的保護(hù)成員
    15.下列不能作為類的成員的是( )
    A.自身類對象的指針 B.自身類對象
    C.自身類對象的引用 D.另一個類的對象
    16.在類中聲明轉(zhuǎn)換函數(shù)時不能指定( )
    A.參數(shù) B.訪問權(quán)限
    C.操作 D.標(biāo)識符
    17.在派生類中重新定義虛函數(shù)時必須在( )方面與基類保持一致。
    A.參數(shù)類型 B.參數(shù)名字
    C.操作內(nèi)容 D.賦值
    18.在私有繼承的情況下,基類成員在派生類中的訪問權(quán)限( )
    A.受限制 B.保持不變
    C.受保護(hù) D.不受保護(hù)
    19.下面對于指針的描述不正確的是( )
    A.指針是地址變量
    B.指針不能用除0以外的常量賦值
    C.兩個指針變量的加減法無意義
    D.指針指向不同基類型的變量長度不同
    20.在派生類中定義友元函數(shù)時必須在( )方面與基類保持一致。
    A.參數(shù)類型 B.參數(shù)名字
    C.操作內(nèi)容 D.賦值
    二、填空題(每空2分,共20分)
    1.在一個類中可以對一個操作符進(jìn)行_______重載。
    2.在C++中有二種參數(shù)傳遞方式:______________.
    3.模板對處理數(shù)據(jù)的類型的要求不同可以分為兩種類型:_______.
    4.靜態(tài)聯(lián)編是在程序_______時進(jìn)行的。
    5.在函數(shù)體之前加_______關(guān)鍵字可以防止覆蓋函數(shù)改變數(shù)據(jù)成員的值。
    6.一個const對象只能訪問_______成員函數(shù)。
    7.派生類的主要用途是可以定義其基類中_______.
    8.當(dāng)建立_______,程序自動調(diào)用該類的構(gòu)造函數(shù)。
    9.使用指向?qū)ο蟮闹羔榿順?biāo)識類的成員,則必須使用的運算符是_______.
    10.拷貝初始化構(gòu)造函數(shù)使用_______來初始化創(chuàng)建中的對象。
    三、完成程序題(每小題5分,共20分)
    1.下面程序的運行結(jié)果如下所示完成填空。
    #include “iostream.h”
    class test{
    private∶int num
    float fl;
    public∶ test();
    int getint(){return num;}
    float getfloat(){return fl;}
    ~test();
    };
    test∶∶test()
    {cout《″Initializing default″《endl;
    ______________ }
    test∶∶~test() {cout《″Desdtructor is active″《endl;}
    int main()
    {test array[2];
    cout《array[1]。getint()《″ ″《array[1]。getfloat()《endl;}
    運行結(jié)果為:
    Initializing default
    _____________________;∥填寫結(jié)果
    0 0
    Desdtructor is active
    Desdtructor is active
    2.定義一個日期的類來實現(xiàn)重載操作符的測試,在下面程序的底畫線處填上適當(dāng)?shù)淖志洌瓿深愔谐蓡T函數(shù)的定義。
    #include
    class ClassDate{
    private∶
    int year;
    int month;
    int day;
    public∶ClassDate(int y=0,int d=0,int m=0){year=y,month=m,day=d;}
    int getyear(){return year;}
    int getmonth(){return month;}
    in getday(){return day;}
    ____________________ (iostream & s,ClassDate &a)
    { int y,m,d;
    cout《″請輸入日期:(yyyy-mm-dd)″;
    s》y》m》d;
    while(y>9999‖m>-1‖m<-12‖d>-1‖d<-31)
    {
    cout《″輸入格式有錯,請重新輸入日期:(yyyy-mm-dd)″;
    s》y》m》d;
    }
    a.year=y;
    a.month=-m;
    a.day=-d;
    return s;
    }
    _____________________∥輸出重定義
    {∥輸出日期
    s《″現(xiàn)在的日期是:″;
    s《a.getyear()《′-′;
    s《a.getmonth()《″-″《a.getday()《endl;
    return s;
    }
    };
    3.在下面程序的底畫線處填上適當(dāng)?shù)淖志洌瓿沙绦颉?BR>    #include
    class A{
    public∶ void f(int i){cout《i《endl;}
    void g(){cout《“g\n”;}
    };
    class ______________{
    public∶void h(){cout《“h\n”;}
    A∶∶f;
    };
    void main()
    { B d1;
    d1.f(6);
    ______________.h();
    }
    4.根據(jù)運行結(jié)果,完成下面遞歸程序的填空。
    #include
    int f(int *x)
    {
    if(!(*x))
    { cout《*x《“,”;
    _____________________;∥遞歸調(diào)用;
    }
    main()
    { int A[]={3,2,1};
    int *y;
    y=A;
    _____________________;∥引用f;
    }
    運行結(jié)果是:3,2,1
    四、綜合應(yīng)用題(共20分)
    1.分析下列程序可能的輸出結(jié)果。(滿分8分)
    #include “iostream.h”
    int main()
    {int i=17;
    while(i>=10)
    if(-i%4==3) continue;
    else
    cout《“i=”《i-《endl;
    }
    2.寫出模板函數(shù)實現(xiàn)找出三個數(shù)值中按最小值到值排序程序。(滿分12分)