2014年計(jì)算機(jī)二級上機(jī)考試:C++沖刺試題

字號:

一、選擇題(每小題1分,共40分)
    1、一個教師可講授多門課程,一門課程可由多個教師講授。則實(shí)體教師和課程間的聯(lián)系是( )。
    A.1:1聯(lián)系
    B.1:m聯(lián)系
    C.m:1聯(lián)系
    D.m:n聯(lián)系
    2、 Tilil程序的運(yùn)行結(jié)果是( )。
    #include void main()
    {
    int i=1:
    while(i<=8)
    if(++i%3 1=2)continue: else eout< }
    A.25
    B.36
    C.258
    D.369
    3、下列關(guān)于線性鏈表的敘述中,正確的是( )。
    A.各數(shù)據(jù)結(jié)點(diǎn)的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致
    B.各數(shù)據(jù)結(jié)點(diǎn)的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)
    C.進(jìn)行插入與刪除時,不需要移動表中的元素
    D.以上說法均不正確
    4、對于一個類定義,下列敘述中錯誤的是( )。
    A.如果沒有定義拷貝構(gòu)造函數(shù),編譯器將生成一個拷貝構(gòu)造函數(shù)
    B.如果沒有定義缺省的構(gòu)造函數(shù),編譯器一定將生成一個缺省的構(gòu)造函數(shù)
    C.如果沒有定義構(gòu)造函數(shù),編譯器將生成一個缺省的構(gòu)造函數(shù)和一個拷貝構(gòu)造函數(shù)
    D.如果已經(jīng)定義了構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù),編譯器不會生成任何構(gòu)造函數(shù)
    5、為了使類中的某個成員不能被類的對象通過成員操作符訪問,則不能把該成員的訪問權(quán)限定義為( )。
    A.public
    B.protected
    C.private
    D.static
    6、下列關(guān)于運(yùn)算符函數(shù)的描述中,錯誤的是( )。
    A.運(yùn)算符函數(shù)的名稱總是以operator為前綴
    B.運(yùn)算符函數(shù)的參數(shù)可以是對象
    C.運(yùn)算符函數(shù)只能定義為類的成員函數(shù)
    D.在表達(dá)式中使用重載的運(yùn)算符相當(dāng)予調(diào)用運(yùn)算符重載函數(shù)
    7、 一個棧的初始狀態(tài)為空。現(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是(  )。
    A.12345ABCDE
    B.EDCBA54321
    C.ABCDEl2345
    D.5432lEDCBA
    8、在數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,數(shù)據(jù)共享好的是(  )。
    A.人工管理階段
    B.文件系統(tǒng)階段
    C.?dāng)?shù)據(jù)庫系統(tǒng)階段
    D.三個階段相同
    9、下面程序的運(yùn)行結(jié)果為( )。
    #include
    void main() {
    char a=’3’: switch(8)
    {
    case '3':cout<<”3”:
    case '2':cout<<”2”;break; default:cout<<”l”;
    }
    }
    A.3
    B.321
    C.31
    D.32
    10、數(shù)據(jù)庫設(shè)計(jì)中反映用戶對數(shù)據(jù)要求的模式是( )。
    A.內(nèi)模式
    B.概念模式
    C.外模式
    D.設(shè)計(jì)模式
    11、一棵二叉樹共有25個結(jié)點(diǎn),其中5個是葉子結(jié)點(diǎn),則度為1的結(jié)點(diǎn)數(shù)為( )。
    A.16
    B.10
    C.6
    D.4
    12、 下列( )是C++語言的有效標(biāo)識符。
    A.Nol
    B.N0.1
    C.12345
    D.int
    13、 下列關(guān)于運(yùn)算符重載的敘述中,錯誤的是( )。
    A.有的運(yùn)算符可以作為非成員函數(shù)重載
    B.所有的運(yùn)算符都可以通過重載而被賦予新的含義
    C.不得為重載的運(yùn)算符函數(shù)的參數(shù)設(shè)置默認(rèn)值
    D.有的運(yùn)算符只能作為成員函數(shù)重載
    14、 F列關(guān)于棧的敘述正確的是( )。
    A.棧按“先進(jìn)先出”組織數(shù)據(jù)
    B.棧按“先進(jìn)后出”組織數(shù)據(jù)
    C.只能在棧底插入數(shù)據(jù)
    D.不能刪除數(shù)據(jù)
    15、 軟件生命周期中的活動不包括( )。
    A.市場調(diào)研
    B.需求分析
    C.軟件測試
    D.軟件維護(hù)
    16、 下面對靜態(tài)數(shù)據(jù)成員的描述中,正確的是( )。
    A.靜態(tài)數(shù)據(jù)成員是類的所有對象共享的數(shù)據(jù)
    B.類的每個對象都有自己的靜態(tài)數(shù)據(jù)成員
    C.類的不同對象有不同的靜態(tài)數(shù)據(jù)成員值
    D.靜態(tài)數(shù)據(jù)成員不能通過類的對象調(diào)用
    17、 軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是( ?。?BR>    A.編譯程序
    B.操作系統(tǒng)
    C.教務(wù)管理系統(tǒng)
    D.匯編程序
    18、下面敘述中錯誤的是( ?。?。
    A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤
    B.對被調(diào)試的程序進(jìn)行“錯誤定位”是程序調(diào)試的必要步驟
    C.程序調(diào)試通常也稱為Debug
    D.軟件測試應(yīng)嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性
    19、 層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是( )。
    A.己錄長度
    B.文件的大小
    C.聯(lián)系的復(fù)雜程度
    D.?dāng)?shù)據(jù)之間的聯(lián)系方式
    20、 下面程序的運(yùn)行結(jié)果為( )。
    #include void swap(int&a,int B. int temp;
    temp=a++: a=b:
    b=temp;
    }
    void main()
    {
    im a=2,b=3; swap(a,B.;
    eout< }
    A.2,3
    B.3,2
    C.2,2
    D.3,3
    21、 有如下程序:
    #inClude using namespaCe std; Class MyClass{
    publiC:
    MyClass(int X):val(X){}
    void Print()Const}tout<<”Const:val=”< private:
    int val; };
    int main(){
    Const MyClass objl(10); MyClass obj2(20);
    objl.Print(); obj2.Print(); retum 0;
    }
    執(zhí)行這個程序的輸出結(jié)果是( )。
    A.val=10 Const:val=20
    B.Const:val=10 Const:val=20
    C.Const:val=10 val=20
    D.val=10 val=20
    22、 一個工作人員可以使用多臺計(jì)算機(jī),而一臺計(jì)算機(jī)可被多個人使用,則實(shí)體工作人員與實(shí)體計(jì)算機(jī)之間 的聯(lián)系是( )。
    A.一對一
    B.一對多
    C.多對多
    D.多對一
    23、下列程序的運(yùn)行結(jié)果是( )。
    #include class Loeation{
    private:
    int X,Y;
    public: void init(int=0,int=0);
    void valueX(int val){X=val;} int valueX(){returnx;}
    void valueY(int val){Y=val;} int valueY(){return Y;}};
    void Location::init(int initX,int initY) {X=initX;
    Y=initY4}
    void main(X
    {Location A,B;
    A.init();
    B.value X(5);
    cout< B.value Y(4);
    eout< }
    A.5
    0
    6
    4
    B.0
    0
    6
    4
    C.5
    0
    6
    2
    D.0
    0
    6
    2
    24、 下面程序的運(yùn)行結(jié)果為( )。
    #include class A
    static int n;
    public:
    A(){n=1;}
    A(int num){n=hum;} void print(){cout< int A::n=2;
    void main() {
    A a,b(3); a.print(); b.print();
    coutB.13
    C.23
    D.33
    25、 負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是( )。
    A.?dāng)?shù)據(jù)定義語言
    B.?dāng)?shù)據(jù)管理語言
    C.?dāng)?shù)據(jù)操縱語言
    D.?dāng)?shù)據(jù)控制語言
    26、 已知枚舉類型聲明語句為:
    enum COl,OR{WHITE,YELLOW,GREEN=5,RED,BLACK=10};
    則下列說法中錯誤的是( )。
    A.枚舉常量YELLOW的值為1
    B.枚舉常量RED的值為6
    C.枚舉常量BLACK的值為10
    D.枚舉常量WHITE的值為1
    27、 有如下程序:
    #include
    using namespace std;
    class Base
    {
    public:
    void funl(){cout<<”Base\n”;}
    virtual void fun2(){eout<<”Base\n”;}
    };
    class Derived:public Base{
    public:
    void funl(){eout<<”Derived、n”;}
    void fura(){eout<.<”Derived\n”;}
    };
    void f(Base&B.}b.funl();b.ftm2();}
    int main()
    {
    Derived obj;
    f(obj);
    return 0;
    }
    執(zhí)行這個程序的輸出結(jié)果是( ?。?。
    A.Base
    Base
    B.Base
    Derived
    C.Derived
    Base
    D.Derived
    Derived
    28、有如下類聲明:
    class SAMPLE
    {
    int n:
    public:
    SAMPLE(int i=0):n(i){}
    void setValue(int nO);
    };
    下列關(guān)于9etValue成員函數(shù)的定義中,正確的是(  )。
    A.SAMPLE::setValue(int nO){n=n0;}
    B.void SAMPLE::setValue(int胡){n=n0;
    C.void setValue(int nO){n=n0;}
    D.setValue(int nO){n=n0;}
    29、 下列關(guān)于c++函數(shù)的說明中,正確的是( )。
    A.內(nèi)聯(lián)函數(shù)就是定義在另一個函數(shù)體內(nèi)部的函數(shù)
    B.函數(shù)體的后一條語句必須是return語句
    C.標(biāo)準(zhǔn)c++要求在調(diào)用一個函數(shù)之前,必須先聲明其原型
    D.編譯器會根據(jù)函數(shù)的返回值類型和參數(shù)表來區(qū)分函數(shù)的不同重載形式
    30、 有如下程序:
    #inClude using namespaCe std; Class MusiC{
    publiC:
    void setTitle(Char*str){strCpy(title,str);} proteCted:
    Char type[10]; private:
    Char title[20];
    Class Jazz:publiC MusiC{ publiC:
    void set(Char*str){
    strCpy(type,”Jazz'’);//① strCpy(title,str);//②
    } }; 下列敘述中正確的是( ?。?BR>    A.程序編譯正確
    B.程序編譯時語句①出錯
    C.程序編譯時語句②出錯
    D.程序編譯時語句①和②都出錯
    31、 在公有繼承的情況下,允許派生類直接訪問的基類成員包括( ?。?BR>    A.公有成員
    B.公有成員和保護(hù)成員
    C.公有成員、保護(hù)成員和私有成員
    D.保護(hù)成員
    33、有如下類定義:
    class MyClass
    {
    public:
    private:
    ______________________________________
    int data;
    };
    若要為MyClass類重載流輸入運(yùn)算符“>>”,使得程序中可以“cin>>obj;”的形式改變MyClass類的對象0bj中數(shù)據(jù)成員data的值,則橫線處的聲明語句應(yīng)為( )。
    A.friend istream& operator>>(istream&is,MyClass&A.;
    B.friend istream&operator>>(istream&is,MyClass A.;
    C.istream&operator>>(istream&is,MyClass&A.;
    D.istream&operator>>(istream&is,MyClass A.;
    34、 有如下程序:
    #inClude using namespaCe std; Class Sample{
    friend long fun(Sample S); publiC:
    Sample(10ng A.{x=a;} private:
    long X;
    }; long fun(Sample S){
    if(S.x<2)return l;
    return S.X*fun(Sample(s.x-1)); }
    int main( ?。?{
    int sum=0;
    for(int i=0;i<6;i++) {sum+=fun(Sample(i));}
    Cout< }
    執(zhí)行這個程序的輸出結(jié)果是( ?。?BR>    A.120
    B.16
    C.154
    D.34
    35、 有如下程序:
    #inClude using namespaCe std; Class Book{
    publiC:
    Book(Char*t=””){strCpy(title,t);}
    private:
    Char titlel40]; };
    Class Novel:publiC Book{ publiC:
    Novel(Char*t=””):Book(t){}
    Char*Category( ?。〤onst{return”文學(xué)”;} };
    int main( ?。﹞ Book * pb; pb=new Novel( ?。?BR>    Cout< return 0; }
    若程序運(yùn)行時輸出結(jié)果是“文學(xué)”,則橫線處缺失的語句是(  )。
    A.Char*Category( ?。?;
    B.Char*Category(  )Const;
    C.virtual Char*Category( ?。〤onst;
    D.virtual Char*Category( ?。〤onst=0;
    36、 有如下頭變件:
    int f1()
    StatiCintf2( ); Class MA
    publiC: intf3();
    1statiC int f4();
    };
    在所描述的函數(shù)中,具有隱含的this指針的是( )。
    A.fl
    B.f2
    C.B
    D.f4
    37、下面對靜態(tài)數(shù)據(jù)成員的描述中,正確的是( )。
    A.靜態(tài)數(shù)據(jù)成員可以在類體內(nèi)進(jìn)行初始化
    B.靜態(tài)數(shù)據(jù)成員不可以被類的對象調(diào)用
    C.靜態(tài)數(shù)據(jù)成員不能受private控制符的作用
    D.靜態(tài)數(shù)據(jù)成員可以直接用類名調(diào)用
    38、 設(shè)int a=10,b=11,C=12;,表達(dá)式(a+B.A.2
    B.0
    C.-2
    D.1
    39、 下列說法正確的是( )。
    A.內(nèi)聯(lián)函數(shù)在運(yùn)行時是將該函數(shù)的目標(biāo)代碼插入每個調(diào)用該函數(shù)的地方
    B.內(nèi)聯(lián)函數(shù)在編譯時是將該函數(shù)的目標(biāo)代碼插入每個調(diào)用該函數(shù)的地方
    C.類的內(nèi)聯(lián)函數(shù)必須在類體內(nèi)定義
    D.類的內(nèi)聯(lián)函數(shù)必須在類體外通過加關(guān)鍵字inline定義
    40、 下面對于友元函數(shù)描述正確的是( )。
    A.友元函數(shù)的實(shí)現(xiàn)必須在類的內(nèi)部定義
    B.友元函數(shù)是類的成員函數(shù)
    C.友元函數(shù)破壞了類的封裝性和隱藏性
    D.友元函數(shù)不能訪問類的私有成員