軟件工程師經(jīng)典筆試題IT筆試題_第1頁
軟件工程師經(jīng)典筆試題IT筆試題_第2頁
軟件工程師經(jīng)典筆試題IT筆試題_第3頁
軟件工程師經(jīng)典筆試題IT筆試題_第4頁
軟件工程師經(jīng)典筆試題IT筆試題_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程師經(jīng)典筆試題IT筆試題1. 用預(yù)處理指令#define聲明一個常數(shù),用以表明1年中有多少秒(忽略閏年問題)。答案:#deffine SECCONDS_PER_YYEAR(660*60*24*3665)UL應(yīng)該意識到表達達式將使一個個16位機的的整形數(shù)溢出出,因此要用用到長整型符符號L,表達達式中UL表表示無符號長長整型。2. 寫一個個“標(biāo)準(zhǔn)”宏MIN,這這個宏輸入連連個參數(shù)并返返回較小的一一個。答案:#deffine MMIN(A,B) (A)=(B)?(AA):(B)懂得在宏中小心心的吧參數(shù)用用括號擴起來來3. sizzeof 的的一些考察char* sss1=”0012345567

2、89”; charr ss2=”011234566789”; cchar sss31000=”001234556789”;int ss44100; char q1=”abc”; cchar qq2=”aan”; cchar* q3=”aan”; 答案:ss1是是一個字符指指針,指針的的大小是一個個確定的值,就就是4,siizeof(ss1)=4; sss2是一個個字符數(shù)組,這這個數(shù)組最初初的大小未定定,填充值是是“012344567899”,一個字符符占一位,再再加上隱含的的“0”一共是111位。 sss3是一個個字符數(shù)組,這這個數(shù)組開始始預(yù)分配1000,所以它它的大小是1100位。 ss44

3、是一個整型型數(shù)組,但是是每個整型變變量所占空間間是4,所以以它的大小一一共是4000位。 qq1與ss22類似,占44位。Q2里里面有一個“n”,“n”算作一位,加加上隱含的,大大小一共是33位。Q3是是一個字符指指針,指針得得大小是一個個定值,就是是4.4 Whatt is tthe ouutput of thhe folllowinng codde?#includde uusing namesspace std; class AA ; classs A2 char d,e; strruct BB; sstructt C cchar xx,y; struuct Dint xx,y;main(

4、) couutsiizeof(A)eendl; coutsizeeof(A22)enndl; AA *p1=new AA(); A p2; A *pp3; cooutssizeoff(p1)endll; couutsiizeof(p2)endl; couttsizzeof(pp3)eendl; coutsizeeof(B)enddl;couutsiizeof(C)eendl; coutsizeeof(D)enddl; reeturn 0; 答案:對于一個個類而言,即即便它是一個個空的類,編編譯器仍然要要要給它一個個空間,所以以類A即便什什么也沒有,它它的空間大小小依然為1,而類A2大小是類中連

5、個字符d,e之和,所以它的空間大小依然是2,至于p1,p2,p3,p1和p3是指針,大小是一致的,而且是定值,為4,p2是A的對象,所以它的大小和類A相等,為1,B和C得解釋同A和A2,至于D,它和C不同點在于,結(jié)構(gòu)體有兩個整型變量,每個整型變量所占空間為4,所以D所占空間大小為8。最后結(jié)果是 11, 2,44, 1,44,1,2,885. whaat is the ooutputt the folloowing code?#includde ussing nnamesppace sstd;class AA1 ppublicc: intt a; sstaticc int b;A1(); AA1

6、();class AA2 ppublicc: intt a; cchar cc; A2(); AA2();class AA3 ppublicc: flooat a; charr c; AA3(); A3();class AA4 ppublicc: flooat a; int b; chhar c; A4(); A44();class AA5 ppublicc: douuble dd; flooat a; int b; chhar c; A5(); A55();int maiin() couttsizzeof(AA1)ssizeoff(A2)sizeeof(A33)siizeof(A4)size

7、oof(A5)enddl; reeturn 0;答案:因為靜態(tài)態(tài)變量是存放放在全局?jǐn)?shù)據(jù)據(jù)區(qū)的,而ssizeoff計算棧中分分配的大小,是是不會計算在在內(nèi)的,所以以sizeoof(A1)是4;為了了照顧數(shù)據(jù)對對其,intt大小為4,cchar大小小為1,所以以sizeoof(A2)是8;為了了照顧數(shù)據(jù)對對其,flooat大小為為4,chaar大小為11,所以siizeof(A3)為88;為了照顧顧數(shù)據(jù)對其,ffloat大大小為4,iint大小為為4,chaar大小為11,所以siizeof(A4)為112;為了照照顧數(shù)據(jù)對其其,doubble大小為為8,flooat大小為為4,intt大小為4,

8、cchar大小小為1,所以以sizeoof(A5)選擇8的倍倍數(shù)為24。6. 以下代代碼的輸出結(jié)結(jié)果是()char vaarInt tesst(chaar varr) retruun sizzeof(vvar);答案:因為vaar等價價于*varr,函數(shù)內(nèi)部部已經(jīng)退化成成一個指針了了,所以大小小是4.7. 以下代代碼的輸出結(jié)結(jié)果是() Class B ffloat f; chhar p; int asf33; couttsizzeof(BB)enndl;答案:floaat f占了了4個字節(jié),cchar pp占了一個字字節(jié),intt adf3占了112個字節(jié),總總共是17個個,根據(jù)內(nèi)存存的對齊原

9、則則,要選擇44的倍數(shù),是是45=20個個字節(jié)。8. 以下代代碼的輸出結(jié)結(jié)果是() Class B ddoublee d; cchar pp; intt asf4; couutsiizeof(B)x=0來定義xx的值,等同同于pt.xx=0.11. #incluude usingg nameespacee std; Void GeetMemoory(innt *z) *zz=5; Int maiin() int v; GeetMemoory(&vv); cooutvvenddl; reeturn 0;Getmoryy把v的地址址傳了過來,*z是地址址里的值,是是v的副本.通過直接修修改地址里的

10、的值,不需要要有返回值,也把v給修修改了,因為為v所指向地地址的值發(fā)生生了改變,最最終程序會崩崩潰.12. 下面的的數(shù)據(jù)聲明都都代表什么意意思?(1)floaat(*ddef)110Def是一個二二級指針,它它指向的是一一個指向一維維數(shù)組的指針針,數(shù)組的元元素都是flloat。(2)doubble*(*gh)110Gh是一個指針針,它指向一一個一維數(shù)組組,該數(shù)組元元素都是doouble*(3) douuble(*f10)()F是一個數(shù)組,ff有十個元素素,元素都是是指向函數(shù)的的指針,指向向的函數(shù)類型型是沒有參數(shù)數(shù)且返回doouble的的函數(shù)(4)int*(*b)10)就跟“int*(b)110

11、”是一樣的,bb是一維數(shù)組組的指針(5)longg(*funn)(intt)函數(shù)指針:指向向函數(shù)的指針針(6)int(*(*f)(int,int)(int)F是一個函數(shù)的的指針,指向向的函數(shù)的類類型是有兩個個int參數(shù)數(shù)并且返回一一個函數(shù)指針針的函數(shù),返返回的函數(shù)指指針指向一個個int參數(shù)數(shù)且返回innt的函數(shù)。13. 指針數(shù)數(shù)組與數(shù)組指指針指針數(shù)組,是指指一個數(shù)組里里面裝著指針針,數(shù)組指針針,代表它是是指針,指向向真?zhèn)€數(shù)組一個指向整型數(shù)數(shù)組的指針定定義為()A int(*ptr) BB.int *ptr C.int*(ptr) D.int pptrint(*pttr)是是以一個指向向整型數(shù)組

12、的的指針int *pttr是指指針數(shù)組,pptr里里面存的的是是地址。它指指向位置的值值就是*pttr0,*ptr1,*pptr2,不要存*ptr00=5,*ptr11=6,因因為里面沒有有相應(yīng)的地址址int*(pttr)與與B相同14. 用變量量a給出下面面的定義(1)一個整型型數(shù)(2)一個指向向整形數(shù)的指指針(3)一個指向向指針的指針針,它指向的的指針是一個個整型數(shù)(4)一個有110個整型數(shù)數(shù)的數(shù)組(5)一個有110個指針的的數(shù)組,該指指針是指向一一個整型數(shù)的的(6)一個指向向有10個整整型數(shù)組的指指針(7)一個指向向函數(shù)的指針針,該函數(shù)有有一個整型參參數(shù)并返回一一個整型數(shù)(8)一個有11

13、0個指針的的數(shù)組,該指指針指向一個個函數(shù),該函函數(shù)有一個整整型參數(shù)并返返回一個整數(shù)數(shù)Itn a; int *a; innt *aa; int aa10; innt *a10; int (*a)110; intt (*a)(int); int (*a100)(innt) 15.C+中中的空類默認(rèn)認(rèn)產(chǎn)生那些類類成員函數(shù)?Class EEmpty publiic:;答案:對于一個個空類,編譯譯器默認(rèn)產(chǎn)生生4個成員函函數(shù):默認(rèn)構(gòu)構(gòu)造函數(shù),析析構(gòu)函數(shù),拷拷貝構(gòu)造函數(shù)數(shù)和賦值函數(shù)數(shù)(所有指針的大大小為4B)16.那一種成成員變量可以以在同一個類類的實例之間間共享?答案:必須使用用靜態(tài)成員變變量在一個類類的

14、所有實例例間共享數(shù)據(jù)據(jù).如果想限限制對靜態(tài)成成員變量的訪訪問,則必須須把他們聲明明成保護型或或私有型.不不允許使用靜靜態(tài)成員變量量去存放一個個對象的數(shù)據(jù)據(jù)。靜態(tài)成員員數(shù)據(jù)是在這這個類的所有有對象間共享享的。靜態(tài)數(shù)據(jù)成員在類中,靜態(tài)成成員可以實現(xiàn)現(xiàn)多個對象之之間的數(shù)據(jù)共共享,并且使使用靜態(tài)數(shù)據(jù)據(jù)成員還不會會破壞隱藏的的原則,即保保證了安全性性。因此,靜靜態(tài)成員是類類的所有對象象中共享的成成員,而不是是某個對象的的成員。使用靜態(tài)數(shù)數(shù)據(jù)成員可以以節(jié)省內(nèi)存,因因為它是所有有對象所公有有的,因此,對對多個對象來來說,靜態(tài)數(shù)數(shù)據(jù)成員只存存儲一處,供供所有對象共共用。靜態(tài)數(shù)數(shù)據(jù)成員的值值對每個對象象都是一樣

15、,但但它的值是可可以更新的。只只要對靜態(tài)數(shù)數(shù)據(jù)成員的值值更新一次,保保證所有對象象存取更新后后的相同的值值,這樣可以以提高時間效效率。靜態(tài)數(shù)據(jù)成成員的使用方方法和注意事事項如下:1、靜態(tài)數(shù)數(shù)據(jù)成員在定定義或說明時時前面加關(guān)鍵鍵字stattic。2、靜態(tài)成成員初始化與與一般數(shù)據(jù)成成員初始化不不同。靜態(tài)數(shù)數(shù)據(jù)成員初始始化的格式如如下::=這表明: (1) 初始始化在類體外外進行,而前前面不加sttatic,以免與一般靜態(tài)變量或?qū)ο笙嗷煜?2) 初初始化時不加加該成員的訪訪問權(quán)限控制制符privvate,ppublicc等。(3) 初初始化時使用用作用域運算算符來標(biāo)明它它所屬類,因因此,靜態(tài)數(shù)數(shù)據(jù)

16、成員是類類的成員,而而不是對象的的成員。3、靜態(tài)數(shù)數(shù)據(jù)成員是靜靜態(tài)存儲的,它它是靜態(tài)生存存期,必須對對它進行初始始化。4、引用靜靜態(tài)數(shù)據(jù)成員員時,采用如如下格式::如果靜態(tài)數(shù)數(shù)據(jù)成員的訪訪問權(quán)限允許許的話(即ppublicc的成員),可可在程序中,按按上述格式來來引用靜態(tài)數(shù)數(shù)據(jù)成員。下面舉一例例子,說明靜靜態(tài)數(shù)據(jù)成員員的應(yīng)用:#includde class MMyclassspublic:Myclasss(int a, innt b, int cc);void GeetNumbber();void GeetSum();privatee:int A, B, C;static int SSum;i

17、nt Mycclass:Sum = 0;Myclasss:Mycclass(int aa, intt b, iint c)A = a;B = b;C = c;Sum += A+B+CC;void Myyclasss:GettNumbeer()coutNumbeer=A,B,C endl;void Myyclasss:GettSum()coutSum= Suum eendl;void maain()Myclasss M(3, 7, 110),N(14, 99, 11);M.GetNuumber();N.GetNuumber();M.GetSuum();N.GetSuum(); 從輸出結(jié)果果可以看

18、到SSum=544的值對M對對象和對N對對象都是相等等的。這是因因為在初始化化M對象時,將將M對象的三三個int型型數(shù)據(jù)成員的的值求和后賦賦給了Summ,于是Suum保存了該該值。在初始始化N對象時時,對將N對對象的三個iint型數(shù)據(jù)據(jù)成員的值求求和后又加到到Sum已有有的值上,于于是Sum將將保存另后的的值。所以,不不論是通過對對象M還是通通過對象N來來引用的值都都是一樣的,即即為54。靜態(tài)成員函函數(shù)靜態(tài)成員函函數(shù)和靜態(tài)數(shù)數(shù)據(jù)成員一樣樣,它們都屬屬于類的靜態(tài)態(tài)成員,它們們都不是對象象成員。因此此,對靜態(tài)成成員的引用不不需要用對象象名。在靜態(tài)成員員函數(shù)的實現(xiàn)現(xiàn)中不能直接接引用類中說說明的非靜態(tài)

19、態(tài)成員,可以以引用類中說說明的靜態(tài)成成員。如果靜靜態(tài)成員函數(shù)數(shù)中要引用非非靜態(tài)成員時時,可通過對對象來引用。下下面通過例子子來說明這一一點。#includde class MMpublic:M(int aa) AA=a; BB+=a;static void f1(M m);privatee:int A;static int BB;void M:f1(MM m)coutA=M.AENDL;coutB=BENNDL;int M:B=0;void maain()M P(5),Q(10);M:f1(PP); fiile:/調(diào)用時不用用對象名M:f1(QQ); 讀者可以自自行分析其結(jié)結(jié)果。從中可可看出,

20、調(diào)用用靜態(tài)成員函函數(shù)使用如下下格式::(); 17判斷選擇擇1. C語語言沒有可移移植性。 BA. 正確B. 不正確2. 定義數(shù)組組時可以不確確定元素個數(shù)數(shù)。 BA. 正確B. 不正確3. 指針是一一種特殊的變變量,只能用用來保存地址址。 AA. 正確B. 不正確4. 通過引用用或者指針調(diào)調(diào)用對象的成成員函數(shù)時,如如果引用或者者指針的類型型跟對象的類類型不一致時時,能自動正正確調(diào)用對象象所屬的類中中對這個函數(shù)數(shù)的定義。 BA. 正確B. 不正確5. 如果定義義了一個類mmyclasss,則為mmyclasss類對象以以成員函數(shù)形形式重載后+運算符的的聲明應(yīng)該為為 C 。A. mycllass

21、ooperattor+();B. mycllass& operaator+();C. mycllass ooperattor+( int );D. mycllass& operaator+( intt );5. 父類和子子類各自定義義一個成員函函數(shù),函數(shù)名名相同,參數(shù)數(shù)表不同,那那么 C 。 函數(shù)同名,通通覆蓋,不同層次的的函數(shù)不能重重載A. 在子類中中這兩個函數(shù)數(shù)構(gòu)成重載關(guān)關(guān)系B. 子類不會會繼承父類的的這個函數(shù)C. 子類中的的函數(shù)會覆蓋蓋父類中的函函數(shù)D. 編譯時會會發(fā)生錯誤6. 如果myyclasss類定義了拷拷貝構(gòu)造函數(shù)數(shù)和一個整型型參數(shù)的構(gòu)造造函數(shù),還重重載了賦值運運算符,那么么語句myclasss obj = 1000;會 B 。等價于 myclaass obbj = mmyclasss(10

溫馨提示

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

評論

0/150

提交評論