版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、? 一,六道選擇題(可以多選)1 char *p ="helloworld"p 存儲在()指向 / 堆棧char p ="helloworld"p 存儲在()指向全局變量/ 數(shù)據(jù)段static 變量/ 數(shù)據(jù)段分別在哪個地方?1 數(shù)據(jù)段 2 代碼段 3 堆4 堆棧此題可以配合同文件夾下的 char.cpp ) 二、例子程序這是一個前輩寫的,非常詳細/main.cppint a = 0; 全局初始化區(qū)char *p1; 全局未初始化區(qū)main()int b; 棧chars = "abc" 棧char*p2; 棧char*p3 = &quo
2、t;123456" 1234560 在常量區(qū), p3 在棧上。staticint 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)化成一個地方。 不知道是那個高人怎么想的和我一樣,我估計中間應該有錯誤 )2 % & . && <= = 那個優(yōu)先級別最高. &
3、 % <= && =34 以下哪些通信方式是可靠的通訊方式1 信號 2 管道 3 消息 4tcp 5udp 6 串口 I/O5 是( M)?( a+ ):( a- ),此處的 M 等于 我選 C A, M=O ,B,M=1 ,C,M!=O,D,M!=16是 Unix 的啟動順序排序。 (6 個選項)1 是數(shù)制轉(zhuǎn)換 151 轉(zhuǎn) 2 進制和九進制。 10010111 1772 已知 0 的 ASCII 碼為 0x40,那么 int 120; 在內(nèi)存中的表示形式是 0x_ 78( 0 的 AS CII 碼為 0x40,應該為 0x30 )1、在 linux 下,查看目錄大小的命
4、令是: du sh dirname2 、修改文件屬性的命令是: 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=b; b=temp;最后問調(diào)用 fun(&p,q) 問 i、 j、 p、 q 的最終值 (具體形式大概如此,但中間指針肯定記的錯 誤)此題主要考察指針指向一個整數(shù),然后利用指針改變變量,最后交換指針5 有道填插入排序的算法。有一個數(shù)組 a0 到 ai-1 為從小到大排序, ai 到 ac ount-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;
6、sp=sub;do if(!*sp) return buf;while(*bp+=*sp+)buf+=1;return 0;pText)2 遍歷文本找單詞并刪掉出現(xiàn)頻率最少的單詞, fun (char*#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.
7、h> / 定義 av_list 、 av_start 、av_arg 等宏 /* 此函數(shù)的作用:實現(xiàn)一個參數(shù)個數(shù)可變的函數(shù),此函數(shù)的功能與 printf 類似, 但在格式處理上,不如 printf 豐富無異常,返回一個 true, 否則返回 false format 字符串的合法情況如下:1."%zyk%zyk%",OUTPUT:%zyk%zyk%2. "%dzyk%fzyk%s",OUTPUT:(int)zyk(float)zyk(string)3. "zyk", OUTPUT:zyk 非法情況如下:1."%zyk%
8、" ERROR: 不存在 %z 格式、 % 后面必須跟一個格式字符 */ bool zykPrintf( const char * format,.)/ 定義一個可用于指向參數(shù)的指針(實為 char * ), va_list argPtr;/ 把函數(shù)的第一個參數(shù) format 的地址傳給 argPtr va_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;
9、i<size && *format!='%' && *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, case 's': printf("%s",
10、 va_arg(argPtr, case 'c': printf("%c", va_arg(argPtr, case 'f': printf("%f", va_arg(argPtr,/ 對 %的處理case '%': printf("%");/ 格式錯誤 default : printf("int ); break ; char *); break ; char ); break ; float ); break ;break ; Error Ocurr!Please Chec
11、k the Format!");return false ;+format;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 lov
12、e zyk_!");getch();return 0;4 是一道邏輯題,有的數(shù)是 2 ,3,5 的倍數(shù),在三位數(shù)中出去可整除這三個數(shù)的和( 5 升和 3 升桶量 4 升水) 四,改錯題三道1tozero 算法2 比較簡單3 是高質(zhì)量里的一道題 五,問答題1VC中有哪些方法避免 C 編程中的頭文件重復包含:#ifndef !#def !#endif2 在 C+ 中 extern c 的作用(按鍵轉(zhuǎn)換,比如點擊 p 輸出 q)作為 extern 是 C/C+語言中表明函數(shù)和全局變量作用范圍(可見性)的關鍵字,該關鍵字 告訴編譯器,其聲明的函數(shù)和變量可以在本模塊或其它模塊中使用。exter
13、n "C" 是連接申明 (linkage declaration),被 extern "C" 修飾的變量和函數(shù)是按照 C語言方式編譯和連接的3 編程中異步 IO 和同步 IO 有什么區(qū)別?說說你可知道的幾種IO ?4 使用異步 socket 編程,通常因為網(wǎng)絡擁塞 send 不出數(shù)據(jù),會獲得什么樣的錯誤碼 (windo ws 下舉例 ) ,通常如何處理這種情況?(核心太與用戶太的區(qū)別, x86 如何轉(zhuǎn)換。)5 將程序移植到不同的 32 位 cpu 中,經(jīng)常出現(xiàn)結構字節(jié)對齊和大小端的問題,有哪能些方 法避免?(是子網(wǎng)源碼的判斷,計算, ABCDE 網(wǎng)絡的區(qū)
14、別, DE 網(wǎng)絡的用途,)6 怎樣解決在 vc 中內(nèi)存泄漏的問題( release 版本)(1 )放置關鍵字 assert ()(2 )生成 map 文件。它并不往 exe 文件中添加任何東西,僅僅只是把編譯連接時的所有 函數(shù)入口地址記錄在后綴為 .map 文件。程序崩潰的時候, 可以得到一個崩潰時的 EIP 地址, 通過地址可以很容易的查到崩潰所在的函數(shù)。(在 vc setting 下有個 link 按鈕選上 generat e mapfile )(3)Release 版本也是可以設置斷點的,在希望設置斷點處加入_asm int 3(4)熟悉匯編,通過編譯時的匯編看出(5)使用第三方調(diào)試器。
15、( 6 )關掉發(fā)行版中的一些優(yōu)化選項,生成調(diào)試信息。(是 p2p 軟件在 nat 用戶里實現(xiàn)數(shù)據(jù)互傳的原理開發(fā)類筆試全部是 C/C+ ,要求對底層有一定的了解開發(fā)類的筆試題目比較暈, 共五頁紙, 要求 兩個鐘頭完成(我的簡歷沒有通過篩選,我是去霸王筆的-_-)好像考的內(nèi)容都跟網(wǎng)上流傳的差不多,題目內(nèi)容大致如下 : 希望對參加深信服筆試和面試的同學有所幫助:)1. 選擇題:6 題 第一題是考變量和值的存儲位置 (堆/棧 /代碼段 /數(shù)據(jù)段等 ) 最后一題是 Unix 系統(tǒng) 的啟動順序,其他幾題比較簡單。2. 填空題: 4/5 題 考 sizeof 、指針、數(shù)制轉(zhuǎn)換、排序等,看過高質(zhì)量 C/C+
16、應該都沒有問題。3. 改錯題: 3 題 有道題跟高質(zhì)量 C/C+ 中一道指針題類似,不過那題中沒有錯,原本不需要修 改,卻反倒被我改錯了,汗 .另外兩題比較簡單。4. 編程題 : 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) strst
17、r 模型 (我暈,我寫了個函數(shù),只是不是strstr,而是 strchr)4: 實現(xiàn) printf 類似的函數(shù) , void myprintf(char *str,.)(用 console API 嗎?好像在哪書上看到可用那些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')
18、char *p = (char *)str;char *ps = (char *)strSearch;while ( ps && *p = *ps )p , ps ;if ('0' = *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 buffin
19、g;int retval;va_start(arglist, format);_ASSERTE(format != NULL);#ifdef _MT_lock_str2(1, stdout);_try #endif /* _MT */buffing = _stbuf(stdout);retval = _output(stdout,format,arglist);_ftbuf(buffing, stdout);#ifdef _MT_finally _unlock_str2(1, stdout);#endif /* _MT */ return(retval);4、VC 中有哪些方法避免 C 編譯頭
20、文件重復。 (除了 #ifndef/#define/#endif 外,就想不出來 了)#pragma once5、extern "C" 的用法。用于 提供 C 接口, 如使用 C 命名方式 等 .6、異步 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)為阻塞的時間,
21、放入緩沖, 當該 SOCKET 再次可寫時,發(fā)送。7、異步 IO 和 同步 IO 有什么區(qū)別?舉例說明有幾種(如 read)? 異步 IO 當函數(shù)返回時不一定就完成了 IO 操作,而 同步 IO 已經(jīng)完成了。所以 異步 IO 需要 有一個事件,當 IO 完成時會設置此事件,調(diào)用者在事件上等待。8、32 位系統(tǒng)中,出現(xiàn)結構字節(jié)對齊的問題和大小端的問題的避免?#pragma pack(4)9、如何查出內(nèi)存泄漏和非法操作的 BUG (在 Release 版本下)?使用 map 文件1, PostMessage只把消息放入隊列,不管其他程序是否處理都返回,然后繼續(xù) 執(zhí)行,這是個異步消息投放函數(shù)。 而
22、SendMessage必須等待其他程序處理消息完 了之后才返回,繼續(xù)執(zhí)行,這是個同步消息投放函數(shù)。而且, PostMessage 的返 回值表示 PostMessage 函數(shù)執(zhí)行是否正確; 而 SendMessage的返回值表示其他程 序處理消息后的返回值。 這點大家應該都明白。2, 如果在同一個線程內(nèi), PostMessage發(fā)送消息時,消息要先放入線程的消息 隊列,然后通過消息循環(huán) Dispatch 到目標窗口。 SendMessage發(fā)送消息時,系 統(tǒng)直接調(diào)用目標窗口的消息處理程序,并將結果返回。 SendMessage在同一線程 中發(fā)送消息并不入線程消息隊列。 如果在不同線程內(nèi)。最好用 PostThreadMessage 代替 PostMessage,他工作的很好。 SendMessage發(fā)送消息到 目標窗口所屬的線程的消息隊列,然后發(fā)送消息的線程等待( 事實上,他應該還在做一些監(jiān)測工作, 比如監(jiān)視 QS_SENDMESSA標G志E ) ,直到目標窗口處理完并且 結果返回,發(fā)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年山東省職教高考《職測》核心考點必刷必練試題庫(含答案)
- 《鄉(xiāng)村振興促進法》參考試題庫80題(含答案)
- 《公務員法》考試題庫500題(含答案)
- 2025年江蘇農(nóng)林職業(yè)技術學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 預防與解決勞動糾紛
- 租賃房屋租賃合同
- 企業(yè)業(yè)務咨詢服務簡單合同
- 房地產(chǎn)經(jīng)居間合同書
- 煤炭運輸合同運輸合同
- 塔吊司機承包勞務合同
- 2023年四川省公務員錄用考試《行測》真題卷及答案解析
- 機電一體化系統(tǒng)設計-第5章-特性分析
- 2024尼爾森IQ中國本土快消企業(yè)調(diào)研報告
- 2024年印度辣椒行業(yè)狀況及未來發(fā)展趨勢報告
- 鑄鋁焊接工藝
- 《社區(qū)康復》課件-第六章 骨關節(jié)疾病、損傷患者的社區(qū)康復實踐
- 2024年湖南省公務員考試行政職業(yè)能力測驗真題
- 攀巖運動之繩結技巧課程
- 防打架毆斗安全教育課件
- 采購行業(yè)的swot分析
- 石家莊長安區(qū)幼兒園信息統(tǒng)計表
評論
0/150
提交評論