freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c筆試題匯總word版-在線(xiàn)瀏覽

2025-05-29 22:29本頁(yè)面
  

【正文】 a。strcpy(m_data,)。}String::~String(){delete []m_data 。14. #i nclude 與 #i nclude 的區(qū)別?答:前者是從Standard 。通常,在模塊的頭文件中對(duì)本模塊提供給其它模塊引用的函數(shù)和全局變量以關(guān)鍵字extern聲明。這樣,模塊B中調(diào)用模塊A中的函數(shù)時(shí),在編譯階段,模塊B雖然找不到該函數(shù),但是并不會(huì)報(bào)錯(cuò);它會(huì)在連接階段中從模塊A編譯生成的目標(biāo)代碼中找到此函數(shù)extern C是連接申明(linkage declaration),被extern C修飾的變量和函數(shù)是按照C語(yǔ)言方式編譯和連接的,來(lái)看看C++中對(duì)類(lèi)似C的函數(shù)是怎樣編譯的:作為一種面向?qū)ο蟮恼Z(yǔ)言,C++支持函數(shù)重載,而過(guò)程式語(yǔ)言C則不支持。例如,假設(shè)某個(gè)函數(shù)的原型為:void foo( int x, int y )。_foo_int_int 這樣的名字包含了函數(shù)名、函數(shù)參數(shù)數(shù)量及類(lèi)型信息,C++就是靠這種機(jī)制來(lái)實(shí)現(xiàn)函數(shù)重載的。同樣地,C++中的變量除支持局部變量外,還支持類(lèi)成員變量和全局變量。而本質(zhì)上,編譯器在進(jìn)行編譯時(shí),與函數(shù)的處理相似,也為類(lèi)中的變量取了一個(gè)獨(dú)一無(wú)二的名字,這個(gè)名字與用戶(hù)程序中同名的全局變量名字不同。endif  在模塊B中引用該函數(shù):// 模塊B實(shí)現(xiàn)文件?。 nclude foo(2,3)。endif  在模塊B的實(shí)現(xiàn)文件中仍然調(diào)用foo( 2,3 ),其結(jié)果是:(1)模塊A編譯生成foo的目標(biāo)代碼時(shí),沒(méi)有對(duì)其名字進(jìn)行特殊處理,采用了C語(yǔ)言的方式;(2)連接器在為模塊B的目標(biāo)代碼尋找foo(2,3)調(diào)用時(shí),尋找的是未經(jīng)修改的符號(hào)名_foo。所以,可以用一句話(huà)概括extern “C”這個(gè)聲明的真實(shí)目的(任何語(yǔ)言中的任何語(yǔ)法特性的誕生都不是隨意而為的,來(lái)源于真實(shí)世界的需求驅(qū)動(dòng)。  明白了C++中extern C的設(shè)立動(dòng)機(jī),我們下面來(lái)具體分析extern C通常的使用技巧:extern C的慣用法(1)在C++中引用C語(yǔ)言中的函數(shù)和變量,在包含C語(yǔ)言頭文件()時(shí),需進(jìn)行下列處理:extern C{#i nclude }而在C語(yǔ)言的頭文件中,對(duì)其外部函數(shù)只能指定為extern類(lèi)型,C語(yǔ)言中不支持extern C聲明, C時(shí)會(huì)出現(xiàn)編譯語(yǔ)法錯(cuò)誤。endif/* c語(yǔ)言實(shí)現(xiàn)文件: */#i nclude int add( int x, int y ){return x + y。return 0。(2)在C中引用C++語(yǔ)言中的函數(shù)和變量時(shí),C++的頭文件需添加extern C,但是在C語(yǔ)言中不能直接引用聲明了extern C的該頭文件,應(yīng)該僅將C文件中將C++中定義的extern C函數(shù)聲明為extern類(lèi)型。endif//C++實(shí)現(xiàn)文件 #i nclude int add( int x, int y ){return x + y。int main( int argc, char* argv[] ){add( 2, 3 )。}15題目的解答請(qǐng)參考《C++中extern “C”含義深層探索》注解:16. 關(guān)聯(lián)、聚合(Aggregation)以及組合(Composition)的區(qū)別?涉及到UML中的一些概念:關(guān)聯(lián)是表示兩個(gè)類(lèi)的一般性聯(lián)系,比如“學(xué)生”和“老師”就是一種關(guān)聯(lián)關(guān)系;聚合表示hasa的關(guān)系,是一種相對(duì)松散的關(guān)系,聚合類(lèi)不需要對(duì)被聚合類(lèi)負(fù)責(zé),如下圖所示,用空的菱形表示聚合關(guān)系:從實(shí)現(xiàn)的角度講,聚合可以表示為:class A {...} class B { A* a。 ...}參考文章:,并簡(jiǎn)單敘述之?1. 封裝:將客觀(guān)事物抽象成類(lèi),每個(gè)類(lèi)對(duì)自身的數(shù)據(jù)和方法實(shí)行protection(private, protected,public)2. 繼承:廣義的繼承有三種實(shí)現(xiàn)形式:實(shí)現(xiàn)繼承(指使用基類(lèi)的屬性和方法而無(wú)需額外編碼的能力)、可視繼承(子窗體使用父窗體的外觀(guān)和實(shí)現(xiàn)代碼)、接口繼承(僅使用屬性和方法,實(shí)現(xiàn)滯后到子類(lèi)實(shí)現(xiàn))。3. 多態(tài):是將父對(duì)象設(shè)置成為和一個(gè)或更多的他的子對(duì)象相等的技術(shù),賦值之后,父對(duì)象就可以根據(jù)當(dāng)前賦值給它的子對(duì)象的特性以不同的方式運(yùn)作。18. 重載(overload)和重寫(xiě)(overried,有的書(shū)也叫做“覆蓋”)的區(qū)別???嫉念}目。重寫(xiě):是指子類(lèi)重新定義復(fù)類(lèi)虛函數(shù)的方法。如,有兩個(gè)同名函數(shù):function func(p:integer):integer。那么編譯器做過(guò)修飾后的函數(shù)名稱(chēng)可能是這樣的:int_func、str_func。也就是說(shuō),它們的地址在編譯期就綁定了(早綁定),因此,重載和多態(tài)無(wú)關(guān)!重寫(xiě):和多態(tài)真正相關(guān)。因此,這樣的函數(shù)地址是在運(yùn)行期綁定的(晚綁定)。20. ?除了“能夠讓?xiě)?yīng)用程序處理存儲(chǔ)于DBMS 中的數(shù)據(jù)“這一基本相似點(diǎn)外,兩者沒(méi)有太多共同之處。 體系不同于COM 體系, 接口也就完全不同于ADO和OLE DB 接口, 和ADO是兩種數(shù)據(jù)訪(fǎng)問(wèn)方式。21. New delete 與malloc free 的聯(lián)系與區(qū)別?答案:都是在堆(heap)上進(jìn)行動(dòng)態(tài)的內(nèi)存操作。delete 會(huì)調(diào)用對(duì)象的destructor,而free 不會(huì)調(diào)用對(duì)象的destructor.22. define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?答案:i 為30。24. C++是不是類(lèi)型安全的?答案:不是。C是類(lèi)型安全的。26. 描述內(nèi)存分配方式以及它們的區(qū)別?1) 從靜態(tài)存儲(chǔ)區(qū)域分配。例如全局變量,static 變量。在執(zhí)行函數(shù)時(shí),函數(shù)內(nèi)局部變量的存儲(chǔ)單元都可以在棧上創(chuàng)建,函數(shù)執(zhí)行結(jié)束時(shí)這些存儲(chǔ)單元自動(dòng)被釋放。3) 從堆上分配,亦稱(chēng)動(dòng)態(tài)內(nèi)存分配。動(dòng)態(tài)內(nèi)存的生存期由程序員決定,使用非常靈活,但問(wèn)題也最多。struct 和 class 在其他方面是功能相當(dāng)?shù)摹8杏X(jué)上結(jié)構(gòu)僅僅象一堆缺乏封裝和功能的開(kāi)放的內(nèi)存位,而類(lèi)就象活的并且可靠的社會(huì)成員,它有智能服務(wù),有牢固的封裝屏障和一個(gè)良好定義的接口。 中沒(méi)有聲明任何成員變量與成員函數(shù),這時(shí)sizeof(A)的值是多少,如果不是零,請(qǐng)解釋一下編譯器為什么沒(méi)有讓它為零。舉個(gè)反例,如果是零的話(huà),聲明一個(gè)class A[10]對(duì)象數(shù)組,而每一個(gè)對(duì)象占用的空間是零,這時(shí)就沒(méi)辦法區(qū)分A[0],A[1]…了。30. 比較C++中的4種類(lèi)型轉(zhuǎn)換方式?請(qǐng)參考:,重點(diǎn)是static_cast, dynamic_cast和reinterpret_cast的區(qū)別和應(yīng)用。答案:BOOL : if ( !a ) or if(a)int : if ( a == 0)float : const EXPRESSION EXP = if ( a EXP amp。 a EXP)pointer : if ( a != NULL) or if(a == NULL)define 相比,有何優(yōu)點(diǎn)?答案:1) const 常量有數(shù)據(jù)類(lèi)型,而宏常量沒(méi)有數(shù)據(jù)類(lèi)型。而對(duì)后者只進(jìn)行字符替換,沒(méi)有類(lèi)型安全檢查,并且在字符替換可能會(huì)產(chǎn)生意料不到的錯(cuò)誤。?數(shù)組要么在靜態(tài)存儲(chǔ)區(qū)被創(chuàng)建(如全局?jǐn)?shù)組),要么在棧上被創(chuàng)建。(1)修改內(nèi)容上的差別char a[] = “hello”。char *p = “world”。 // 編譯器不能發(fā)現(xiàn)該錯(cuò)誤,運(yùn)行時(shí)錯(cuò)誤(2) 用運(yùn)算符sizeof 可以計(jì)算出數(shù)組的容量(字節(jié)數(shù))。C++/C 語(yǔ)言沒(méi)有辦法知道指針?biāo)傅膬?nèi)存容量,除非在申請(qǐng)內(nèi)存時(shí)記住它。char a[] = hello world。cout sizeof(a) endl。 // 4 字節(jié)計(jì)算數(shù)組和指針的內(nèi)存容量void Func(char a[100]){cout sizeof(a) endl。,特征是:(1)不同的范圍(分別位于派生類(lèi)與基類(lèi));(2)函數(shù)名字相同;(3)參數(shù)相同;(4)基類(lèi)函數(shù)必須有virtual 關(guān)鍵字。此時(shí),不論有無(wú)virtual關(guān)鍵字,基類(lèi)的函數(shù)將被隱藏(注意別與重載混淆)。此時(shí),基類(lèi)的函數(shù)被隱藏(注意別與覆蓋混淆)35. There are two int variables: a and b, don’t use “if”, “? :”, “switch”or other judgement statements, find out the biggest one of the two numbers.答案:( ( a + b ) + abs( a b ) ) / 236. 如何打印出當(dāng)前源文件的文件名以及源文件的當(dāng)前行號(hào)?答案:cout __FILE__ 。__FILE__和__LINE__是系統(tǒng)預(yù)定義宏,這種宏并不是在某個(gè)文件中定義的,而是由編譯器定義的。void main( void ){String str(zhanglin)。_onexit( fn2 )。_onexit( fn4 )。}int fn1(){printf( next.\n )。}int fn2(){printf( executed )。}int fn3(){printf( is )。}int fn4(){printf( This )。}The _onexit function is passed the address of a function (func) to be called when the program terminates normally. Successive calls to _onexit create a register of functions that are executed in LIFO (lastinfirstout) order. The functions passed to _onexit cannot take parameters.38. 如何判斷一段程序是由C 編譯程序還是由C++編譯程序編譯的?答案:ifdef __cpluspluscoutc++。endif,要求排序后輸出到另一個(gè)文件中答案:#i ncludeiostream#i ncludefstreamusing namespace std。 data) //bubble sort{int count = () 。 // 設(shè)置是否需要繼續(xù)冒泡的標(biāo)志位for ( int i = 0 。 i++){for ( int j = 0 。 j++){if ( data[j] data[j+1]){tag = true 。data[j] = data[j+1] 。}}if ( !tag )break 。ifstream in(c:\\)。exit(1)。while (!()){intemp。}()。ofstream out(c:\\)。exit(1)。 i () 。()。Node *next 。typedef struct Node Node 。Node *p1 = head 。Node *p3 = p2next 。while ( p3 != NULL ){p2next = p1 。p2 = p3 。}p2next = p1 。return head 。(保留所有結(jié)點(diǎn),即便大小相同)Node * Merge(Node *head1 , Node *head2){if ( head1 == NULL)return head2 。Node *head = NULL 。Node *p2 = NULL。p1 = head1next。}else{head = head2 。p1 = head1 。while ( p1 != NULL amp。 p2 != NULL){if ( p1data = p2data ){pcurrentnext = p1 。p1 = p1next 。pcurrent = p2 。}}if ( p1 != NULL )pcurrentnext = p1 。return head 。 (Autodesk)答案:Node * MergeRecursive(Node *head1 , Node *head2){if ( head1 == NULL )return head2 。Node *head = NULL 。headnext = MergeRecursive(head1next,head2)。headnext = MergeRecursive(head1,head2next)。}41. 分析一下這段程序的輸出 (Autodesk)class B{public:B(){coutdefault constructorendl。}B(int i):data(i) //B(int) works as a converter ( int
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1