2014年3月計算機二級考試真題:C++語言程序設計(網(wǎng)友版)

字號:


    
全國計算機等級考試熱點-備考方案
報名時間 考試時間 成績查詢 考試真題 考試試題 收藏本站
不斷更新中......敬請期待??!計算機等級考試頻道

    2.下列敘述中正確的是( )。
    A.一個邏輯數(shù)據(jù)結構只能有一種存儲結構
    B.邏輯結構屬于線性結構,存儲結構屬于非線性結構
    C.一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存儲結構不影響數(shù)據(jù)處理的效率
    D.一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存儲結構影響數(shù)據(jù)處理的效率
    3.下列敘述中正確的是( )。
    A.一個算法的空間復雜度大,則其時間復雜度必定大
    B.一個算法的空間復雜度大,則其時間復雜度必定小
    C.一個算法的時間復雜度大,則其空間復雜度必定小
    9,在對象方法中,一個對象請求另一個對象為其服務的方式是通過發(fā)送(?。﹣韺崿F(xiàn)。
    A.調用語句 B.命令 C.中令 D.消息
    4.下列敘述中錯誤的是(?。?。
    A.一種數(shù)據(jù)的邏輯結構可以有多種存儲結構
    B.數(shù)據(jù)的存儲結構與數(shù)據(jù)的處理效率無關
    C.數(shù)據(jù)的存儲結構與數(shù)據(jù)的處理效率密切相關
    D.數(shù)據(jù)的存儲結構在計算機中所占的空間不一定是連續(xù)的
    5.下列敘述中正確的是( )。
    A.在模塊化程序設計中,一個模塊應該盡量多地包括與其他模塊聯(lián)系的信息
    B.在自頂向下、逐步細化的設計過程中,首先應設計解決問題的第一個細節(jié)
    C.在模塊化程序設計中,一個模塊內部的控制結構也要符合結構化原則
    D.在程序設計過程中,不能同時采用結構化程序設計方法與模塊化程序設計方法
    四、綜合應用題(18分)
    43、請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程proj3,其中聲明的DataList類,是一個用于表示數(shù)據(jù)表的類。s0rt成員函數(shù)的功能是將當前數(shù)據(jù)表中的元素升序排列。請編寫這個sort函數(shù)。程序的正確輸出應為: 排序前:7,1,3,11,6,9,12,10,8,4,5,2 排序后:l,2,3,4,5,6,7,8,9,10,11,12
    要求:
    補充編制的內容寫在“//********33********”與“//********666********”兩行之問。不得修改程序的其他部分。
    注意:程序最后將結果輸出到文件。ut.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為。obj文件,并且在本程序調用。
    //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ù)表長度(即數(shù)據(jù)元素的個數(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;
    }
    三、簡單應用題(24分)
    42、
    請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,該工程中包含一個程序文件 main.cpp,其中有類CPolygon(“多邊形”)、CRectangle(“矩形”)、CTriangle(“三角形”)的定義。請在橫線處填寫適當?shù)拇a并刪除橫線,以實現(xiàn)上述類定義。該程序的正確輸出結果應為:
    注意:只能在橫線處填寫適當?shù)拇a,不要改動程序中的其他內容,也不要刪除或移動“//****found****”。
    #include
    {tout<<——< int area(void){return(width *height);}
    class CTriangle:public CPolygon{
    int length;//三角形一邊長
    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,下畫線處應填入的內容是( )。
    A.int
    B.static int
    C.int Point::
    D.static int Point::
    二、基本操作題(18分)
    41、請使用VC6或使用【答題】菜單打開考生文件夾projl下的工程projl,此工程中含有一個源程礙文件 projl.epp。其中位于每個注釋“//ERROR ****found****”之后的一行語句存在錯誤。請改正這些錯誤,使程序的輸出結果為:
    ConstruCtor Called. The value is 10
    Copy ConstruCtor Called. The value is 10
    DestruCtor Called. DestruCtor Called.
    注意:只修改注釋“//ERROR ****found****”的下一行語句,不要改動程序中的其他內容。 //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;
    三、簡單應用題(24分)
    42、請使用VC6或使用【答題】菜單打開考生文件夾pr092下的工程pros2。此工程中包含一個程序文件main.cpp,其中有“部門”類Department和“職工”類Staff的定義,還有主函數(shù)main的定義。在主函數(shù)中定義了兩個“職工”對象,他們屬于同一部門。程序展示,當該部門改換辦公室后,這兩個人的辦公室也同時得到改變。請在程序中的橫線處填寫適當?shù)拇a并刪除橫線,以實現(xiàn)上述類定義。此程序的正確輸出結果應為:
    改換辦公室前:
    職工號:0789姓名:張三部門:人事處辦公室:521
    職工號:0513姓名:李四部門:人事處辦公室:521
    改換辦公室后:
    職工號:0789姓名:張三部門:人事處辦公室:311
    職工號:0513姓名:李四部門:人事處辦公室:311
    注意:只在橫線處填寫適當?shù)拇a,不要改動程序中的其他內容,也不要刪除或移動“//****found****”。
    #include
    using namespace std;
    class Department{ //“部門”類
    public:
    Department(const char*name,const char*office){
    strcpy(this一>name,nanle);
    //**********found**********
    }
    const char*getName()const{return name;}//返回部門名稱
    //**********found**********
    const char*getOffice()const{________} //返回辦公室房號
    void changeOfficeTo(const char*office){ //改換為指定房號的另一個辦公室
    strcpy(this一>office,office);
    }
    private:
    char name[20];//部門名稱
    char office[20];//部門所在辦公室房號
    };
    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];//職工號
    char name[20];//姓名
    Department&dept;//所在部門
    }; void showStaff(Staff&staff){
    cout<<”職工號:”< cout<<”姓名:”< cout<<”部門:”< 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í)行這個程序的輸出結果是(  )。
    A.120
    B.16
    C.154
    D.34
    20、 下面程序的運行結果為( )。
    #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
    軟件生命周期中的活動不包括( )。
    A.市場調研
    B.需求分析
    C.軟件測試
    D.軟件維護
    3、下列關于線性鏈表的敘述中,正確的是( )。
    A.各數(shù)據(jù)結點的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致
    B.各數(shù)據(jù)結點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)
    C.進行插入與刪除時,不需要移動表中的元素
    D.以上說法均不正確
    4、對于一個類定義,下列敘述中錯誤的是( )。
    A.如果沒有定義拷貝構造函數(shù),編譯器將生成一個拷貝構造函數(shù)
    B.如果沒有定義缺省的構造函數(shù),編譯器一定將生成一個缺省的構造函數(shù)
    C.如果沒有定義構造函數(shù),編譯器將生成一個缺省的構造函數(shù)和一個拷貝構造函數(shù)
    D.如果已經(jīng)定義了構造函數(shù)和拷貝構造函數(shù),編譯器不會生成任何構造函數(shù)