版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、? 一,六道選擇題 (可以多選)p 存儲在()指向/ 堆棧p 存儲在()指向/ 數(shù)據(jù)段/ 數(shù)據(jù)段1 char *p = "hello world" char p = "hello world" 全局變量 static 變量分別在哪個地方?1 數(shù)據(jù)段 2代碼段 3堆 4 堆棧 此題可以配合同文件夾下的 char.cpp)二、例子程序這是一個前輩寫的,非常詳細/main.cppint a = 0; 全局初始化區(qū)char *p1; 全局未初始化區(qū) main()int b; 棧char s = "abc" 棧char *p2; 棧char *
2、p3 = "123456" 1234560 在常量區(qū), p3 在棧上。 static int c =0 ; 全局(靜態(tài))初始化區(qū)p1 = (char *)malloc(10);p2 = (char *)malloc(20);分配得來得 10 和 20 字節(jié)的區(qū)域就在堆區(qū)。strcpy(p1, "123456"); 1234560 放在常量區(qū),編譯器可能會將它與 p3 所指向的 "123456" 優(yōu)化成一個地方。不知道是那個高人怎么想的和我一樣,我估計中間應(yīng)該有錯誤)2 %&. &&<= = 那個優(yōu)先級別最
3、高. &3%<= && =4 以下哪些通信方式是可靠的通訊方式1 信號 2 管道 3 消息 4tcp 5udp 6 串口 I/O5是(M)?( a+ ):( a-),此處的 M等于我選CA, M=O , B, M=1 , C, M!=O, D, M!=16 是 Unix 的啟動順序排序。 (6 個選項 )1 是數(shù)制轉(zhuǎn)換 151 轉(zhuǎn) 2進制和九進制。 100101111770x_ 78( 0 的 ASCII 碼2已知0的ASCII碼為0x40,那么int 120在內(nèi)存中的表示形式是 為0x40,應(yīng)該為0x30)1、在linux下,查看目錄大小的命令是:du - sh
4、 dirname2、修改文件屬性的命令是: chomd/chgrp3、切換為其他用戶身份的命令是:su4 還有一道指針交換數(shù)值 int i=0,j=10,int* p=&i, int* q=&j, int fun (*a,*b)int* temp=a;*a*=10;*b*=10;a=b;b=temp; 最后問調(diào)用 fun(&p,q) 問 i、j、p 、q 的最終值 (具體形式大概如此, 但中間指針肯定記的錯誤 ) 此題主要考察指針指向一個整數(shù),然后利用指針改變變量,最后交換指針5有道填插入排序的算法。有一個數(shù)組a0到ai-1為從小到大排序,ai到acount-1沒有排序
5、,請您添加3條語句使它們按照從小到大排序int insert_sort(int a,int count)for(int i=1;i<count;+i)int j,t;t=ai;(j=i-1;) while(j>=0&&t<aj)(aj+1=aj;)j-;(aj+1=t;)return 0; 三,編程與邏輯題1 自己寫一個 strstr (單鏈表判斷有無環(huán),) char* strstr(char* buf, char* sub) char* bp; char* sp;If(!*sub)return buf;while(*buf)bf=buf;sp=sub;do
6、if(!*sp)return buf; while(*bp+=*sp+)buf+=1;return 0;2 遍歷文本找單詞并刪掉出現(xiàn)頻率最少的單詞, fun (char* pText) #include <stdio.h>#include <stdarg.h> / 定義 av_list、av_start、av_arg等宏3 實現(xiàn)一個與 printf 功能相似的函數(shù)#include <iostream>#include <conio.h>#include <stdio.h>#include <stdarg.h> / 定義 a
7、v_list、av_start、av_arg等宏/* 此函數(shù)的作用:實現(xiàn)一個參數(shù)個數(shù)可變的函數(shù),此函數(shù)的功能與 printf 類似, 但在格式處理上,不如 printf 豐富無異常,返回一個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
8、 格式、 %后面必須跟一個格式字符 */bool zykPrintf(constchar * format,.)/ 定義一個可用于指向參數(shù)的指針(實為 char *),va_list argPtr;/ 把函數(shù)的第一個參數(shù) format 的地址傳給 argPtrva_start(argPtr,format);const int size = strlen(format)+1;char *tmp = newcharsize; memset(tmp, 0, size);while (*format != 0)int i;for (i=0; i<size && *format!=
9、'%' && *format!=0; i+) tmpi=*format+;tmpi = 0; / 在有效的字符串末尾作 0值防護printf("%s",tmp);if (*format = 0) return true;switch(*+format)/ 按指定類型讀取下一個參數(shù) ,并打印case'd': printf("%d", va_arg(argPtr, int); break;case's': printf("%s", va_arg(argPtr, char *)
10、; break; case'c': printf("%c", va_arg(argPtr, char); break;case'f': printf("%f", va_arg(argPtr, float); break;/ 對 %的處理case'%': printf("%"); break; / 格式錯誤default : printf(" Error Ocurr!Please Check the Format!");return false;+format;dele
11、te 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,"l love zykA_A!");getch(); return 0;4 是一道邏輯題,有的數(shù)是 2
12、, 3, 5 的倍數(shù),在三位數(shù)中出去可整除這三個數(shù)的和 ( 5 升和 3 升桶量 4 升水)四,改錯題三道1tozero 算法2 比較簡單3 是高質(zhì)量里的一道題 五,問答題 1VC 中有哪些方法避免 C 編程中的頭文件重復(fù)包含: #ifndef !#def !#endif2 在 C+ 中 extern c 的作用 (按鍵轉(zhuǎn)換,比如點擊 p 輸出 q) 作為extern是C/C+語言中表明函數(shù)和全局變量作用范圍(可見性)的關(guān)鍵字,該關(guān)鍵字 告訴編譯器,其聲明的函數(shù)和變量可以在本模塊或其它模塊中使用。extern "C"是連接申明(linkage declaration)被ex
13、tern "C"修飾的變量和函數(shù)是按照 C語言方式 編譯和連接的3 編程中異步 IO 和同步 IO 有什么區(qū)別?說說你可知道的幾種 IO ?4使用異步socket編程,通常因為網(wǎng)絡(luò)擁塞 send不出數(shù)據(jù),會獲得什么樣的錯誤碼 (windows 下舉例 ),通常如何處理這種情況?(核心太與用戶太的區(qū)別, x86 如何轉(zhuǎn)換。)5將程序移植到不同的 32位cpu中,經(jīng)常出現(xiàn)結(jié)構(gòu)字節(jié)對齊和大小端的問題,有哪能些方 法避免?(是子網(wǎng)源碼的判斷,計算, ABCDE 網(wǎng)絡(luò)的區(qū)別, DE 網(wǎng)絡(luò)的用途,)6怎樣解決在vc中內(nèi)存泄漏的問題(release版本)( 1)放置關(guān)鍵字 assert(
14、)(2)生成map文件。它并不往exe文件中添加任何東西,僅僅只是把編譯連接時的所有函數(shù)入口地址記錄在后綴為 .map 文件。程序崩潰的時候,可以得到一個崩潰時的EIP 地址,通過地址可以很容易的查到崩潰所在的函數(shù)。(在 vc setting 下有個 link 按鈕選上 generate mapfile)(3) Release版本也是可以設(shè)置斷點的,在希望設(shè)置斷點處加入_asm int 3(4)熟悉匯編,通過編譯時的匯編看出( 5)使用第三方調(diào)試器。(6)關(guān)掉發(fā)行版中的一些優(yōu)化選項,生成調(diào)試信息。(是p2p軟件在nat用戶里實現(xiàn)數(shù)據(jù)互傳的原理開發(fā)類筆試全部是 C/C+ ,要求對底層有一定的了解
15、開發(fā)類的筆試題目比較暈,共五頁紙,要 求兩個鐘頭完成(我的簡歷沒有通過篩選,我是去霸王筆的-_-)好像考的內(nèi)容都跟網(wǎng)上流傳的差不多,題目內(nèi)容大致如下 :希望對參加深信服筆試和面試的同學(xué)有所幫助:)1. 選擇題: 6題 第一題是考變量和值的存儲位置 (堆/棧/代碼段 / 數(shù)據(jù)段等 ) 最后一題是 Unix 系 統(tǒng)的啟動順序,其他幾題比較簡單。2. 填空題:4/5題考sizeof、指針、數(shù)制轉(zhuǎn)換、排序等,看過高質(zhì)量C/C+應(yīng)該都沒有問題。3. 改錯題: 3 題 有道題跟高質(zhì)量 C/C+ 中一道指針題類似,不過那題中沒有錯,原本不需要修 改,卻反倒被我改錯了,汗 .另外兩題比較簡單。4. 編程題 :
16、 4/5 題 判斷鏈表有沒有環(huán) (要求用兩種方法 ); 實現(xiàn) C 中的 printf深圳某公司幾個 vc/mfc 筆試題目 (含參考答案 )1: Release版本下如何解決 memory leak以及非法操作的 BUG。(搞不清什么非法操作)2:在異步socket時,為什么有時 send不出數(shù)據(jù),會報什么錯誤(分windows/linux下),你一般怎么處理?下面是幾個編程的3:實現(xiàn)strstr模型(我暈,我寫了個函數(shù),只是不是strstr,而是strchr)4: 實現(xiàn) printf 類似的函數(shù) , void myprintf(char *str,.)(用 console API 嗎?好像在
17、哪書上看到可用那些 API 實現(xiàn),嘿,我就寫了個 std:cout<<)5: 刪除文本文件中出現(xiàn)頻率最小的單詞, (文件里以空格表示間隔一個單詞)void func(char *pTxt)1、strstr 的實現(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 ('0
18、39; = *ps)return (char *)str;str ;return NULL;2、 從指定文本中刪除出現(xiàn)頻率最少的單詞,如果有多個, 則都刪除。 實現(xiàn) void func(char* pTxt) 函數(shù)。. 看 單詞處理, 論壇中很多都有涉及3、printf 的實現(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
19、#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夕卜,就想不出來 了)#pragma once5、extern "C"的用法。用于提供C接口,如使用C命名方式等6、
20、 異步socket編程中,send不出數(shù)據(jù)的錯誤碼是什么,(舉Linux或Windows為例),你是 怎么處理的?非阻塞SOCKET,SEND不出數(shù)據(jù)的原因有 2個吧,TCP下連接斷開了和該 SOCKET處在 阻塞狀態(tài)(也就是說在發(fā)送數(shù)據(jù)中)。UPD發(fā)不出只有TCP后面的情況。處理的辦法就是記錄下該 SOCKET的狀態(tài),當狀態(tài)為阻塞的時間, 放入緩沖,當該SOCKET 再次可寫時,發(fā)送。7、 異步10和同步10有什么區(qū)別?舉例說明有幾種(如read)?異步10當函數(shù)返回時不一定就完成了10操作,而同步10已經(jīng)完成了。所以 異步10需要 有一個事件,當 IO 完成時會設(shè)置此事件,調(diào)用者在事件上等
21、待。8、32位系統(tǒng)中,出現(xiàn)結(jié)構(gòu)字節(jié)對齊的問題和大小端的問題的避免?#pragma pack(4)9、如何查出內(nèi)存泄漏和非法操作的BUG (在Release版本下)?使用 map 文件1, PostMessag只把消息放入隊列,不管其他程序是否處理都返回,然后繼續(xù) 執(zhí)行,這是個異步消息投放函數(shù)。而 Se ndMessag必須等待其他程序處理消息完 了之后才返回,繼續(xù)執(zhí)行,這是個同步消息投放函數(shù)。而且,PostMessag的返回值表示PostMessageS數(shù)執(zhí)行是否正確;而 SendMessag的返回值表示其他程 序處理消息后的返回值。 這點大家應(yīng)該都明白。2,如果在同一個線程內(nèi),PostMessag發(fā)送消息時,消息要先放入線程的消息 隊列,然后通過消息循環(huán) Dispatch到目標窗口。Se ndMessag發(fā)送消息時,系統(tǒng) 直接調(diào)用目標窗口的消息處理程序,并將結(jié)果返回。Se ndMessag在同一線程中發(fā)送消息并不入線程消息隊列。 如果在不同線程內(nèi)。最好用 PostThreadMessage 代替PostMessag他工作的很好。SendMessag發(fā)送消息到目標窗口所屬的線程的 消息隊列,然后發(fā)送消息的線程等待 (事實上,他應(yīng)該還在做一些監(jiān)測工作,比 如監(jiān)視QS_SENDMESSAGE標志),直到目標窗口處理完
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信號燈施工方案
- 蓋板涵施工方案
- 人造草球場施工方案
- 2025年度個人商鋪租賃合同租賃物評估與定價服務(wù)合同4篇
- 2025年度車間裝修與智能監(jiān)控系統(tǒng)安裝合同4篇
- 異構(gòu)邊緣資源調(diào)度機制-深度研究
- 數(shù)字媒體中的視覺快感-深度研究
- 足球場施工方案
- 文化變革與組織創(chuàng)新關(guān)系-深度研究
- 二零二五年度出租車平臺服務(wù)權(quán)與股權(quán)互換合同4篇
- 第三單元名著導(dǎo)讀《經(jīng)典常談》知識清單 統(tǒng)編版語文八年級下冊
- 第十七章-阿法芙·I·梅勒斯的轉(zhuǎn)變理論
- 焊接機器人在汽車制造中應(yīng)用案例分析報告
- 合成生物學(xué)在生物技術(shù)中的應(yīng)用
- 中醫(yī)門診病歷
- 廣西華銀鋁業(yè)財務(wù)分析報告
- 無違法犯罪記錄證明申請表(個人)
- 大學(xué)生勞動教育PPT完整全套教學(xué)課件
- 繼電保護原理應(yīng)用及配置課件
- 《殺死一只知更鳥》讀書分享PPT
- 蓋洛普Q12解讀和實施完整版
評論
0/150
提交評論