零基礎(chǔ)學C++-第21章_第1頁
零基礎(chǔ)學C++-第21章_第2頁
零基礎(chǔ)學C++-第21章_第3頁
零基礎(chǔ)學C++-第21章_第4頁
零基礎(chǔ)學C++-第21章_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第21講常見面試題課程內(nèi)容安排根本知識問答題智力問答分析題編程題根本知識問答題面向?qū)ο蟮娜齻€根本特征,并簡單表達之?答:有如下3個根本特征。1.封裝:將客觀事物抽象成類,每個類對自身的數(shù)據(jù)和方法實行保護,其權(quán)限分為:private、protected和public。2.繼承:廣義的繼承有三種實現(xiàn)形式:實現(xiàn)繼承〔指使用基類的屬性和方法而無需額外編碼的能力〕、可視繼承〔子窗體使用父窗體的外觀和實現(xiàn)代碼〕、接口繼承〔僅使用屬性和方法,實現(xiàn)滯后到子類實現(xiàn)〕。前兩種〔類繼承〕和后一種〔對象組合=>接口繼承以及純虛函數(shù)〕構(gòu)成了功能復(fù)用的兩種方式。3.多態(tài):是將父對象設(shè)置成為和一個或更多的他的子對象相等的技術(shù),賦值之后,父對象就可以根據(jù)當前賦值給它的子對象的特性以不同的方式運作。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。根本知識問答題類成員函數(shù)的重載、覆蓋和隱藏區(qū)別?答:成員函數(shù)被重載的特征:〔1〕相同的范圍〔在同一個類中〕;〔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ù)不同。此時,不管有無virtual關(guān)鍵字,基類的函數(shù)將被隱藏〔注意別與重載混淆〕?!?〕如果派生類的函數(shù)與基類的函數(shù)同名,并且參數(shù)也相同,但是基類函數(shù)沒有virtual關(guān)鍵字。此時,基類的函數(shù)被隱藏〔注意別與覆蓋混淆〕根本知識問答題C++中的空類,默認產(chǎn)生哪些類成員函數(shù)?答:classEmpty{public:Empty(); //缺省構(gòu)造函數(shù)Empty(constEmpty&); //拷貝構(gòu)造函數(shù)~Empty(); //析構(gòu)函數(shù)Empty&operator=(constEmpty&); //賦值運算符Empty*operator&(); //取址運算符constEmpty*operator&()const; //取址運算符const};根本知識問答題多態(tài)的作用?答:主要有2個方面的作用。1.隱藏實現(xiàn)細節(jié),使得代碼能夠模塊化;擴展代碼模塊,實現(xiàn)代碼重用;2.接口重用:為了類在繼承和派生的時候,保證使用家族中任一類的實例的某一屬性時的正確調(diào)用。根本知識問答題C語言中static關(guān)鍵字的具體作用有哪些?答:在函數(shù)體,一個被聲明為靜態(tài)的變量在這一函數(shù)被調(diào)用過程中維持其值不變。在模塊內(nèi)〔但在函數(shù)體外〕,一個被聲明為靜態(tài)的變量可以被模塊內(nèi)所有函數(shù)訪問,但不能被模塊外其它函數(shù)訪問。其是一個本地的全局變量。在模塊內(nèi),一個被聲明為靜態(tài)的函數(shù)只可被這一模塊內(nèi)的其他函數(shù)調(diào)用。那就是,這個函數(shù)被限制在聲明它的模塊的本地范圍內(nèi)使用。static全局變量與普通的全局變量有什么區(qū)別:static全局變量只初使化一次,防止在其他文件單元中被引用;static局部變量和普通局部變量有什么區(qū)別:static局部變量只被初始化一次,下一次依據(jù)上一次結(jié)果值;static函數(shù)與普通函數(shù)有什么區(qū)別:static函數(shù)在內(nèi)存中只有一份,普通函數(shù)在每個被調(diào)用中維持一份拷貝。智力問答〔世界500強智力面試題〕智力問答是考驗一個面試者的智力和邏輯思考能力的一種手段。很多的大公司都非常重視這種非專業(yè)和能力。工人分金條問:你讓工人為你工作7天,給工人的回報是一根金條。金條平分成相連的7段,你必須在每天結(jié)束時給他們一段金條,如果只許你兩次把金條弄斷,你如何給你的工人付費?答:第1天給1段,第2天讓工人把1段歸還,然后給2段,第3天給1段,第4天歸還1和2段,給4段。

分蛋糕問:請把一盒蛋糕切成8份,分給8個人,但蛋糕盒里還必須留有一份。答:面對這樣的智力題,有些面試者絞盡腦汁也無法分成,而有些面試者卻感到此題實際很簡單,只需要把切成的8份蛋糕先拿出7份分給7人,剩下的1份連蛋糕盒一起分給第8個人。黑白帽子問:一群人開舞會,每人頭上都戴著一頂帽子。帽子只有黑白兩種,黑的至少有一頂。每個人都能看到其他人帽子的顏色,卻看不到自己的。主持人先讓大家看看別人頭上戴的是什么帽子,然后關(guān)燈,如果有人認為自己戴的是黑帽子,就打自己一個耳光。第一次關(guān)燈,沒有聲音。于是再開燈,大家再看一遍,關(guān)燈時仍然鴉雀無聲。一直到第三次關(guān)燈,才有噼噼啪啪打耳光的聲音響起。問有多少人戴著黑帽子?答:假設(shè)只有一個人戴黑帽子,那他看到所有人都戴白帽,在第一次關(guān)燈時就應(yīng)自打耳光,所以應(yīng)該不止一個人戴黑帽子如果有兩頂黑帽子,第一次兩人都只看到對方頭上的黑帽子,不敢確定自己的顏色,但到第二次關(guān)燈,這兩人應(yīng)該明白,如果自己戴著白帽,那對方早在上一次就應(yīng)打耳光了,因此自己戴的也是黑帽子,于是也會有耳光聲響起可事實是第三次才響起了耳光聲,說明全場不止兩頂黑帽,依此類推,應(yīng)該是關(guān)了幾次燈,有幾頂黑帽。分不開的錢問:小王和小李去郊外游玩,兩個人都帶了餅干當午餐,小王帶了15塊,小李帶了9塊。路上他們覺得肚子餓了,便坐下來打算吃餅干。這時,走來一個過路人,說自己沒帶吃的東西,想花錢和他們分享餅干,小王和小李同意了。于是,這三個人平均分吃了這些餅干。吃完后,過路人留下了2元4角錢。小王收了其中的1元5角錢,留下9角錢給小李,小李卻認為很不公平,認為自己應(yīng)該拿到一半的錢。最后兩人找來一個路人評理。如果你是那個路人,會怎么分配這些錢呢?答:這是個有關(guān)分數(shù)的問題,3個人共有24塊餅干,因為是平均分成三份,所以每人分得8塊餅干。小王把自己多出來的7塊餅干給了過路人,而小李只多出了1塊。過路人吃了8塊餅干中,有小王的7塊和小李的1塊,比例是:7:1。2元4角錢中應(yīng)該給小王2元1角,給小李3角。給紅色最大的時機問:你有兩個罐子、50個紅色彈球和50個藍色彈球,隨機選出一個罐子,隨機選取出一個彈球放入罐子,怎么給紅色彈球最大的選中時機?在你的方案中,得到紅球的準確幾率是多少?答:自己睜著眼睛挑一個紅色的啊,這是給紅色最大的時機了,除非你是色盲。屋內(nèi)的燈問:一個屋子有一個門〔門是關(guān)閉的〕和3盞電燈。屋外有3個開關(guān),分別與這3盞燈相連。你可以隨意操縱這些開關(guān),可一旦你將門翻開,就不能變換開關(guān)了。確定每個開關(guān)具體管哪盞燈?答:先在門外翻開一個開關(guān),等一會兒,然后關(guān)掉它,再另開一個開關(guān),再走到屋內(nèi),熱而不亮的一個燈泡是第一個開關(guān)所控制,亮的便是第二個,不亮又不熱的便是第三個開關(guān)所控制的了。盲人分襪子問:有兩位盲人,他們都各自買了四對黑襪和四對白襪,八對襪了的布質(zhì)、大小完全相同,而每對襪了都有一張商標紙連著。兩位盲人不小心將八對襪了混在一起。他們每人怎樣才能取回黑襪和白襪各兩對呢?答:將每對襪子拆開一人一只。平分蜂蜜問:小明和小華買了10斤蜂蜜,裝在一個大瓶子里。他們要把蜂蜜平分,現(xiàn)在只有兩個空瓶子,一個正好裝7斤,另一個正好裝3斤,怎樣才能用簡單的方法把蜂蜜分出來?步驟3斤瓶狀態(tài)7斤瓶狀態(tài)10斤瓶狀態(tài)107323433046431650196109717283529055喝啤酒問:假設(shè)每3個空啤酒瓶可以換一瓶啤酒,某人買了10瓶啤酒,那么他最多可以喝到多少瓶啤酒?答:喝完10瓶后用9個空瓶換來3瓶啤酒(喝完后有4個空瓶〕,喝完這三瓶又可以換到1瓶啤酒〔喝完后有2個空瓶〕這時他有2個空酒瓶,如果他能向老板先借一個空酒瓶,就湊夠了3個空瓶可以換到一瓶啤酒,把這瓶喝完后將空瓶還給老板就可以了。所以他最多可以喝10+3+1+1=15瓶。分析題分析下面的程序段,最后顯示的結(jié)果是多少?#include<iostream>usingnamespacestd;voidfun(int,int,int*);voidmain(){ intx,y,z;

fun(2,3,&x);

fun(4,x,&y);

fun(x,y,&z);

cout<<x<<’,'<<y<<','<<z<endl;

}voidfun(inta,intb,int*c){ b*=a; *c=b-a;}分析題分析下面的程序段,最后顯示的結(jié)果是多少?intfunc(x){intcountx=0;while(x){countx++;x=x&(x-1);}returncountx;}分析題分析下面的程序段,最后顯示的結(jié)果是多少?01 #include<iostream>02 usingnamespacestd;03 classB04 {05 public:06 B()07 {08 cout<<"defaultconstructor"<<endl;09 }10 ~B()11 {12 cout<<"destructed"<<endl;13 }14 B(inti):data(i)//B(int)worksasaconverter(int->instanceofB)15 {16 cout<<"constructedbyparameter"<<data<<endl;17 }18 private:19 intdata;20 };分析題/*接上頁程序*/2122 BPlay(Bb)23 {24 returnb;25 }26 27 intmain(intargc,char*argv[])28 {29 Bt1=Play(5);30 Bt2=Play(10);31 return0;32 }編程題String類的自定義實現(xiàn)

問:String類定義如下:classString{public:String(constchar*str=NULL);//通用構(gòu)造函數(shù)String(constString&another);//拷貝構(gòu)造函數(shù)~String();//析構(gòu)函數(shù)String&operater=(constString&rhs);//賦值函數(shù)private:cha

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論