國內某大型互連網綜合服務提供者上海站筆經-10月14日上午

來源:互聯網
上載者:User

很奇怪,一道邏輯題都沒有。而且題量不大,難度僅是稍稍大點,不過一些地方是埋有地雷的,做題要小心呀。記錄了幾道涉及到自己知識盲點的題目。俺相信隨著自己的積累,一定會釣到一條大魚滴!加油!菜鳥們共勉啊~~

一、選擇題:

1.求函數輸出

class A{public:int m_a;A():m_a(0){cout << "A" << endl;}};class B : public A{public:int m_a;B():m_a(2){cout << "B" << endl;}};int main(){A * a = new B();cout << sizeof(B) << endl;cout << a->m_a << endl;}

答案是 A   B   8  0。分析:子類將父類的資料成員繼承下來了。另外sizeof(a) = 4, 當由一個基類指標指向一個子類對象時,此指標只可訪問到父類的成員變數。

2.涉及到這幾個欄位。需要瞭解。在TCP層,有個FLAGS欄位,這個欄位有以下幾個標識:SYN, FIN, ACK, PSH, RST, URG.

其中,對於我們日常的分析有用的就是前面的五個欄位。

它們的含義是:

SYN表示建立串連,FIN表示關閉串連,ACK表示響應,PSH表示有 DATA資料轉送,RST表示串連重設。

其中,ACK是可能與SYN,FIN等同時使用的,比如SYN和ACK可能同時為1,它表示的就是建立串連之後的響應,

如果只是單個的一個SYN,它表示的只是建立串連。

TCP的幾次握手就是通過這樣的ACK表現出來的。

但SYN與FIN是不會同時為1的,因為前者表示的是建立串連,而後者表示的是中斷連線。

RST一般是在FIN之後才會出現為1的情況,表示的是串連重設。

一般地,當出現FIN包或RST包時,我們便認為用戶端與伺服器端斷開了串連;而當出現SYN和SYN+ACK包時,我們認為用戶端與伺服器建立了一個串連。

PSH為1的情況,一般只出現在 DATA內容不為0的包中,也就是說PSH為1表示的是有真正的TCP資料包內容被傳遞。

TCP的串連建立和串連關閉,都是通過請求-響應的模式完成的。

概念補充-TCP三向交握:

TCP(Transmission Control Protocol)傳輸控制通訊協定

TCP是主機對主機層的傳輸控制通訊協定,提供可靠的串連服務,採用三向交握確認建立一個串連:

位碼即tcp標誌位,有6種標示:SYN(synchronous建立聯機) ACK(acknowledgement 確認) PSH(push傳送) FIN(finish結束) RST(reset重設) URG(urgent緊急)Sequence number(順序號碼) Acknowledge number(確認號碼)

第一次握手:主機A發送位碼為syn=1,隨機產生seq number=1234567的資料包到伺服器,主機B由SYN=1知道,A要求建立聯機;

第二次握手:主機B收到請求後要確認聯機資訊,向A發送ack number=(主機A的seq+1),syn=1,ack=1,隨機產生seq=7654321的包;

第三向交握:主機A收到後檢查ack number是否正確,即第一次發送的seq number+1,以及位碼ack是否為1,若正確,主機A會再發送ack number=(主機B的seq+1),ack=1,主機B收到後確認seq值與ack=1則串連建立成功。

完成三向交握,主機A與主機B開始傳送資料。

3.win32 x86機器,輸出什麼

union U{    char a;    int b;    double c;};struct A{    char b;    U a;    };int main(){    cout << sizeof(A) << endl;}

答案是16.選項中沒有這一項。只有8,12等等,只得選了8。 須記住sizeof(double) = 8。

4.運算元包含在指令中的定址方式:立即定址。立即定址中的立即數是指令的一部份,儲存在程式碼片段,執行是不用去取資料區段中的資料。例如:MOV   AX,10H,採用的是立即數定址方式,這條指令(包含運算元AX和10H)被彙編器編譯成一條機器代碼,此指令執行前被載入到指令緩衝隊列裡,執行時CPU在讀取此機器代碼時就讀取了10H,10H立即就可以被送往AX(而不用到寄存器或者記憶體中去取運算元),因此叫做立即數定址,指令執行效率最高。

5.RAID0,1,2,5,10穩定性比較?

RAID, Redundant Array ofInexpensive
Disks)簡稱硬碟陣列,其基本思想就是把多個相對便宜的硬碟組合起來,成為一個硬碟陣列組,使效能達到甚至超過一個價格昂貴、容量巨大的硬碟。  越往後越穩定,0最不穩定。其中RAID10指的是RAID 1+0不是十。

6.HTML中用哪條語句表示超級連結。

HTML用<a>來表示超連結,英文叫anchor。

<a>可以指向任何一個檔案源:一個HTML網頁,一個圖片,一個影視檔案等。用法如下:

<a href="url">連結的顯示文字</a>

點擊<a></a>當中的內容,即可開啟一個連結檔案,href屬性則表示這個連結檔案的路徑。

比如連結到blabla.cn網站首頁,就可以這樣表示:

<a href="url">連結的顯示文字</a> 

7.使前一條命令的輸出作為後一條命令的輸入,這是哪種命令方式:A.輸入重新導向;B輸出重新導向;C管道   答案:C.

二、填空題:

1.C++中四種類型轉換符?const_cast, static_cast, reinterpret_cast,dynamic_cast.

分別對應的例子如下:

i)const_cast

char * string_copy(char * s){return s;}int main(){const char * pc_str = new char;//char * pc = string_copy(pc_str); //如直接傳入pc_str則編譯錯誤char * pc = string_copy(const_cast<char*>(pc_str));if(pc_str == pc)cout << "hello" << endl;return 0;}

運行後,輸出hello
ii)static_cast

int main(){double d = 12;void * p = &d;  //cout << *p << endl;  //報錯:must be a pointer to a complete object type.double * pd = static_cast<double *>(p);cout << *pd << endl;}

運行後,輸出12.

iii)reinterpret_cast

int main(){int * ip = new int;char * pc = reinterpret_cast<char * >(ip);string str(pc);//string(ip);  // 報錯,類型不符合。}

可以正常運行。以上這個例子只明白意思就可以了。例子不好。

iv)dynamic_cast

class A{public:virtual void print() const{cout <<"A\n";}};class B{public:virtual void print() const {cout<< "B\n";}};class C:public A, public B{public:void print() const {cout << "C\n";}};int main(){A * a = new A;B * b = new B;C * c = new C;a->print(); b->print(); c->print();b = dynamic_cast<B*>(a); if(b)b->print();elsecout << "no B\n";a = c;a->print();b = dynamic_cast<B*>(a);if(b)b->print();elsecout << "no B\n";b = dynamic_cast<B*>(c);if(c)b->print();elsecout << "no B\n";}

運行後,輸出

A
B
C
no B
C
C
C
還是國外的例子更給力。

2.pM是某塊可用記憶體的首地址,如果希望A類的對象分配到這塊記憶體,需要如何?? pM = new A();

3.關於Bit-map。其中, 將第n bit置位,char b[Len];  if( n < LEN)  b[n] |= ?;    1.

三、大題:

一副撲克牌54張,用1-54編號,請設計一個演算法使得這些牌序被隨機打亂。完美排序看起來不錯。不過現在還沒搞懂。。。 有點難度!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.