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

正文內(nèi)容

c筆試題匯總word版(編輯修改稿)

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

【文章內(nèi)容簡(jiǎn)介】 reinterpret_cast的區(qū)別和應(yīng)用。,int,float,指針類型的變量a 與“零”的比較語(yǔ)句。答案:BOOL : if ( !a ) or if(a)int : if ( a == 0)float : const EXPRESSION EXP = if ( a EXP amp。amp。 a EXP)pointer : if ( a != NULL) or if(a == NULL)define 相比,有何優(yōu)點(diǎn)?答案:1) const 常量有數(shù)據(jù)類型,而宏常量沒有數(shù)據(jù)類型。編譯器可以對(duì)前者進(jìn)行類型安全檢查。而對(duì)后者只進(jìn)行字符替換,沒有類型安全檢查,并且在字符替換可能會(huì)產(chǎn)生意料不到的錯(cuò)誤。2) 有些集成化的調(diào)試工具可以對(duì)const 常量進(jìn)行調(diào)試,但是不能對(duì)宏常量進(jìn)行調(diào)試。?數(shù)組要么在靜態(tài)存儲(chǔ)區(qū)被創(chuàng)建(如全局?jǐn)?shù)組),要么在棧上被創(chuàng)建。指針可以隨時(shí)指向任意類型的內(nèi)存塊。(1)修改內(nèi)容上的差別char a[] = “hello”。a[0] = ‘X’。char *p = “world”。 // 注意p 指向常量字符串p[0] = ‘X’。 // 編譯器不能發(fā)現(xiàn)該錯(cuò)誤,運(yùn)行時(shí)錯(cuò)誤(2) 用運(yùn)算符sizeof 可以計(jì)算出數(shù)組的容量(字節(jié)數(shù))。sizeof(p),p 為指針得到的是一個(gè)指針變量的字節(jié)數(shù),而不是p 所指的內(nèi)存容量。C++/C 語(yǔ)言沒有辦法知道指針?biāo)傅膬?nèi)存容量,除非在申請(qǐng)內(nèi)存時(shí)記住它。注意當(dāng)數(shù)組作為函數(shù)的參數(shù)進(jìn)行傳遞時(shí),該數(shù)組自動(dòng)退化為同類型的指針。char a[] = hello world。char *p = a。cout sizeof(a) endl。 // 12 字節(jié)cout sizeof(p) endl。 // 4 字節(jié)計(jì)算數(shù)組和指針的內(nèi)存容量void Func(char a[100]){cout sizeof(a) endl。 // 4 字節(jié)而不是100 字節(jié)}、覆蓋和隱藏區(qū)別?答案::(1)相同的范圍(在同一個(gè)類中);(2)函數(shù)名字相同;(3)參數(shù)不同;(4)virtual 關(guān)鍵字可有可無(wú)。,特征是:(1)不同的范圍(分別位于派生類與基類);(2)函數(shù)名字相同;(3)參數(shù)相同;(4)基類函數(shù)必須有virtual 關(guān)鍵字。c.“隱藏”是指派生類的函數(shù)屏蔽了與其同名的基類函數(shù),規(guī)則如下:(1)如果派生類的函數(shù)與基類的函數(shù)同名,但是參數(shù)不同。此時(shí),不論有無(wú)virtual關(guān)鍵字,基類的函數(shù)將被隱藏(注意別與重載混淆)。(2)如果派生類的函數(shù)與基類的函數(shù)同名,并且參數(shù)也相同,但是基類函數(shù)沒有virtual 關(guān)鍵字。此時(shí),基類的函數(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__ 。cout__LINE__ 。__FILE__和__LINE__是系統(tǒng)預(yù)定義宏,這種宏并不是在某個(gè)文件中定義的,而是由編譯器定義的。37. main 主函數(shù)執(zhí)行完畢后,是否可能會(huì)再執(zhí)行一段代碼,給出說(shuō)明?答案:可以,可以用_onexit 注冊(cè)一個(gè)函數(shù),它會(huì)在main 之后執(zhí)行int fn1(void), fn2(void), fn3(void), fn4 (void)。void main( void ){String str(zhanglin)。_onexit( fn1 )。_onexit( fn2 )。_onexit( fn3 )。_onexit( fn4 )。printf( This is executed first.\n )。}int fn1(){printf( next.\n )。return 0。}int fn2(){printf( executed )。return 0。}int fn3(){printf( is )。return 0。}int fn4(){printf( This )。return 0。}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++。elsecoutc。endif,要求排序后輸出到另一個(gè)文件中答案:#i ncludeiostream#i ncludefstreamusing namespace std。void Order(vectorintamp。 data) //bubble sort{int count = () 。int tag = false 。 // 設(shè)置是否需要繼續(xù)冒泡的標(biāo)志位for ( int i = 0 。 i count 。 i++){for ( int j = 0 。 j count i 1 。 j++){if ( data[j] data[j+1]){tag = true 。int temp = data[j] 。data[j] = data[j+1] 。data[j+1] = temp 。}}if ( !tag )break 。}}void main( void ){vectorintdata。ifstream in(c:\\)。if ( !in){coutfile error!。exit(1)。}int temp。while (!()){intemp。(temp)。}()。 //關(guān)閉輸入文件流Order(data)。ofstream out(c:\\)。if ( !out){coutfile error!。exit(1)。}for ( i = 0 。 i () 。 i++)outdata[i] 。()。 //關(guān)閉輸出文件流}40. 鏈表題:一個(gè)鏈表的結(jié)點(diǎn)結(jié)構(gòu)struct Node{int data 。Node *next 。}。typedef struct Node Node 。(1)已知鏈表的頭結(jié)點(diǎn)head,寫一個(gè)函數(shù)把這個(gè)鏈表逆序 ( Intel)Node * ReverseList(Node *head) //鏈表逆序{if ( head == NULL || headnext == NULL )return head。Node *p1 = head 。Node *p2 = p1next 。Node *p3 = p2next 。p1next = NULL 。while ( p3 != NULL ){p2next = p1 。p1 = p2 。p2 = p3 。p3 = p3next 。}p2next = p1 。head = p2 。return head 。}(2)已知兩個(gè)鏈表head1 和head2 各自有序,請(qǐng)把它們合并成一個(gè)鏈表依然有序。(保留所有結(jié)點(diǎn),即便大小相同)Node * Merge(Node *head1 , Node *head2){if ( head1 == NULL)return head2 。if ( head2 == NULL)return head1 。Node *head = NULL 。Node *p1 = NULL。Node *p2 = NULL。if ( head1data head2data ){head = head1 。p1 = head1next。p2 = head2 。}else{head = head2 。p2 = head2next 。p1 = head1 。}Node *pcurrent = head 。while ( p1 != NULL amp。amp。 p2 != NULL){if ( p1data = p2data ){pcurrentnext = p1 。pcurrent = p1 。p1 = p1next 。}else{pcurrentnext = p2 。pcurrent = p2 。p2 = p2next 。}}if ( p1 != NULL )pcurrentnext = p1 。if ( p2 != NULL )pcurrentnext = p2 。return head 。}(3)已知兩個(gè)鏈表head1 和head2 各自有序,請(qǐng)把它們合并成一個(gè)鏈表依然有序,這次要求用遞歸方法進(jìn)行。 (Autodesk)答案:Node * MergeRecursive(Node *head1 , Node *head2){if ( head1 == NULL )return head2 。if ( head2 == NULL)return head1 。Node *head = NULL 。if ( head1data head2data ){head = head1 。headnext = MergeRecursive(head1next,head2)。}else{head = head2 。headnext = MergeRecursive(head1,head2next)。}return head 。}41. 分析一下這段程序的輸出 (Autodesk)class B{public:B(){coutdefault constructorendl。}~B(){coutdestructedendl。}B(int i):data(i) //B(int) works as a converter ( int instance of B){coutconstructed by parameter data endl。}private:int data。}。B Play( B b){return b 。}(1) results:int main(int argc, char* argv[]) constructed by parameter 5{ destructed B(5)形參析構(gòu)B t1 = Play(5)。 B t2 = Play(t1)。   destructed t1形參析構(gòu)return 0?!             ?destructed t2 注意順序!} destructed t1(2) results:int main(int argc, char* argv[]) constructed by parameter 5{ destructed B(5)形參析構(gòu)B t1 = Play(5)。 B t2 = Play(10)。   constructed by parameter 10return 0?!             ?destructed B(10)形參析構(gòu)} destructed t2 注意順序!destructed t142. 寫一個(gè)函數(shù)找出一個(gè)整數(shù)數(shù)組中,第二大的數(shù) (microsoft)答案:const int MINNUMBER = 32767 。int find_sec_max( int data[] , int count){int maxnumber = data[0] 。int sec_max = MINNUMBER 。for ( int i = 1 。 i count 。 i++){if ( data[i] maxnumber ){sec_max = maxnumber 。maxnumber = data[i] 。}else{if ( data[i] sec_max )sec_max = data[i] 。}}return sec_max 。}43. 寫一個(gè)在一個(gè)字符串(n)中尋找一個(gè)子串(m)第一個(gè)位置的函數(shù)。KMP算法效率最好,時(shí)間復(fù)雜度是O(n+m)。44. 多重繼承的內(nèi)存分配問(wèn)題:比如有class A : public class B, public class C {}那么A的內(nèi)存結(jié)構(gòu)大致是怎么樣的?這個(gè)是pilerdependent的, 不同的實(shí)現(xiàn)其細(xì)節(jié)可能不同。如果不考慮有虛函數(shù)、虛繼承的話就相當(dāng)簡(jiǎn)單;否則的話,相當(dāng)復(fù)雜??梢詤⒖肌渡钊胩剿鰿++對(duì)象模型》,或者:45. 如何判斷一個(gè)單鏈表是有環(huán)的?(注意不能用標(biāo)志位,最多只能用兩個(gè)額外指針)struct node { char val。 node* next。}bool check(const node* head) {} //return false : 無(wú)環(huán);true: 有環(huán)一種O(n)的辦法就是(搞兩個(gè)指針,一個(gè)每次遞增一步,一個(gè)每次遞增兩步,如果有環(huán)的話兩者必然重合,反之亦然)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1