2015年計(jì)算機(jī)二級(jí)《C++》上機(jī)考前模擬試題

字號(hào):

一、選擇題(每小題1分,共40分)
    1、一個(gè)教師可講授多門(mén)課程,一門(mén)課程可由多個(gè)教師講授。則實(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)的存儲(chǔ)空間可以不連續(xù),但它們的存儲(chǔ)順序與邏輯順序必須一致
    B.各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與邏輯順序可以不一致,但它們的存儲(chǔ)空間必須連續(xù)
    C.進(jìn)行插入與刪除時(shí),不需要移動(dòng)表中的元素
    D.以上說(shuō)法均不正確
    4、對(duì)于一個(gè)類(lèi)定義,下列敘述中錯(cuò)誤的是( )。
    A.如果沒(méi)有定義拷貝構(gòu)造函數(shù),編譯器將生成一個(gè)拷貝構(gòu)造函數(shù)
    B.如果沒(méi)有定義缺省的構(gòu)造函數(shù),編譯器一定將生成一個(gè)缺省的構(gòu)造函數(shù)
    C.如果沒(méi)有定義構(gòu)造函數(shù),編譯器將生成一個(gè)缺省的構(gòu)造函數(shù)和一個(gè)拷貝構(gòu)造函數(shù)
    D.如果已經(jīng)定義了構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù),編譯器不會(huì)生成任何構(gòu)造函數(shù)
    5、為了使類(lèi)中的某個(gè)成員不能被類(lèi)的對(duì)象通過(guò)成員操作符訪問(wèn),則不能把該成員的訪問(wèn)權(quán)限定義為( )。
    A.public
    B.protected
    C.private
    D.static
    6、下列關(guān)于運(yùn)算符函數(shù)的描述中,錯(cuò)誤的是( )。
    A.運(yùn)算符函數(shù)的名稱(chēng)總是以operator為前綴
    B.運(yùn)算符函數(shù)的參數(shù)可以是對(duì)象
    C.運(yùn)算符函數(shù)只能定義為類(lèi)的成員函數(shù)
    D.在表達(dá)式中使用重載的運(yùn)算符相當(dāng)予調(diào)用運(yùn)算符重載函數(shù)
    7、 一個(gè)棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是( ?。?BR>    A.12345ABCDE
    B.EDCBA54321
    C.ABCDEl2345
    D.5432lEDCBA
    8、在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享好的是( ?。?BR>    A.人工管理階段
    B.文件系統(tǒng)階段
    C.?dāng)?shù)據(jù)庫(kù)系統(tǒng)階段
    D.三個(gè)階段相同
    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ù)庫(kù)設(shè)計(jì)中反映用戶對(duì)數(shù)據(jù)要求的模式是( )。
    A.內(nèi)模式
    B.概念模式
    C.外模式
    D.設(shè)計(jì)模式
    11、一棵二叉樹(shù)共有25個(gè)結(jié)點(diǎn),其中5個(gè)是葉子結(jié)點(diǎn),則度為1的結(jié)點(diǎn)數(shù)為( )。
    A.16
    B.10
    C.6
    D.4
    12、 下列( )是C++語(yǔ)言的有效標(biāo)識(shí)符。
    A.Nol
    B.N0.1
    C.12345
    D.int
    13、 下列關(guān)于運(yùn)算符重載的敘述中,錯(cuò)誤的是( )。
    A.有的運(yùn)算符可以作為非成員函數(shù)重載
    B.所有的運(yùn)算符都可以通過(guò)重載而被賦予新的含義
    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、 軟件生命周期中的活動(dòng)不包括( )。
    A.市場(chǎng)調(diào)研
    B.需求分析
    C.軟件測(cè)試
    D.軟件維護(hù)
    16、 下面對(duì)靜態(tài)數(shù)據(jù)成員的描述中,正確的是( )。
    A.靜態(tài)數(shù)據(jù)成員是類(lèi)的所有對(duì)象共享的數(shù)據(jù)
    B.類(lèi)的每個(gè)對(duì)象都有自己的靜態(tài)數(shù)據(jù)成員
    C.類(lèi)的不同對(duì)象有不同的靜態(tài)數(shù)據(jù)成員值
    D.靜態(tài)數(shù)據(jù)成員不能通過(guò)類(lèi)的對(duì)象調(diào)用
    17、 軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是( ?。?。
    A.編譯程序
    B.操作系統(tǒng)
    C.教務(wù)管理系統(tǒng)
    D.匯編程序
    18、下面敘述中錯(cuò)誤的是( ?。?。
    A.軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤
    B.對(duì)被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟
    C.程序調(diào)試通常也稱(chēng)為Debug
    D.軟件測(cè)試應(yīng)嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性
    19、 層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫(kù)劃分原則是( )。
    A.己錄長(zhǎng)度
    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í)行這個(gè)程序的輸出結(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、 一個(gè)工作人員可以使用多臺(tái)計(jì)算機(jī),而一臺(tái)計(jì)算機(jī)可被多個(gè)人使用,則實(shí)體工作人員與實(shí)體計(jì)算機(jī)之間 的聯(lián)系是( )。
    A.一對(duì)一
    B.一對(duì)多
    C.多對(duì)多
    D.多對(duì)一
    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ù)庫(kù)中查詢操作的數(shù)據(jù)庫(kù)語(yǔ)言是( )。
    A.?dāng)?shù)據(jù)定義語(yǔ)言
    B.?dāng)?shù)據(jù)管理語(yǔ)言
    C.?dāng)?shù)據(jù)操縱語(yǔ)言
    D.?dāng)?shù)據(jù)控制語(yǔ)言
    26、 已知枚舉類(lèi)型聲明語(yǔ)句為:
    enum COl,OR{WHITE,YELLOW,GREEN=5,RED,BLACK=10};
    則下列說(shuō)法中錯(cuò)誤的是( )。
    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í)行這個(gè)程序的輸出結(jié)果是(  )。
    A.Base
    Base
    B.Base
    Derived
    C.Derived
    Base
    D.Derived
    Derived
    28、有如下類(lèi)聲明:
    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ù)的說(shuō)明中,正確的是( )。
    A.內(nèi)聯(lián)函數(shù)就是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù)
    B.函數(shù)體的后一條語(yǔ)句必須是return語(yǔ)句
    C.標(biāo)準(zhǔn)c++要求在調(diào)用一個(gè)函數(shù)之前,必須先聲明其原型
    D.編譯器會(huì)根據(jù)函數(shù)的返回值類(lèi)型和參數(shù)表來(lái)區(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);//②
    } }; 下列敘述中正確的是(  )。
    A.程序編譯正確
    B.程序編譯時(shí)語(yǔ)句①出錯(cuò)
    C.程序編譯時(shí)語(yǔ)句②出錯(cuò)
    D.程序編譯時(shí)語(yǔ)句①和②都出錯(cuò)
    31、 在公有繼承的情況下,允許派生類(lèi)直接訪問(wèn)的基類(lèi)成員包括( ?。?BR>    A.公有成員
    B.公有成員和保護(hù)成員
    C.公有成員、保護(hù)成員和私有成員
    D.保護(hù)成員
    32、 有三個(gè)關(guān)系R、S和T如下:
    
    由關(guān)系R和S通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為(  )。
    A.笛卡爾積
    B.交
    C.并
    D.自然連接
    33、有如下類(lèi)定義:
    class MyClass
    {
    public:
    private:
    ______________________________________
    int data;
    };
    若要為MyClass類(lèi)重載流輸入運(yùn)算符“>>”,使得程序中可以“cin>>obj;”的形式改變MyClass類(lèi)的對(duì)象0bj中數(shù)據(jù)成員data的值,則橫線處的聲明語(yǔ)句應(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í)行這個(gè)程序的輸出結(jié)果是(  )。
    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(  )Const{return”文學(xué)”;} };
    int main( ?。﹞ Book * pb; pb=new Novel( ?。?;
    Cout< return 0; }
    若程序運(yùn)行時(shí)輸出結(jié)果是“文學(xué)”,則橫線處缺失的語(yǔ)句是( ?。?BR>    A.Char*Category( ?。?BR>    B.Char*Category( ?。〤onst;
    C.virtual Char*Category(  )Const;
    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、下面對(duì)靜態(tài)數(shù)據(jù)成員的描述中,正確的是( )。
    A.靜態(tài)數(shù)據(jù)成員可以在類(lèi)體內(nèi)進(jìn)行初始化
    B.靜態(tài)數(shù)據(jù)成員不可以被類(lèi)的對(duì)象調(diào)用
    C.靜態(tài)數(shù)據(jù)成員不能受private控制符的作用
    D.靜態(tài)數(shù)據(jù)成員可以直接用類(lèi)名調(diào)用
    38、 設(shè)int a=10,b=11,C=12;,表達(dá)式(a+B.A.2
    B.0
    C.-2
    D.1
    39、 下列說(shuō)法正確的是( )。
    A.內(nèi)聯(lián)函數(shù)在運(yùn)行時(shí)是將該函數(shù)的目標(biāo)代碼插入每個(gè)調(diào)用該函數(shù)的地方
    B.內(nèi)聯(lián)函數(shù)在編譯時(shí)是將該函數(shù)的目標(biāo)代碼插入每個(gè)調(diào)用該函數(shù)的地方
    C.類(lèi)的內(nèi)聯(lián)函數(shù)必須在類(lèi)體內(nèi)定義
    D.類(lèi)的內(nèi)聯(lián)函數(shù)必須在類(lèi)體外通過(guò)加關(guān)鍵字inline定義
    40、 下面對(duì)于友元函數(shù)描述正確的是( )。
    A.友元函數(shù)的實(shí)現(xiàn)必須在類(lèi)的內(nèi)部定義
    B.友元函數(shù)是類(lèi)的成員函數(shù)
    C.友元函數(shù)破壞了類(lèi)的封裝性和隱藏性
    D.友元函數(shù)不能訪問(wèn)類(lèi)的私有成員