2025年屆校園招聘綜合能力測(cè)評(píng)真題解析與答案匯編_第1頁(yè)
2025年屆校園招聘綜合能力測(cè)評(píng)真題解析與答案匯編_第2頁(yè)
2025年屆校園招聘綜合能力測(cè)評(píng)真題解析與答案匯編_第3頁(yè)
2025年屆校園招聘綜合能力測(cè)評(píng)真題解析與答案匯編_第4頁(yè)
2025年屆校園招聘綜合能力測(cè)評(píng)真題解析與答案匯編_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

筆試面試題匯總

一、筆試題

1、給你一種二叉樹(shù)的前序序列和中序序列,求其后續(xù)序列?(淘寶)

先看三個(gè)公式:

PreOrder(T)=T的根節(jié)點(diǎn)+PreOrder(T的左子樹(shù))+PreOrder(T的右子樹(shù));

InOrder(T)=InOrder(T的左子樹(shù))+T的根節(jié)點(diǎn)+InOrder(T的右子樹(shù));

PostOrder(T)=PostOrder(T的左子樹(shù))+PostOrder(T的右子樹(shù))+T的根節(jié)點(diǎn)。

根據(jù)以上的三給公式就可以很輕易處理一下兩個(gè)問(wèn)題:

前序+中序今后序;

中序+后序今前序。

當(dāng)然也可把樹(shù)畫(huà)出來(lái),再求他的多種序列。

2、Cache替代算法命中率最高是?(淘寶)

這個(gè)構(gòu)成原理就有講到了,可以找構(gòu)成原理的書(shū)看下,把多種替代算法在理解下,在書(shū)上的

P98-P99講得很詳細(xì)。

3、給一種次序表,然后再給你一種碼值,求在二分查找改碼值的比較次數(shù)?(淘寶)

自己去做二分的查找的過(guò)程,我們懂得二分查找是1。88)的,一次比較次數(shù)不小于log(n)肯定

是錯(cuò)的。詳細(xì)可以看下數(shù)據(jù)構(gòu)造的書(shū),P17-P18講的很詳細(xì)。

4、編譯程序中安排中間代瑪生成的目的是?(淘寶)

把與機(jī)器有關(guān)的工作集中到目的代碼生成階段,難度用工作量下降。便于移直和維護(hù)。利于優(yōu)

化。

5、假設(shè)在n進(jìn)制下,17*456=8206成立,n是多少?(淘寶)

從上面的等式中可以看到8,則進(jìn)制可定不小于8,因此可以從9進(jìn)制開(kāi)始枚舉,直至滿足等式,

就可以了。(提議:先都轉(zhuǎn)換成十進(jìn)制,在實(shí)現(xiàn)乘法運(yùn)算)

6、要從一億會(huì)員中抽出100萬(wàn)會(huì)員,考慮到公平性、相對(duì)?分散、相對(duì)隨機(jī),不能反狂,抽取速度

要快。有一種random函數(shù),能產(chǎn)生0-9的隨機(jī)數(shù)。請(qǐng)寫(xiě)出你能想到的抽取措施?并寫(xiě)明環(huán)節(jié)。

(淘寶)

用random函數(shù)產(chǎn)生兩個(gè)數(shù)xl、x2,那么會(huì)員號(hào)mod100等于xlx2的話,該會(huì)與就被選中。這

樣每個(gè)會(huì)員的中獎(jiǎng)概率是l/100o

7、Mal1oc和new的區(qū)別?

8、++、一、sizeof(字符串、構(gòu)造體)(融通)

9、字符串函數(shù)的實(shí)現(xiàn)(strlen.strepy等)(網(wǎng)龍、億聯(lián)網(wǎng)絡(luò))

10、字符串以單詞逆序

11、CSTK1NG類的某些基本函數(shù)的實(shí)現(xiàn)

12、DEBUG和RELESE兩種調(diào)試的區(qū)別

13、CONST的使用方法

我只要一聽(tīng)到被面試者說(shuō):"const意味著常數(shù)”,我就懂得我正在和一種業(yè)余者打交道。去年Dan

Saks已經(jīng)在他的文章里完全概括了const的所有使用方法,因此ESP(譯者:EmbeddedSystems

Programming)的每一位讀者應(yīng)當(dāng)非常熟悉const能做什么和不能做什么.假如你從沒(méi)有讀到那篇

文章,只要能說(shuō)出const意味著“只讀”就可以了。盡管這個(gè)答案不是完全的答案,但我接受它作

為一種對(duì)的的答案。(假如你想懂得更詳細(xì)的答案,仔細(xì)讀一下Saks的文章吧。)

假如應(yīng)試者能對(duì)的回答這個(gè)問(wèn)題,我將問(wèn)他一種附加的問(wèn)題:

下面的申明都是什么意思?

constinta;

intconsta;

constint*a;

int*consta;

intconst*aconst;

前兩個(gè)的作用是同樣,a是一種常整型數(shù)。第三個(gè)意味著a是一種指向常整型數(shù)的指針(也就是,

整型數(shù)是不可修改的,但指針可以)。第四個(gè)意思a是一種指向整型數(shù)的常指針(也就是說(shuō),指

針指向的整型數(shù)是可以修改的,但指針是不可修改的)。最終一種意味著a是一種指向常整型數(shù)

的常指針(也就是說(shuō),指針指向的整型數(shù)是不可修改的,同步指針也是不可修改的,假如應(yīng)試

者能對(duì)的回答這些問(wèn)題,那么他就給我留下了一種好印象。順帶提一句,也許你也許會(huì)問(wèn),雖

然不用關(guān)健字const,乜還是能很輕易寫(xiě)出功能對(duì)的的程序,那么我為何還要如此看重關(guān)鍵字

const呢?我也如下的幾下理由;

1)關(guān)鍵字const的作用是為給讀你代碼的人傳達(dá)非常有用的信息,實(shí)際上,申明一種參數(shù)為常

量是為了告訴了顧客這個(gè)參數(shù)的應(yīng)用目的。假如你曾花諸多時(shí)間清理其他人留下的垃圾,你就

會(huì)很快學(xué)會(huì)感謝這點(diǎn)多出的信息。(當(dāng)然,懂得用const的程序員很少會(huì)留下的垃圾讓他人來(lái)清

理的。)

2)通過(guò)給優(yōu)化器某些附加的信息,使用關(guān)鍵字const也許能產(chǎn)生更緊湊的代碼。

3)合理地使用關(guān)鍵字const可以使編譯器很自然地保于那些不但愿被變化的參數(shù),防止其被無(wú)

意的代碼修改。簡(jiǎn)而言之,這樣可以減少bug的出現(xiàn)。

14、虛基類抽象基類的使用方法

答:在派生類繼承基類時(shí),加上一種virtual關(guān)鍵詞則為虛擬基類繼承,如:

classderive:virtualpublicbase

};

虛基類重要處理在多重繼承時(shí),基類也許被多次繼承,虛基類,重要提供一種基類給

派生類,如:

classB

};

classDl:public3

);

classD2:public3

);

classC:publicDI,publicD2

);

這里C在DI,D2上繼承,但有兩個(gè)基類,導(dǎo)致混亂。因而使用虛基類,即:

classB

};

classDl:virtualpublicB

};

classD2:virtualpublicB

);

classC:publicDI,publicD2

15、Java線程中的sleep,yeiId,notify的作用和區(qū)別

sleep:讓線程睡眠

yeild:暫停目前正在執(zhí)行的線程對(duì)象,并執(zhí)行其他線程

notify:喚醒線程

16、面向?qū)ο蟮奶匦杂心男┓矫?/p>

封裝、繼承、多態(tài)

17、ServletConfig對(duì)象與ServletContext對(duì)象的作用和區(qū)別

servletconfig對(duì)象可以使用一種或多種<init-param>標(biāo)簽為servlet配置某些初始化參數(shù),

servlet配置了初始化參數(shù)后,web容器在創(chuàng)立servlet實(shí)例對(duì)象時(shí),會(huì)自動(dòng)將這些初始化參數(shù)

封裝到ServletConfig對(duì)象中,并在調(diào)用servlet的init措施時(shí),將ServletConfig對(duì)象傳遞

servlet,進(jìn)而,程序員通過(guò)ServletConfig對(duì)象就可以得到目前servlet的初始化參數(shù)信

息。

WEB容器在啟動(dòng)時(shí),它會(huì)為每個(gè)WEB應(yīng)用程序都創(chuàng)立一種對(duì)應(yīng)的ServletContext對(duì)象,它代表

目前web應(yīng)用。

ServletConfig對(duì)象中維護(hù)了ServletContext對(duì)象的引用,開(kāi)發(fā)人員在編寫(xiě)servlet時(shí),可以

通過(guò)ServletConfig.getServletContext措施獲得ServletContext對(duì)象。

18、編程:鏈表的反轉(zhuǎn)、兩個(gè)排好序鏈表結(jié)合成一種有序鏈表

19、寫(xiě)一種程序?qū)崿F(xiàn)字符串反轉(zhuǎn)。(新大陸)

20、爰態(tài)性意味著一種操作在不一樣的類中可以有不一樣的實(shí)現(xiàn)方式。(淘寶)

21、二分搜索算法

詳細(xì)可以看下數(shù)據(jù)構(gòu)造的書(shū),P17-P18講的很詳細(xì)。

22、樹(shù):節(jié)點(diǎn)個(gè)數(shù)與樹(shù)高的計(jì)算

這個(gè)可以用深搜和廣搜實(shí)現(xiàn),節(jié)點(diǎn)個(gè)數(shù)沒(méi)碰到一種還沒(méi)標(biāo)識(shí)的節(jié)點(diǎn)就加1并標(biāo)識(shí)該節(jié)點(diǎn)。把根

節(jié)點(diǎn)記為1,然后對(duì)于這沒(méi)標(biāo)識(shí)的節(jié)點(diǎn)就等于他父親的值+1,這過(guò)程中出現(xiàn)的最大值就是樹(shù)高。

對(duì)于樹(shù)的某些定義數(shù)據(jù)構(gòu)造書(shū)上有P138-P139.

23、操作系統(tǒng):內(nèi)存的大小端,生產(chǎn)者、消費(fèi)者問(wèn)題

1-2.生產(chǎn)者消費(fèi)者問(wèn)題:

生產(chǎn)者與消費(fèi)者問(wèn)題可以被描述為:一種有限緩沖區(qū)和兩類線程,它們是生產(chǎn)者和消費(fèi)者,

生產(chǎn)者把產(chǎn)品放入緩沖區(qū),相反消費(fèi)者便是從緩沖區(qū)中拿走產(chǎn)品。

生產(chǎn)者在緩沖區(qū)滿時(shí)必須等待,直到緩沖區(qū)有空間才繼續(xù)生產(chǎn)。消費(fèi)者在緩沖區(qū)空時(shí)必須

等待,直到緩沖區(qū)中有產(chǎn)品才能繼續(xù)讀取。

P,V操作來(lái)處理進(jìn)程同步與進(jìn)程通信的問(wèn)題。

信號(hào)量是最早出現(xiàn)的用來(lái)處理進(jìn)程同步與互斥問(wèn)題的機(jī)制,包括?種稱為信號(hào)量的變量及對(duì)

它進(jìn)行的兩個(gè)原語(yǔ)操作,信號(hào)量為一種整數(shù),我們?cè)O(shè)這個(gè)信號(hào)量為:sem。很顯然,我們規(guī)定在

sem不小于等于零的時(shí)候代表可供并發(fā)進(jìn)程使用的資源實(shí)體數(shù),sem不不小于零的時(shí)候,表達(dá)正

在等待使用臨界區(qū)的進(jìn)程的個(gè)數(shù)。根據(jù)這個(gè)原則,在給信號(hào)量附初值的時(shí)候,我們顯然就要設(shè)

初值不小于零。

P操作和v操作是不可中斷的程序段,稱為原語(yǔ)。P,V原語(yǔ)中P是荷蘭語(yǔ)的Passcrcn,相稱

于英文的pass,V是荷蘭語(yǔ)的Verhoog,相稱于英文中的incremneto

P原語(yǔ)操作的動(dòng)作是:

(1)sem減1:

(2)若sem減1后仍不小于或等于零,則進(jìn)程繼續(xù)執(zhí)行;

(3)若sem減1后不不小于零,則該進(jìn)程被阻塞后進(jìn)入與該信號(hào)相對(duì)應(yīng)的隊(duì)列中,然后轉(zhuǎn)進(jìn)

程調(diào)度。

V原語(yǔ)操作的動(dòng)作是:

(1)sem力口1:

(2)若相加成果不小于零,則進(jìn)程繼續(xù)執(zhí)行;

(3)若相加成果不不小于或等于零,則從該信號(hào)的等待隊(duì)列中喚醒一等待進(jìn)程,然后再返回原

進(jìn)程繼續(xù)執(zhí)行或轉(zhuǎn)進(jìn)程調(diào)度。

需要提醒大家一點(diǎn)就是P,V操作對(duì)于每一種進(jìn)程來(lái)說(shuō),都只能進(jìn)行一次。并且必須成對(duì)使用。

且在P,V愿語(yǔ)執(zhí)行期間不容許有中斷的發(fā)生。

24、軟件工程的類圖

類圖(Classdiagram)是最常用的UML圖,顯示出類、接口以及它們之間的靜態(tài)構(gòu)造和關(guān)系;它

用于描述系統(tǒng)的構(gòu)造化設(shè)計(jì)。

(Class)一般包括3個(gè)構(gòu)成部分。第一種是類名;第二個(gè)是屬性(attributes);第三個(gè)

是該類提供的措施。

Flight

flightNumber:Integer

departure!ime:Date

flightDuration:Minutes

delayFlight(numberOfMinutes:int):Date

getArrivalTime():Date

類與類間關(guān)系

常見(jiàn)的關(guān)系有:繼承(Generalization),關(guān)聯(lián)關(guān)系(Association),聚合關(guān)系(Aggregation),

組合關(guān)系(Composition),依賴關(guān)系(Dependency)o其中,聚合關(guān)系(Aggregation),

組合關(guān)系(Composition)屬于關(guān)聯(lián)關(guān)系(Association)。

詳見(jiàn)軟件工程教材。

25、C語(yǔ)言:c語(yǔ)言的關(guān)鍵字、運(yùn)算符的優(yōu)先級(jí)與結(jié)合性、宏、指針的理解、typedef等

3T.e語(yǔ)言的關(guān)鍵字

關(guān)鍵字是由C語(yǔ)言規(guī)定的具有特定意義的字符串,一般也稱為保留字。顧客定義的標(biāo)識(shí)

符不應(yīng)與關(guān)鍵字相似。

c語(yǔ)言關(guān)鍵字共32個(gè):

1、數(shù)據(jù)類型關(guān)健字(12個(gè)):

(1).char:申明字符型變量或函數(shù)

(2).double:申明雙精度變量或函數(shù)

(3).enum:中明枚舉類型

(4).float:申明浮點(diǎn)型變量或函數(shù)

(5).int:申明整型變量或函數(shù)

(6).long:申明長(zhǎng)整型變量或函數(shù)

(7).short:申明短整型變量或函數(shù)

(8).signed:申明有符號(hào)類型變量或函數(shù)

(9).struct:申明構(gòu)造體變量或函數(shù)

(10).union:申明聯(lián)合數(shù)據(jù)類型

(11).unsigned:申明無(wú)符號(hào)類型變量或函數(shù)

(12).void:申明函數(shù)無(wú)返回值或無(wú)參數(shù),申明無(wú)類型指針(基本上就這三個(gè)作用)

2、控制語(yǔ)句關(guān)鍵字(12個(gè)):

A.循環(huán)語(yǔ)句

(1).for:一種循環(huán)語(yǔ)句(可意會(huì)不可言傳)

(2).do:循環(huán)語(yǔ)句的循環(huán)體

(3).while:循環(huán)語(yǔ)句的循環(huán)條件

(4).break:跳出目前循環(huán)

(5).continue:結(jié)束目前循環(huán),開(kāi)始下一輪循環(huán)

B.條件語(yǔ)句

(D.if:條件語(yǔ)句

(2).else;條件語(yǔ)句否認(rèn)分支(與if連用)

(3).goto:無(wú)條件跳轉(zhuǎn)語(yǔ)句

C.開(kāi)關(guān)語(yǔ)句

(1).switch:用于開(kāi)關(guān)語(yǔ)句

(2).case:開(kāi)關(guān)語(yǔ)句分支

(3).default:開(kāi)關(guān)語(yǔ)句中的“其他”分支

D.

return:子程序返回語(yǔ)句(可以帶參數(shù),也看不帶參數(shù))

3、存儲(chǔ)類型關(guān)鍵字(4個(gè)):

(1).auto:申明自動(dòng)變量一般不使用

(2).extern:申明變量是在其他文獻(xiàn)正申明(也可以看做是引用變量)

(3).register:申明積存器變量

(4).static:申明靜態(tài)變量

4、其他關(guān)鍵字(4個(gè)):

(1).const:申明只讀變量

(2).sizeof:計(jì)算數(shù)據(jù)類型長(zhǎng)度

(3).typedef:用以給數(shù)據(jù)類型取別名(當(dāng)然尚有其他作用)

(4).volatile:闡明變量在程序執(zhí)行中可被隱含地變化

3-2.運(yùn)算符的優(yōu)先級(jí)與結(jié)合性、宏、指針的理解、typedef等

注:譚浩強(qiáng)那本書(shū)附錄很詳細(xì)。

c語(yǔ)言運(yùn)算符

1級(jí)優(yōu)先級(jí)左結(jié)合

0圓括號(hào)

[]下標(biāo)運(yùn)算符

->指向構(gòu)造體組員運(yùn)算符

.構(gòu)造體組員運(yùn)算符

2級(jí)優(yōu)先級(jí)右結(jié)合

!邏輯非運(yùn)算符

~按位取反運(yùn)算符

++前綴增量運(yùn)算符

~前綴增量運(yùn)算符

+正號(hào)運(yùn)算符

-負(fù)號(hào)運(yùn)算符

(類型)類型轉(zhuǎn)換運(yùn)算符

*指針運(yùn)算符

&地址與運(yùn)算符

sizeof長(zhǎng)度運(yùn)算符

3級(jí)優(yōu)先級(jí)左結(jié)合

?乘法運(yùn)算符

/除法運(yùn)算符

%取余運(yùn)算符

4級(jí)優(yōu)先級(jí)左結(jié)合

+加法運(yùn)算符

-減法運(yùn)算符

5級(jí)優(yōu)先級(jí)左結(jié)合

?左移運(yùn)算符

?右移運(yùn)算符

6級(jí)優(yōu)先級(jí)左結(jié)合

<、<=、>、>=關(guān)系運(yùn)算符

7級(jí)優(yōu)先級(jí)左結(jié)合

==等于運(yùn)算符

!=不等于運(yùn)算符

8級(jí)優(yōu)先級(jí)左結(jié)合

&按位與運(yùn)算符

9級(jí)優(yōu)先級(jí)左結(jié)合

-按位異或運(yùn)算符

10級(jí)優(yōu)先級(jí)左結(jié)合

I按位或運(yùn)算符

11級(jí)優(yōu)先級(jí)左結(jié)合

&&邏輯與運(yùn)算符

12級(jí)優(yōu)先級(jí)左結(jié)合

II邏輯或運(yùn)算符

13級(jí)優(yōu)先級(jí)右結(jié)合

?:條件運(yùn)算符

14級(jí)優(yōu)先級(jí)右結(jié)合

=+=-=*=/=%=&="=|=<<=>>=全為賦值運(yùn)算符

15級(jí)優(yōu)先級(jí)左結(jié)合

,逗號(hào)運(yùn)算符

26、網(wǎng)絡(luò):就。si模型

0SI七層模型簡(jiǎn)介

0SI是一種開(kāi)放性的通行系統(tǒng)互連參照模型,他是一種定義的非常好的協(xié)議規(guī)范。DSI模型有

7層構(gòu)造,每層都可以有幾種子層。

0SI的7層從上到下分別是

7應(yīng)用層6表達(dá)層5會(huì)話層4傳播層3網(wǎng)絡(luò)層2數(shù)據(jù)鏈路層1物理層

其中高層,既7、6、5、4層定義了應(yīng)用程序的功能,下面3層,既3、2、1層重要面向通過(guò)

網(wǎng)絡(luò)的端到端的數(shù)據(jù)流。下面我給大家簡(jiǎn)介一下這7層的功能:

1)應(yīng)用層:與其他計(jì)算機(jī)進(jìn)行通訊的一種應(yīng)用,它是對(duì)應(yīng)應(yīng)用程序的通信服務(wù)的。例如,

一種沒(méi)有通信功能的字處理程序就不能執(zhí)行通信的代碼,從事字處理工作的程序員也不關(guān)懷0S1

的第7層。不過(guò),假如添加了一種傳播文獻(xiàn)的選項(xiàng),那么字處理器的程序員就需要實(shí)現(xiàn)OSI的第

7層。示例:telnet.HTTP,等。

2)表達(dá)層:這一層的重要功能是定義數(shù)據(jù)格式及加密。例如,F(xiàn)TP容許你選擇以二進(jìn)制

或ASII格式傳播。假如選擇二進(jìn)制,那么發(fā)送方和接受方不變化文獻(xiàn)的內(nèi)容。假如選擇ASII格

式,發(fā)送方將把文本從發(fā)送方的字符集轉(zhuǎn)換成原則的ASII后發(fā)送數(shù)據(jù)。在接受方將原則的ASII

轉(zhuǎn)換成接受方計(jì)算機(jī)的字符集。示例:加密,ASII等。

3)會(huì)話層:他定義了怎樣開(kāi)始、控制和結(jié)束一種會(huì)話,包括對(duì)多種雙向小時(shí)的控制和管

理,以便在只完畢持續(xù)消息的一部分時(shí)可以告知應(yīng)用,從而使表達(dá)層看到的數(shù)據(jù)是持續(xù)的,在某

些狀況下,假如表達(dá)層收到了所有的數(shù)據(jù),則用數(shù)據(jù)代表表達(dá)層。示例:RPC,SQL等°

4)傳播層:這層的功能包括與否選擇差錯(cuò)恢復(fù)協(xié)議還是無(wú)差錯(cuò)恢復(fù)協(xié)議,及在同一主機(jī)

上對(duì)不一樣應(yīng)用的數(shù)據(jù)流的輸入進(jìn)行復(fù)用,還包括對(duì)收到的次序不對(duì)的數(shù)據(jù)包的重新排序功能。

示例:TCP,UDP,SPXo

5)網(wǎng)絡(luò)層:這層對(duì)端到端的包傳播進(jìn)行定義,他定義了可以標(biāo)識(shí)所有結(jié)點(diǎn)的邏輯地址,

還定義了路由實(shí)現(xiàn)的方式加學(xué)習(xí)的方式。為了適應(yīng)最大傳播單元長(zhǎng)度不不小于包長(zhǎng)度的傳播介質(zhì),

網(wǎng)絡(luò)層還定義了怎樣將一種包分解成更小的包的分段措施。示例:IP,IPX等。

6)數(shù)據(jù)鏈路層:他定義了在單個(gè)鏈路上怎樣傳播數(shù)據(jù)。這些協(xié)議與被討論的歌種介質(zhì)有

關(guān)。示例:ATM,FDDI等。

7)物理層:0SI的物理層規(guī)范是有關(guān)傳播介質(zhì)的特性原則,這些規(guī)范一般也參照了其他

組織制定的原則。連接頭、針、針的使用、電流、電流、編碼及光調(diào)制等都屬于多種物理層規(guī)范

中的內(nèi)容。物理層常用多種規(guī)范完畢對(duì)所有細(xì)節(jié)的定義。示例:RJ45,802.3等。

27、在一種工程中,假如一種文獻(xiàn)向要引用其他文獻(xiàn)中定義的一種變量或者函數(shù),請(qǐng)問(wèn)需要添

加什么關(guān)鍵字?答:extern。

28、volatile:闡明變量在程序執(zhí)行中可被隱含地變化

29、

voidfunc(void){

staticinti=0;

i++;

printf(線d\n”,i);

)

voidmain(){

func();

func();

)

請(qǐng)問(wèn)輸出是:

1

2

(關(guān)鍵考察static關(guān)鍵字)

30、指針的應(yīng)用方面,數(shù)組應(yīng)用,鏈表應(yīng)用。

31、某些簡(jiǎn)樸的字符串處理函數(shù),排序函數(shù)(冒泡,快排等)。

32、智力游戲:

你面前有一對(duì)黑白棋,同色給你足夠多的黑白棋(以防不夠用)。你每次從這一堆黑(B)白(W)

棋中隨機(jī)抽取出2顆棋子,假如同色(BB,W),則向這一堆中放入一顆黑棋,否則:RW)放入

一顆白棋。最終只剩余一顆。請(qǐng)問(wèn),最終狀態(tài)和初始狀態(tài)有和關(guān)系?

解:由于當(dāng)抽取出RW時(shí),放入W,即W沒(méi)有減少,而抽取出WW時(shí),放入的是B,因此K只能成

對(duì)減少。因此成果與W的奇偶有關(guān),W為奇,則剩余W;否則剩余B。

33、500Mtxt搜a(bǔ)bed串

34、封裝,繼承,多態(tài),析構(gòu)函數(shù),解析函數(shù)有關(guān)的題目

35、給你10萬(wàn)個(gè)關(guān)鍵詞,然后再給你某些文章(這些文章的大小為k的數(shù)量級(jí)的),然后把文

章中出現(xiàn)的關(guān)鍵詞過(guò)濾不確定的解答:先根據(jù)10萬(wàn)個(gè)關(guān)鍵詞構(gòu)建AC自動(dòng)機(jī),然后對(duì)每一篇文

章進(jìn)行一次AC自動(dòng)機(jī)處理,這樣的空間復(fù)雜度是10萬(wàn)個(gè)關(guān)鍵詞的字典樹(shù)的空間消耗。他的下

一種問(wèn)題是怎樣進(jìn)行空間優(yōu)化,當(dāng)事人表達(dá)不懂。

36、編程題:

String[]str={“test",null,"“中國(guó)“,“福富軟件”}

設(shè)一全局變量*然后讓字符數(shù)組變成t*o*s*t中*國(guó),福*富*軟*件并輸出

答案:

源碼(僅供參照):

publicclassTest{

publicstaticvoidmain(String[]args){

String[]str="中國(guó)",nul1,“福富軟件","test"};

for(inti=0;i<str.length;i++){

StringBuffersb=newStringBuffer();

sb.delete(0,sb.length());

sb.append(str[i]);

ifequals(str[i])||str[i]==null)

System.out.printing'*");

else{

intn=1;

intlen=str[i].length();

while((len-)>1){

sb.insert(n,;

n=n+2;

)//endwhile

System,out.println(sb);

lendelse

}//endfor

"/endmain

}//ondclass

37、編程題:實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接工具類,并實(shí)現(xiàn)增刪改查的功能。

二、面試題(計(jì)算機(jī)1、3、4、7班提供)

1、Linux的存儲(chǔ)管理?(融通)

Linux采用祈求調(diào)頁(yè)方略進(jìn)行存儲(chǔ)管理。祈求調(diào)頁(yè)方略在內(nèi)外村之間來(lái)回傳遞的是存儲(chǔ)頁(yè)而不

是整個(gè)進(jìn)程,從而使得進(jìn)程的地址映射具有了更大的靈活性,且容許進(jìn)程的大小比可用物理存

儲(chǔ)空間大得多。

2、Linux的常用命令?(如:1s及其參數(shù))(融通)

3、數(shù)據(jù)庫(kù)索引:怎樣建立及其作用?(實(shí)達(dá)電腦)

索引是對(duì)數(shù)據(jù)庫(kù)表中一列或多列的值進(jìn)行排序的一種構(gòu)造,使用索引可迅速訪問(wèn)數(shù)據(jù)庫(kù)表中的

特定信息,索引好比是一本書(shū)前面的目錄,用之能加緊數(shù)據(jù)庫(kù)的查詢速度

建立索引的一般格式:create[unique][cluster]index(索引名)on<表名>(<列

名》【<次序》】[,<列名>[<次序;

4、多進(jìn)程訪問(wèn)共有資源怎樣處理沖突?(實(shí)達(dá)電腦)

靠進(jìn)程間互斥來(lái)實(shí)現(xiàn)

5、UML的多種圖?(如請(qǐng)說(shuō)出幾種UML的圖)(融通)

用例圖,類圖,對(duì)象圖,活動(dòng)圖,狀態(tài)圖,次序圖,協(xié)作圖,構(gòu)件圖,布署圖。

6、最擅長(zhǎng)的科目?接下來(lái)的問(wèn)題:用一句話概括該科目?及有關(guān)該科目的某些問(wèn)題

7、在C語(yǔ)言里面用指針要注意哪些方面?(福富)

內(nèi)存泄露,內(nèi)存碎片,數(shù)組越界.

8、進(jìn)程間通信實(shí)現(xiàn)方式?(聯(lián)迪、實(shí)達(dá))

信號(hào),信號(hào)量,消息隊(duì)列,共享內(nèi)存,命名管道

9、Conststatic、final,typed、define等的使用方法?(網(wǎng)龍、實(shí)達(dá))

1)const是一種C語(yǔ)言的關(guān)鍵字,它限定一種變量不容許被變化。使用const在一定程度上

可以提高程序的安全性和可靠性;

2)C++的static有兩種使用方法:面向過(guò)程程序設(shè)計(jì)中的static和面向?qū)ο蟪绦蛟O(shè)計(jì)

中的static。前者應(yīng)用于一般變量和函數(shù),不波及類;后者重要闡明static在類中

的作用,面向過(guò)程程序設(shè)計(jì)中sialic使用方法重要有:靜態(tài)全局變量,靜態(tài)局部變

量,尚有靜態(tài)函數(shù),定義靜態(tài)函數(shù)的好處:靜態(tài)函數(shù)不能被其他文獻(xiàn)所用;其他文

獻(xiàn)中可以定義相似名字的函數(shù),不會(huì)發(fā)生沖突;面向?qū)ο笾械氖褂梅椒ㄓ校红o態(tài)數(shù)

據(jù)組員,靜態(tài)組員函數(shù)之類的

3)Final:Java關(guān)鍵字final有“這是無(wú)法變化的”或者“終態(tài)的”含義,它可以修飾

非抽象類、非抽象類組員措施和變量??梢孕揎椀膶?duì)象:final域final措施final

類。final類不能被繼承,沒(méi)有子類,final類中的措施默認(rèn)是final的。final措

施不能被子類的措施覆蓋,但可以被繼承。final組員變量表達(dá)常量,只能被賦值一

次,賦值后值不再變化。final不能用于修飾構(gòu)造措施。

4)Typedef:為既有類型創(chuàng)立一種新的名字,是一種在計(jì)算機(jī)編程語(yǔ)言中用來(lái)申明自定

義數(shù)據(jù)類型,配合多種原有數(shù)據(jù)類型來(lái)到達(dá)簡(jiǎn)化編程的目的的類型定義關(guān)建字。

5)Define:

a)簡(jiǎn)樸的define定義^defineMAXTIME1000

b)define的"函數(shù)定義"Sdefinemax(x,y)(x)》(y)?(x):(y)等等

10、堆和棧的區(qū)別?(聯(lián)迪、實(shí)達(dá)、臺(tái)達(dá))

棧區(qū)(stack)一由編譯器自動(dòng)分派群放,寄存函數(shù)的參數(shù)值,局部變量的值等。其操作方式類

似于數(shù)據(jù)構(gòu)造中的棧。

堆區(qū)(heap)一一般由程序員分派釋放,若程序員不移放,程序結(jié)束時(shí)也許由OSI可收。注意它

與數(shù)據(jù)構(gòu)造中的堆是兩回事,分派方式倒是類似于鏈表。詳細(xì)差異如下:

(1)申請(qǐng)方式:

stack:由系統(tǒng)自動(dòng)分派。例如,申明在函數(shù)中一種局部變量intb;系統(tǒng)自動(dòng)在棧中

為b開(kāi)辟空間;

heap:需要程序員自己申請(qǐng),并指明大小,在c中malloc函數(shù),如pl=(char

*)malloc(10);

(2)申請(qǐng)后系統(tǒng)的反應(yīng):

棧:只要棧的剩余空間不小于所申請(qǐng)空間,系統(tǒng)將為程序提供內(nèi)存,否則將報(bào)異常提醒棧

溢出。

堆:首先應(yīng)當(dāng)懂得操作系統(tǒng)有一種記錄空閑內(nèi)存地址的鏈表,當(dāng)系統(tǒng)收到程序的申請(qǐng)時(shí),

會(huì)遍歷該鏈表,尋找第一種空間不小于所申請(qǐng)空間的堆結(jié)點(diǎn),然后將該結(jié)點(diǎn)從空閑結(jié)點(diǎn)鏈

表中刪除,并將該結(jié)點(diǎn)的空間分派給程序;

(3)申請(qǐng)大小的限制:

棧:在Windows卜,棧是向低地址擴(kuò)展的數(shù)據(jù)構(gòu)造,是一塊持續(xù)的內(nèi)存的區(qū)域。這句話的

意思是棧頂?shù)牡刂泛蜅5淖畲笕萘渴窍到y(tǒng)預(yù)先規(guī)定好的,在WINDOWS下,棧的大小是2M

(也有的說(shuō)是1M,總之是一種編譯時(shí)就確定的營(yíng)數(shù)),假如申請(qǐng)的空間超過(guò)棧的剩余空

間時(shí),將提醒overflow。因此,能從棧獲得的空間較小。

堆:堆是向高地址擴(kuò)展的數(shù)據(jù)構(gòu)造,是不持續(xù)的內(nèi)存區(qū)域。這是由于系統(tǒng)是用鏈表來(lái)存儲(chǔ)

的空閑內(nèi)存地址的,自然是不持續(xù)的,而鏈表的遍歷方向是由低地址向高地址。堆的大小

受限于計(jì)算機(jī)系統(tǒng)中有效的虛擬內(nèi)存。由此可見(jiàn),堆獲得的空間比較靈活,也比較大。

(4)申請(qǐng)效率的比較:

棧由系統(tǒng)自動(dòng)分派,速度較快。但程序員是無(wú)法控制的。

堆是由new分派的內(nèi)存,一般速度比較慢,并且輕易產(chǎn)生內(nèi)存碎片,不過(guò)用起來(lái)最以

便.

(5)存儲(chǔ)內(nèi)容的比較:

棧:在函數(shù)調(diào)用時(shí),第一種進(jìn)棧的是主函數(shù)中后的下一條指令(函數(shù)調(diào)用語(yǔ)句的下一條可

執(zhí)行語(yǔ)句)的地址,然后是函數(shù)的各個(gè)參數(shù),在大多數(shù)的C編譯器中,參數(shù)是由右往左入

棧的,然后是函數(shù)中的局部變量。注意靜態(tài)變量是不入棧的,當(dāng)本次函數(shù)調(diào)用結(jié)束后,局

部變量先出棧,然后是參數(shù),最終棧頂指針指向最開(kāi)始存的地址,也就是主函數(shù)中的卜一

條指令,程序由該點(diǎn)繼續(xù)運(yùn)行。

堆:一般是在堆的頭部用一種字節(jié)寄存堆的大小。堆中的詳細(xì)內(nèi)容有程序員安排。

11、全局變量和靜態(tài)變量的存儲(chǔ)方式?(實(shí)達(dá))

都寄存在靜態(tài)存儲(chǔ)區(qū)

12、段式存儲(chǔ)和頁(yè)式存儲(chǔ)的原理?(正泰電氣)

頁(yè)式管理:

首先,各進(jìn)程的虛擬空間被劃分為若干個(gè)長(zhǎng)度相等的頁(yè)。頁(yè)長(zhǎng)的劃分和內(nèi)存外存之間數(shù)據(jù)

傳播速度以及內(nèi)存大小等有關(guān)。一般每個(gè)頁(yè)長(zhǎng)大概為L(zhǎng)4K,通過(guò)頁(yè)劃分之后,進(jìn)程的虛地址變

為頁(yè)號(hào)P與頁(yè)內(nèi)地址H所構(gòu)成;除了把進(jìn)程的虛擬空間劃分為大小相等的頁(yè)之外,頁(yè)式管理還

把內(nèi)存空間也按頁(yè)的大小劃分為片或頁(yè)面。這些頁(yè)面為系統(tǒng)中的任一進(jìn)程所共享(除去操作系

統(tǒng)區(qū)外)。從而,與分區(qū)管理不一樣樣,分頁(yè)管理師.顧客進(jìn)程在內(nèi)存空間內(nèi)除了在每個(gè)頁(yè)面

內(nèi)地址持續(xù)之外,每個(gè)頁(yè)面之間不再持續(xù)。第一是實(shí)現(xiàn)了內(nèi)存中碎片的減少,由于任一碎片都

會(huì)不不小于?種頁(yè)面,第二是實(shí)現(xiàn)了由持續(xù)存儲(chǔ)到非持續(xù)存儲(chǔ)這個(gè)飛躍,為在內(nèi)存中局部地,

動(dòng)態(tài)地存儲(chǔ)那些反復(fù)執(zhí)行或即將執(zhí)行的程序或數(shù)據(jù)段打下了基礎(chǔ)。

再者,頁(yè)式管理采用祈求調(diào)頁(yè)或預(yù)調(diào)頁(yè)技術(shù)式實(shí)現(xiàn)了內(nèi)外存儲(chǔ)器的統(tǒng)一管理。印內(nèi)存內(nèi)只

寄存那些常常被執(zhí)行或即將被執(zhí)行的貝,而那些小常彼執(zhí)行以及在近期內(nèi)小也許被執(zhí)行的貝,

則寄存于外存中待需要時(shí)再調(diào)入。

段式管理:

段式管理是把程序按內(nèi)容或過(guò)程(函數(shù))關(guān)系提成段,每段有自己的名字,一種顧客作業(yè)

或進(jìn)程所包括的段對(duì)應(yīng)于一種二維線性虛擬空間,也就是一種二維虛擬存儲(chǔ)器。段式管理程序

以段為單位分派內(nèi)存,然后通過(guò)地質(zhì)映射機(jī)構(gòu)把段式虛擬地址轉(zhuǎn)換成實(shí)際的內(nèi)存物理地址。和

頁(yè)式管理同樣,段式管理也采用只把那些常常訪問(wèn)的段駐留內(nèi)存,而把那些在未來(lái)一段時(shí)間內(nèi)

不被訪問(wèn)的段放入外存,待需要時(shí)自動(dòng)調(diào)入的措施實(shí)現(xiàn)二維虛擬存儲(chǔ)器。

13、TCP三次握手協(xié)議?(臺(tái)達(dá))

在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一種連接。

第一次握手:建立連接時(shí),客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待

服務(wù)器確認(rèn):SYN?同步序列編號(hào)(SynchronizeSequenceNumbers)o

第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+l),同步自己也發(fā)送一種SYN

包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài);

第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+l),此包發(fā)

送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完畢三次握手。

完畢三次握手,客戶端與服務(wù)器開(kāi)始傳送數(shù)據(jù)。

!HOSTI

ReceiveSYN

(seq=x)

SendSYN

(seq=y,

ACK=x*1)

ReceiveACK

(ack=y*1)

14、對(duì)接口理解多少?(臺(tái)達(dá))

鼠標(biāo)、攝像頭、優(yōu)盤(pán)都是使用USB接口的設(shè)備,假如想要使用他們就必須連接在USB接口上,

這些設(shè)備的接口必須遵守USB接口的規(guī)范才能通過(guò)USB接口來(lái)使用??梢赃@樣說(shuō):接口是一套

規(guī)范,滿足這個(gè)規(guī)范的設(shè)備,我們就可以把他們組裝到一起,從而實(shí)現(xiàn)該設(shè)備的功能。

接口類型是指游戲設(shè)備與電視機(jī)或電腦主機(jī)之間的接11類型。詳細(xì)有勺電視機(jī)相連的AV接II,

與電腦主機(jī)相連的串口、USB接口、PCI接口、I-LINK(四針I(yè)EEE1394接口)、連接聲卡的MIDI

接口、無(wú)線接口等等。

15、什么叫死鎖?怎樣防止和處理死鎖?(實(shí)達(dá))

所謂死鎖:是指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過(guò)程中,因爭(zhēng)奪資源而導(dǎo)致的一種力相等待的現(xiàn)

象,若無(wú)外力作用,它們都將無(wú)法推進(jìn)下去。此時(shí)稱系統(tǒng)處在死鎖狀態(tài)或系統(tǒng)產(chǎn)生了死鎖,這

些永遠(yuǎn)在互相等待的進(jìn)程稱為死鎖進(jìn)程。由于資源占用是互斥的,當(dāng)某個(gè)進(jìn)程提出申請(qǐng)資源后,

使得有關(guān)進(jìn)程在無(wú)外力協(xié)助下,永遠(yuǎn)分派不到必需的資源而無(wú)法繼續(xù)運(yùn)行,這就產(chǎn)生了一種特

殊現(xiàn)象死鎖。

產(chǎn)生死鎖的四個(gè)必要條件:

互斥條件(Mutualexclusion)

一種資源每次只能被一種進(jìn)程使用。

祈求與保持條件(占有等待)(Holdandwait)一種進(jìn)程因祈求資源而阻塞時(shí),對(duì)已獲得的

資源保持不放。

不剝奪條件(不可搶占)(Nopre-emption)

進(jìn)程已獲得的資源,在未使用完之前,不能強(qiáng)行剝奪。

循環(huán)等待條件(Circularwait)

若干進(jìn)程之間形成一種頭尾相接的循環(huán)等待資源關(guān)系。

這四個(gè)條件是死鎖的必要條件,只要系統(tǒng)發(fā)生死鎖,這些條件必然成立,而只要上述條件之

一不滿足,就不會(huì)發(fā)生死鎖。

死鎖的解除與防止

理解了死鎖的原因,尤其是產(chǎn)生死鎖的四個(gè)必要條件,就可以最大也許地防止、防止和解除死

鎖。因此,在系統(tǒng)設(shè)計(jì)、進(jìn)程調(diào)度等方面注意怎樣不讓這四個(gè)必要條件成立,怎樣確定資源的

合理分派算法,防止進(jìn)程永久占據(jù)系統(tǒng)資源。此外,也要防止進(jìn)程在處在等待狀態(tài)的狀況下占

用資源,在系統(tǒng)運(yùn)行過(guò)程中,對(duì)進(jìn)程發(fā)出的每一種系統(tǒng)可以滿足的資源申請(qǐng)進(jìn)行動(dòng)態(tài)險(xiǎn)查,并根

據(jù)檢查成果決定與否分派資源,若分派后系統(tǒng)也許發(fā)生死鎖,則不予分派,否則予以分派。因

此,對(duì)資源的分派要予以合理的規(guī)劃。

有序資源分派法

這種算法資源按某種規(guī)則系統(tǒng)中的所有資源統(tǒng)一編號(hào)]例如打印機(jī)為1、磁帶機(jī)為2、磁盤(pán)為3、

等等),申請(qǐng)時(shí)必須以上升的次序。系統(tǒng)規(guī)定申請(qǐng)進(jìn)程:

1、對(duì)它所必須使用的并且屬于同一類的所有資源,必須一次申請(qǐng)完;

2、在申請(qǐng)不一樣類資源時(shí),必須按各類設(shè)備的編號(hào)依次申請(qǐng)。例如:進(jìn)程PA,使用資源的次

序是RI,R2;進(jìn)程PB,使用資源的次序是R2,R1;若采用動(dòng)態(tài)分派有也許形成環(huán)路條件,導(dǎo)

致死鎖。

采用有序資源分派法:R1的編號(hào)為1,R2的編號(hào)為2;PA:申請(qǐng)次序應(yīng)是:RI,R2PB:

申請(qǐng)次序應(yīng)是:RI,R2這樣就破壞了環(huán)路條件,防止了死鎖的發(fā)生

銀行算法

防止死鎖算法中最有代表性的算法是DijkstraE.W于1968年提出的銀行家算法:該算法

需要檢查申請(qǐng)者對(duì)資源的最大需求品,假如系統(tǒng)現(xiàn)存的各類資源可以滿足申請(qǐng)者的祈求,就滿

足申請(qǐng)者的祈求。這樣申請(qǐng)者就可很快完畢其計(jì)算,然后釋放它占用的資源,從而保證了系統(tǒng)

中的所有進(jìn)程都能完畢,因此可防止死鎖的發(fā)生。

死鎖排除的措施

1、撤銷(xiāo)陷于死鎖的所有進(jìn)程;

2、逐一撤銷(xiāo)陷于死鎖的進(jìn)程,直到死鎖不存在;

3、從陷于死鎖的進(jìn)程中逐一強(qiáng)迫放棄所占用的資源,直至死鎖消失。

4、從此外某些進(jìn)程那里強(qiáng)行剝奪足夠數(shù)顯的資源分派給死鎖進(jìn)程,以解除死鎖狀態(tài)

16、網(wǎng)絡(luò)編程的次序?(臺(tái)達(dá))

*TCP編程服務(wù)器端環(huán)節(jié):

1.創(chuàng)立Sockel,端口監(jiān)聽(tīng)

ServerSocketserverSocket=newServerSocket(4444);

2.接受客戶連接

SocketclientSocket=serverSocket.eiccept();

3.創(chuàng)立讀寫(xiě)對(duì)象

PrintWriterout=newPrintWriter(

clientSocket.gctOutputStreamO,t

rue);

BufferedReaderin=newBufferedReader(

newInputStreamRcader(

clientSocket.5etlnputS

treamO));

4.運(yùn)用讀寫(xiě)對(duì)象,與客戶端通信

StringinputLine,outputLine;

inputLine=in.readLineO;

out.printIn(outputLine);

5.關(guān)閉對(duì)象

out.close();

in.closeO;

clientSocket.close();

serverSocket.close();

*TCP編程客戶端環(huán)節(jié):

1.創(chuàng)立Socket

SocketechoSocket=newSocket("Hostname”,7);

2.創(chuàng)立讀寫(xiě)對(duì)象

PrintWriterout=newPrintWriter(echoSockel.getOutputStream(),true);

BufferedReaderin=newBufferedReader(newInputStreamReader(

echoSocket.getlnputStreamO));

3.運(yùn)用讀寫(xiě)對(duì)象,與服務(wù)器通信

StringuserString;

userString=in.readLineO;

out.printIn(userString);

4.關(guān)閉對(duì)象

out.closeO;

in.closeO;

echoSocket.closeO;

*UDP編程服務(wù)器端環(huán)節(jié):

1.創(chuàng)立socket

DatagramSocketsocket=newDatagramSocket(4445);

2.接受客戶祈求

byte[]buf=newbyte[256];

DatagramPacketpacket=newDatagramPacket(buf,buf.length);

socket,receive(packet);

3.數(shù)據(jù)準(zhǔn)備

StringdString=newDate().toStringO;

buf=dString.getBytesO;

4.提取客戶端信息

InetAddressaddress=packet.getAddressO;

intport=packet.getPort();

5.發(fā)送數(shù)據(jù)

packet=newDatagramPacket(buf,buf.length,address,port);

socket,send(packet);

6.關(guān)閉對(duì)象

socket.closeO;

*UDP編程客戶端環(huán)節(jié):

1.創(chuàng)立Socket

DatagramSocketsocket=newDatagramSocket();

2.準(zhǔn)備服務(wù)器信息

byte[]buf=newbyte[256];

InetAddressaddress=InetAddress.getByName(,,Hostname,/);

DatagramPacketpacket=newDatagramPacket(buf,

buf.length,address,4445);

3.向服務(wù)器發(fā)送祈求

socket,send(packet);

4.從服務(wù)器讀取信息

packet=newDatagramPacket(buf,buf.length);

socket,receive(packet);

5.關(guān)閉對(duì)象

socket.close();

17、給你一種字符串將所有嚴(yán)格遞增的子串輸出,現(xiàn)場(chǎng)寫(xiě)代碼實(shí)現(xiàn)。(淘寶)

intfront="l;

for(inti=l;str[i]!=\0f;++i){

if(str[i]-str[i-l]==l){

if(front==-l){

front=i-l;

)

)

else{

if(front!=-l){

for(intj=front;j<i;++j){

printf(“4c”,str[j]);

}

printfC\n*);

front=-l;

)

)

)

18、怎樣通過(guò)修改協(xié)議,使得服務(wù)器能一次性將客服端發(fā)過(guò)來(lái)的消息所有接受?(淘寶)

19、一種HR,兩個(gè)技術(shù)官和我這個(gè)應(yīng)聘者,請(qǐng)問(wèn)可以用軟件工程措施劃分為幾種類?(聯(lián)迪商

用)

20、耍想和A和B兩個(gè)進(jìn)程中的一種通信,請(qǐng)問(wèn)用什么措施與A通信,而不與B混淆?(聯(lián)迪

商用)

21、怎樣保證對(duì)同一數(shù)據(jù)訪問(wèn)的多種客戶端的數(shù)據(jù)一致?SQL語(yǔ)句怎么寫(xiě)?(淘寶)

22、NEW,DELETE,MALLOC和FREE的區(qū)別與聯(lián)絡(luò)?(淘寶)

1.malloc與free是C++/C語(yǔ)言的原則庫(kù)函數(shù),new/delete是C++的運(yùn)算符。它們都可用于申

請(qǐng)動(dòng)態(tài)內(nèi)存和釋放內(nèi)存。

2.對(duì)于非內(nèi)部數(shù)據(jù)類型的對(duì)象而言,光用malloc/free無(wú)法滿足動(dòng)態(tài)對(duì)象的規(guī)定。對(duì)象在創(chuàng)立

的同步要自動(dòng)執(zhí)行構(gòu)造函數(shù),對(duì)象在消滅之前要自動(dòng)執(zhí)行析構(gòu)函數(shù)。由于mallot/free是庫(kù)

函數(shù)而不是運(yùn)算符,不在編譯器控制權(quán)限之內(nèi),不可以把執(zhí)行構(gòu)造函數(shù)和析構(gòu)函數(shù)的任務(wù)

強(qiáng)加于malloc/freec

3.C++語(yǔ)言需要一種能完畢動(dòng)態(tài)內(nèi)存分派和初始化工作的運(yùn)算符new,以一種能完畢清理與釋

放內(nèi)存工作的運(yùn)算符deleteo注意new/delete不是庫(kù)函數(shù)。

4.C++程序常常要調(diào)用C函數(shù),而C程序只能用malloc/free管理動(dòng)態(tài)內(nèi)存

23、進(jìn)程與線程的區(qū)別與聯(lián)絡(luò)?(臺(tái)達(dá))

進(jìn)程概念

進(jìn)程是表達(dá)資源分派的基本單位,又是調(diào)度運(yùn)行的基本單位。例如,顧客運(yùn)行自己的程序,

系統(tǒng)就創(chuàng)立一種進(jìn)程,并為它分派資源,包括多種表格、內(nèi)存空間、磁盤(pán)空間、I/O設(shè)備等。

然后,把該進(jìn)程放人進(jìn)程的就緒隊(duì)列。進(jìn)程調(diào)度程序選中它,為它分派CPU以及其他有關(guān)資源,

該進(jìn)程才真正運(yùn)行。因此,進(jìn)程是系統(tǒng)中的并發(fā)執(zhí)行的單位。

在Mac、WindowsNT等采用微內(nèi)核構(gòu)造的操作系統(tǒng)中,進(jìn)程的功能發(fā)生了變化:它只是資

源分派的單位,而不再是調(diào)度運(yùn)行的單位。在微內(nèi)核系統(tǒng)中,真正調(diào)度運(yùn)行的基本單位是線程。

因此.實(shí)現(xiàn)并發(fā)功能的單.位是線程。

線程概念

線程是進(jìn)程中執(zhí)行運(yùn)算的最小單位,亦即執(zhí)行處理機(jī)調(diào)度的基本單位。假如把進(jìn)程理解為

在邏輯上操作系統(tǒng)所完畢的任務(wù),那么線程表達(dá)完畢該任務(wù)的許多也許的子任務(wù)之一。例如,

假設(shè)顧客啟動(dòng)了一種窗口中的數(shù)據(jù)庫(kù)應(yīng)用程序,操作系統(tǒng)就將對(duì)數(shù)據(jù)庫(kù)的調(diào)用表達(dá)為一種進(jìn)程。

假設(shè)顧客要從數(shù)據(jù)庫(kù)中產(chǎn)生一份工資單報(bào)表,并傳到i種文獻(xiàn)中,這是一種子任務(wù);在產(chǎn)生工

資單報(bào)表的過(guò)程中,顧客又可以輸入數(shù)據(jù)庫(kù)查詢祈求,這又是一種子任務(wù)。這樣,操作系統(tǒng)則

把每一種祈求一一工資單報(bào)表和新輸人的數(shù)據(jù)查詢表達(dá)為數(shù)據(jù)庫(kù)進(jìn)程中的獨(dú)立的線程。線程可

以在處理器上獨(dú)立調(diào)度況行,這樣,在多處理器環(huán)境下就容許幾種線程各自在單獨(dú)處理器上進(jìn)

行。操作系統(tǒng)提供線程就是為了以便而有效地實(shí)現(xiàn)這種并發(fā)性

引入線程的好處

(1)易于調(diào)度。

(2)提高并發(fā)性。通過(guò)線程可以便有效地實(shí)現(xiàn)并發(fā)性。進(jìn)程可創(chuàng)立多種線程來(lái)執(zhí)行同一程序的

不一樣部分。(3)開(kāi)銷(xiāo)少。創(chuàng)立線程比創(chuàng)立進(jìn)程要快,所需開(kāi)銷(xiāo)很少。。

(4)利于充足發(fā)揮多處理器的功能。通過(guò)創(chuàng)立多線程進(jìn)程(即一種進(jìn)程可具有兩個(gè)或更多種線

程),每個(gè)線程在一種處理器上運(yùn)行,從而實(shí)現(xiàn)應(yīng)用程序的并發(fā)性,使每個(gè)處理器都得到充足運(yùn)

行。

進(jìn)程和線程的關(guān)系

(1)一種線程只能屬于一種進(jìn)程,而一種進(jìn)程可以有多種線程,但至少有一種線程。

(2)資源分派給進(jìn)程,同一進(jìn)程的所有線程共享該進(jìn)程的所有資源。

(3)處理機(jī)分給線程,即真正在處理機(jī)上運(yùn)行的是線程。

(4)線程在執(zhí)行過(guò)程中,需要協(xié)作同步。不一樣進(jìn)程的線程間要運(yùn)用消息通信的措施實(shí)現(xiàn)同步。

24、ARM開(kāi)發(fā)板的UBOOT移植與流程?(瑞芯微)

u-boot啟動(dòng)過(guò)程的兩個(gè)階段:

第一階段(stage1)是依賴于CPU體系構(gòu)造的代碼(如設(shè)備初始化代碼等),一般用匯編語(yǔ)言

來(lái)實(shí)現(xiàn)。重要進(jìn)行如下方面的設(shè)置:設(shè)置ARM進(jìn)入SVC模式、嚴(yán)禁【RQ和FIQ、關(guān)比看門(mén)狗、

屏蔽所有中斷。設(shè)置時(shí)鐘(FCLK,HCLK,PCLK)、清空I/Dcache、清空TLB、嚴(yán)禁MMU和cache、

配置內(nèi)存控制器、為搬運(yùn)代碼做準(zhǔn)備、搬移uboot映像到RAM中(使用copy」oop實(shí)現(xiàn))、分

派堆棧、清空bss段(使用clbss」實(shí)現(xiàn))。

第二階段(stage2)一般用C語(yǔ)言來(lái)實(shí)現(xiàn)。

start_armboot():

一系列初始化(cpu,板卡,中斷,串口,控制臺(tái)等),啟動(dòng)I/Dcacheo初始化FLASH,根據(jù)

系統(tǒng)配置執(zhí)行其他初始叱操作。打印LOG,使能中斷,獲取環(huán)境變量,初始化網(wǎng)卡。最終進(jìn)入

main_loop()函數(shù)。在main_loop函數(shù)中會(huì)檢查bootdelay和bootcmd環(huán)境變量,假如bootcmd

已經(jīng)設(shè)置.過(guò),則在等待bootdelay個(gè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論