C-C程序員常見(jiàn)筆試題_第1頁(yè)
C-C程序員常見(jiàn)筆試題_第2頁(yè)
C-C程序員常見(jiàn)筆試題_第3頁(yè)
C-C程序員常見(jiàn)筆試題_第4頁(yè)
C-C程序員常見(jiàn)筆試題_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C/C+程序員常見(jiàn)筆試題試題1 :分別給出BOOL , int , float,指針變量與零值比較的if語(yǔ)句(假設(shè)變量名為var)解答:BOOL 型變量:if(!var)int 型變量:if(var=0)float型變量:con st float EPSINON = 0.00001;if (x = EPSINON) (x = EPSINON)指針變量:if(var=NULL)剖析:考查對(duì)0值判斷的 內(nèi)功,BOOL型變量的0判斷完全可以寫(xiě) 成if(var=0),而int型變量也可以寫(xiě)成if(!var),指針變量的判斷也 可以寫(xiě)成if(!var),上述寫(xiě)法雖然程序都能正確運(yùn)行,但是未能清晰 地表達(dá)

2、程序的意思。一般的,如果想讓if判斷一個(gè)變量的 真、假,應(yīng)直接使用if(var)、if(!var),表明其為 邏輯 判斷;如果用if判斷一個(gè)數(shù)值型變量(short、int、long等),應(yīng)該用if(var=0),表明是與0進(jìn)行 數(shù)值 上 的比較;而判斷指針則適宜用if(var=NULL),這是一種很好的編程 習(xí)慣。浮點(diǎn)型變量并不精確,所以不可將float變量用=或匸與 數(shù)字比較,應(yīng)該設(shè)法轉(zhuǎn)化成 二或二形式。如果寫(xiě)成if (x = 0.0), 則判為錯(cuò),得0分。試題2:以下為 Windows NT下的32位C+程序,請(qǐng)計(jì)算 sizeof的值void Func ( char str100)size

3、of( str ) = ?void *p = malloc( 100 );sizeof ( p ) = ?解答:sizeof( str ) = 4 sizeof ( p ) = 4剖析:Func ( char str100)函數(shù)中數(shù)組名作為函數(shù)形參時(shí),在函數(shù)體內(nèi),數(shù)組名失去了本身的內(nèi)涵,僅僅只是一個(gè)指針;在失去其內(nèi)涵的同時(shí),它還失去了其常量特性,可以作自增、自減等操作,可以被 修改。數(shù)組名的本質(zhì)如下:(1) 數(shù)組名指代一種數(shù)據(jù)結(jié)構(gòu),這種數(shù)據(jù)結(jié)構(gòu)就是數(shù)組 ;例如:char str10;cout sizeof(str) en dl;輸出結(jié)果為10, str指代數(shù)據(jù)結(jié)構(gòu)char10(2) 數(shù)組名可以

4、轉(zhuǎn)換為指向其指代實(shí)體的指針,而且是一個(gè)指針常量,不能作自增、自減等操作,不能被修改;char str10;str+; /編譯出錯(cuò),提示str不是左值(3) 數(shù)組名作為函數(shù)形參時(shí),淪為普通指針。Windows NT 32 位平臺(tái)下,指針的長(zhǎng)度(占用內(nèi)存的大小)為4字節(jié),故 sizeof( str )、sizeof ( p ) 都為 4。試題3:寫(xiě)一個(gè) 標(biāo)準(zhǔn) 宏MIN,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)。另外,當(dāng)你寫(xiě)下面的代碼時(shí)會(huì)發(fā)生什么事?least = MIN(*p+, b);解答:#define MIN(A,B) (A) = (B) ? (A) : (B)MIN(*p+, b) 會(huì)產(chǎn)生宏的副

5、作用剖析:這個(gè)題主要考查面試者對(duì)宏定義的使用,宏定義可以實(shí)現(xiàn)類似于函數(shù)的功能,但是它終歸不是函數(shù),而宏定義中括弧中的 參數(shù) 也不是真的參數(shù),在宏展開(kāi)的時(shí)候?qū)?shù) 進(jìn)行的是一對(duì)一的替換。程序員對(duì)宏定義的使用要非常小心,特別要注意兩個(gè)問(wèn)題:(1)謹(jǐn)慎地將宏定義中的參數(shù) 和整個(gè)宏用用括弧括起來(lái)。所以,嚴(yán)格地講,下述解答:#defi ne MIN(A,B) (A) = (B) ? (A) : (B)#defi ne MIN(A,B) (A = B ? A : B )都應(yīng)判0分;(2)防止宏的副作用。對(duì) MIN(*p+,宏定義 #defi ne MIN(A,B) (A) = (B) ? (A) : (B

6、)b)的作用結(jié)果是:(*p+) = (b) ? (*p+) : (*p+)這個(gè)表達(dá)式會(huì)產(chǎn)生副作用,指針 p會(huì)作三次+自增操作。除此之外,另一個(gè)應(yīng)該判0分的解答是:#defi ne MIN(A,B) (A) = (B) ? (A) : (B);這個(gè)解答在宏定義的后面加,顯示編寫(xiě)者對(duì)宏的概念模糊不 清,只能被無(wú)情地判0分并被面試官淘汰。試題4 :為什么標(biāo)準(zhǔn)頭文件都有類似以下的結(jié)構(gòu) ?#ifndef INCvxWorksh#defi ne INCvxWorksh#ifdef _cplusplusextern C #en dif#ifdef _cplusplus#en dif#en dif /*INC

7、vxWorksh */解答:頭文件中的編譯宏#ifndef INCvxWorksh#defi ne INCvxWorksh#en dif的作用是防止被重復(fù)引用作為一種面向?qū)ο蟮恼Z(yǔ)言,C+支持函數(shù)重載,而過(guò)程式語(yǔ)言C則不支持。函數(shù)被C+編譯后在symbol庫(kù)中的名字與C語(yǔ)言的不同。例如,假設(shè)某個(gè)函數(shù)的原型為:void foo(i nt x, int y);該函數(shù)被C編譯器編譯后在symbol庫(kù)中的名字為_(kāi)foo,而C+編譯器則會(huì)產(chǎn)生像_foo_int_int之類的名字。_foo_int_int這樣的名字包含了函數(shù)名和函數(shù)參數(shù)數(shù)量及類型信息,C+就是考這種機(jī) 制來(lái)實(shí)現(xiàn)函數(shù)重載的。為了實(shí)現(xiàn)C和C+的混合編程,C+提供了 C連接交換指定 符號(hào)extern C 來(lái)解決名字匹配問(wèn)題,函數(shù)聲明前加上extern C后, 則編譯器就會(huì)按照C語(yǔ)言的方式將該函數(shù)編譯為_(kāi)foo,這樣C語(yǔ)言 中就可以調(diào)用C+的函數(shù)了。試題5:編寫(xiě)一個(gè)函數(shù),作用是把一個(gè)char組成的字符串循環(huán)右移n個(gè)。比如原來(lái)是abcdefghi如果n=2,移位后應(yīng)該是hiabcdefgh函數(shù)頭是這樣的:/pStr是指

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論