2020年度C常見筆試題及答案_第1頁
2020年度C常見筆試題及答案_第2頁
2020年度C常見筆試題及答案_第3頁
2020年度C常見筆試題及答案_第4頁
2020年度C常見筆試題及答案_第5頁
已閱讀5頁,還剩186頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C++常見筆試題及答案

資料僅供參考

C++面試題

1#include“filename.h”和#include

<filename.h>的區(qū)另U?

答:對于#include〈filename.h>編譯器從標準庫

開始搜索filename.h

對于#include"filename.h”編譯器從用戶工作

路徑開始搜索filename.h

2頭文件的作用是什么?

答:一、經(jīng)過頭文件來調(diào)用庫功能。在很多場合,

源代碼不便(或不準)向用戶公布,只要向用戶

提供頭文件和二進制的庫即可。用戶只需要按照

頭文件中的接口聲明來調(diào)用庫功能,而不必關(guān)心

接口怎么實現(xiàn)的。編譯器會從庫中提取相應(yīng)的代

碼。

二、頭文件能加強類型安全檢查。如果某個接口

被實現(xiàn)或被使用時,其方式與頭文件中的聲明不

一致,編譯器就會指出錯誤,這一簡單的規(guī)則,

能大大減輕程序員調(diào)試、改錯的負擔(dān)。

資料僅供參考

3C++函數(shù)中值的傳遞方式有哪幾種?

答:C++函數(shù)的三種傳遞方式為:值傳遞、指針

傳遞和引用傳遞。

4內(nèi)存的分配方式有幾種?

答:一、從靜態(tài)存儲區(qū)域分配。內(nèi)存在程序編譯

的時候就已經(jīng)分配好,這塊內(nèi)存在程序的整個運

行期間都存在。例如全局變量。

二、在棧上創(chuàng)立。在執(zhí)行函數(shù)時,函數(shù)內(nèi)局部變

量的存儲單元都能夠在棧上創(chuàng)立,函數(shù)執(zhí)行結(jié)束

時這些存儲單元自動被釋放。棧內(nèi)存分配運算內(nèi)

置于處理器的指令集中,效率很高,可是分配的

內(nèi)存容量有限。

三、從堆上分配,亦稱動態(tài)內(nèi)存分配。程序在運

行的時候用malloc或new申請任意多少的內(nèi)存,

程序員自己負責(zé)在何時用free或delete釋放內(nèi)

存。動態(tài)內(nèi)存的生存期由我們決定,使用非常靈

活,但問題也最多。

資料僅供參考

5實現(xiàn)雙向鏈表刪除一個節(jié)點P,在節(jié)點P后插

入一個節(jié)點,寫出這兩個函數(shù);

答:雙向鏈表刪除一個節(jié)點P

template<classtype>voidlist<type>::delnode(int

P)

(

intk=l;

listnode<type>*ptr,*t;

ptr=first;

while(ptr->next!=NULL&&k!=p)

(

ptr=ptr->next;

k++;

t=ptr->next;

cout?"你已經(jīng)將數(shù)據(jù)項"?t->data?"刪

資料僅供參考

除,,<<endl;

ptr->next=ptr->next->next;

length-;

deletet;

}

在節(jié)點P后插入一個節(jié)點:

template<classtype>bool

list<type>::insert(typetjntp)

(

listnode<type>*ptr;

ptr=first;

intk=l;

while(ptr!=NULL&&k<p)

(

ptr=ptr->next;

k++;

資料僅供參考

if(ptr==NULL&&k!=p)

returnfalse;

else

(

listnode<type>*tp;

tp=newlistnode<type>;

tp->data=t;

tp->next=ptr->next;

ptr->next=tp;

length++;

returntrue;

6寫一個函數(shù),將其中的\t都轉(zhuǎn)換成4個空格。

boolchange(char*buf,intlen)

資料僅供參考

intcount=0;

inti;

//統(tǒng)計有多少個‘\t'

for(i=0;buf[i]!='\0';i++){

if(buf[i]=='\t')

count++;

)

//給定的buf空間是否能裝下生成的字符串

intj=i+3*count;

if(len<j+1)

returnfalse;

//從后向前逐個替換

while(count>0)

資料僅供參考

while(buf[i]!='\t')

buf[j-]=buf[i-];

count-;

buf[j]=buf[j-1]=buf[j-2]=buf[j-3]=";

j-=4;

returntrue;

)

intmain()

(

charbuf[100]

"123\t45\t\t\t6\t\t65\n4234\t5345";

cout?"Beforechage:"?endl;

資料僅供參考

cout?buf?endl;

cout?"Aftercallingthefunction:"?endl;

//buf是原字符串,100是buf的長度(要足

夠大,最好是原字符串的3倍)

if(change(buf,100)==true)

cout?buf?endl;

charc;

cin?c;

}

7Windows程序的入口是哪里?寫出Windows

消息機制的流程.

函數(shù)WinMain()

Windows應(yīng)用程序的消息處理機制如圖1.2所示。

(1)操作系統(tǒng)接收到應(yīng)用程序的窗口消息,將

資料僅供參考

消息投遞到該應(yīng)用程序的消息隊列中。

(2)應(yīng)用程序在消息循環(huán)中調(diào)用GetMessage

函數(shù)從消息隊列中取出一條一條的消息。取出消

息后,應(yīng)用程序能夠?qū)ο⑦M行一些預(yù)處理,例

如,放棄對某些消息的響應(yīng),或者調(diào)用

TranslateMessage產(chǎn)生新的消息。

(3)應(yīng)用程序調(diào)用DispatchMessage,將消息回

傳給操作系統(tǒng)。消息是由MSG結(jié)構(gòu)體對象來表

示的,其中就包含了接收消息的窗口的句柄。因

此,DispatchMessage函數(shù)總能進行正確的傳遞。

(4)系統(tǒng)利用WNDCLASS結(jié)構(gòu)體的IpfnWndProc

成員保存的窗口過程函數(shù)的指針調(diào)用窗口過程,

對消息進行處理(即“系統(tǒng)給應(yīng)用程序發(fā)送了消

息”)。

8如何定義和實現(xiàn)一個類的成員函數(shù)為回調(diào)函

數(shù)?

把函數(shù)聲明為static

資料僅供參考

9C++里面是不是所有的動作都是main()引起的?

如果不是,請舉例.

答:在運行C++程序時,一般從main。函數(shù)開始

執(zhí)行。因此如果沒有main(),程序?qū)⒉煌暾?,?/p>

譯器將指出未定義main()函數(shù)。

例外情況:如,在windows編程中,能夠編寫

一個動態(tài)連接庫(州)模塊,這是其它windows

程序能夠使用的代碼。由于DLL模塊不是獨立的

程序,因此不需要main。.用于專用環(huán)境的程序-

如機器人中的控制器芯片-可能不需要main().

但常規(guī)的獨立程序都需要main().

10C++里面如何聲明constvoidf(void)函數(shù)為C

程序中的庫函數(shù)?

extern"C"voidf(void);

11下列哪兩個是等同的C==D

intb;

Aconstint*a=&b;

資料僅供參考

Bconst*inta=&b;

Cconstint*consta=&b;

Dintconst*consta=&b;

12內(nèi)聯(lián)函數(shù)在編譯時是否做參數(shù)類型檢查

13三個float:a,b,c問值

(a+b)+c==(b+a)+c1

(a+b)+c==(a+c)+b1

14把一個鏈表反向填空

voidreverse(test*head)

{test*pe=head;

test*ps=head->next;

while(ps)

{pe->next=ps->next;

資料僅供參考

ps->next=head;

head=ps;

ps=pe->next;}}

16某個程序在一個嵌入式系統(tǒng)(200M的

CPU,50M的SDRAM)中已經(jīng)最化了,換到另一個

系統(tǒng)(300M的CPU,501Vl的SDRAM)中運行,還需

要優(yōu)化嗎?

要。程序在每時每刻都要優(yōu)化,只要能找到能夠

優(yōu)化的方法。

優(yōu)化有多種目的,在200M的CPU中可能需要以

速度為重點優(yōu)化,在300M的CPU中可能要以代

碼長度為目的優(yōu)化。

17.下面哪種排序法對12354最快C

aquicksort//快速排序

b.bublesort//冒泡排序

c.mergesort〃歸并排序

資料僅供參考

18.哪種結(jié)構(gòu),平均來講,獲取一個值最快B

a.binarytree//二叉樹

b.hashtable〃散列表哈希表

c.stack//棧

19請問C++的類和C里面的struct有什么區(qū)另(I?

答:C++的類的成員默認情況下是私有的,C的

struct的成員默認情況下是公共的.

20請講一講析構(gòu)函數(shù)和虛函數(shù)的用法和作用?

答:析構(gòu)函數(shù)的名字和類名相同,沒有返回值,

沒有參數(shù),不能隨意調(diào)用也沒有重載。只是在類

對象生命期結(jié)束時由系統(tǒng)自動調(diào)用。

虛函數(shù)用在繼承中,當(dāng)在派生類中需要重新定義

基類的函數(shù)時需要在基類中將該函數(shù)聲明為虛

函數(shù),作用為使程序支持動態(tài)聯(lián)編。

資料僅供參考

21全局變量和局部變量有什么區(qū)別?是怎么實

現(xiàn)的?操作系統(tǒng)和編譯器是怎么知道的?

答:一些變量整個程序中都是可見的,它們稱為

全局變量,一些變量在函數(shù)內(nèi)部定義且只在函數(shù)

中可知,則稱為局部變量。

全局變量由編譯器建立且存放在內(nèi)存的全局數(shù)

據(jù)區(qū),局部變量存放在棧區(qū).

22一些寄存器的題目,主要是尋址和內(nèi)存管理

等一些知識。

1、立即尋址

2、寄存器尋址

3、直接尋址

4、寄存器間接尋址

5、基址加變址尋址

資料僅供參考

6、寄存器相對尋址

7、相對基址加變址尋址

238086是多少位的系統(tǒng)?在數(shù)據(jù)總線上是怎么

實現(xiàn)的?

8086有16根數(shù)據(jù)線和20根地址線,因為可用

20位地址.8086是16位處理器.

24多態(tài)。overload和override的區(qū)別。

答:多態(tài):接口的多種不同的實現(xiàn)方式即為多態(tài)

重載在相同范圍(同一個類中),函數(shù)名字相同,

參數(shù)不同,virtual關(guān)鍵字可有可無。

覆蓋是指派生類函數(shù)覆蓋基類函數(shù),不同的范圍,

函數(shù)名字相同,參數(shù)相同,基類函數(shù)必須有

virtual關(guān)鍵字。

?Sony筆試題>>

25.完成下列程序

*

資料僅供參考

**

***

****

#include<iostream>

usingnamespacestd;

資料僅供參考

constintn=8;

main()

inti;

intj;

intk;

for(i=n;i>=1;i-)

(

for(j=0;j<n-i+1;j++)

(

cout?"*";

for(k=l;k<n-i+1;k++)

(

cout?".";

)

)

cout?endl;

資料僅供參考

)

system("pause")

)

26完成程序,實現(xiàn)對數(shù)組的降序排序

#include<iostream>

usingnamespacestd;

voidsort(int*arr,intn);

intmain()

(

intarray口={45,56,76,234,1,34,23,2,3};

sort(array,9);

for(inti=0;i<=8;i++)〃曾經(jīng)在這兒出界

cout?array[i]?"

cout?endl;

system("pause");

資料僅供參考

voidsort(int*arr,intn)

(

inttemp;

for(inti=1;i<9;i++)

(

for(intk=0;k<9-i;k++)〃曾經(jīng)在這兒出界

(

if(arr[k]<arr[k+1])

(

temp=arr[k];

arr[k]=arr[k+1];

arr[k+1]=temp;

資料僅供參考

27費波那其數(shù)列,1,1,2,3,5……編寫程序

求第十項。能夠用遞歸,也能夠用其它方法,但

要說明你選擇的理由。

非遞歸

#include<iostream>

usingnamespacestd;

intPheponatch(intn);

main()

(

intPh=Pheponatch(lO);

cout?Ph?endl;

system("pause");

)

intPheponatch(intn)

(

intelem;

intnl=1;

資料僅供參考

intn2=1;

if(n==111n==2)

return1;

else

(

for(inti=3;i<=n;i++)

(

elem=nl+n2;

nl=n2;

n2=elem;

}returnelem;}}

遞歸

#include<iostream>

usingnamespacestd;

intPheponatch(intn);

main()

資料僅供參考

intn;

cin?n;

intph=Pheponatch(n);

cout?ph?endl;

system("pause");

}

intPheponatch(intn)

(

if(n<=0)

exit(-l);

else

if(n==111n==2)

return1;

else

returnPheponatch(n-1)+Pheponatch(n-2);

資料僅供參考

28下列程序運行時會崩潰,請找出錯誤并改正,

而且說明原因。

#include<stdio.h>

#include<malloc.h>

typedefstruct{

TNode*left;

TNode*right;

intvalue;

}TNode;

TNode*root=NULL;

voidappend(intN);

intmain()

(

append(63);

append(45);

append(32);

append(77);

資料僅供參考

append(96);

append(21);

append(17);//Again,數(shù)字任意給出

}

voidappend(intN)

(

TNode*NewNode=(TNode

*)malloc(sizeof(TNode));

NewNode->value=N;

if(root==NULL)

(

root=NewNode;

return;

)

else

TNode*temp;

資料僅供參考

temp=root;

while((N>=temp.value&&temp.left!=NULL)11

(N<temp.value&&temp.right!=NULL))

(

while(N>=temp.value&&temp.left!=NULL)

temp=temp.left;

while(N<temp.value&&temp.right!=NULL)

temp=temp.right;

)

if(N>=temp.value)

temp.left=NewNode;

else

temp.right=NewNode;

return;}}

29.AclassBnetworkontheinternethasasubnet

maskof,whatisthemaximum

numberofhostspersubnet.

資料僅供參考

a.240b.255c.4094d.65534

30.Whatisthedifference:betweeno(logn)and

o(lognA2),wherebothlogarithemshavebase2.

a.o(lognA2)isbiggerb.o(logn)isbigger

c.nodifference

31.Foraclasswhatwouldhappenifwecalla

class'sconstructorfromwiththesameclass's

constructor.

pilationerrorb.linkingerror

c.stackoverflowd.noneoftheabove

32."new“inC++isa:.

a.libraryfunctionlikemallocinc

b.keywordc.operator

d.noneoftheabove

33.Whichofthefollowinginformationisnot

containedinaninode.

a.fileownerb.filesize

資料僅供參考

c.filenamed.diskaddress

34.What'sthenumberofcomparisonsinthe

worstcasetomergetwosortedlistscontainingn

elementseach.

a.2nb.2n-lc.2n+ld.2n-2

35.TimecomplexityofnalgorithmT(n),wheren

istheinputsize,isT(n)=T(n-l)+l/nifn>l

otherwise1theorderofthisalgorithmis.

a.log(n)b.nc.nA2d.nAn

36.Thenumberof1'sinthebinary

representationof3*4096+15*256+5*16+3are.

a.8b.9c.10d.12

設(shè)計函數(shù)

37.intatoi(char*s)o

38.inti=(j=4,k=8,l=16,m=32);printf("%d”,i);輸

資料僅供參考

出是多少?

39.解釋局部變量、全局變量和靜態(tài)變量的含義。

40.解釋堆和棧的區(qū)別。

棧區(qū)(stack)-由編譯器自動分配釋放,存放

函數(shù)的參數(shù)值,局部變量的值等。其操作方式類

似于數(shù)據(jù)結(jié)構(gòu)中的棧。

堆:一般由程序員分配釋放,若程序員不釋放,

程序結(jié)束時可能由OS回收。注意它與數(shù)據(jù)結(jié)構(gòu)

中的堆是兩回事,分配方式倒是類似于鏈表.

41.論述含參數(shù)的宏與函數(shù)的優(yōu)缺點。

1.函數(shù)調(diào)用時,先求出實參表示式的值,然后帶

入形參。而使用帶參的宏只是進行簡單的字符替

換。

2.函數(shù)調(diào)用是在程序運行時處理的,分配臨時的

內(nèi)存單元;而宏展開則是在編譯時進行的,在展

開時并不分配內(nèi)存單元,不進行值的傳遞處理,

資料僅供參考

也沒有“返回值”的概念。

3.對函數(shù)中的實參和形參都要定義類型,二者的

類型要求一致,如不一致,應(yīng)進行類型轉(zhuǎn)換;而

宏不存在類型問題,宏名無類型,它的參數(shù)也無

類型,只是一個符號代表,展開時帶入指定的字

符即可。宏定義時,字符串能夠是任何類型的數(shù)

據(jù)。

4,調(diào)用函數(shù)只可得到一個返回值,而用宏能夠設(shè)

法得到幾個結(jié)果。

5,使用宏次數(shù)多時,宏展開后源程序長,因為每

展開一次都使程序增長,而函數(shù)調(diào)用不使源程序

變長。

6.宏替換不占運行時間,只占編譯時間;而函數(shù)

調(diào)用則占運行時間(分配單元、保留現(xiàn)場、值傳

遞、返回)。

一般來說,用宏來代表簡短的表示式比較合適。

42.以下三條輸出語句分別輸出什么?[C易]

charstrl[]="abc";

charstr2[]="abc";

資料僅供參考

constcharstr3[]="abc";

constcharstr4[]="abc";

constchar*str5="abc";

constchar*str6="abc";

cout?boolalpha?(strl==str2)?endl;//輸

出什么?0

cout?boolalpha?(str3==str4)?endl;//輸

出什么?0

cout?boolalpha?(str5==str6)?endl;//輸

出什么?1

答:分別輸出false,false,true。strl和str2

都是字符數(shù)組,每個都有其自己的存儲區(qū),它們

的值則是各存儲區(qū)首地址,不等;str3和str4

同上,只是按const語義,它們所指向的數(shù)據(jù)區(qū)

不能修改。str5和str6并非數(shù)組而是字符指針,

并不分配存儲區(qū),其后的“abc”以常量形式存于

靜態(tài)數(shù)據(jù)區(qū),而它們自己僅是指向該區(qū)首地址的

指針,相等。

資料僅供參考

43.非C++內(nèi)建型別A和B,在哪幾種情況下B

能隱式轉(zhuǎn)化為A?[C++中等]

答:BD

a.classB:publicA{.......}〃B公有繼承自A,能

夠是間接繼承的

b.classB{operatorA();}//B實現(xiàn)了隱式轉(zhuǎn)化為

A的轉(zhuǎn)化

c.classA{A(constB&);}//A實現(xiàn)了

non-explicit的參數(shù)為B(能夠有其它帶默認值的

參數(shù))構(gòu)造函數(shù)

d.A&operator=(constA&);//賦值操作,雖不

是正宗的隱式類型轉(zhuǎn)換,但也能夠勉強算一個

44.以下代碼中的兩個sizeof用法有問題嗎?[C

易]

voidUpperCase(charstr[])//將str中的小寫

字母轉(zhuǎn)換成大寫字母

for(size_ti=0;i<sizeof(str)/sizeof(str[0]);++i)

資料僅供參考

if('a'<=str[i]&&str[i]<='z')

str[i]-=('a'-'A');

}

charstr[]="aBcDe";

cout?"str字符長度為:"?

sizeof(str)/sizeof(str[0])?endl;

UpperCase(str);

cout?str?endl;

45.以下代碼有什么問題?[C難]

voidchar2Hex(charc)//將字符以16進制表示

(

charch=c/OxlO+'O';if(ch>'9')ch+=('A'-'g'-l);

charcl=c%OxlO+'O';if(cl>'9')cl+=

cout?ch?cl?'

)

charstr[]="Ilove中國";

資料僅供參考

for(size_ti=0;i<strlen(str);++i)

char2Hex(str[i]);

cout?endl;

46.以下代碼有什么問題?[C++易]

structTest

(

Test(int){}

Test(){}

voidfun(){}

};

voidmain(void)

(

Testa(l);

a.fun();

Testb();

b.fun();

資料僅供參考

***Testb();〃定義了一個函數(shù)

47.以下代碼有什么問題?[C++易]

cout?(true?l:"l")?endl;

8.以下代碼能夠編譯經(jīng)過嗎,為什么?[C++易]

unsignedintconstsizel=2;

charstrl[sizel];

unsignedinttemp=0;

cin?temp;

unsignedintconstsize2=temp;

charstr2[size2];

48.以下代碼中的輸出語句輸出。嗎,為什么?

[C++易]

structCLS

資料僅供參考

intmi;

CLS(inti):m_i(i){}

CLS()

(

CLS(O);

)

);

CLSobj;

cout?obj.m_i?endl;

49.C++中的空類,默認產(chǎn)生哪些類成員函數(shù)?

[C++易]

答:

classEmpty

public:

資料僅供參考

Empty();//缺省構(gòu)造函數(shù)

Empty(constEmpty&);//拷貝構(gòu)造函數(shù)

~Empty();〃析構(gòu)函數(shù)

Empty&operator=(constEmpty&);//賦值運算

Empty*operator&();//取址運算符

constEmpty*operator&()const;//取址運算符

const

);

50.以下兩條輸出語句分別輸出什么?[C++難]

floata=l.Of;

cout?(int)a?endl;

cout?(int&)a?endl;

cout?boolalpha?((int)a==(int&)a)?endl;

//輸出什么0

floatb=O.Of;

資料僅供參考

cout?(int)b?endl;

cout?(int&)b?endl;

cout?boolalpha?((int)b==(int&)b)?endl;

//輸出1

51.以下反向遍歷array數(shù)組的方法有什么錯誤?

[STL易]

vectorarray;

array.push_back(1);

array.push_back(2);

array.push_back(3);

for(vector::size_typei=array.size()-l;i>=0;-i)//

反向遍歷array數(shù)組

cout?array[i]?endl;

資料僅供參考

52.以下代碼有什么問題?[STL易]

typedefvectorIntArray;

IntArrayarray;

array.push_back(1);

array.push_back(2);

array.push_back(2);

array.push_back(3);

//刪除array數(shù)組中所有的2

for(lntArray::iteratoritor=array.begin();

itor!=array.end();++itor)

(

if(2==*itor)array.erase(itor);

}

53.寫一個函數(shù),完成內(nèi)存之間的拷貝。[考慮問

題是否全面]

答:

資料僅供參考

void*mymemcpy(void*dest,constvoid*src,

size_tcount)

(

char*pdest=static_cast<char*>(dest);

constchar*psrc=static_cast<constchar*>(src);

if(pdest>psrc&&pdest<psrc+cout)能考慮到這

種情況就行了

(

for(size_ti=count-l;i!=-l;-i)

pdest[i]=psrc[i];

)

else

for(size_ti=0;i<count;++i)

pdest[i]=psrc[i];

)

returndest;

資料僅供參考

intmain(void)

(

charstr[]=

mymemcpy(str+1,str+O,9);

cout?str?endl;

system("Pause");

return0;

54線程與進程的區(qū)別

進程就是一個應(yīng)用程序在處理機上的一次執(zhí)

行過程,它是一個動態(tài)的概念,而線程是進程中

的一部分,進程包含多個線程在運行。

55:請你分別劃劃0SI(開放式系統(tǒng)互聯(lián))的七

資料僅供參考

層網(wǎng)絡(luò)結(jié)構(gòu)圖,和TCP/IP的五層結(jié)構(gòu)圖?

加毒/安全技術(shù)OSI/梅披層安全協(xié)議

應(yīng)用程序網(wǎng)應(yīng)用相關(guān)

/保密網(wǎng)關(guān)

信淑加密

SOCKS

動右包過濾ssyns

能塞包過濾IPSec

PPTP/L2IP

茴順密

應(yīng)用層(applicationlayer)

傳輸層(transportlayer)

網(wǎng)絡(luò)層(networklayer)

數(shù)據(jù)鏈路層(datalinklayer)

物理層(physicallayer)

56:請你詳細的解釋一下IP協(xié)議的定義,在哪

個層上面,主要有什么作用?TCP與UDP呢?

IP協(xié)議是網(wǎng)絡(luò)層的協(xié)議,它實現(xiàn)了Internet中

自動路由的功能,即尋徑的功能,TCP協(xié)議是一

個傳輸性的協(xié)議它向下屏蔽了IP協(xié)議不可靠傳

輸?shù)奶匦?,向上提供一個可靠的點到點的傳輸,

UDP提供的是一種無連接的服務(wù),主要考慮到很

多應(yīng)用不需要可靠的連接,但需要快速的傳輸

資料僅供參考

57:請問交換機和路由器分別的實現(xiàn)原理是什么?

分別在哪個層次上面實現(xiàn)的?

交換機用在局域網(wǎng)中,交換機經(jīng)過記錄局域網(wǎng)

內(nèi)各節(jié)點機器的MAC地質(zhì)(物理地址)就能夠?qū)?/p>

現(xiàn)傳遞報文,無需看報文中的IP地址。路由器識

別不同網(wǎng)絡(luò)的方法是經(jīng)過識別不同網(wǎng)絡(luò)的網(wǎng)絡(luò)

ID號(IP地址的高端部分)進行的,因此為了保證

路由成功,每個網(wǎng)絡(luò)都必須有一個唯一的網(wǎng)絡(luò)編

號。路由器經(jīng)過察看報文中IP地址,來決定路

徑,向那個子網(wǎng)(下一跳)路由,也就是說交換機

工作在數(shù)據(jù)鏈路層看MAC地址,路由器工作在

網(wǎng)際層看IP地址

可是由于現(xiàn)在網(wǎng)絡(luò)設(shè)備的發(fā)展,很多設(shè)備既有交

換機的功能有由路由器的功能(交換試路由器)使

得兩者界限越來越模糊。

58:請問C++的類和C里面的struct有什么區(qū)別?

資料僅供參考

(1)C++類中屬性默認訪問類型為private,而C中

的struct默認的訪問類型為public

(2)c++類能夠有繼承,虛函數(shù),多態(tài),而C中struct

不能夠。

C++的class具有數(shù)據(jù)封裝功能,其包含屬性訪問

級別能夠為private,public和protect,還具有實現(xiàn)

類接口功能和輔助功能的操作函數(shù),而struct屬

性訪問權(quán)限只有public,沒有數(shù)據(jù)封裝功能,也

就沒有實現(xiàn)信息隱藏這一面向?qū)ο蟮乃枷氲臋C

制,struct本身不含有操作函數(shù),只有數(shù)據(jù)。

59:請講一講析構(gòu)函數(shù)和虛函數(shù)的用法和作用?

析構(gòu)函數(shù)是在類對象死亡時由系統(tǒng)自動調(diào)用,

其作用是用來釋放對象的指針數(shù)據(jù)成員所指的

動態(tài)空間,如果在構(gòu)造函數(shù)中,你申請了動態(tài)空

間,那么為了避免引起程序錯誤,你必須在析構(gòu)

函數(shù)中釋放這部分內(nèi)存空間。如果基類的函數(shù)用

virtual修飾,成為虛函數(shù),則其派生類相應(yīng)的重

載函數(shù)仍能繼承該虛函數(shù)的性質(zhì),虛函數(shù)進行動

態(tài)聯(lián)編,也即具有多態(tài)性,也就是派生類能夠改

變基類同名函數(shù)的行為,在面向?qū)ο笫澜缰?,?/p>

態(tài)是最強大的機制,虛函數(shù)就是這一機制的C++

實現(xiàn)方式。

資料僅供參考

60:全局變量和局部變量有什么區(qū)別?實怎么實

現(xiàn)的?操作系統(tǒng)和編譯器是怎么知道的?

全局變量是整個程序都可訪問的變量,誰都能

夠訪問,生存期在整個程序從運行到結(jié)束(在程

序結(jié)束時所占內(nèi)存釋放),而局部變量存在于模

塊(子程序,函數(shù))中,只有所在模塊能夠訪問,

其它模塊不可直接訪問,模塊結(jié)束(函數(shù)調(diào)用完

畢),局部變量消失,所占據(jù)的內(nèi)存釋放。

全局變量分配在全局數(shù)據(jù)段而且在程序開始

運行的時候被加載.局部變量則分配在堆棧里

面。

61:一些寄存器的題目,主要是尋址和內(nèi)存管理

等一些知識。

2、交換機用在局域網(wǎng)中,交換機經(jīng)過紀錄局域

網(wǎng)內(nèi)各節(jié)點機器的MAC地質(zhì)(物理地址)就能夠

實現(xiàn)傳遞報文,無需看報文中的IP地質(zhì)。路由器

識別不同網(wǎng)絡(luò)的方法是經(jīng)過識別不同網(wǎng)絡(luò)的網(wǎng)

絡(luò)ID號(IP地址的高端部分)進行的,因此為了保

資料僅供參考

證路由成功,每個網(wǎng)絡(luò)都必須有一個唯一的網(wǎng)絡(luò)

編號。路由器經(jīng)過察看報文中IP地址,來決定

路徑,向那個子網(wǎng)(下一跳)路由,也就是說交換

機工作在數(shù)據(jù)鏈路層看MAC地址,路由器工作

在網(wǎng)際層看IP地質(zhì)

可是由于現(xiàn)在網(wǎng)絡(luò)設(shè)備的發(fā)展,很多設(shè)備既有交

換機的功能有由路由器的功能(交換試路由器)使

得兩者界限越來越模糊。

3、IP協(xié)議是網(wǎng)絡(luò)層的協(xié)議,它實現(xiàn)了Internet

中自動路由的功能,即尋徑的功能,TCP協(xié)議是

一個傳輸性的協(xié)議它向下屏蔽了IP協(xié)議不可靠

傳輸?shù)奶匦?,向上提供一個可靠的點到點的傳輸,

UDP提供的是一種無連接的服務(wù),主要考慮到很

多應(yīng)用不需要可靠的連接,但需要快速的傳輸。

4、

Testb();〃定義了一個函數(shù)

62:8086是多少位的系統(tǒng)?在數(shù)據(jù)總線上是怎么

實現(xiàn)的?

資料僅供參考

?IBM?

63.怎樣用最快的方法判斷鏈表是否有環(huán)?

設(shè)置兩個指針,開始都指向鏈表頭,然后其中

一個指針每次向前走一步,另一個指針每次向前

走兩步,如果快的遇到NULL了,證明該鏈表中

沒有環(huán),如果有環(huán),快的指針每次都要比慢的多

走一步,最終兩個指針會相遇,

64.C++中引用和指針有什么不同?指針加上什么

限制等于引用?

答:1引用被創(chuàng)立的時候必須被初始化,而指

針不是必須的。2引用在創(chuàng)立后就不能改變引用

的關(guān)系,而指針在初始化后能夠隨時指向其它的

變量或?qū)ο蟆?沒有NULL引用,引用必須與合法

的存儲單元關(guān)聯(lián),而指針能夠是NULL。

65,做的項目,遇到的困難,怎樣解決?

資料僅供參考

69.操作符重載

classCMyObject:pulicCObject

(

Public:

CMyObject();

CMyObject&operator=(constCMyObject&my);

private:

CStringstrName;

intnld:

};

請重載賦值操作符

70.鏈表

StructstructList

資料僅供參考

intvalue;

structList*pHead;

StructLinkedList*pMyList;

請編寫刪除鏈表的頭、尾和第n個節(jié)點的程序

7L用SocketAPI制作一個聊天程序,通訊協(xié)議使

用tcp/ip。要求有簡單界面即可,支持多人聊天。

72.如果有過工作經(jīng)驗,請說明在先前公司的工

作以及離職原因(如無,請說明畢業(yè)后的個人展

望)

資料僅供參考

73對于C++中類(class)與結(jié)構(gòu)(struct)的描述正

確的為:

A,類中的成員默認是private的,當(dāng)是能夠聲明為

public,private和protected,結(jié)構(gòu)中定義的成員默

認的都是public;

B,結(jié)構(gòu)中不允許定義成員函數(shù),當(dāng)是類中能夠定

義成員函數(shù);

C,結(jié)構(gòu)實例使用malloc()動態(tài)創(chuàng)立,類對象使用

new操作符動態(tài)分配內(nèi)存;

D,結(jié)構(gòu)和類對象都必須使用new創(chuàng)立;

E,結(jié)構(gòu)中不能夠定義虛函數(shù),當(dāng)是類中能夠定義

虛函數(shù).

F,結(jié)構(gòu)不能夠存在繼承關(guān)系,當(dāng)是類能夠存在繼

承關(guān)系.

答:A,D,F

74,兩個互相獨立的類:ClassA和ClassB,都各自

資料僅供參考

定義了非靜態(tài)的公有成員函數(shù)PublicFunc()和

非靜態(tài)的私有成員函數(shù)PrivateFunc();

現(xiàn)在要在ClassA中增加定義一個成員函數(shù)

ClassA::AdditionalPunction(ClassAa,ClassBb);則

能夠在AdditionalPunction(ClassAx,ClassBy)的實

現(xiàn)部分(函數(shù)功能體內(nèi)部)

出現(xiàn)的合法的表示是最全的是:

A,x.PrivateFunc();x.PublicFuncO;y.PrivateFunc();y.

PublicFunc();

B^x.PrivateFuncO^.PublicFuncO^.PublicFuncO;

C^.PrivateFuncO^.PrivateFuncO^.PublicFuncO;

D^.PublicFuncOjy.PublicFuncO;

答:B

75,C++程序下列說法正確的有:

A,對調(diào)用的虛函數(shù)和模板類都進行遲后編譯.

B,基類與子類中函數(shù)如果要構(gòu)成虛函數(shù),除了要

求在基類中用virtual聲名,而且必須名字相同且

參數(shù)類型相同返回類型相同

資料僅供參考

C,重載的類成員函數(shù)都必須要:或者返回類型不

同,或者參數(shù)數(shù)目不同,或者參數(shù)序列的類型不

同.

D,靜態(tài)成員函數(shù)和內(nèi)聯(lián)函數(shù)不能是虛函數(shù),友員

函數(shù)和構(gòu)造函數(shù)也不能是虛函數(shù),可是析構(gòu)函數(shù)

能夠是虛函數(shù).

答:A

76,C++中的類與結(jié)構(gòu)的區(qū)別?

77,構(gòu)造函數(shù)和析構(gòu)函數(shù)是否能夠被重載,為什

么?

答:構(gòu)造函數(shù)能夠被重載,析構(gòu)函數(shù)不能夠被重

載。因為構(gòu)造函數(shù)能夠有多個且能夠帶參數(shù),而

析構(gòu)函數(shù)只能有一個,且不能帶參數(shù)。

資料僅供參考

78,一個類的構(gòu)造函數(shù)和析構(gòu)函數(shù)什么時候被調(diào)

用,是否需要手工調(diào)用?

答:構(gòu)造函數(shù)在創(chuàng)立類對象的時候被自動調(diào)用,

析構(gòu)函數(shù)在類對象生命期結(jié)束時,由系統(tǒng)自動調(diào)

用。

1#include“filename.h”和#include

<filename.h>的區(qū)另U?

答:#include"filename.h”表明該文件是用戶

提供的頭文件,查找該文件時從當(dāng)前文件目錄開

始;#include〈filename.h>表明這個文件是一個

工程或標準頭文件,查找過程會檢查預(yù)定義的目

錄。

2頭文件的作用是什么?

答:一、經(jīng)過頭文件來調(diào)用庫功能。在很多場合,

源代碼不便(或不準)向用戶公布,只要向用戶

資料僅供參考

提供頭文件和二進制的庫即可。用戶只需要按照

頭文件中的接口聲明來調(diào)用庫功能,而不必關(guān)心

接口怎么實現(xiàn)的。編譯器會從庫中提取相應(yīng)的代

碼。

二、頭文件能加強類型安全檢查。如果某個接口

被實現(xiàn)或被使用時,其方式與頭文件中的聲明不

一致,編譯器就會指出錯誤,這一簡單的規(guī)則能

大大減輕程序員調(diào)試、改錯的負擔(dān)。

3C++函數(shù)中值的傳遞方式有哪幾種?

答:C++函數(shù)的三種傳遞方式為:值傳遞、指針

傳遞和引用傳遞。

4內(nèi)存的分配方式的分配方式有幾種?

答:一、從靜態(tài)存儲區(qū)域分配。內(nèi)存在程序編譯

的時候就已經(jīng)分配好,這塊內(nèi)存在程序的整個運

行期間都存在。例如全局變量。

二、在棧上創(chuàng)立。在執(zhí)行函數(shù)時,函數(shù)內(nèi)局部變

量的存儲單元都能夠在棧上創(chuàng)立,函數(shù)執(zhí)行結(jié)束

資料僅供參考

時這些存儲單元自動被釋放。棧內(nèi)存分配運算內(nèi)

置于處理器的指令集中,效率很高,可是分配的

內(nèi)存容量有限。

三、從堆上分配,亦稱動態(tài)內(nèi)存分配。程序在運

行的時候用malloc或new申請任意多少的內(nèi)存,

程序員自己負責(zé)在何時用free或delete釋放內(nèi)

存。動態(tài)內(nèi)存的生存期由我們決定,使用非常靈

活,但問題也最多。

5實現(xiàn)雙向鏈表刪除一個節(jié)點P,在節(jié)點P后插

入一個節(jié)點,寫出這兩個函數(shù);

答:雙向鏈表刪除一個節(jié)點P

template<classtype>voidlist<type>::delnode(int

P)

intk=l;

listnode<type>*ptr,*t;

ptr=first;

資料僅供參考

while(ptr->next!=NULL&&k!=p)

(

ptr=ptr->next;

k++;

}

t=ptr->next;

你已經(jīng)將數(shù)據(jù)項"?t->data?"j?ll^

"?endl;

ptr->next=ptr->next->next;

length-;

deletet;

}

在節(jié)點P后插入一個節(jié)點:

template<classtype>boollist<type>::insert(type

t,intp)

資料僅供參考

listnode<type>*ptr;

ptr=first;

intk=l;

while(ptr!=NULL&&k<p)

(

ptr=ptr->next;

k++;

}

if(ptr==NULL&&k!=p)

returnfalse;

else

listnode<type>*tp;

tp=newlistnode<type>;

tp->data=t;

資料僅供參考

tp->next=ptr->next;

ptr->next=tp;

length++;

returntrue;

〃上海貝爾的面試題43分即可進入復(fù)試

一、請?zhí)顚態(tài)OOL,float,指針變量與“零值”

比較的if語句。(10分)

資料僅供參考

提示:這里“零值”能夠是0,0.0,FALSE或者“空

指針”。例如int變量n與“零值”比較的if語

句為:

if(n==0)

if(n!=0)

以此類推。

請寫出BOOLflag與“零值”比較的if語句:

請寫出floatx與“零值”比較的if語句:

請寫出char*p與“零值”比較的if語句:

二、以下為WindowsNT下的32位C++程序,請

計算sizeof的值(10分)

charstr[]="Hello";

char*p=str;

intn=10;

請計算

sizeof(str)=

sizeof(p)=

資料僅供參考

sizeof(n)=voidFunc(charstr[100])

(

請計算

sizeof(str)=

}

void*p=malloc(100);

請計算

sizeof(p)=

、簡答題(25分)

1、頭文件中的ifndef/define/endif干什么用?

防止頭文件重復(fù)定義。

2、#include<filename.h>和#include

“filename,h”有什么區(qū)別?

答:#include"filename.h”表明該文件是

用戶提供的頭文件,查找該文件時從當(dāng)前文件目

錄開始;#include〈filename.h>表明這個文件是

一個工程或標準頭文件,查找過程會檢查預(yù)定義

的目錄。

資料僅供參考

3、const有什么用途?(請至少說明兩種)

在C/C++中,(1)能夠定義const常量,(2)

修飾函數(shù)的返回值和形參;

在C++中,還能夠修飾函數(shù)的定義體,定義類的

const成員函數(shù)。被const修飾的東西受到強制J保

護,能夠預(yù)防意外的變動,提高了程序的健壯性。

4、在C++程序中調(diào)用被C編譯器編譯后的函

數(shù),為什么要加extern“C”聲明?

答:C++語言支持函數(shù)重載,C語言不支持

函數(shù)重載。函數(shù)被C++編譯后在庫中的名字與C

語言不同。假設(shè)某個函數(shù)的原型為:voidfoo(i

ntx,inty);該函數(shù)被C編譯器編譯后在庫中的

名字為_foo,而C++編譯器則會產(chǎn)生像_foo_i

nt_int之類的名字。C++提供了C連接交換指定

符號extern”〃來解決名字匹配問題。

5、請簡述以下兩個for循環(huán)的優(yōu)缺點

//第一個

for(i=0;i<N;i++)

if(condition)

資料僅供參考

DoSomething();

else

DoOtherthing();

}//第二個

if(condition)

(

for(i=0;i<N;i++)

DoSomething();

)

else

(

for(i=0;i<N;i++)

DoOtherthing();

)

優(yōu)點:N次中,每次都要對8ndition進行判斷

缺點:優(yōu)點:一次判斷condition后,對something

或Otherthing執(zhí)行N次

資料僅供參考

缺點:

四、有關(guān)內(nèi)存的思考題(20分)

voidGetMemory(char*p)

(

p=(char*)malloc(100);

)

voidTest(void)

(

char*str=NULL;

GetMemory(str);

strcpy(str,"helloworld");

printf(str);

請問運行Test函數(shù)會有什么樣的結(jié)果?

資料僅供參考

char*GetMemory(void)

(

charp[]="helloworld";

returnp;

}

voidTest(void)

(

char*str=NULL;

str=GetMemory();

printf(str);

}

請問運行Test函數(shù)會有什么樣的結(jié)果?

VoidGetMemory2(char**p,intnum)

資料僅供參考

*p=(char*)malloc(num);

)

voidTest(void)

(

char*str=NULL;

GetMemory(&str,100);

strcpy(str,"hello");

printf(str);

)

請問運行Test函數(shù)會有什么樣的結(jié)果?

voidTest(void)

(

char*str=(char*)malloc(lOO);

strcpy(str,"hello");

free(str);

資料僅供參考

if(str!=NULL)

strcpy(str,"world");

printf(str);

}

}

請問運行Test函數(shù)會有什么樣的結(jié)果?

五、編寫strcpy函數(shù)(10分)

已知strcpy函數(shù)的原型是

char*strcpy(char*strDest,constchar*strSrc);

其中strDest是目的字符串,strSrc是源字符串。

(1)不調(diào)用C++/C的字符串庫函數(shù),請編寫函

數(shù)strcpy

資料僅供參考

char*strcpy(char*strDest,constchar*strSrc){

intn=0;

while(strSrc[n]!=NULL){

n++:

}

*srtDest=newchar[n];

for(inti=O;i<n;i++){

strDest=strSrc[i];

i++;

)

return*strDest;

}

(2)strcpy能把strSrc的內(nèi)容復(fù)制到strDest,

為什么還要char*類型的返回值?

因為該函數(shù)的還能夠把復(fù)制的字符串首地址

指針給其它的指針,而且這種需要也是有用的。

六、編寫類String的構(gòu)造函數(shù)、析構(gòu)函數(shù)和賦值

資料僅供參考

函數(shù)(25分)

已知類String的原型為:

classString

(

public:

String(constchar*str=NULL);//普通構(gòu)造函

數(shù)

String(constString&other);//拷貝構(gòu)造函數(shù)

~String(void);//析構(gòu)函數(shù)

String&operate=(constString&other);//賦

值函數(shù)

private:

char*m_data;//用于保存字符串

};

請編寫String的上述4個函數(shù)。

資料僅供參考

〃答案一并給出

一、請?zhí)顚態(tài)OOL,float,指針變量與“零值”

比較的if語句。(10分)

請寫出BOOLflag與“零值”比較的if語句。

(3分)

標準答案:

if(flag)

if“flag)如下寫法均屬不良風(fēng)格,不得分。

if(flag==TRUE)

if(flag==1)

if(flag==FALSE)

if(flag==0)

請寫出floatx與“零值”比較的if語句。(4

分)

資料僅供參考

標準答案示例:

constfloatEPSINON=0.00001;

if((x>=-EPSINON)&&(x<=EPSINON)

不可將浮點變量用或“!=”與數(shù)字比較,

應(yīng)該設(shè)法轉(zhuǎn)化成或"<=”此類形式。

如下是錯誤的寫法,不得分。

if(x==0.0)

if(x!=0.0)

請寫出char*p與“零值”比較的if語句。,

分)

標準答案:

if(p==NULL)

if(p!:NULL)如下寫法均屬不良風(fēng)格,不得分。

if(p==0)

if(p!=0)

資料僅供參考

if(P)

if(!)

二、以下為WindowsNT下的32位C++程序,請

計算sizeof的值(10分)

charstr[]="Hello”;

char*p=str;

intn=10;

請計算

sizeof(str)=6(2分)

sizeof(p)=4(2分)

sizeof(n)=4(2分)

voidFunc(charstr[100])

資料僅供參考

請計算

sizeof(str)=4(2分)

void*p=malloc(100);

請計算

sizeof(p)=4(2分)

三、簡答題(25分)

1、頭文件中的ifndef/define/endif干什么用?

(5分)

答:防止該頭文件被重復(fù)引用。

2、#include<filename.h>和#include

“filename.h”有什么區(qū)別?(5分)

資料僅供參考

答:對于#include<filename.h>,編譯器從標

準庫路徑開始搜索filename.h

對于#include“filename.h”,編譯器從用戶

的工作路徑開始搜索filename.h

3、const有什么用途?(請至少說明兩種)(5

分)

答:(1)能夠定義const常量

(2)const能夠修飾函數(shù)的參數(shù)、返回值,甚至

函數(shù)的定義體。被const修飾的東西都受到強制

保護,能夠預(yù)防意外的變動,能提高程序的健壯

性。

4、在C++程序中調(diào)用被C編譯器編譯后的函數(shù),

為什么要加extern“C”?(5分)

答:C++語言支持函數(shù)重載,C語言不支持函數(shù)

重載。函數(shù)被C++編譯后在庫中的名字與C語言

的不同。假設(shè)某個函數(shù)的原型為:voidfoo(intx,

inty);該函數(shù)被C編譯器編譯后在庫中的名字為

資料僅供參考

_foo,而C++編譯器則會產(chǎn)生像_foo_int_int之類

的名字。C++提供了C連接交換指定符號extern

來解決名字匹配問題。

5、請簡述以下兩個for循環(huán)的優(yōu)缺點(5分)

for(i=0;i<N;i++)

if(condition)

DoSomething();

else

DoOtherthing();

if(condition)

for(i=0;i<N;i++)

資料僅供參考

DoSomething();

else

(

for(i=0;i<N;i++)

DoOtherthing();

)

優(yōu)點:程序簡潔

缺點:多執(zhí)行了N-1次邏輯判斷,而且打斷了循

環(huán)“流水線”作業(yè),使得編譯器不能對循環(huán)進行

優(yōu)化處理,降低了效率。

優(yōu)點:循環(huán)的效率高

缺點:程序不簡潔

資料僅供參考

四、有關(guān)內(nèi)存的思考題(每小題5分,共20分)

voidGetMemory(char*p)

(

p=(char*)malloc(100);

)

voidTest(void)

(

char*str=NULL;

GetMemory(str);

strcpy(str,"helloworld");

printf(str);

請問運行Test函數(shù)會有什么樣的結(jié)果?

資料僅供參考

答:程序崩潰。

因為GetMemory并不能傳遞動態(tài)內(nèi)存,

Test函數(shù)中的str一直都是NULL。

strcpy(str,"helloworld");將使程序崩潰。

char*GetMemory(void)

(

charp[]="helloworld";

returnp;

)

voidTest(void)

(

char*str=NULL;

str=GetMemory();

printf(str);

請問運行Test函數(shù)會有什么樣的結(jié)果?

資料僅供參考

答:可能是亂碼。

因為GetMemory返回的是指向“棧內(nèi)存”的指

針,該指針的地址不是NULL,但其原現(xiàn)的內(nèi)容

已經(jīng)被清除,新內(nèi)容不可知。

voidGetMemory2(char**p,intnum)

(

*p=(char*)malloc(num);

}

voidTest(void)

(

char*str=NULL;

GetMemory(&strz100);

strcpy(str,"hello");

printf(str);

}

請問運行Test函數(shù)會有什么樣的結(jié)果?

答:

資料僅供參考

(1)能夠輸出hello

(2)內(nèi)存泄漏

voidTest(void)

(

char*str=(char*)malloc(lOO);

strcpy(str,"hello");

free(str);

if(str!=NULL)

(

strcpy(str,"world");

printf(str);

)

)

請問運行Test函數(shù)會有什么樣的結(jié)果?

答:篡改動態(tài)內(nèi)存區(qū)的內(nèi)容,后果難以預(yù)料,非

常危險。

資料僅供參考

因為free(str);之后,str成為野指針,

if(str!=NULL)語句不起作用。

"28下列程序運行時會崩潰,請找出錯誤并改正,

而且說明原因。”

//voidappend(intN);

〃指針沒有初始化:

//NewNode->left=NULL;

//NewNode->right=NULL;

#include<stdio.h>

#include<malloc.h>

typedefstructTNode{

資料僅供參考

TNode*left;

TNode*right;

intvalue;

}TNode;

TNode*root=NULL;

voidappend(intN);

intmain()

(

append(63);

append(45);

append(32);

append(77);

append(96);

資料僅供參考

append(21);

append(17);//Again,數(shù)字任意給出

return0;

}

voidappend(intN)

(

TNode*NewNode=(TNode

*)malloc(sizeof(TNode));

NewNode->value=N;

NewNode->left=NULL;

NewNode->right=NULL;

if(root==NULL)

(

root=NewNode;

return;

資料僅供參考

else

TNode*temp;

temp=root;

while((N>=temp->value&&temp->left!=NULL)11

(N<temp->value&&temp->right!=NULL))

(

while(N>=temp->value&&temp->left!=NULL)

temp=temp->left;

while(N<temp->value&&temp->right!=NULL)

temp=temp->right;

)

if(N>=temp->value)

temp->left=NewNode;

else

temp->right=NewNode;

return;

資料僅供參考

算法:

1.什么是NPC,NP-Hard?

2.起泡排序的時間復(fù)雜度是多少?

說出至少

溫馨提示

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

評論

0/150

提交評論