嵌(qian)入式軟(ruan)件面試題 經典筆試題(含答案)
時間:2016-01-12 來源:未知
1、下面有關servlet中(zhong)init,service,destroy方法描(miao)述錯誤的是?
A.init()方(fang)法(fa)是servlet生命的起(qi)點。一旦加載(zai)了某個servlet,服務(wu)器將(jiang)立即調用(yong)它的init()方(fang)法(fa)
B.Service()方法處(chu)理客戶機發(fa)出的所有(you)請求
C.destroy()方法標志servlet生命周(zhou)期的結(jie)束
D.servlet在多線(xian)程(cheng)下(xia)使用(yong)了同步機(ji)制,因此,在并發編程(cheng)下(xia)servlet是(shi)線(xian)程(cheng)安全的
參考答案:D
2、下面有(you)關(guan)java和c++的描述,錯誤的是(shi)?
A.java是一次編(bian)(bian)寫(xie)多(duo)處運(yun)行(xing),c++是一次編(bian)(bian)寫(xie)多(duo)處編(bian)(bian)譯
B.c++和java支持多重承
C.Java不支(zhi)持操作(zuo)符(fu)重(zhong)載,操作(zuo)符(fu)重(zhong)載被認為是c++的突出(chu)特征
D.java沒(mei)有函數指針機制,c++支持函數指針
參考答案:B
3、()設計模(mo)式將抽象(xiang)部(bu)分(fen)與它(ta)的實現部(bu)分(fen)相分(fen)離。
A.Singleton(單(dan)例(li))
B.Bridge(橋接)
C.Composite(組合)
D.Facade(外觀)
參考答案:B
4、哪些設計模式是降(jiang)低(di)資源使用率:
A.prototype
B.singleton
C.flyweight
D.abstract factory
參考答案:BC
5、運行在多核處理器(qi)上的(de)Linux環境中,若(ruo)臨(lin)界區非(fei)常短(duan),且不允許線(xian)程(cheng)上下文切換的(de)情況下,使(shi)用下列哪種(zhong)機制滿足上述(shu)需求并且性能好?
A.SpinLock
B.Mutex
C.Semaphore
D.Condition variable
參考答案:C
6、Unix系統中,哪些可以(yi)用于進程間的通信?()
A.Socket
B.共享內存
C.消息隊列
D.信號量
參考答案:ABCD
7、對一些資源以及狀態的(de)操(cao)作保存,好是保存在生命周期(qi)的(de)哪個函數中(zhong)進行?
A.onPause()
B.onCreate()
C.onResume()
D.onStart()
參考答案:A
8、在android中(zhong)使用Menu時可能需要(yao)重寫(xie)的方法有?
A.onCreateOptionsMenu()
B.onCreateMenu()
C.onOptionsItemSelected()
D.onItemSelected()
參(can)考(kao)答案(an):AC
二、解答題
1、編(bian)寫一(yi)(yi)個(ge)函(han)數,作(zuo)用是(shi)(shi)把(ba)一(yi)(yi)個(ge)char組(zu)成的字符串循環右(you)移(yi)n個(ge)。比如原來是(shi)(shi)“abcdefghi”如果(guo)n=2,移(yi)位(wei)后應該是(shi)(shi)“hiabcdefgh” 函(han)數頭是(shi)(shi)這(zhe)樣(yang)的:
//pStr是指向以'\0'結尾(wei)的(de)字符串的(de)指針(zhen)
//steps是要求移動的n
void LoopMove ( char * pStr, int steps )
{
//請填(tian)充...
}
參考答案
正確解答1:
void LoopMove ( char *pStr, int steps )
{
int n = strlen( pStr ) - steps;
char tmp[MAX_LEN];
strcpy ( tmp, pStr + n );
strcpy ( tmp + steps, pStr);
*( tmp + strlen ( pStr ) ) = '\0';
strcpy( pStr, tmp );
}
正(zheng)確解答2:
void LoopMove ( char *pStr, int steps )
{
int n = strlen( pStr ) - steps;
char tmp[MAX_LEN];
memcpy( tmp, pStr + n, steps );
memcpy(pStr + steps, pStr, n );
memcpy(pStr, tmp, steps );
}
【剖析】
這個試(shi)題(ti)主要考查(cha)面(mian)試(shi)者對(dui)標準庫(ku)函數的熟練程度(du)(du),在(zai)需(xu)要的時候引用庫(ku)函數可以(yi)很大(da)程度(du)(du)上簡化程序(xu)編寫的工(gong)作量。
頻繁(fan)被使用的(de)庫函數包括:
(1) strcpy
(2) memcpy
(3) memset
2、軟件測試應(ying)該劃分幾個(ge)階(jie)段?簡(jian)述各(ge)個(ge)階(jie)段應(ying)重(zhong)點測試的點?各(ge)個(ge)階(jie)段的含義?
參考答案:
大體(ti)上來說可分為單(dan)元測試(shi),集(ji)成測試(shi),系統測試(shi),驗收測試(shi),每個(ge)(ge)階段又(you)分為以下五個(ge)(ge)步(bu)驟: 測試(shi)計(ji)(ji)劃(hua),測試(shi)設(she)計(ji)(ji),用例設(she)計(ji)(ji),執(zhi)行結果(guo),測試(shi)報(bao)告
初(chu)始測(ce)試(shi)集(ji)(ji)(ji)中在每(mei)個模塊上,保(bao)證源代碼的(de)正確性(xing),該階段(duan)成為單(dan)元測(ce)試(shi),主(zhu)要用白(bai)盒測(ce)試(shi)方法。 接下來是模塊集(ji)(ji)(ji)成和集(ji)(ji)(ji)成以便組(zu)成完整的(de)軟(ruan)件(jian)包(bao)。集(ji)(ji)(ji)成測(ce)試(shi)集(ji)(ji)(ji)中在證實和程序(xu)構成問(wen)題(ti)上。主(zhu)要采用黑盒測(ce)試(shi)方法,輔之以白(bai)盒測(ce)試(shi)方法。
軟(ruan)件集成后,需要完成確認(ren)和系統測試(shi)。確認(ren)測試(shi)提供(gong)軟(ruan)件滿足所有功能、性能需求的后保證。確認(ren)測試(shi)僅僅應用黑盒測試(shi)方法(fa)。