往年的深信服筆試題(齊全)_第1頁(yè)
往年的深信服筆試題(齊全)_第2頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、33、切換為其他用戶(hù)身份的命令是:su一,六道選擇題(可以多選)1 char*p=helloworld;p 存儲(chǔ)在()指向堆棧charp=helloworld;p 存儲(chǔ)在()指向全局變量/數(shù)據(jù)段static 變量/數(shù)據(jù)段分別在哪個(gè)地方?1 數(shù)據(jù)段2 代碼段3 堆4 堆棧(此題可以配合同文件夾下的char.cpp )(二、例子程序這是一個(gè)前輩寫(xiě)的,非常詳細(xì)/main.cppint a =0;全局初始化區(qū)char *p1;全局未初始化區(qū)main()int b; 棧chars= abc;棧char*p2;棧char*p3=123456;1234560 在常量區(qū),p3 在棧上。staticint c

2、=0 ;全局(靜態(tài))初始化區(qū)pl = (char *)malloc(10);p2 =(char *)malloc(20);分配得來(lái)得 10 和 20 字節(jié)的區(qū)域就在堆區(qū)strcpy(p1, 123456);1234560 放在常量區(qū),編譯器可能會(huì)將它與p3 所指向的123456優(yōu)化成一個(gè)地方。不知道是那個(gè)高人怎么想的和我一樣,我估計(jì)中間應(yīng)該有錯(cuò)誤)2%&.&=那個(gè)優(yōu)先級(jí)別最高.& % = & =34 以下哪些通信方式是可靠的通訊方式1 信號(hào) 2 管道 3 消息 4tcp 5udp 6 串口 I/O5 是(M)?( a+):( a-),此處的 M 等于我選 CA,M=O,B,M=1,C,M! =

3、O,D,M ! =16 是 Unix 的啟動(dòng)順序排序。(6 個(gè)選項(xiàng))1 是數(shù)制轉(zhuǎn)換 151 轉(zhuǎn) 2 進(jìn)制和九進(jìn)制。100101111772 已知 0 的 ASCII 碼為 0 x40,那么 int 120;在內(nèi)存中的表示形式是0 x_78(0 的 ASCII 碼為 0 x40,應(yīng)該為 0 x30)1、在 linux 下,查看目錄大小的命令是:du - sh dir name2、修改文件屬性的命令是:chomd/chgrp4 還有一道指針交換數(shù)值int i=0,j=10,int* p=&i, int* q=&j,int fun (*a,*b)int* temp=a;*a*=10;*b*=10;a

4、=b;b=temp;最后問(wèn)調(diào)用 fun(&p,q)問(wèn) i、j、p、q 的最終值(具體形式大概如此,但中間指針肯定記的錯(cuò)誤)此題主要考察指針指向一個(gè)整數(shù),然后利用指針改變變量,最后交換指針5 有道填插入排序的算法。有一個(gè)數(shù)組a0到 ai-1為從小到大排序,ai到 acount-1沒(méi)有排序,請(qǐng)您添加3 條語(yǔ)句使它們按照從小到大排序int insert_sort(inta,int count)for(int i=1;i=0&taj)(aj+1=aj;)j-;(aj+1=t;)return 0;三,編程與邏輯題1 自己寫(xiě)一個(gè) strstr(單鏈表判斷有無(wú)環(huán),)char* strstr(char* bu

5、f, char* sub)char* bp;char* sp;lf(!*sub)return buf;while(*buf)bf=buf;sp=sub;do if(!*sp)return buf;while(*bp+=*sp+)buf+=1;return 0;2 遍歷文本找單詞并刪掉出現(xiàn)頻率最少的單詞,fun (char*#include #include / 定義 av_list、av_start、av_arg 等宏3 實(shí)現(xiàn)一個(gè)與 printf功能相似的函數(shù)#include #include #include #include / 定義 av_list、av_start、av_arg 等宏/

6、*此函數(shù)的作用:實(shí)現(xiàn)一個(gè)參數(shù)個(gè)數(shù)可變的函數(shù),此函數(shù)的功能與printf 類(lèi)似,但在格式處理上,不如printf 豐富無(wú)異常,返回一個(gè) true,否則返回 falseformat 字符串的合法情況如下:1. %zyk%zyk%,OUTPUT:%zyk%zyk%2. %dzyk%fzyk%s,OUTPUT:(int)zyk(float)zyk(string)3. zyk, OUTPUT:zyk非法情況如下:1.%zyk% ERROR:不存在%z 格式、后面必須跟一個(gè)格式字符*/bool zykPrintf( const char * format,.)/定義一個(gè)可用于指向參數(shù)的指針(實(shí)為 char

7、 *),va_list argPtr;/把函數(shù)的第一個(gè)參數(shù) format 的地址傳給 argPtrva_start(argPtr,format);const int size = strlen(format)+1;char *tmp = new char size;memset(tmp, 0, size);while (*format != 0)int i;for (i=0; isize & *format!=% & *format!=0; i+) pText)tmpi=*format+;tmpi = 0; /在有效的字符串末尾作0 值防護(hù)printf(%s,tmp);if (*format

8、= 0)return true ;switch (*+format)/按指定類(lèi)型讀取下一個(gè)參數(shù),并打印case d: printf(%d, va_arg(argPtr,case s: printf(%s, va_arg(argPtr,case c: printf(%c, va_arg(argPtr,case f: printf(%f, va_arg(argPtr,/對(duì)%的處理case %: printf(%); break ; /格式錯(cuò)誤default : printf( Error Ocurr!Please Check the Format!); return false; +format;

9、delete tmp;return true ;int main( int argc, char * argv)zykPrintf(%zyk); /errorzykPrintf(zyk%); /errorzykPrintf(%zyk%zyk%); /OUTPUT: %zyk%zyk%zykPrintf(nzyk is a pretty boy! His age is %d and %s,5,I love zykA_A!);getch();return 0;4 是一道邏輯題,有的數(shù)是2,3,5 的倍數(shù),在三位數(shù)中出去可整除這三個(gè)數(shù)的和int); break; char*); break ; ch

10、ar);break; float);break ;( 5 升和 3 升桶量 4 升水) 四,改錯(cuò)題三道1tozero 算法2 比較簡(jiǎn)單3 是高質(zhì)量里的一道題 五,問(wèn)答題1VC 中有哪些方法避免 C 編程中的頭文件重復(fù)包含:#ifndef !#def !#endif2 在 C+ 中 extern c 的作用 (按鍵轉(zhuǎn)換,比如點(diǎn)擊 p 輸出 q) 作為 extern 是 C/C+語(yǔ)言中表明函數(shù)和全局變量作用范圍(可見(jiàn)性)的關(guān)鍵字,該關(guān)鍵字 告訴編譯器,其聲明的函數(shù)和變量可以在本模塊或其它模塊中使用。extern C 是連接申明 (linkage declaration),被 extern C 修飾

11、的變量和函數(shù)是按照 C語(yǔ)言方式編譯和連接的3 編程中異步 10 和同步 10 有什么區(qū)別?說(shuō)說(shuō)你可知道的幾種10?4 使用異步 socket 編程,通常因?yàn)榫W(wǎng)絡(luò)擁塞 send 不出數(shù)據(jù),會(huì)獲得什么樣的錯(cuò)誤碼 (windo ws 下舉例 ) ,通常如何處理這種情況?(核心太與用戶(hù)太的區(qū)別, x86 如何轉(zhuǎn)換。)5 將程序移植到不同的 32 位 cpu 中,經(jīng)常出現(xiàn)結(jié)構(gòu)字節(jié)對(duì)齊和大小端的問(wèn)題,有哪能些方 法避免?(是子網(wǎng)源碼的判斷,計(jì)算, ABCDE 網(wǎng)絡(luò)的區(qū)別, DE 網(wǎng)絡(luò)的用途,)6 怎樣解決在 vc 中內(nèi)存泄漏的問(wèn)題( release 版本)( 1 )放置關(guān)鍵字 assert ()(2)生成

12、 map 文件。它并不往 exe 文件中添加任何東西,僅僅只是把編譯連接時(shí)的所有 函數(shù)入口地址記錄在后綴為 .map 文件。程序崩潰的時(shí)候, 可以得到一個(gè)崩潰時(shí)的 EIP 地址, 通過(guò)地址可以很容易的查到崩潰所在的函數(shù)。(在 vc setting 下有個(gè) link 按鈕選上 generat e mapfile )( 3 ) Release 版本也是可以設(shè)置斷點(diǎn)的,在希望設(shè)置斷點(diǎn)處加入 _asm int 3(4)熟悉匯編,通過(guò)編譯時(shí)的匯編看出(5)使用第三方調(diào)試器。(6)關(guān)掉發(fā)行版中的一些優(yōu)化選項(xiàng),生成調(diào)試信息。(是 p2p 軟件在 nat 用戶(hù)里實(shí)現(xiàn)數(shù)據(jù)互傳的原理開(kāi)發(fā)類(lèi)筆試全部是 C/C+ ,

13、要求對(duì)底層有一定的了解開(kāi)發(fā)類(lèi)的筆試題目比較暈,共五頁(yè)紙, 要求兩個(gè)鐘頭完成(我的簡(jiǎn)歷沒(méi)有通過(guò)篩選,我是去霸王筆的 -_-)好像考的內(nèi)容都跟網(wǎng)上流傳的差 不多,題目?jī)?nèi)容大致如下 : 希望對(duì)參加深信服筆試和面試的同學(xué)有所幫助:)1. 選擇題:6 題 第一題是考變量和值的存儲(chǔ)位置 (堆/棧 /代碼段 /數(shù)據(jù)段等 ) 最后一題是 Unix 系統(tǒng) 的啟動(dòng)順序,其他幾題比較簡(jiǎn)單。2. 填空題: 4/5 題 考 sizeof 、指針、數(shù)制轉(zhuǎn)換、排序等,看過(guò)高質(zhì)量C/C+ 應(yīng)該都沒(méi)有問(wèn)題。3. 改錯(cuò)題: 3 題 有道題跟高質(zhì)量 C/C+ 中一道指針題類(lèi)似,不過(guò)那題中沒(méi)有錯(cuò),原本不需要修 改,卻反倒被我改錯(cuò)了,

14、汗 .另外兩題比較簡(jiǎn)單。4. 編程題 : 4/5 題 判斷鏈表有沒(méi)有環(huán) ( 要求用兩種方法 ); 實(shí)現(xiàn) C 中的 printf深圳某公司幾個(gè) vc/mfc 筆試題目 (含參考答案 ) 1: Release 版本下如何解決 memory leak 以及非法操作的 BUG。(搞不清什么非法操作)2: 在異步 socket 時(shí),為什么有時(shí) send 不出數(shù)據(jù),會(huì)報(bào)什么錯(cuò)誤(分 windows/linux 下),你 一般怎么處理?下面是幾個(gè)編程的3:實(shí)現(xiàn) strstr 模型(我暈,我寫(xiě)了個(gè)函數(shù),只是不是strstr 而是 strchr)4: 實(shí)現(xiàn) printf 類(lèi)似的函數(shù) , void myprint

15、f(char *str,.)(用 console API 嗎?好像在哪書(shū)上看到可用那些 API 實(shí)現(xiàn),嘿,我就寫(xiě)了個(gè) std:cout)5: 刪除文本文件中出現(xiàn)頻率最小的單詞, (文件里以空格表示間隔一個(gè)單詞)void func(char *pTxt)1、 strstr 的實(shí)現(xiàn)原型。char *my_strstr(const char *str, const char *strSearch)while (*str != 0)char *p = (char *)str;char *ps = (char *)strSearch;while ( ps & *p = *ps )p , ps ;if (

16、0 = *ps)return (char *)str;str ;return NULL;2、 從指定文本中刪除出現(xiàn)頻率最少的單詞, 如果有多個(gè), 則都刪除。實(shí)現(xiàn) void func(char* pTxt) 函數(shù)。. 看 單詞處理, 論壇中很多都有涉及3、 printf 的實(shí)現(xiàn)。int printf(const char *format, .)va_list arglist;int buffing;int retval;va_start(arglist, format);_ASSERTE(format != NULL);#ifdef _MT_lock_str2(1, stdout);_try #

17、e ndif /* _MT */buffing = _stbuf(stdout);retval = _output(stdout,format,arglist);_ftbuf(buffing, stdout);#ifdef _MT_fin ally _un Iock_str2(1, stdout);#e ndif /* _MT */ return(retval);4、 VC 中有哪些方法避免 C 編譯頭文件重復(fù)。(除了 #ifndef/#define/#endif 夕卜,就想不出來(lái) 了)#pragma once5、extern C的用法。用于提供 C 接口,如使用 C 命名方式等.6、 異步

18、socket 編程中,send 不出數(shù)據(jù)的錯(cuò)誤碼是什么,(舉 Linux 或 Windows 為例),你是 怎么處理的?非阻塞 SOCKET,SEND 不出數(shù)據(jù)的原因有 2 個(gè)吧,TCP 下連接斷開(kāi)了和該 SOCKET 處在 阻塞狀態(tài)(也就是說(shuō)在發(fā)送數(shù)據(jù)中)。UPD 發(fā)不出只有 TCP 后面的情況。處理的辦法就是記錄下該SOCKET 的狀態(tài),當(dāng)狀態(tài)為阻塞的時(shí)間, 放入緩沖,當(dāng)該 SOCKET再次可寫(xiě)時(shí),發(fā)送。7、異步 10 和同步 10 有什么區(qū)別?舉例說(shuō)明有幾種(如read)? 異步 IO 當(dāng)函數(shù)返回時(shí)不一定就完成了 10 操作,而同步 10 已經(jīng)完成了。所以異步 10 需要 有一個(gè)事件,當(dāng)

19、 10 完成時(shí)會(huì)設(shè)置此事件,調(diào)用者在事件上等待。8、32 位系統(tǒng)中,出現(xiàn)結(jié)構(gòu)字節(jié)對(duì)齊的問(wèn)題和大小端的問(wèn)題的避免?#pragma pack(4)9、 如何查出內(nèi)存泄漏和非法操作的BUG (在 Release 版本下)?使用 map 文件1, PostMessage 只把消息放入隊(duì)列,不管其他程序是否處理都返回,然后繼續(xù) 執(zhí)行,這是個(gè)異步消息投放函數(shù)。 而 SendMessage 必須等待其他程序處理消息完 了之后才返回,繼續(xù)執(zhí)行,這是個(gè)同步消息投放函數(shù)。而且,PostMessage 的返回值表示 PostMessage 函數(shù)執(zhí)行是否正確;而 SendMessage 的返回值表示其他程 序處理消息

20、后的返回值。 這點(diǎn)大家應(yīng)該都明白。2,如果在同一個(gè)線(xiàn)程內(nèi),PostMessage 發(fā)送消息時(shí),消息要先放入線(xiàn)程的消息 隊(duì)列,然后通過(guò)消息循環(huán) Dispatch 到目標(biāo)窗口。SendMessage 發(fā)送消息時(shí),系 統(tǒng)直接調(diào)用目標(biāo)窗口的消息處理程序,并將結(jié)果返回。Sen dMessage 在同一線(xiàn)程中發(fā)送消息并不入線(xiàn)程消息隊(duì)列。如果在不同線(xiàn)程內(nèi)。最好用PostThreadMessage 代替 PostMessage,他工作的很好。SendMessage 發(fā)送消息到 目標(biāo)窗口所屬的線(xiàn)程的消息隊(duì)列,然后發(fā)送消息的線(xiàn)程等待(事實(shí)上,他應(yīng)該還在做一些監(jiān)測(cè)工作,比如監(jiān)視 QS_SENDMESSA 標(biāo)志),直到目標(biāo)窗口處理完并且 結(jié)果返回,發(fā)送消息的線(xiàn)程才繼續(xù)運(yùn)行。這是 SendMessage 的一般情況,事實(shí)上,處理過(guò)程要復(fù)雜的多。比如,當(dāng)發(fā)送消息的線(xiàn)程監(jiān)測(cè)到有別

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論