C C語(yǔ)言程序設(shè)計(jì)筆試面試題_第1頁(yè)
C C語(yǔ)言程序設(shè)計(jì)筆試面試題_第2頁(yè)
C C語(yǔ)言程序設(shè)計(jì)筆試面試題_第3頁(yè)
C C語(yǔ)言程序設(shè)計(jì)筆試面試題_第4頁(yè)
C C語(yǔ)言程序設(shè)計(jì)筆試面試題_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、4.技巧題試題2:寫(xiě)一個(gè)函數(shù)返回1+2+3+n的值(假定結(jié)果不會(huì)超過(guò)長(zhǎng)整型變量的范圍) 解答:int Sum( int n )return ( (Ion g)1 + n) * n / 2;答:5. 請(qǐng)簡(jiǎn)述以下兩個(gè)for循環(huán)的優(yōu)缺點(diǎn)(5分)for (i=0; iif (con diti on)DoSomethi ng();elseDoOtherthi ng();優(yōu)點(diǎn):程序簡(jiǎn)潔if (con diti on)for (i=0; iDoSomethi ng();elsefor (i=0; iDoOtherthi ng();優(yōu)點(diǎn):循環(huán)的效率高缺點(diǎn):程序不簡(jiǎn)潔缺點(diǎn):多執(zhí)行了 N-1次邏輯判斷,并且打 斷

2、了循環(huán)“流水線(xiàn)”作業(yè),使得編譯器不 能對(duì)循環(huán)進(jìn)行優(yōu)化處理,降低了效率。5分,共20 分)void GetMemory(char *p)char *GetMemory(void)p = (char *)malloc(100);char p = hello world;return p;void Test(void)void Test(void)char *str = NULL;GetMemory(str);char *str = NULL;strc py (str, hello world);str = GetMemory();prin tf(str);prin tf(str);請(qǐng)問(wèn)運(yùn)行Test

3、函數(shù)會(huì)有什么樣的結(jié)果請(qǐng)問(wèn)運(yùn)行Test函數(shù)會(huì)有什么樣的結(jié)果答:程序崩潰。答:可能是亂碼。因?yàn)橐驗(yàn)镚etMemory返回的是指向棧內(nèi)存”的指 針,該指針的地址不是 NULL,但其原現(xiàn)的內(nèi)Test函數(shù)中的str 一直都是 NULL。容已經(jīng)被清除,新內(nèi)容不可知。strcpy(str,hello world);將使程序崩潰。GetMemory并不能傳遞動(dòng)態(tài)內(nèi)存,void GetMemory2(char *p, int num)rvoid Test(void)*p = (char *)malloc( nu m);char *str = (char *) malloc(100);strc py(str,vo

4、id Test(void)free(str);if(str != NULL)char *str = NULL;GetMemory(&str, 100);strc py(str,strcpy(str, hello);prin tf(str);prin tf(str);請(qǐng)問(wèn)運(yùn)行Test函數(shù)會(huì)有什么樣的結(jié)果請(qǐng)問(wèn)運(yùn)行Test函數(shù)會(huì)有什么樣的結(jié)果答:答:篡改動(dòng)態(tài)內(nèi)存區(qū)的內(nèi)容,后果難以預(yù)料,(非常危險(xiǎn)。(因?yàn)?free(str);之后,str成為野指針,if(str != NULL)語(yǔ)句不起作用。1 )能夠輸出hello2 )內(nèi)存泄漏“hello ”);“world ” );函數(shù)的原型是 char *st

5、rcpy(char *strDest, const 是目的字符串,strSrc是源字符串。1)不調(diào)用C+/Cstrc pystrDest!=NULL)&( strSrc !=NULL);紹vector 。strcpy 函數(shù)(10 分)strcpy char *strSrc); 其中 strDest 的字符串庫(kù)函數(shù),請(qǐng)編寫(xiě)函數(shù) 一下STL,詳細(xì)說(shuō)明STL如何實(shí)現(xiàn)An swer:STL (標(biāo)準(zhǔn)模版庫(kù),Sta ndard Tem pl ate Library.它由容器算法迭代器組成。STL有以下的一些優(yōu)點(diǎn):可以方便容易地實(shí)現(xiàn)搜索數(shù)據(jù)或?qū)?shù)據(jù)排序等一系列的算法;調(diào)試程序時(shí)更加安全和方便;STL是跨平臺(tái)

6、的)。即使是人們用 STL在UNIX平臺(tái)下寫(xiě)的代碼你也可以很容易地理解(因?yàn)?動(dòng)態(tài)的增加數(shù)組空間。vector實(shí)質(zhì)上就是一個(gè)動(dòng)態(tài)數(shù)組,會(huì)根據(jù)數(shù)據(jù)的增加2.如果用VC開(kāi)發(fā)程序,常見(jiàn)這么幾個(gè)錯(cuò)誤,C2001,c2005,c2011,這些錯(cuò)誤的原因是什么。An swer:在學(xué)習(xí)VC+勺過(guò)程中,遇到的 LNK2001錯(cuò)誤的錯(cuò)誤消息主要為: unr esolved exter nal symbol“ symbol (不確定的外部 符號(hào)”)。變量或標(biāo)簽,將產(chǎn)生此錯(cuò)誤如果連接程序不能在所有的庫(kù)和目標(biāo)文件內(nèi)找到所引用的函數(shù)、消息。一般來(lái)說(shuō),發(fā)生錯(cuò)誤的原因有兩個(gè): 一是所引用的函數(shù)、 變量不存在、 其次可能使用

7、了不同版本的連接庫(kù)。編程中經(jīng)常能遇到 LNK2005錯(cuò)誤一一重復(fù)定義錯(cuò)誤,其實(shí) 難解決的錯(cuò)誤.拼寫(xiě)不正確或者使用錯(cuò)誤;LNK2005錯(cuò)誤并不是一個(gè)很3. 繼承和委派有什么分別,在決定使用繼承或者委派的時(shí)候需要考慮什么。 在00D,00呻,組合優(yōu)于繼承.當(dāng)然多態(tài)的基礎(chǔ)是繼承,沒(méi)有繼承多態(tài)無(wú)從談起。當(dāng)對(duì)象的類(lèi)型不影響類(lèi)中函數(shù)的行為時(shí),就要使用模板來(lái)生成這樣一組類(lèi)。 當(dāng)對(duì)象的類(lèi)型影響類(lèi)中函數(shù)的行為時(shí),就要使用繼承來(lái)得到這樣一組類(lèi)4. 指針和引用有什么分別;如果傳引用比傳指針安全,為什么如果我使用常量指針難道不行嗎(1)引用在創(chuàng)建的同時(shí)必須初始化,即引用到一個(gè)有效的對(duì)象;而指針在定義的時(shí)候不必初始化,

8、可以在定義后面的任何地方重新賦值 不存在N ULL引用,引用必須與合法的存儲(chǔ)單元關(guān)聯(lián);而指針則可以是 NULL.(3) 引用一旦被初始化為指向一個(gè)對(duì)象, 它就不能被改變?yōu)榱硪粋€(gè)對(duì)象的引用; 而指針在任何時(shí) 候都可以改變?yōu)橹赶蛄硪粋€(gè)對(duì)象給引用賦值并不是改變它和原始對(duì)象的綁定關(guān)系(4) 引用的創(chuàng)建和銷(xiāo)毀并不會(huì)調(diào)用類(lèi)的拷貝構(gòu)造函數(shù)只不(5) 語(yǔ)言層面,引用的用法和對(duì)象一樣;在二進(jìn)制層面,引用一般都是通過(guò)指針來(lái)實(shí)現(xiàn)的, 過(guò)編譯器幫我們完成了轉(zhuǎn)換 .不存在空引用,并且引用一旦被初始化為指向一個(gè)對(duì)象,它就不能被改變?yōu)榱硪粋€(gè)對(duì)象的引用, 顯得很安全。const 指針仍然存在空指針,并且有可能產(chǎn)生野指針 .總的來(lái)說(shuō):引用既具有指針的效率,又具有變量使用的方便性和直觀性5. 參數(shù)傳遞有幾種方式;實(shí)現(xiàn)多態(tài)參數(shù)傳遞采用什么方式,如果沒(méi)有使用某種方式原因是什么; 傳值,傳指針或者引用6. 結(jié)合一個(gè)項(xiàng)目說(shuō)明你怎樣應(yīng)用設(shè)計(jì)模式的理念。 設(shè)計(jì)模式更多考慮是擴(kuò)展和重用,而這兩方面很多情況下,往往會(huì)被忽略。 不過(guò),我不建議濫用設(shè)計(jì)模式,以為它有可能使得簡(jiǎn)單問(wèn)題復(fù)雜化7. 介紹一下你對(duì)設(shè)計(jì)模式的理解。(這個(gè)過(guò)程中有很多很細(xì)節(jié)的問(wèn)題隨機(jī)問(wèn)的) 設(shè)計(jì)模式概念是由建筑設(shè)計(jì)師 Christopher Alexander 提出 : 每一個(gè)模式描述了一個(gè)在我們周?chē)?不斷重復(fù)發(fā)生的問(wèn)題 ,以及該問(wèn)題的解

溫馨提示

  • 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)論