程序員面試題目_第1頁(yè)
程序員面試題目_第2頁(yè)
程序員面試題目_第3頁(yè)
程序員面試題目_第4頁(yè)
程序員面試題目_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第第頁(yè)程序員面試題目

1.是不是一個(gè)父類(lèi)寫(xiě)了一個(gè)virtual函數(shù),假如子類(lèi)掩蓋它的函數(shù)不加virtual,也能實(shí)現(xiàn)多態(tài)?

virtual修飾符會(huì)被隱形繼承的。private也被集成,只事派生類(lèi)沒(méi)有訪(fǎng)問(wèn)權(quán)限而已。virtual可加可不加。子類(lèi)的空間里有父類(lèi)的全部變量(static除外)。同一個(gè)函數(shù)只存在一個(gè)實(shí)體(inline除外)。子類(lèi)掩蓋它的函數(shù)不加virtual,也能實(shí)現(xiàn)多態(tài)。在子類(lèi)的空間里,有父類(lèi)的私有變量。私有變量不能徑直訪(fǎng)問(wèn)。

2.輸入一個(gè)字符串,將其逆序后輸出。(運(yùn)用C++,不建議用偽碼)

#include

usingnamespacestd;

voidmain()

{

chara[50];memset(a,0,sizeof(a));

inti=0,j;

chart;

cin.getline(a,50,);

for(i=0,j=strlen(a)-1;istrlen(a)2;i++,j--)=p=

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

coutaendl;p=

}

//第二種

stringstr;

cinstr;

str.replace;

coutstr;p=

3.請(qǐng)簡(jiǎn)約描述Windows內(nèi)存管理的方法。

內(nèi)存管理是操作系統(tǒng)中的重要部分,兩三句話(huà)唯恐誰(shuí)也說(shuō)不清晰吧~~

我先說(shuō)個(gè)大略,盼望能夠拋磚引玉吧

當(dāng)程序運(yùn)行時(shí)需要從內(nèi)存中讀出這段程序的代碼。代碼的位置需要在物理內(nèi)存中才能被運(yùn)行,由于現(xiàn)在的操作系統(tǒng)中有特別多的程序運(yùn)行著,內(nèi)存中不能夠完全放下,所以引出了虛擬內(nèi)存的概念。把哪些不常用的程序片斷就放入虛擬內(nèi)存,當(dāng)需要用到它的時(shí)候在load入主存(物理內(nèi)存)中。這個(gè)就是內(nèi)存管理所要做的事。內(nèi)存管理還有另外一件事需要做:計(jì)算程序片段在主存中的物理位置,以便CPU調(diào)度。

內(nèi)存管理有塊式管理,頁(yè)式管理,段式和段頁(yè)式管理?,F(xiàn)在常用段頁(yè)式管理

塊式管理:把主存分為一大塊、一大塊的,當(dāng)所需的程序片斷不在主存時(shí)就安排一塊主存空間,把程序片斷l(xiāng)oad入主存,就算所需的程序片度只有幾個(gè)字節(jié)也只能把這一塊安排給它。這樣會(huì)造成很大的糜費(fèi),平均糜費(fèi)了50%的內(nèi)存空間,但時(shí)易于管理。

頁(yè)式管理:把主存分為一頁(yè)一頁(yè)的,每一頁(yè)的空間要比一塊一塊的空間小許多,顯著這種方法的空間利用率要比塊式管理高許多。

段式管理:把主存分為一段一段的,每一段的空間又要比一頁(yè)一頁(yè)的空間小許多,這種方法在空間利用率上又比頁(yè)式管理高許多,但是也有另外一個(gè)缺點(diǎn)。一個(gè)程序片斷可能會(huì)被分為幾十段,這樣許多時(shí)間就會(huì)被糜費(fèi)在計(jì)算每一段的物理地址上(計(jì)算機(jī)最耗時(shí)間的大家都知道是I/O吧)。

段頁(yè)式管理:結(jié)合了段式管理和頁(yè)式管理的優(yōu)點(diǎn)。把主存分為假設(shè)干頁(yè),每一頁(yè)又分為假設(shè)干段。好處就很明顯,不用我多說(shuō)了吧。

各種內(nèi)存管理都有它自己的.方法來(lái)計(jì)算出程序片斷在主存中的物理地址,其實(shí)都很相像。

這只是一個(gè)大略而已,不足以說(shuō)明內(nèi)存管理的皮毛。無(wú)論哪一本操作系統(tǒng)書(shū)上都有具體的講解

4.

#includestdaf*.h

#defineSQR(*)***

intmain(intargc,char*argv[])

{

inta=10;

intk=2;

intm=1;

a/=SQR(k+m)/SQR(k+m);

printf(%d,a);

return0;

}

這道題目的結(jié)果是什么啊?

define只是定義而已,在編擇時(shí)只是簡(jiǎn)約代換***而已,并不經(jīng)過(guò)算術(shù)法那么的

a/=(k+m)*(k+m)/(k+m)*(k+m);

=a/=(k+m)*1*(k+m);

=a=a/9;

=a=1;

PS:經(jīng)過(guò)本人驗(yàn)證,雖然結(jié)果一樣,但是應(yīng)當(dāng)不是這樣運(yùn)算的,應(yīng)當(dāng)是a/=k+m*k+m/k+m*k+m;

由于SQR(k+m)/SQR(k+m)的值是7,而不是9。

5.

const符號(hào)常量;

(1)constchar*p

(2)charconst*p

(3)char*constp

說(shuō)明上面三種描述的區(qū)分;

假如const位于星號(hào)的左側(cè),那么const就是用來(lái)修飾指針?biāo)赶虻淖兞?,即指針指向?yàn)槌A?

假如const位于星號(hào)的右側(cè),const就是修飾指針本身,即指針本身是常量。

(1)constchar*p

一個(gè)指向char類(lèi)型的const對(duì)象指針,p不是常量,我們可以修改p的值,使其指向不同的char,但是不能轉(zhuǎn)變它指向非char對(duì)象,如:

constchar*p;

charc1=a;

charc2=b;

p=c1;//ok

p=c2;//ok

*p=c1;//error

(2)charconst*p

(3)char*constp

這兩個(gè)好象是一樣的,此時(shí)*p可以修改,而p不能修改。

(4)constchar*constp

這種是地址及指向?qū)ο蠖疾荒苄薷摹?/p>

6.下面是C語(yǔ)言中兩種if語(yǔ)句判斷方式。請(qǐng)問(wèn)哪種寫(xiě)法更好?為什么?

intn;

if(n==10)//第一種判斷方式

if(10==n)//第二種判斷方式

假如少了個(gè)=號(hào),編譯時(shí)就會(huì)報(bào)錯(cuò),減削了出錯(cuò)的可能行,可以檢測(cè)出是否少了=

7.下面的代碼有什么問(wèn)題?

voidDoSomeThing(...)

{

char*p;

...

p=malloc(1024);//安排1K的空間

if(NULL==p)

return;

...

p=realloc(p,2048);//空間不夠,重新安排到2K

if(NULL==p)

return;

...

}

A:

p=malloc(1024);應(yīng)當(dāng)寫(xiě)成:p=(char*)malloc(1024);

沒(méi)有釋放p的空間,造成內(nèi)存泄漏。

8.下面的代碼有什么問(wèn)題?并請(qǐng)給出正確的寫(xiě)法。

voidDoSomeThing(char*p)

{

charstr[16];

intn;

assert(NULL!=p);

sscanf(p,%s%d,str,n);

if(0==strcmp(str,something))

{

...

}

}

A:

sscanf(p,%s%d,str,n);這句該寫(xiě)成:sscanf(p,%s%d,str,n);

9.下面代碼有什么錯(cuò)誤?

Voidtest1()

{

charstring[10];

char*str1=0123456789;

strcpy(string,str1);

溫馨提示

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