當前位置:學問君>學習教育>考研>

阿爾卡特筆試經驗分享

學問君 人氣:2.05W

筆試題目(一)

阿爾卡特筆試經驗分享

1、簡要說軟件開發的過程,說說自己的編程風格,經驗和教訓

2、開發RTOS需要考慮什麼?描述一下搶佔式RTOS的機制

3、用兩種方法分配8個INT-32類型的數據,並說明其分配在內存中的位置

4、兩個程序分別什麼結果,都是memory方面的。ST筆試都考過了

5、如何防止頭檔案被多次引用

6、寫一個函數指針,並在函數中使用

7、在一個值從小到大的數組中用二分法查找一個值

8、寫一個函數將字元串反過來,函數接口用兩個指針

筆試題目(二)

Part A是一些你的知識技能調查

Part B全是通信方面的東西,不會做了,題目都沒看完

Part C是Computer Sience的東西。

前3道是選擇題,很easy

1、用A[1...n]模擬棧,A[n]是棧底,當A[T]是當前棧頂時,POP操作後,當然棧頂是什麼

答:A[T-1]

2、假設二叉樹的根是爲0層,那麼第i層最多有幾個節點?

答:2i

3、以下各項那項是結構化編程語言不允許的a if-else b loop-while,for c goto d function

答:c 順序結構,選擇結構(亦稱分支結構,和循環結構

4、給出軟件生存週期圖---------

答:瀑布模型:設計階段--開發階段--維護階段

①問題定義及規劃 ②需求分析 ③軟件設計 ④程序編碼 ⑤軟件測試 ⑥執行維護

5、C的Structure和C++ 的class的.什麼不同之處

答:Structure的默認訪問權限是public class的默認訪問權限是private

6、什麼是virtual函數,爲什麼使用virtual函數

答:虛成員函數和非虛成員函數調用方式有什麼不同?

非虛成員函數是靜態確定的。也就是說,該成員函數(在編譯時)被靜態地選擇,該選擇基於指象對象的指針(或引用)的類型。

相比而言,虛成員函數是動態確定的(在執行時)。也就是說,成員函數(在執行時)被動態地選擇,該選擇基於對象的類型,而不是指向該對象的指針/引用的類型。這被稱作“動態綁定”。大多數的編譯器使用以下的一些的技術:如果對象有一個或多個虛函數,編譯器將一個隱藏的指針放入對象,該指針稱爲“virtual-pointor”或“v-pointer”。這個v-pointer指向一個全局表,該表稱爲“虛函數表(virtural-table)”或“v-table”。

編譯器爲每個含有至少一個虛函數的類創建一個v-table。例如,如果Cirle類有虛函數ddraw()、move() 和 resize(),那麼將有且只有一個和Cricle類相關的v-table,即使有一大堆Circle對象。並且每個 Circle對象的 v-poiner將指向Circle的這個 v-table。該 v-table自己有指向類的各個虛函數的指針。例如,Circle 的v-table 會有三個指針:

一個指向Circle::draw(),一個指向 Circle::move(),還有一個指向Circle::resize()。

在分發一個虛函數時,執行時系統跟隨對象的 v-pointer找到類的 v-table,然後跟隨v-table中適當的項找到方法的代碼。

以上技術的空間開銷是存在的:每個對象一個額外的指針(僅僅對於需要動態綁定的對象),加上每個方法一個額外的指針(僅僅對於虛方法)。時間開銷也是有的:和普通函數調用比較,虛函數調用需要兩個額外的步驟(得到v-pointer的值,得到方法的地址)。由於編譯器在編譯時就透過指針類型解決了非虛函數的調用,所以這些開銷不會發生在非虛函數上。

虛函數用來表現基類和派生類的成員函數之間的一種關係.

虛函數的定義在基類中進行,在需要定義爲虛函數的成員函數的聲明前冠以關鍵字 virtual.

基類中的某個成員函數被聲明爲虛函數後,此虛函數就可以在一個或多個派生類中被重新定義.

在派生類中重新定義時,其函數原型,包括返回類型,函數名,參數個數,參數類型及參數的先後順序,都必須與基類中的原型完全相同.

虛函數是重載的一種表現形式,是一種動態的重載方式.

7、填空完成ip v4協議表頭

8、你認爲造成軟件 crash的主要原因是什麼,怎麼預防?

答:Crash的主要原因是因爲訪問了不該訪問的東西,比如對非法地址進行寫操作。

9、用C自己寫一個string copy函數

答:Void strcpy(char *s, char *t)

{

While (*s++ = *t++)

;

}

10、寫一個雙向鏈表的插入函數

//在鏈表第i個位置上插入元素status listinsert(dulinklist L, int i. Elemtype e)

{

Dulinklist p,s;

If(i < 1 | i > listlength(L) + 1)

Return ERROR;

P = getelemp(L, i - 1); //在L中確定第i個節點前驅的位置指針p

If(!p)

Return ERROR;

S->data = e; //將e賦給新節點

S->prior = p; //新節點的前驅爲第i - 1個節點

S->next = p-> next; //新節點的後繼爲第i個節點

P->next->prior = s; //第i個節點的前驅指向新節點

P->next = s; //第i - 1個節點的後繼指向新節點

Return OK;

}

Part D (optional)給出你認爲貝爾會感興趣的topic

結合阿爾卡特朗訊是一家提供電信軟硬件設備及服務的跨國公司這個背景來講吧

阿爾卡特朗訊爲全世界的服務提供商、企業和政府提供解決方案,幫助其爲終端用戶提供語音、數據和視頻服務。作爲一個在固定、移動、融合寬帶市場、IP 技術、應用和服務領域的領導者,阿爾卡特朗訊端到端的解決方案,令人們能夠在家中、工作時、移動過程中享受到豐富的通訊服務。