2014年3月計(jì)算機(jī)二級(jí)考試真題:C++語(yǔ)言程序設(shè)計(jì)(網(wǎng)友版)

字號(hào):


    
全國(guó)計(jì)算機(jī)等級(jí)考試熱點(diǎn)-備考方案
報(bào)名時(shí)間 考試時(shí)間 成績(jī)查詢 考試真題 考試試題 收藏本站
不斷更新中......敬請(qǐng)期待!!計(jì)算機(jī)等級(jí)考試頻道

    2.下列敘述中正確的是( )。
    A.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)
    B.邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)
    C.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)不影響數(shù)據(jù)處理的效率
    D.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率
    3.下列敘述中正確的是(?。?。
    A.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定大
    B.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小
    C.一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小
    9,在對(duì)象方法中,一個(gè)對(duì)象請(qǐng)求另一個(gè)對(duì)象為其服務(wù)的方式是通過(guò)發(fā)送(?。﹣?lái)實(shí)現(xiàn)。
    A.調(diào)用語(yǔ)句 B.命令 C.中令 D.消息
    4.下列敘述中錯(cuò)誤的是(?。?。
    A.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)
    B.?dāng)?shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)的處理效率無(wú)關(guān)
    C.?dāng)?shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)
    D.?dāng)?shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的
    5.下列敘述中正確的是(?。?。
    A.在模塊化程序設(shè)計(jì)中,一個(gè)模塊應(yīng)該盡量多地包括與其他模塊聯(lián)系的信息
    B.在自頂向下、逐步細(xì)化的設(shè)計(jì)過(guò)程中,首先應(yīng)設(shè)計(jì)解決問(wèn)題的第一個(gè)細(xì)節(jié)
    C.在模塊化程序設(shè)計(jì)中,一個(gè)模塊內(nèi)部的控制結(jié)構(gòu)也要符合結(jié)構(gòu)化原則
    D.在程序設(shè)計(jì)過(guò)程中,不能同時(shí)采用結(jié)構(gòu)化程序設(shè)計(jì)方法與模塊化程序設(shè)計(jì)方法
    四、綜合應(yīng)用題(18分)
    43、請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾proj3下的工程proj3,其中聲明的DataList類,是一個(gè)用于表示數(shù)據(jù)表的類。s0rt成員函數(shù)的功能是將當(dāng)前數(shù)據(jù)表中的元素升序排列。請(qǐng)編寫(xiě)這個(gè)sort函數(shù)。程序的正確輸出應(yīng)為: 排序前:7,1,3,11,6,9,12,10,8,4,5,2 排序后:l,2,3,4,5,6,7,8,9,10,11,12
    要求:
    補(bǔ)充編制的內(nèi)容寫(xiě)在“//********33********”與“//********666********”兩行之問(wèn)。不得修改程序的其他部分。
    注意:程序最后將結(jié)果輸出到文件。ut.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為。obj文件,并且在本程序調(diào)用。
    //DataList.h
    #inClude using namespaCe std; Class DataList{//數(shù)據(jù)表類
    int len;
    double*d: publiC:
    DataList(int len,double data[]=NULL);。DataList(){delete[]d;}
    int length(Constt retum len;}//數(shù)據(jù)表長(zhǎng)度(即數(shù)據(jù)元素的個(gè)數(shù)) double getElement(int i)Const{return d[i];}
    void sort();//數(shù)據(jù)表排序
    void show()Const;//顯示數(shù)據(jù)表}.
    void writeToFile(Char*,Const DataList&).//main.Cpp
    #inClude”DataList.h”
    DataList::DataList(int len,double data[]):len(1en){ d=new double[1en];
    for(int i_0;i d[i]=(data==NULL?0.0:data[i]);
    }
    void DataList::sort(){//數(shù)據(jù)表排序//********333********
    //********666********}
    void DataList::show()Const{//顯示數(shù)據(jù)表
    for(int i=0;i }
    int main(){
    double S[]={7,1,3,11,6,9,12,10,8,4,5,2}; DataList list(12,S);
    Cout<<”排序前:”; list.show();
    list.sort();
    Cout< writeToFile(””,list); return 0;
    }
    三、簡(jiǎn)單應(yīng)用題(24分)
    42、
    請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾proj2下的工程proj2,該工程中包含一個(gè)程序文件 main.cpp,其中有類CPolygon(“多邊形”)、CRectangle(“矩形”)、CTriangle(“三角形”)的定義。請(qǐng)?jiān)跈M線處填寫(xiě)適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述類定義。該程序的正確輸出結(jié)果應(yīng)為:
    注意:只能在橫線處填寫(xiě)適當(dāng)?shù)拇a,不要改動(dòng)程序中的其他內(nèi)容,也不要?jiǎng)h除或移動(dòng)“//****found****”。
    #include
    {tout<<——< int area(void){return(width *height);}
    class CTriangle:public CPolygon{
    int length;//三角形一邊長(zhǎng)
    int height;//該邊上的高
    public:
    CTriangle(int l,int h):length(1),height(h){}
    //*********found*********
    int area(void){return(——)/2;}
    };
    int main(){
    CRectangle rect(4,5); CTriangle trgl(4,5);
    //*********found*********
     ______ *ppolyl,* ppoly2; ppolyl=&rect;
    ppoly2=&trgl;
    ppolyl->printarea();
    ppoly2->printarea();
    retun 0;
    4、有如下類定義: class Point{
    private:
    static int how_many;
    };
    ___________how_many=0; 要初始化Point類的靜態(tài)成員how_many,下畫(huà)線處應(yīng)填入的內(nèi)容是( )。
    A.int
    B.static int
    C.int Point::
    D.static int Point::
    二、基本操作題(18分)
    41、請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾projl下的工程projl,此工程中含有一個(gè)源程礙文件 projl.epp。其中位于每個(gè)注釋“//ERROR ****found****”之后的一行語(yǔ)句存在錯(cuò)誤。請(qǐng)改正這些錯(cuò)誤,使程序的輸出結(jié)果為:
    ConstruCtor Called. The value is 10
    Copy ConstruCtor Called. The value is 10
    DestruCtor Called. DestruCtor Called.
    注意:只修改注釋“//ERROR ****found****”的下一行語(yǔ)句,不要改動(dòng)程序中的其他內(nèi)容。 //pwjl.Cpp
    #inClude ’using namespaCe std; Class MyClass{
    publiC:
    //ERROR**********found**********
    MyClass(int i)
    {value=i;Cout<<”ConstruCtor Called.” < //ERROR**********found********** MyClass(eonst MyClass P)
    {
    value = P.value; eout<<”Copy ConstruCtor Called.”< }
    void Print()
    {Cout<<”The value is” < //ERROR**********found********* void-MyClass()
    {Cout<<”DestruCtor Called.”< private:
    int value;
    }; int main()
    { MyChas objl
    owl.Print();
    MyClmss obj2(owl);
    obj2.Print();
    retum 0;
    三、簡(jiǎn)單應(yīng)用題(24分)
    42、請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾pr092下的工程pros2。此工程中包含一個(gè)程序文件main.cpp,其中有“部門(mén)”類Department和“職工”類Staff的定義,還有主函數(shù)main的定義。在主函數(shù)中定義了兩個(gè)“職工”對(duì)象,他們屬于同一部門(mén)。程序展示,當(dāng)該部門(mén)改換辦公室后,這兩個(gè)人的辦公室也同時(shí)得到改變。請(qǐng)?jiān)诔绦蛑械臋M線處填寫(xiě)適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述類定義。此程序的正確輸出結(jié)果應(yīng)為:
    改換辦公室前:
    職工號(hào):0789姓名:張三部門(mén):人事處辦公室:521
    職工號(hào):0513姓名:李四部門(mén):人事處辦公室:521
    改換辦公室后:
    職工號(hào):0789姓名:張三部門(mén):人事處辦公室:311
    職工號(hào):0513姓名:李四部門(mén):人事處辦公室:311
    注意:只在橫線處填寫(xiě)適當(dāng)?shù)拇a,不要改動(dòng)程序中的其他內(nèi)容,也不要?jiǎng)h除或移動(dòng)“//****found****”。
    #include
    using namespace std;
    class Department{ //“部門(mén)”類
    public:
    Department(const char*name,const char*office){
    strcpy(this一>name,nanle);
    //**********found**********
    }
    const char*getName()const{return name;}//返回部門(mén)名稱
    //**********found**********
    const char*getOffice()const{________} //返回辦公室房號(hào)
    void changeOfficeTo(const char*office){ //改換為指定房號(hào)的另一個(gè)辦公室
    strcpy(this一>office,office);
    }
    private:
    char name[20];//部門(mén)名稱
    char office[20];//部門(mén)所在辦公室房號(hào)
    };
    class staff{//“職工”類
    public:
    //**********found**********
    Staff(const char*my—id,const char木my_name,Department&my_dept):——{
    strcpy(this一>staff id,my_id);
    strcpy(this一>name,my_name);
    }
    const char*getlD()const{return staff_id;}
    const char*getName()consl{return name;}
    Department getDepartment()const{return dept;} char staff=id[10];//職工號(hào)
    char name[20];//姓名
    Department&dept;//所在部門(mén)
    }; void showStaff(Staff&staff){
    cout<<”職工號(hào):”< cout<<”姓名:”< cout<<”部門(mén):”< cout<<”辦公室:”< int main(){
    Department dept(”人事處”,”521”);
    Staff Zhang(”0789”,”張三”,dept),Li(”0513”,”李四”,dept); cout<<”改換辦公室前:”< showStaff(Zhang); showStaff(Li);
    //人事處辦公室由521搬到311 //**********found********** ———————————————————————一
    cout<<”改換辦公室后:”< showStaff(Zhang); showStaff(Li);
    return 0; }
    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é)果是( ?。?BR>    A.120
    B.16
    C.154
    D.34
    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
    軟件生命周期中的活動(dòng)不包括( )。
    A.市場(chǎng)調(diào)研
    B.需求分析
    C.軟件測(cè)試
    D.軟件維護(hù)
    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è)類定義,下列敘述中錯(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ù)