加拿大著名電信設備制造商北電網絡公司始建于一個世紀以前,在通訊發展進步歷程中始終處于領袖地位,廣東北電通信設備有限公司成立于1995年3月,是北電在華投資的核心公司之一。公司網址是
http://www.gdnt.com.cn/ 下面是廣東北電的筆試題(中英文題),這套題早已在網絡上流傳數年,從來只見題目,不見解答,

那就讓我做做吧。英文搞得不對的地方那就沒辦法了。希望大家轉貼的時候聲明出處。
一:英文題。
1. Tranlation (Mandatory) CDMA venders have worked hard to give CDMA roaming capabilities via the development of RUIM-essentially, a SIM card for CDMA handsets currently being deployed in China for new CDMA operator China Unicom. Korean cellco KTF demonstrated earlier this year the ability to roam between GSM and CDMA using such cards.However,only the card containing the user’s service data can roam-not the CDMA handset or the user’s number (except via call forwarding).
翻譯:CDMA開發商一直致力于RUIM卡的開發,以此賦予CDMA漫游的能力。RUIM卡類似于SIM卡,事實上目前它已經被中國的CDMA運營商中國聯通廣泛使用。韓國手機制造企業KTF今年早些時候展示了使用此種卡在GSM和CDMA網絡中漫游的功能,但是,只有該卡包含的用戶服務數據能夠漫游,CDMA手機本身及用戶號碼則不能(除了呼叫前轉業務)。
呵呵。上文可能翻譯的不太精準,歡迎批評。 2. Programming (Mandatory) Linked list
a. Implement a linked list for integers,which supports the insertafter (insert a node after a specified node) and removeafter (remove the node after a specified node) methods;
b. Implement a method to sort the linked list to descending order.
答:題目的意思是實現一個整型鏈表,支持插入,刪除操作(有特殊要求,都是在指定節點后進行操作),并寫一個對鏈表數據進行降序排序的方法。
那我們不妨以一個線性鏈表進行編程。
//?單鏈表結構體為
typedef?struct?LNode?
{
??int?data;
??struct?LNode?*next;
}LNode,?*pLinkList;
//?單鏈表類
class?LinkList
{
private:
??pLinkList?m_pList;
??int?m_listLength;
public:
??LinkList();
??~LinkList();
??bool?InsertAfter(int?afternode,?int?data);//插入
??bool?RemoveAfter(int?removenode);//刪除
??void?sort();//排序
};
實現方法
//insert a node after a specified nodebool?LinkList::InsertAfter(int?afternode,?int?data)
{
??LNode?*pTemp?=?m_pList;
??int?curPos?=?-1;
??if?(afternode?>?m_listLength?)?//?插入點超過總長度
??{
????return?false;
??}
??while?(pTemp?!=?NULL)????//?找到指定的節點
??{
????curPos++;
????if?(curPos?==?afternode)?
????break;
????pTemp?=?pTemp->next;
??}
??if?(curPos?!=?afternode)???//?節點未尋到,錯誤退出
??{
????return?false;
??}
??LNode?*newNode?=?new?LNode;??//?將新節點插入指定節點后
??newNode->data?=?data;
??newNode->next?=?pTemp->next;
??pTemp->next?=?newNode;
??m_listLength++;
??return?true;
}
//remove the node after a specified nodebool?LinkList::RemoveAfter(int?removenode)?
{
??LNode?*pTemp?=?m_pList;
??int?curPos=-1;
??if?(removenode?>?m_listLength)??//?刪除點超過總長度
??{
????return?false;
??}
??//?找到指定的節點后一個節點,因為刪除的是后一個節點
??while?(pTemp?!=?NULL)????
??{
????curPos++;
????if?(curPos?==?removenode+1)?
????break;
????pTemp?=?pTemp->next;
??}
??if?(curPos?!=?removenode)???//?節點未尋到,錯誤退出
??{
????return?false;
??}
??LNode?*pDel?=?NULL;????//?刪除節點
??pDel?=?pTemp->next;
??pTemp->next?=?pDel->next;
??delete?pDel;
??m_listLength--;
??return?true;
}
//sort the linked list to descending order.void?LinkList::sort()
{
??if?(m_listLength<=1)
??{
????return;
??}
??LNode?*pTemp?=?m_pList;
??int?temp;
??//?選擇法排序
??for(int?i=0;i<m_listLength-1;i++)
????for(int?j=i+1;j<m_listLength;j++)
??????if?(pTemp[i].data<pTemp[j].data)
??????{
????????temp=pTemp[i].data;
????????pTemp[i].data=pTemp[j].data;
????????pTemp[j].data=temp;
??????}
}
前兩個函數實現了要求a,后一個函數sort()實現了要求b
3. Debugging (Mandatory)a. For each of the following recursive methods, enter Y in the answer box if the method terminaters (assume i=5), Otherwise enter N.
(題目意思:判斷下面的遞歸函數是否可以結束)
static?int?f(int?i){
????return?f(i-1)*f(i-1);
}
Ansewr: N,明顯沒有返回條件語句,無限遞歸了
static?int?f(int?i){
????if(i==0){return?1;}
????else?{return?f(i-1)*f(i-1);}
}
Ansewr:Y,當i=0時可結束遞歸
static?int?f(int?i){
???if(i==0){return?1;}
???else?{return?f(i-1)*f(i-2);}
}
Ansewr:N,因為i=1時,f(i-2)=f(-1),進入一個無限遞歸中
b. There are two errors in the following JAVA program:
static?void?g(int?i){
???if(i==1){return;}
???if(i%2==0){g(i/2);return;}
???else?{g(3*i);return;}
}
please correct them to make sure we can get the printed-out result as below:
3 10 5 16 8 4 2 1
答:在第一個if語句前加 System.out.print(i+" ");
else 里面的g(3*i)改為g(3*i+1)
該題由網友alvin補上,我不熟java。謝謝他。
----------------------------------------------
又到廣告時間:版權所有:朱科 歡迎光臨我的網站:www.goodsoft.cn,各位轉貼別刪,勞動成果啊
----------------------------------------------中文筆試題1.漢譯英 北電網絡的開發者計劃使來自于不同組織的開發者,能夠在北電網絡的平臺上開發圓滿的補充業務。北電網絡符合工業標準的開放接口,為補充業務的開展引入了無數商機,開發者計劃為不同層面的開發者提供不同等級的資格,資格的劃分還考慮到以下因素:補充業務與北電網絡平臺的集合程度,開發者團體與北電網絡的合作關系,等等。
答:呵呵。這個這個基本上還是不現丑了吧。
2.編程 將整數轉換成字符串:void itoa(int,char);
例如itoa(-123,s[])則s=“-123”;
答:
char*?itoa(int?value,?char*?string)
{
??char?tmp[33];
??char*?tp?=?tmp;
??int?i;
??unsigned?v;
??char*?sp;
??//?將值轉為正值
??if?(value?<?0)
????v?=?-value;
??else
????v?=?(unsigned)value;
??//?將數轉換為字符放在數組tmp中
??while?(v)
??{
????i?=?v?%?10;
????v?=?v?/?10;
????*tp++?=?i+'0';
??}
??//?將tmp里的字符填入string指針里,并加上負號(如果有)??
??sp?=?string;
??if?(value?<?0)
????*sp++?=?'-';
??while?(tp?>?tmp)
????*sp++?=?*--tp;
??*sp?=?0;
??return?string;
}