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

那就讓我做做吧。英文搞得不對的地方那就沒辦法了。希望大家轉(zhuǎn)貼的時候聲明出處。
一:英文題。
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開發(fā)商一直致力于RUIM卡的開發(fā),以此賦予CDMA漫游的能力。RUIM卡類似于SIM卡,事實上目前它已經(jīng)被中國的CDMA運營商中國聯(lián)通廣泛使用。韓國手機制造企業(yè)KTF今年早些時候展示了使用此種卡在GSM和CDMA網(wǎng)絡(luò)中漫游的功能,但是,只有該卡包含的用戶服務(wù)數(shù)據(jù)能夠漫游,CDMA手機本身及用戶號碼則不能(除了呼叫前轉(zhuǎn)業(yè)務(wù))。
呵呵。上文可能翻譯的不太精準(zhǔn),歡迎批評。 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.
答:題目的意思是實現(xiàn)一個整型鏈表,支持插入,刪除操作(有特殊要求,都是在指定節(jié)點后進行操作),并寫一個對鏈表數(shù)據(jù)進行降序排序的方法。
那我們不妨以一個線性鏈表進行編程。
//?單鏈表結(jié)構(gòu)體為
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();//排序
};
實現(xiàn)方法
//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)????//?找到指定的節(jié)點
??{
????curPos++;
????if?(curPos?==?afternode)?
????break;
????pTemp?=?pTemp->next;
??}
??if?(curPos?!=?afternode)???//?節(jié)點未尋到,錯誤退出
??{
????return?false;
??}
??LNode?*newNode?=?new?LNode;??//?將新節(jié)點插入指定節(jié)點后
??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;
??}
??//?找到指定的節(jié)點后一個節(jié)點,因為刪除的是后一個節(jié)點
??while?(pTemp?!=?NULL)????
??{
????curPos++;
????if?(curPos?==?removenode+1)?
????break;
????pTemp?=?pTemp->next;
??}
??if?(curPos?!=?removenode)???//?節(jié)點未尋到,錯誤退出
??{
????return?false;
??}
??LNode?*pDel?=?NULL;????//?刪除節(jié)點
??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;
??????}
}
前兩個函數(shù)實現(xiàn)了要求a,后一個函數(shù)sort()實現(xiàn)了要求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.
(題目意思:判斷下面的遞歸函數(shù)是否可以結(jié)束)
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,當(dāng)i=0時可結(jié)束遞歸
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)
該題由網(wǎng)友alvin補上,我不熟java。謝謝他。
----------------------------------------------
又到廣告時間:版權(quán)所有:朱科 歡迎光臨我的網(wǎng)站:www.goodsoft.cn,各位轉(zhuǎn)貼別刪,勞動成果啊
----------------------------------------------中文筆試題1.漢譯英 北電網(wǎng)絡(luò)的開發(fā)者計劃使來自于不同組織的開發(fā)者,能夠在北電網(wǎng)絡(luò)的平臺上開發(fā)圓滿的補充業(yè)務(wù)。北電網(wǎng)絡(luò)符合工業(yè)標(biāo)準(zhǔn)的開放接口,為補充業(yè)務(wù)的開展引入了無數(shù)商機,開發(fā)者計劃為不同層面的開發(fā)者提供不同等級的資格,資格的劃分還考慮到以下因素:補充業(yè)務(wù)與北電網(wǎng)絡(luò)平臺的集合程度,開發(fā)者團體與北電網(wǎng)絡(luò)的合作關(guān)系,等等。
答:呵呵。這個這個基本上還是不現(xiàn)丑了吧。
2.編程 將整數(shù)轉(zhuǎn)換成字符串: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;
??//?將值轉(zhuǎn)為正值
??if?(value?<?0)
????v?=?-value;
??else
????v?=?(unsigned)value;
??//?將數(shù)轉(zhuǎn)換為字符放在數(shù)組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;
}