版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1.如何判斷一個(gè)單鏈表是有環(huán)的?structListNode{intkey;ListNode*next;};boolcheck(ListNode*head)//returnfalse:無環(huán);true:有環(huán){}答案:一種O(n)的辦法就是(搞兩個(gè)指針,一個(gè)每次遞增一步,一個(gè)每次遞增兩步,如果有環(huán)的話兩者必然重合,反之亦然):boolcheck(ListNode*head){if(head==NULL)returnfalse;ListNode*low=head,*fast=head->next;while(fast!=NULL&&fast->next!=NULL){low=low->next;fast=fast->next->next;if(low==fast)returntrue;}returnfalse;}C++的空類,默認(rèn)產(chǎn)生哪些類成員函數(shù)?答:classEmpty答:classEmpty{public:Empty();構(gòu)造函數(shù)Empty(constEmpty&);~Empty();Empty&operator(constEmpty&)Empty&operator&();constEmpty*operator&()const;//缺省//拷貝構(gòu)造函數(shù)//虛構(gòu)函數(shù)//賦值運(yùn)算符//取址運(yùn)算符//取址運(yùn)算符constconst常量與define宏定義的區(qū)別答:(1)編譯器處理方式不同。define宏是在預(yù)處理階段展開,生命周期止于編譯期。只是一個(gè)常數(shù)、一個(gè)命令中的參數(shù),沒有實(shí)際的存在。#define常量存在于程序的代碼段。const常量是編譯運(yùn)行階段使用,const常量存在于程序的數(shù)據(jù)段.(2)類型和安全檢查不同。define宏沒有類型,不做任何類型檢查,僅僅是展開。const常量有具體的類型,在編譯階段會執(zhí)行類型檢查。(3)存儲方式不同。define宏僅僅是展開,有多少地方使用,就展開多少次,不會分配內(nèi)存。const常量會在內(nèi)存中分配(可以是堆中也可以是棧中)進(jìn)程和線程的差別?答:線程是指進(jìn)程內(nèi)的一個(gè)執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實(shí)體.區(qū)別:(1)調(diào)度:線程作為調(diào)度和分配的基本單位,進(jìn)程作為擁有資源的基本單位(2)并發(fā)性:不僅進(jìn)程之間可以并發(fā)執(zhí)行,同一個(gè)進(jìn)程的多個(gè)線程之間也可并發(fā)執(zhí)行(3)擁有資源:進(jìn)程是擁有資源的一個(gè)獨(dú)立單位,線程不擁有系統(tǒng)資源,但可以訪問隸屬于進(jìn)程的資源.(4)系統(tǒng)開銷:創(chuàng)建撤消進(jìn)程,系統(tǒng)都要為之分配和回收資源,系統(tǒng)的開銷明顯大于創(chuàng)建撤消線程多進(jìn)程與多線程,兩者都可以提高程序的并發(fā)度,提高程序運(yùn)行效率和響應(yīng)時(shí)間。在C++程序中調(diào)用C編譯后的函數(shù),為什么要加externC的聲明?答:因?yàn)镃++支持函數(shù)重載,而C不支持函數(shù)重載,函數(shù)被C++編譯后在庫中的名字與C語言的不同。假設(shè)某個(gè)函數(shù)的原型為:voidfoo(intx,inty);該函數(shù)被C編譯器編譯后在庫中的名字為_foo,而C++編譯器則產(chǎn)生像_foo_int_int之類的名字。C++提供externC來解決名字匹配問題拷貝構(gòu)造函數(shù)相關(guān)問題,深拷貝,淺拷貝,臨時(shí)對象等答:在C++中,三種對象需要拷貝的情況:一個(gè)對象以值傳遞的方式傳入函數(shù)體,一個(gè)對象以值傳遞的方式從函數(shù)返回,一個(gè)對象需要通過另外一個(gè)對象進(jìn)行初始化。執(zhí)行先父類后子類的構(gòu)造,對類中每一個(gè)數(shù)據(jù)成員遞歸地執(zhí)行成員拷的動作.深拷貝:如果一個(gè)類擁有資源,深拷貝意味著拷貝了資源和指針淺拷貝:如果對象存在資源,而淺拷貝只是拷貝了指針,沒有拷貝資源,這樣使得兩個(gè)指針指向同一份資源,造成對同一份析構(gòu)兩次,程序崩潰。臨時(shí)對象:輔助一個(gè)表達(dá)式的計(jì)算a+b+c,或者間接構(gòu)造的實(shí)參,函數(shù)返回非引用的時(shí)候,都可能產(chǎn)生臨時(shí)對象,臨時(shí)對象生命周期,是單個(gè)語句,是右值。臨時(shí)對象的開銷比局部對象小些。在main函數(shù)執(zhí)行之前,還會執(zhí)行什么代碼和工作答:運(yùn)行全局構(gòu)造器,全局對象的構(gòu)造函數(shù)會在main函數(shù)之前執(zhí)行設(shè)置棧指針,初始化static靜態(tài)和global全局變量,即數(shù)據(jù)段的內(nèi)容將未初始化部分的賦初值:數(shù)值型short,int,long等為0,bool為FALSE,指針為NULL等將main函數(shù)的參數(shù),argc,argv等傳遞給main函數(shù)靜態(tài)成員函數(shù)能不能同時(shí)也是虛函數(shù)?答案是不能。調(diào)用靜態(tài)成員函數(shù)不要實(shí)例。但調(diào)用虛函數(shù)需要從一個(gè)實(shí)例中指向虛函數(shù)表的指針以得到函數(shù)的地址,因此調(diào)用虛函數(shù)需要一個(gè)實(shí)例。兩者相互矛盾。TCP/IP建立連接的過程答:在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個(gè)連接。第一次握手:建立連接時(shí),客戶端發(fā)送連接請求到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn);第二次握手:服務(wù)器收到客戶端連接請求,向客戶端發(fā)送允許連接應(yīng)答,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài);第三次握手:客戶端收到服務(wù)器的允許連接應(yīng)答,向服務(wù)器發(fā)送確認(rèn),客戶端和服務(wù)器進(jìn)入通信狀態(tài),完成三次握手類成員函數(shù)的重載、覆蓋和隱藏的區(qū)別答案:成員函數(shù)被重載的特征:(1)相同的范圍(在同一個(gè)類中);(2)函數(shù)名字相同;(3)參數(shù)不同;(4)virtual關(guān)鍵字可有可無。覆蓋是指派生類函數(shù)覆蓋基類函數(shù),特征是:(1)不同的范圍(分別位于派生類與基類);(2)函數(shù)名字相同;(3)參數(shù)相同;(4)基類函數(shù)必須有virtual關(guān)鍵字。“隱藏”是指派生類的函數(shù)屏蔽了與其同名的基類函數(shù),規(guī)則如下:(1)如果派生類的函數(shù)與基類的函數(shù)同名,但是參數(shù)不同。此時(shí),不論有無virtual關(guān)鍵字,基類的函數(shù)將被隱藏(注意別與重載混淆)。(2)如果派生類的函數(shù)與基類的函數(shù)同名,并且參數(shù)也相同,但是基類函數(shù)沒有virtual關(guān)鍵字。此時(shí),基類的函數(shù)被隱藏(注意別與覆蓋混淆)給出算法思路,從10億個(gè)浮點(diǎn)數(shù)當(dāng)中,選出其中最大的10000個(gè)。思路:先將數(shù)據(jù)進(jìn)行分割成數(shù)據(jù)量小的一些文件,如1000000個(gè)數(shù)據(jù)為一個(gè)文件,然后將每個(gè)文件數(shù)據(jù)進(jìn)行排序,用快速排序法排序,然后使用K路合并法將其合并到一個(gè)文件下,取出排序好的最大的10000個(gè)數(shù)據(jù)讀程序intfunc(intx){intcountx=0;chars[64]={0};while(x)countx++;x=x&(x-1);}returncountx;}intmain(){printf("%d\n",func(9999));}答案:8思路:將X轉(zhuǎn)化為2進(jìn)制,看含有的1的個(gè)數(shù)。Newdelete與mallocfree的聯(lián)系與區(qū)別?答案:都是在堆(heap)上進(jìn)行動態(tài)的內(nèi)存操作。用malloc函數(shù)需要指定內(nèi)存分配的字節(jié)數(shù)并且不能初始化對象,new會自動調(diào)用對象的構(gòu)造函數(shù)。delete會調(diào)用對象的destructor,而free不會調(diào)用對象的destructor.下面的代碼有什么問題?voidDoSomeThing(...){char*p;...p=malloc(1024);//分配1K的空間if(NULL==p)return;...p=realloc(p,2048);//重新分配到2Kif(NULL==p)return;...}答:p=malloc(1024);應(yīng)該寫成:p=(char*)malloc(1024);沒有釋放p的空間,造成內(nèi)存泄漏。執(zhí)行結(jié)果voidmain(){//test1charstr[]="world";cout<<sizeof(str)<<":";char*p=str;cout<<sizeof(p)<<":";chari=10;cout<<sizeof(i)<<":";void*pp=malloc(10);cout<<sizeof(p)<<endl;}答:6:4:1:4main主函數(shù)執(zhí)行完畢后,是否可能會再執(zhí)行一段代碼,給出說明?答:可以用_onexit注冊一個(gè)函數(shù),它會在main之后執(zhí)行intfnl(void),fn2(void)intfn1(void){printf("fn1()\n");return0;}int
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長沙2025年湖南長沙縣百熙教育集團(tuán)(春華中學(xué))校聘教師招聘11人筆試歷年參考題庫附帶答案詳解
- 連云港2025年江蘇連云港東??h縣直學(xué)校選聘教師101人筆試歷年參考題庫附帶答案詳解
- 蘇州2025年江蘇蘇州太倉市璜涇人民醫(yī)院招聘編外專業(yè)技術(shù)人員2人筆試歷年參考題庫附帶答案詳解
- 溫州2025年浙江溫州永嘉縣人民檢察院聘用制書記員招錄筆試歷年參考題庫附帶答案詳解
- 瀘州2025年中共瀘州市委黨校招聘高層次人才2人筆試歷年參考題庫附帶答案詳解
- 昆明云南昆明市盤龍區(qū)聯(lián)盟衛(wèi)生院招聘公共衛(wèi)生崗位編外人員7人筆試歷年參考題庫附帶答案詳解
- 恩施2025年湖北恩施建始縣教育局所屬二級單位及縣直-業(yè)州鎮(zhèn)部分學(xué)校選聘筆試歷年參考題庫附帶答案詳解
- 常德2025年湖南常德市漢壽縣城區(qū)學(xué)校選調(diào)教師174人筆試歷年參考題庫附帶答案詳解
- 內(nèi)江2025年四川內(nèi)江師范學(xué)院科研助理崗位招聘6人筆試歷年參考題庫附帶答案詳解
- 中山廣東中山市桂山中學(xué)教育集團(tuán)五桂山學(xué)校招聘9名編外教師筆試歷年參考題庫附帶答案詳解
- 北京市延慶區(qū)2026屆八年級物理第一學(xué)期期末達(dá)標(biāo)測試試題含解析
- 繼電器性能測試及故障診斷方案
- 酒店清欠協(xié)議書模板模板
- 長者探訪義工培訓(xùn)
- 地下室結(jié)構(gòu)加固技術(shù)方案
- 人教版高一必修二英語單詞表
- 2026年高考數(shù)學(xué)一輪復(fù)習(xí)周測卷及答案解析:第9周 數(shù)列的概念、等差與等比數(shù)列
- 周口市三輪車管理辦法
- 電廠清潔生產(chǎn)管理制度
- 第五單元第22課-健康生活新設(shè)件人教版初中信息科技八年級全一冊
- 可信數(shù)據(jù)空間解決方案星環(huán)科技
評論
0/150
提交評論