版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人房產(chǎn)買賣標準協(xié)議樣本(2024年版)版B版
- 個人債權(quán)轉(zhuǎn)讓協(xié)議(2024版)3篇
- 個人手車買賣合同
- 專業(yè)軟件技術(shù)開發(fā)服務(wù)協(xié)議(2024年更新版)版B版
- 二零二四商場LED顯示屏采購與安裝合同
- 2025年度城市綜合體配套廠房建造與裝修承包合同范本4篇
- 2025年度廠房土地開發(fā)及使用權(quán)出讓合同4篇
- 2025年度插座產(chǎn)品售后服務(wù)網(wǎng)絡(luò)建設(shè)合同4篇
- 2025年度科技園區(qū)場地轉(zhuǎn)租及知識產(chǎn)權(quán)保護協(xié)議4篇
- 2024年05月上海華夏銀行上海分行招考筆試歷年參考題庫附帶答案詳解
- 春節(jié)行車安全常識普及
- 電機維護保養(yǎng)專題培訓(xùn)課件
- 汽車租賃行業(yè)利潤分析
- 春節(jié)拜年的由來習(xí)俗來歷故事
- 2021火災(zāi)高危單位消防安全評估導(dǎo)則
- 佛山市服務(wù)業(yè)發(fā)展五年規(guī)劃(2021-2025年)
- 房屋拆除工程監(jiān)理規(guī)劃
- 醫(yī)院保安服務(wù)方案(技術(shù)方案)
- 高效能人士的七個習(xí)慣:實踐應(yīng)用課程:高級版
- 小數(shù)加減法計算題100道
- 通信電子線路(哈爾濱工程大學(xué))智慧樹知到課后章節(jié)答案2023年下哈爾濱工程大學(xué)
評論
0/150
提交評論