版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度年福建省高校教師資格證之高等教育法規(guī)模擬預(yù)測(cè)參考題庫(kù)及答案
- 2023年工業(yè)涂料水性色漿資金申請(qǐng)報(bào)告
- 二年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)1000題匯編
- 航空航天在國(guó)防
- 單元寫(xiě)作課程化實(shí)施路徑
- 貨幣信貸政策業(yè)務(wù)技能競(jìng)賽活動(dòng)方案
- 領(lǐng)會(huì)落實(shí)《關(guān)于大力實(shí)施可再生能源替代行動(dòng)的指導(dǎo)意見(jiàn)》心得體會(huì)
- 2024年國(guó)際商品交易協(xié)議范本
- 2024金融中介協(xié)議模板指導(dǎo)手冊(cè)
- 2024指定物業(yè)企業(yè)職工用工協(xié)議
- 《柳工CLG介紹》課件
- 工程舊設(shè)備翻新噴漆合同范本
- 融媒體內(nèi)容策劃與制作競(jìng)賽考試參考題庫(kù)(含答案)
- 世界問(wèn)候日-你的問(wèn)候溫暖世界主題PPT
- 一只窩囊的大老虎說(shuō)課
- 2023年口腔醫(yī)學(xué)期末復(fù)習(xí)-牙周病學(xué)(口腔醫(yī)學(xué))考試歷年真題集錦附帶答案
- 三年級(jí)上冊(cè) 《方向與位置》(說(shuō)課稿)-三年級(jí)上冊(cè)數(shù)學(xué)青島版
- 地理信息安全在線培訓(xùn)考試系統(tǒng)題庫(kù)
- 大學(xué)生職業(yè)生涯規(guī)劃完整全套教學(xué)課件
- 牧童笛的基礎(chǔ)知識(shí)與演奏技能 左手音階練習(xí)怎樣演奏sollasi高音
- 跳繩毽子社團(tuán)教案
評(píng)論
0/150
提交評(píng)論