2012年9月計算機(jī)等級考試二級C++考前模擬測試卷一

字號:

計算機(jī)等級考試二級C++模擬試題1筆試部分
    一、選擇題
    1.假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要的比較次數(shù)為( )
    A.log2n B.n*n C.O(n*1.5) D.n(n-1)/2
    【參考答案】 D
    2.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是( )
    A.每個元素都有一個直接前件和直接后件
    B.線性表中至少要有一個元素
    C.表中諸元素的排列順序必須是由小到大或由大到小
    D.除第一個元素和最后一個元素外,其余每個元素都有且只有一個直接前件和直接后件
    【參考答案】 D
    3.軟件工程的出現(xiàn)是由于( )
    A.程序設(shè)計方法學(xué)的影響 B.軟件產(chǎn)業(yè)化的需要 C.軟件危機(jī)的出現(xiàn) D.計算機(jī)的發(fā)展
    【參考答案】 C
    4.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示( )
    A.模塊之間的調(diào)用關(guān)系 B.程序的組成成分 C.控制程序的執(zhí)行順序 D.數(shù)據(jù)的流向
    【參考答案】 D
    5.關(guān)系表中的每一橫行稱為一個( )
    A.元組 B.字段 C.屬性 D.碼
    【參考答案】 A
    6.循環(huán)鏈表的主要優(yōu)點是( )
    A.不再需要頭指針了
    B.從表中任一結(jié)點出發(fā)都能訪問到整個鏈表
    C.在進(jìn)行插入、刪除運算時,能更好的保證鏈表不斷開
    D.已知某個結(jié)點的位置后,能夠容易的找到它的直接前件
    【參考答案】 B
    7.n個頂點的強(qiáng)連通圖的邊數(shù)至少有( )
    A.n-1 B.n(n-1) C.n D.n+1
    【參考答案】 C
    8.模塊獨立性是軟件模塊化所提出的要求,衡量模塊獨立性的度量標(biāo)準(zhǔn)則是模塊的( )
    A.抽象和信息隱蔽 B.局部化和封裝化
    C.內(nèi)聚性和耦合性 D.激活機(jī)制和控制方法
    【參考答案】 C
    9.在軟件工程中,白箱測試法可用于測試程序的內(nèi)部結(jié)構(gòu)。此方法將程序看做是( )
    A.路徑的集合 B.循環(huán)的集合 C.目標(biāo)的集合 D.地址的集合
    【參考答案】 A
    10.數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是( )
    A.概念設(shè)計和邏輯設(shè)計
    B.模式設(shè)計和內(nèi)模式設(shè)計
    C.內(nèi)模式設(shè)計和物理設(shè)計
    D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計
    【參考答案】 A11. C++語言是以哪種語言為基礎(chǔ)逐漸發(fā)展演變而成的一種程序設(shè)計語言( )
    A.ASP B.C C.VB D.Java
    【參考答案】 B
    12.能正確表示邏輯關(guān)系:“a≥10或a≤0”的C++語言表達(dá)式是( )
    A.a>10 or a<=0 B.a>=0|a<=10 C.a>=10 && a<=0 D.a>=10‖a<=0
    【參考答案】 D
    13.若執(zhí)行下面的程序時,從鍵盤上輸入5和2,則輸出結(jié)果是( )
    #include
    void main()
    { int a,b,k;
    cin>>a>>b;
    k=a;
    if(a
    k=a%b;
    else
    k=b%a;
     cout<
    A.5 B.3 C.2 D.0
    【參考答案】 C
    14.若有說明語句
    char a[]″It is mine″;
    char *p=″It is mine″;
    則以下不正確的敘述是( )
    A.a+1表示的是字符t的地址
    B.p指向另外的字符串時,字符串長度不受限制
    C.p變量中存放的地址值可以改變
    D.a中只能存放10個字符
    【參考答案】 D
    15.下列程序是用來判斷數(shù)組中特定元素的位置所在,則輸出結(jié)果為( )
    #include
    #include
    int fun(int *s,int t,int *k)
    {int i;
    *k=0;
    for(i=0;i
    if(s[*k]
    return s[*k];}
    void main()
    {int a[10]={876,675,896,101,301,401,980,431,451,777},k;
    fun(a,10,&k);
    cout<
    A.7,431 B.6 C.980 D.6,980
    【參考答案】 D
    16.關(guān)于this指針的說明不正確的是( )
    A.不能在程序中修改this指針
    B.this指針可以給其他指針賦值,但不能修改this指針
    C.靜態(tài)成員函數(shù)中沒有this指針
    D.this指針可以被賦值
    【參考答案】 D  17.關(guān)于虛函數(shù)下面說的正確的是( )
    A.若在重定義虛函數(shù)時使用了virtual,則該重定義函數(shù)還是虛函數(shù)
    B.虛函數(shù)不能聲明為友元
    C.子類必須重定義父類的虛函數(shù)
    D.虛函數(shù)不能是static的
    【參考答案】 D
    18.要想使23.78965421的輸出為23.7887應(yīng)用的語句是( )
    A.cout<<23.78965421; B.cout<
    C.cout<<23.78965421 -0.001; D.cout<
    【參考答案】 C
    19.有以下程序
    #include
    float fun(int x,int y)
    { return(x+y);}
    void main()
    { int a=2,b=5,c=8;
    cout<
    程序運行后的輸出結(jié)果是( )
    A.編譯出錯 B.9 C.21 D.9.0
    【參考答案】 B
    20.C++中,封裝是借助于什么達(dá)到的?( )
    A.結(jié)構(gòu) B.類 C.數(shù)組 D.函數(shù)
    【參考答案】 B
    21.有如下程序
    #include
    #define N 2
    #define M N+1
    #define NUM 2*M+1
    void main()
    {int i;
    for(i=1;i<=NUM;i++)
     cout<
    該程序中的for循環(huán)執(zhí)行的次數(shù)是( )
    A.5 B.6 C.7 D.8
    【參考答案】 B
    22.所有在函數(shù)中定義的變量,連同形式參數(shù),都屬于( )
    A.全局變量 B.局部變量 C.靜態(tài)變量 D.寄存器變量
    【參考答案】 B
    23.下列關(guān)于C++關(guān)鍵字的說法中正確的是( )
    A.關(guān)鍵字是用戶為程序中各種需要命名的“元素”所起的名字
    B.關(guān)鍵字是對程序中的數(shù)據(jù)進(jìn)行操作的一類單詞
    C.關(guān)鍵字是在程序中起分割內(nèi)容和界定范圍作用的一類單詞
    D.關(guān)鍵字是C++中預(yù)先定義并實現(xiàn)一定功能的一類單詞
    【參考答案】 D
    24.C++語言中運算對象必須是整型的運算符是( )
    A.%= B./ C.= D.<=
    【參考答案】 A
    25.有如下程序段
    #include
    void main()
    {int a=14,b=15,x;
    char c=′A′;
    x=(a&&b)&&(c<′B′);
    cout<
    執(zhí)行該程序段后,x的值為( )
    A.ture B.false C.0 D.1
    【參考答案】 D  26.如下程序的執(zhí)行結(jié)果是( )
    #include
    void main()
    { static int a[]={1,7,3,9,5,11};
    int *p=a;
    *(p+3)+=4;
    cout<<*p<<″,″<<*(p+3);}
    A.1,13 B.1,16 C.3,13 D.1,14
    【參考答案】 A
    27.下列程序的輸出結(jié)果是( )
    #include
    void main()
    {double d=3.2;
    int x,y;
    x=1.2;
    y=(x+3.8)/5.0;
    cout<
    A.3 B.3.2 C.0 D.3.07
    【參考答案】 C
    28.C++中類的定義的結(jié)束聲明的符號是( )
    A.} B., C.; D.{
    【參考答案】 C
    29.下列描述中錯誤的是( )
    A.析構(gòu)函數(shù)可以被繼承
    B.虛函數(shù)不能被繼承
    C.派生類可以有多個基類
    D.純虛基類的子類可以是虛基類
    【參考答案】 B
    30.下面關(guān)于成員函數(shù)重載運算符和友元函數(shù)重載運算符相同的是( )
    A.成員函數(shù)和友元函數(shù)可重載的運算符是不相同的
    B.成員函數(shù)和友元函數(shù)重載運算符時都需要用到this指針
    C.成員函數(shù)和友元函數(shù)重載運算符時都需要聲明為公有的
    D.成員函數(shù)和友元函數(shù)重載運算符時的參數(shù)可能是相同的
    【參考答案】 A
    31.執(zhí)行下面的程序段后,變量k中的值為( )
    #include
    void main()
    { int k=3,s[2];
    s[0]=k;k=s[1]*10;
    cout<
    A.不定值 B.33 C.30 D.10
    【參考答案】 A 32.以下程序的結(jié)果是( )
    #include
    void main()
    { char *p=″abcdefgh″,*r;
    long *q;
    q++;
    r=(char*)q;
    cout<
    A.defg B.cdef C.ghab D.efgh
    【參考答案】 D
    33.有以下程序
    #include
    struct STU
    {char num[10];
    float score[3];};
    void main()
    {struct STU s[3]={″20021″,90,95,85},
     {″20022″,95,80,75},
     {″20023″,100,95,90,}},*p=s;
    int i;
    float sum=0;
    for(i=0;i<3;i++)
    sum=sum+p->score[i];
    cout<
    程序運行后的輸出結(jié)果是( )
    A.260 B.270 C.280 D.285
    【參考答案】 B
    34.以下程序段的執(zhí)行結(jié)果為( )
    #include
    define PLUS(X,Y)X+Y
    void main()
    { int x=1,y=2,z=3,sum;
    sum=PLUS(x+y,z)*PLUS(y,z);
    cout<<″SUM=″<
    cout<
    A.SUM=9 B.SUM=12 C.SUM=18 D.SUM=30
    【參考答案】 B
    35.以下程序的輸出結(jié)果是( )
    #include
    int f()
    { static int i=0;
    int s=1;
    s+=i;i++;
    return s;}
    void main()
    { int i,a=0;
    for(i=0;i<5;i++)a+=f();
    cout<
    A.20 B.24 C.25 D.15
    【參考答案】 D 二、填空題
    1.在算法正確的前提下,評價一個算法的兩個標(biāo)準(zhǔn)是【1】。
    【參考答案】
    【1】時間復(fù)雜度和空間復(fù)雜度
    2.軟件危機(jī)出現(xiàn)于60年代末,為了解決軟件危機(jī),人們提出了【2】的原理來設(shè)計軟件,這就是軟件工程誕生的基礎(chǔ)。
    【參考答案】
    【2】軟件工程學(xué)
    3.在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個【3】。
    【參考答案】
    【3】關(guān)系
    4.軟件維護(hù)活動包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【4】維護(hù)和預(yù)防性維護(hù)。
    【參考答案】
    【4】完善性
    5.關(guān)鍵字ASC和DESC分別表示【5】的含義。
    【參考答案】
    【5】升序排列和降序排列
    6.下面程序的結(jié)果為【6】。
    #include
    void main()
    {int a=1,b=2;
    bool c=1;
    if((a>b)||c)cout<<″true″<
    else
    cout<<″false″<
    【參考答案】
    【6】true
    7.下面程序的輸出結(jié)果是【7】。
    #include
    void main()
    {int a[6]={1,2,3,4,5,6};
    for(int i=0;i<5;i++)
    cout<
    cout<
    【參考答案】
    【7】1 2 3 4 5
    8.假定A為一個類,則語句A(A &a);為該類【8】函數(shù)的原型說明。
    【參考答案】
    【8】拷貝構(gòu)造
    9.類模板不同于函數(shù)模板,類模板只可用【9】型參數(shù)。
    【參考答案】
    【9】類
    10.內(nèi)聯(lián)函數(shù)是通過【10】來實現(xiàn)的,因此內(nèi)聯(lián)函數(shù)是真正的函數(shù)。
    【參考答案】
    【10】編譯器11.以下程序的執(zhí)行結(jié)果為【11】。
    #include
    using namespace std;
    class base
    {
    public:
    virtual void who()
    {cout<<″base class″<
    };
    class derive1:public base
    {
    public:
    void who()
    {cout<<″derive1 class″<
    };
    class derive2:public base
    {
    public:
    void who()
    {cout<<″derive2 class″<
    };
    void main()
    {
    base obj1,*p;
    derive1 obj2;
    derive2 obj3;
    p=&obj1;
    p->who();
    p=&obj2;
    p->who();
    p=&obj3;
    p->who();
    }
    【參考答案】
    【11】base class derive1 class derive2 class
    12.operator是運算符重載時必須使用的關(guān)鍵字,它和被重載的運算符連在一起,作為運算符函數(shù)的專用函數(shù)名,務(wù)必把該函數(shù)說明為【12】的。
    【參考答案】
    【12】二義性
    13.【13】是一系列相關(guān)函數(shù)的模型或樣板,這些函數(shù)的【14】形式相同,只是所針對的【15】不同。
    【參考答案】
    【13】函數(shù)模板 【14】源代碼 【15】數(shù)據(jù)類型