技術(shù)面試題目及答案_第1頁
技術(shù)面試題目及答案_第2頁
技術(shù)面試題目及答案_第3頁
技術(shù)面試題目及答案_第4頁
技術(shù)面試題目及答案_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、時間有限公司技術(shù)部面試試題游戲開發(fā)類:編程題: 1 請寫代碼打印100之內(nèi)的素數(shù),講求效率(請做你的解法的效率分析) 2 求m,n的最大公約數(shù)3 輸入10個字符串,打印出其中重復的字符串以及重復的次數(shù)4 請畫圖例(UML最好),給出windows下的文件目錄的設計模式5用多種方法對數(shù)據(jù)進行排序。(選擇排序、插入排序、冒泡排序、快速排序等)技術(shù)問答題: 1 什么是單元測試?你用過哪些單元測試工具?他們的區(qū)別和好處各有哪些?你主要傾向于哪一種?2 什么是編程規(guī)范?你傾向于什么樣的規(guī)范?他的好處在哪?3 什么是頭文件依賴?你注意過這些問題嗎?你注意過編譯的時間嗎?你怎么改進編譯時間?4 什么是面向?qū)?/p>

2、象?你在哪些方面用過面向?qū)ο?帶來了什么好處?又有什么弊端?5 什么是設計模式?使用設計模式有什么好處?列舉你使用過的設計模式知識。6 什么是“引用”?申明和使用“引用”要注意哪些問題?7 面向?qū)ο蟮娜齻€基本特征,并簡單敘述之?8 請盡可能舉出你所知道的數(shù)據(jù)庫備份與還原的方法9 中斷是什么?CPU在中斷的時候做了些什么?10 多任務系統(tǒng)里面,一個任務可以在占有資源的同時申請資源,這會導致什么情況?并簡述發(fā)生這種情況的必要條件。數(shù)學題1 1-9這9個數(shù)字中,選3個出來,其和為奇數(shù)的組合有幾個?2 請把16進制數(shù)270F轉(zhuǎn)化為十進制數(shù)游戲策劃類:關(guān)于游戲的了解:1.您從什么時候開始接觸游戲的(不論

3、是街機或者是電視游戲,還是電腦游戲)?第一眼見到游戲的時候,您感覺如何?您覺得現(xiàn)在的游戲怎么樣?2.游戲的哪些因素是您最關(guān)注的,畫面、劇情、音樂、整體流暢感和平衡性?哪些類型的游戲您最喜歡玩?3.在您玩游戲的時候,突然游戲出現(xiàn)某個漏洞,您的感覺是?4.請問你使用過何種游戲修改工具,特別擅長哪種,請就你熟悉的一款單機游戲把里面一段數(shù)據(jù)完整的分析出來5.請問您知道BUG一次的含義嗎?游戲中的致命BUG一般頻繁出現(xiàn)在什么地方?所謂致命BUG:就是能讓一款游戲玩家人數(shù)銳減的那種啦,如:游戲金錢方面的,游戲平衡方面的等等。6.如果您玩網(wǎng)絡游戲的話,舉幾個你曾經(jīng)在網(wǎng)絡游戲中發(fā)現(xiàn)的BUG,最好是你站在玩家的

4、立場上看,覺得可利用價值最高的BUG,然后簡述一下當時發(fā)現(xiàn)的情景和過程。7.在熟悉或者通關(guān)游戲之后您會為您付出的這段游戲時間寫點東西嗎?或者會下其余時間研究研究您玩過的這款游戲?8.您關(guān)注游戲市場上的行情嗎?請就你熟悉的游戲類型對現(xiàn)在的游戲市場簡要說明一下。分為以下三方面:手機游戲市場,電視游戲和單機市場,網(wǎng)絡游戲市場。Web前端開發(fā)類:1、CSS+DIV開發(fā)Web頁面的優(yōu)勢有哪些?2、兩種跳轉(zhuǎn)方式分別是什么?有什么區(qū)別? 有兩種,分別為: 3、搜索引擎如何抓取網(wǎng)頁和如何索引網(wǎng)頁4、簡述列舉文檔對象模型DOM里document的常用的查找訪問節(jié)點的方法5、在IE中,HTML對象的ID 可以作為

5、document 的下屬對象變量名直接使用,在FF中不能,此兼容性問題如何解決?6、引入樣式表的方式有幾種?7、JavaScript是一門基于解釋性的語言,它和java語言的區(qū)別?8、JS中的三種彈出式消息提醒(警告窗口、確認窗口、信息輸入窗口)的命令是什么?游戲美術(shù)類:考查對于PS,3DsMax(或MAYA),AE等軟件的熟悉程度答案:編程題:1 考察數(shù)據(jù)結(jié)構(gòu)的知識點,這里可使用篩選法,該方法是大部分數(shù)據(jù)結(jié)構(gòu)書籍都有講解的算法,當然還有時間復雜度更低的算法(空間復雜度),但是因為求值范圍為 1 100 ,故綜合來看,篩選法的效率是最高的。int main()int *sieve;int n;

6、int iCounter=2, iMax, i;printf(“Please input max number:”);scanf(“%d”, &n);sieve=(int*)malloc(n-1)*sizeof(int);for(i=0;in-1;i+) sievei=i+2; iMax = (int)sqrt(n);while (iCounter=iMax) for (i=2*iCounter-2; in-1; i+=iCounter)sievei = 0;iCounter+; for(i=0; in-1; i+)if (sievei!=0) printf(“%d ”,sievei);ret

7、urn 0;2、考察數(shù)據(jù)結(jié)構(gòu)的知識點,求公約數(shù)的算法很多,可考慮效率較高的歐幾里德遞歸算法 ,int gcd(int m,int n)int temp = 0;if(m n)temp = m;m = n;n = temp;if(n = 0)return m;elsereturn gcd1(n, m%n);3、考察 C 容器的知識,這里考察的 MAPint main()string str;map content;for( int cnt = 0; cnt str;(content.insert(make_pair(str, 0).first)-second+;map:iterator it =

8、 content.begin();for( ; it != content.end(); +it )cout first ”: ” second endl;return 0;4、考察數(shù)據(jù)結(jié)構(gòu),文件目錄是一個樹5、考察基礎(chǔ)編程能力#includeusing namespace std;template void Swap(T *a, T *b) T temp;temp = *a;*a = *b;*b = temp;/* 簡單排序算法 begin */* 簡單選擇排序* A: 以數(shù)組存放的無數(shù)數(shù)* n: 數(shù)組A中從位置0到n排序(從小到大)*/template void SelectSort(T

9、A, int n)int small;for( int i = 0; i n - 1; i+) / 執(zhí)行 n-1 趟small = i; / 先假定待排序序列中第一個元素最小for( int j = i + 1; j n; j+ ) / 每趟掃描待排序序列n-i-1次if( Aj Asmall ) / 如果掃描到一個比最小值元素還小的,則記下其下標small = j; Swap(&Ai,&Asmall); / 最小元素與待排序序列中第一個元素交換/* 直接插入排序* A: 以數(shù)組存放的無數(shù)數(shù)* n: 數(shù)組A中從位置0到n排序(從小到大)*/template void InsertSort(T

10、A, int n)for(int i = 1; i 0 & temp Aj-1) / 從后往前查找插入位置Aj = Aj-1; / Aj-1元素后移j-; / j指針前移Aj = temp; / 待插入元素存入找到的插入位置/* 冒泡排序* A: 以數(shù)組存放的無數(shù)數(shù)* n: 數(shù)組A中從位置0到n排序(從小到大)*/template void BubbleSort(T A, int n)int i,j,last;i = n - 1;while ( i 0 ) / 最多進行n-1躺last = 0; / 將last賦值為0for( j = 0; j i; j+) / 從前往后進行相鄰元素的兩兩比較

11、if(Aj+1 Aj) Swap(&Aj,&Aj+1); / 后者小,則交換last = j; / 有交換,last置為ji = last; /如果一趟沒有元素交換,則last為0/* 簡單排序算法 end */* 快速排序 begin */* 快速排序* A: 以數(shù)組存放的無數(shù)數(shù)* left和right: Aleft 和 Aright 之間的元素排序*/template void QuickSort(T A, int left, int right)int i,j;if(left right) / 若待排序序列多于一個元素,則繼續(xù)快速排序i = left; / 游動指針i,jj = righ

12、t + 1;Swap(&Aleft,&A(left + right)/2); / 避免最壞境況發(fā)生do / 開始一趟快速排序,Aleft做為分割元素do i+; while(Ai Aleft); / j指針從右往左找第一個 小于等于 分割元素的元素if( i j ) Swap(&Ai,&Aj); / 若 i j,則交換兩個元素 while(ij); / 若 i j,則繼續(xù)本趟排序Swap(&Aleft,&Aj); / 交換分割元素Aleft和Aj的位置QuickSort(A,left,j-1); / 對低端序列快速排序QuickSort(A,j+1,right); / 對高端序列快速排序/*

13、快速排序 end */*對上面的幾種排序算法,進行簡單的測試*/int main() int a5 = 2,1,6,8,3;/ SelectSort(a,5);/ InsertSort(a,5);/ BubbleSort(a,5);QuickSort(a,0,4);for(int i = 0; i 5; i+) cout ai ;cout endl;return 0;技術(shù)問答題:1、單元測試(模塊測試)是開發(fā)者編寫的一小段代碼,用于檢驗被測代碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試是用于判斷某個特定條件(或者場景)下某個特定函數(shù)的行為。主要單元測試工具:QTP:quickt

14、est Professional.,C+ TEST2、 規(guī)范編程內(nèi)容:標識符規(guī)則 - 類,方法,變量,同時也是包名的規(guī)范 由字母(漢語中的一個漢字是一個字母),數(shù)字,下劃線和$組成,不能以數(shù)字開頭。 大小寫敏感 沒有長度限制,不能有空格 不能使用Java的關(guān)鍵字和保留字 java中的關(guān)鍵字 goto和const在java中雖然不再使用但是還作為保留字存在 java中沒有sizeof這個關(guān)鍵字了,java中的boolean類型的值只能用true和false,且這兩個也是關(guān)鍵字 enum 枚舉 assert 斷言 一個標識符盡量符合語義信息,提高程序可讀性 類 名 :每個單詞首字母大寫, 變量和方

15、法 :第一個單詞小寫,后邊的每個單詞首字母大寫 包 名 :全部小寫 常 量 :全部大寫 以下劃線分詞 局部變量:定義在方法中的變量 (1)先賦值后使用 (2)從定義變量的代碼塊開始到代碼塊結(jié)束 (3)在同一范圍內(nèi)不允許兩個局部變量發(fā)生命名沖突3、簡單點說,對于一個vector<int>的函數(shù),比如size(),如果在不同的cpp中出現(xiàn),在這些文件編譯的時候都要把vector<int>:size()編譯一遍。然后在鏈接的時候把重復的函數(shù)去掉。很顯然增加了編譯時間。模板的聲明是不編譯的,更沒有空間,它根本不是實際的類型或函數(shù),編譯器根本不管它。只有實例化的時候,才生成真正的

16、類型、函數(shù),而實例化的地方不在一起,必然造成同一個類型、函數(shù)被編譯了多次。反觀類的編譯,只在它的cpp中編譯一次,其他地方都使用它的頭文件得到聲明。4、面對對象就是:把數(shù)據(jù)及對數(shù)據(jù)的操作方法放在一起,作為一個相互依存的整體對象。對同類對象抽象出其共性,形成類。類中的大多數(shù)數(shù)據(jù),只能用本類的方法進行處理。類通過一個簡單的外部接口與外界發(fā)生關(guān)系,對象與對象之間通過消息進行通信。程序流程由用戶在使用中決定。5、設計模式(Design pattern)是一套被反復使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設計經(jīng)驗的總結(jié)。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 毫無疑問,設

17、計模式于己于他人于系統(tǒng)都是多贏的;設計模式使代碼編制真正工程化;設計模式是軟件工程的基石脈絡,如同大廈的結(jié)構(gòu)一樣。好處:(1)、復用解決方案通過復用已經(jīng)公認的設計,能夠在解決問題時取得先發(fā)優(yōu)勢,而且避免重蹈前人覆轍??梢詮膶W習他人的經(jīng)驗中獲益,用不著為那些總是會重復出現(xiàn)的問題再次設計解決方案。 (2)、確立通用術(shù)語開發(fā)中的交流和協(xié)作都需要共同的詞匯基礎(chǔ)和對問題的共識。設計模式在項目的分析和設計階段提供了共同的基準點。 (3)、提高觀察高度模式還提供了觀察問題、設計過程和面向?qū)ο蟮母邔哟蔚囊暯?,這將可以從“過早處理細節(jié)”的桎梏中解放出來。 (4)、大多數(shù)設計模式還能使軟件更容易修改和維護。其原

18、因在于,它們都是久經(jīng)考驗的解決方案。所以,它們的結(jié)構(gòu)都是經(jīng)過長期發(fā)展形成的,比新構(gòu)思的解決方案更善于應對變化。而且,這些模式所用代碼往往更易于理解從而使代碼更易維護。6、引用就是對某個變量其別名。對引用的操作與對應變量的操作的效果完全一樣。 2. 申明一個引用的時候,切記要對其進行初始化。 引用聲明完畢后,相當于目標變量名有兩個名稱,即該目標原名稱和引用名,不能再把該引用名作為其他變量名的別名。聲明一個引用,不是新定義了一個變量,它只 表示該引用名是目標變量名的一個別名,它本身不是一種數(shù)據(jù)類型,因此引用本身不占存儲單元,系統(tǒng)也 不給引用分配存儲單元。 3.不能建立數(shù)組的引用。 / 切記不能建立

19、數(shù)組的引用7、面向?qū)ο笫且环N程序設計的思想,簡單的講,就是封裝,繼承,多態(tài);當然,也可以說抽象。封裝這個概念簡單的說,對于簡單的數(shù)據(jù)類型,有它自己的封裝類(通常我們說的打包);對于引用類型,類就是一個封裝體的一個表現(xiàn).繼承:子類繼承父類(也就是派生類繼承基類),它具有可擴展性,便于程序代碼的重用性。 繼承可以實現(xiàn)多態(tài):通過重寫(覆寫),通過對象上傳可以實現(xiàn)多態(tài):通過重寫和重載實現(xiàn)抽象:面向接口編程8、(1).打開塊檢查(block checking)(2).用rman備份時打開塊跟蹤(10g以上)(3). 鏡像日志組成員。(4). 備份時使用 check logical 選項這會讓rman檢查

20、塊中的邏輯損壞以及頭尾校驗,這是獲得良好備份的最好方式。(5) . 測試你的備份做任何操作都不如實際恢復一次數(shù)據(jù)庫。(6). 每個數(shù)據(jù)文件在一個單獨的備份片中做部分恢復時rman必須讀取整個備份片和必須的歸檔日志。(7). 維護 rman 的恢復目錄和控制文件仔細選擇你的保留政策。(8). 預防控制文件丟失這將確保您始終具備最新controlfile的可用。(9). 測試你的恢復在恢復場合,會讓你知道恢復將怎樣執(zhí)行。(10). 在備份歸檔時不要使用delete all input DELETE INPUT 將從第一個歸檔位置刪除日志。9、CPU工作方法分為中斷模式和查詢模式. 查詢模式就是說C

21、PU輪翻的對外設順序訪問,比方說它先看看鍵盤有沒被按下有的話處理,沒的話繼續(xù)往下看鼠標有沒有移動再看看打印機印的怎么樣了,再看.等等.顯然查詢方式的效率低.但穩(wěn)定可靠. 中斷模式時就是說CPU不主動訪問這些設備,只管處理自己的任務,沒任務就閑著.也就是說在那等著.如果有設備要與CPU聯(lián)系,或要CPU處理一些事情,他會給CPU發(fā)一個中斷請求信號.一種情況是這時CPU就會放下正在進行的工作而去處理這個外設的要求.這叫做響應中斷.處理完中斷后,CPU返回去繼續(xù)執(zhí)行中斷以前的工作.還有一種情況如果CPU這時正在做更重要的事情他就會讓這個設備先在那等著.有空時響應他.如果同時有好幾個設備都要CPU來處理

22、,CPU就會從按重要程度來逐個處理.這就是中斷和中斷的優(yōu)先級10、死鎖(1) 互斥條件:一個資源每次只能被一個進程使用。(2) 請求與保持條件:一個進程因請求資源而阻塞時,對已獲得的資源保持不放。(3) 不剝奪條件:進程已獲得的資源,在末使用完之前,不能強行剝奪。(4) 循環(huán)等待條件:若干進程之間形成一種頭尾相接的循環(huán)等待資源關(guān)系。數(shù)學題:1、采用分類討論的方法,首先,要是 三個數(shù)字的和是奇數(shù).那么共有 1 奇數(shù)+奇數(shù)+奇數(shù)=奇數(shù) 2 偶數(shù)+偶數(shù)+奇數(shù)=奇數(shù) 第一種情況是在5個中取出3個奇數(shù).共有10方法.(這是一個組合) 第二種情況是在這九個數(shù)字中取出兩個偶數(shù),即在4個偶數(shù)中取出2個偶數(shù).共

23、有43/2!=6種方法.忘記了還有五個奇數(shù)中再選取一個.56=30所以一共有40種方法.2、9999Web前端開發(fā)類:1、(1)div+css,這個網(wǎng)頁設計模式中,div承擔了網(wǎng)頁的內(nèi)容,css承擔了網(wǎng)頁的樣式。這樣就使網(wǎng)頁的內(nèi)容和樣式的分離開來。有利于頁面的維護升級。(2)有助于提高搜索引擎親和力(快速找到需要的數(shù)據(jù),而不是像在table中一層層的查找)(3)有助于頁面的重構(gòu)(換皮膚如blog,直接套用另外一套樣式就可以實現(xiàn),而不用改動網(wǎng)頁腳本。)2、在JSP中,跳轉(zhuǎn)頁面有兩種方式:1.forward跳轉(zhuǎn):2.response跳轉(zhuǎn):response.sendRedirect(跳轉(zhuǎn)頁面地址);

24、兩種跳轉(zhuǎn)的區(qū)別如下:1.forward跳轉(zhuǎn):a.服務器端跳轉(zhuǎn),地址欄不改變;b.執(zhí)行到跳轉(zhuǎn)語句后馬上無條件跳轉(zhuǎn),之后的代碼不再執(zhí)行(跳轉(zhuǎn)之前一定要釋放全部資源);c.request設置的屬性在跳轉(zhuǎn)后的頁面仍可以使用;d.使用傳遞參數(shù)。2.response跳轉(zhuǎn):a.客戶端跳轉(zhuǎn),地址欄改變;b.所有代碼執(zhí)行完畢后跳轉(zhuǎn);c.跳轉(zhuǎn)后的頁面不能使用上一個頁面的request屬性;d.使用地址重寫傳遞參數(shù)(response.sendRedirect(URL?參數(shù)名參數(shù)值))。3、每個獨立的搜索引擎都有自己的網(wǎng)頁抓取程序(spider)。Spider順著網(wǎng)頁中的超鏈接,連續(xù)地抓取網(wǎng)頁。被抓取的網(wǎng)頁被稱之為網(wǎng)

25、頁快照。由于互聯(lián)網(wǎng)中超鏈接的應用很普遍,理論上,從一定范圍的網(wǎng)頁出發(fā),就能搜集到絕大多數(shù)的網(wǎng)頁。抓取網(wǎng)頁信息需要有高性能的“網(wǎng)絡蜘蛛”程序(Spider)去自動地在互聯(lián)網(wǎng)中搜索信息。一個典型的網(wǎng)絡蜘蛛工作的方式,是查看一個頁面,并從中找到相關(guān)信息,然后它再從該頁面的所有鏈接中出發(fā),繼續(xù)尋找相關(guān)的信息,以此類推,直至窮盡。網(wǎng)絡蜘蛛要求能夠快速、全面。網(wǎng)絡蜘蛛為實現(xiàn)其快速地瀏覽整個互聯(lián)網(wǎng),通常在技術(shù)上采用搶先式多線程技術(shù)實現(xiàn)在網(wǎng)上聚集信息。通過搶先式多線程的使用,你能索引一個基于URL鏈接的Web頁面,啟動一個新的線程跟隨每個新的URL鏈接,索引一個新的URL起點。當然在服務器上所開的線程也不能無限膨脹,需要在服務器的正常運轉(zhuǎn)和快速收集網(wǎng)頁之間找一個平衡點。在算法上各個搜索引擎技術(shù)公司可能不盡相同,但目的都是快速瀏覽Web頁和后續(xù)過程相配合。目前國內(nèi)的搜索引擎技術(shù)公司中,比如百度公司的網(wǎng)絡蜘蛛采用了可定制、高擴展性的調(diào)度算法使得搜索器能在極短的時間內(nèi)收集到最大數(shù)量的互聯(lián)網(wǎng)信息,并把所獲得的信息保存下來以備建立索引庫和用戶檢索。4、 1. 通過ID,使用 getElementById() 獲得標簽節(jié)點2. 通過標簽的名稱,使用getElementsByTagName() 獲得元素節(jié)點或標簽節(jié)點注意:以上的查找方式都會忽略文檔的結(jié)構(gòu)3.

溫馨提示

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

評論

0/150

提交評論