【筆試題精選】_2

考慮函數原型 void hello(int a, int b=7, char pszC=""), 下面的函數調用中屬於不合法調用的是?
A. hello(5)
B. hello(5, 8)
C. hello(6, "#")
D. hello(0, 0, "#")

答案:【C】
說明:
C++ 函數參數的擴展ios

一個有 800 個節點的徹底二叉樹,問有多少個葉子節點?
A. 100
B. 200
C. 400
D. 沒法肯定

答案:【C】
說明:算法

1. 計算徹底二叉樹高度              h = 9 + 1 = 10
2. 計算第 1-9 層節點數目           n_1_9 = 512 - 1 = 511
3. 計算第 10 層節點(都爲葉節點)數目 ln_10 = 800 - 511= 289
4. 計算第 9 層節點數目             n_9 = 256
5. 計算第 9 層葉節點數目           ln_10 = 256 - (288 / 2 + 1) = 256 - 145 = 111
6. 計算總葉節點數目                ln = ln_10 + ln_9 = 289 + 111 = 400

二叉樹的深層特性segmentfault

  • 性質 1

clipboard.png

  • 性質 2

clipboard.png

  • 性質 3

clipboard.png

  • 性質 4

clipboard.png

  • 性質 5

clipboard.png

若 6 元素爲 A.B.C.D.E.F 出棧順序爲 B.D.C.F.E.A,則棧的最小容量爲?
A. 3
B. 4
C. 5
D. 6

答案:【A】
說明:網絡

clipboard.png

排序算法的穩定是指,關鍵碼相同的記錄順序先後相對位置不發生改變,下面哪一種排序順序算法是不穩定的?
A. 插入排序
B. 冒泡排序
C. 快速排序
D. 歸併排序

答案:【C】函數

說明:
排序算法 時間複雜度 穩定性
選擇排序 O(n2) 不穩定
插入排序 O(n2) 穩定
冒泡排序 O(n2) 穩定
希爾排序 O(n(2/3)) 不穩定
歸併排序 O(nlogn) 穩定
快速排序 O(nlogn) 不穩定
以下關於進程的描述不正確的是?
A. 進程在退出時會自動關閉本身打開的全部文件
B. 進程在退出時會自動關閉本身打開的網絡連接
C. 進程在退出時會自動銷燬本身建立的全部線程
D. 進程在退出時會自動銷燬本身打開的共享內存

答案:【D】post

在一個 cpp 文件裏面,定義了一個 static 類型的全局變量,下面一個正確的描述是?
A. 只能在該 cpp 所在的編譯模塊中使用該變量
B. 該變量的值是不可改變的
C. 該變量不能在類的成員函數中引用
D. 該變量只能是基本類型(如 int, char)不能是 C++ 類型

答案:【A】
說明:
C中的staticspa

下面有關重載函數的說法中正確的是?
A. 重載函數必須有不一樣的返回值類型
B. 重載函數形參個數必須不一樣
C. 重載函數必須有不一樣的形參列表
D. 重載函數名能夠不一樣

答案:【C】
說明:
函數重載分析-上
函數重載分析-下線程

某火車站要經過一條棧道(先進後出)來調換進入車站的列車順序,若進站的列車順序爲A、B、C,則下列哪一個出站順序不可能?
A. ABC
B. ACB
C. CAB
D. CBA

答案:【C】code

下面哪一種狀況下, B 不能隱式轉換爲 A ?
A. class B:public A{};
B. class A:public B{};
C. class B{operator A();};
D. class A{A(const B&)};

答案:【B】
說明
A. 賦值兼容性
B. 類型轉換函數
D. 轉換構造函數對象

分析下面程序的運行結構
#include<iostream.h>
class CBase
{
    public:
    CBase(){ cout<<"constructing CBase class"<<endl; }
    ~CBase(){ cout<<"destructing CBase class"<<endl; }
};
class CSub : public CBase
{
    public:
    CSub(){cout<<"constructing CSub class"<<endl;}
    ~CSub(){cout<<"destructing CSub class"<<endl;}
};
void main()
{
    CSub obj;
}
A.  constructing CSub class
    constructing CBase class
    destructing CSub class
    destructing CBase class
    
B.  constructing CBase class
    constructing CSub class
    destructing CBase class
    destructing CSub class
    
C.  constructing CBase class
    constructing CSub class
    destructing CSub class
    destructing CBase class
    
D.  constructing CSub class
    constructing CBase class
    destructing CBase class
    destructing CSub class

答案:【C】
說明:

對象建立時的構造順序:先父母,再客人,後本身
析構順序與構造順序相反

繼承中的構造與析構

兩個字符串 char a, char b, 輸出 b 在 a 中的位置次序
void output_postion(const char* a, const char* b);

如:a = "abdbcc" b = "abc"
    b 在 a 中的位置次序爲
    014
    015
    034
    035
void abstring(string& a, int ai, string& b, int bi, list<int>& l)
{
    if( bi == b.length() )
    {
        for(list<int>::iterator it=l.begin(); it!=l.end(); it++)
        {
            cout << *it;
        }

        cout << endl;
    }
    else
    {
        for(int i=ai; i<a.length(); i++)
        {
            if( a[i] == b[bi] )
            {
                l.push_back(i);

                abstring(a, i+1, b, bi+1, l);

                l.pop_back();
            }
        }
    }
}

void output_postion(const char* a, const char* b)
{
    string as = a;
    string bs = b;
    list<int> l;

    abstring(as, 0, bs, 0, l);
}
相關文章
相關標籤/搜索