華為筆試題1、 .h頭文件中的 #ifndef/#define/#endif 的作用?
答:防止該頭文件被重復(fù)引用。
華為筆試題2、 #define DOUBLE(x) x+x int i = 5*DOUBLE(5);i 的值為
答:為30
華為筆試題3、 設(shè)某32位系統(tǒng)下,C++程序,有以下說明和定義:typedef union {int i; int k[5]; char c;} DATE;struct data { char cat; DATE cow; int dog;} too;則語句 printf("%d",sizeof(too)); 的執(zhí)行結(jié)果是:______
答:為28
華為筆試題4、 某些場合中需要用到死循環(huán),這兩個死循環(huán) for(;;) 與 while(1) 哪個代碼更高效(編譯之后的代碼更簡短)?
答:for(;;)
華為筆試題5、 高度為8的平衡二叉樹,至少有______個節(jié)點?
答:54個
華為筆試題6、 某32位系統(tǒng)下,C++程序,請計算sizeof 的值char str[] =? ;char *p = str ;請計算
sizeof (str ) = __ ①___
sizeof ( p ) = ___②___
void Foo ( char str[100]){請計算sizeof( str ) = ___③___}
void *p = malloc( 100 );
請計算sizeof ( p ) = ___④___
答:①17 ②4 ③4 ④4
華為筆試題7、 winsock建立TCP連接的主要實現(xiàn)步驟?
答:服務(wù)器端:socket()建立套接字,綁定(bind)并監(jiān)聽(listen),用accept()等待客戶端連接;發(fā)現(xiàn)有客戶端連接時,建立一個新的套接字,自身重新開始等待連接;該新產(chǎn)生的套接字使用send()和recv()寫讀數(shù)據(jù),直至數(shù)據(jù)交換完畢,調(diào)用closesocket()關(guān)閉套接字?蛻舳耍簊ocket()建立套接字,連接(connect)服務(wù)器,連接上后使用send()和recv()在套接字上寫讀數(shù)據(jù),直至數(shù)據(jù)交換完畢,調(diào)用closesocket()關(guān)閉套接字。