如下為大家匯總的筆試題目都是微軟最新的內(nèi)容,希望此文的分享對想加入該公司的朋友有幫助!
1.寫出判斷ABCD四個表達式的是否正確, 若正確, 寫出經(jīng)過表達式中 a的值(3分) int a = 4; (A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++); a = ? 答:C錯誤,左側(cè)不是一個有效變量,不能賦值,可改為(++a) += a; 改后答案依次為9,10,10,11 2.某32位系統(tǒng)下, C++程序,請計算sizeof 的值(5分). char str[] = “www.ibegroup.com” char p = str ; int n = 10; 請計算 sizeof (str ) = ?(1) sizeof ( p ) = ?(2) sizeof ( n ) = ?(3) void Foo ( char str[100]){ sizeof( str ) = ?(4) } void p = malloc( 100 ); 請計算 sizeof ( p ) = ?(5) 答:(1)17 (2)4 (3) 4 (4)4 (5)4 3. 回答下面的問題. (4分) (1).頭文件中的 ifndef/define/endif 干什么用?預(yù)處理 答:防止頭文件被重復(fù)引用 (2). #include 和 #include “filename.h” 有什么區(qū)別? 答:前者用來包含開發(fā)環(huán)境提供的庫頭文件,后者用來包含自己編寫的頭文件。 (3).在C++ 程序中調(diào)用被 C 編譯器編譯后的函數(shù),為什么要加 extern “C”聲明? 答:函數(shù)和變量被C++編譯后在符號庫中的名字與C語言的不同,被extern "C"修飾的變量和函數(shù)是按照C語言方式編譯和連接的。由于編譯后的名字不同,C++程序不能直接調(diào)用C 函數(shù)。C++提供了一個C 連接交換指定符號extern“C”來解決這個問題。 (4). switch()中不允許的數(shù)據(jù)類型是? 答:實型 4. 回答下面的問題(6分) (1).Void GetMemory(char p, int num){ p = (char )malloc(num); } void Test(void){ char str = NULL; GetMemory(&str, 100); strcpy(str, "hello"); printf(str); } 請問運行Test 函數(shù)會有什么樣的結(jié)果? 答:輸出“hello” (2). void Test(void){ char str = (char ) malloc(100); strcpy(str, “hello”); free(str); if(str != NULL){ strcpy(str, “world”); printf(str); } } 請問運行Test 函數(shù)會有什么樣的結(jié)果? 答:輸出“world” (3). char GetMemory(void){ char p[] = "hello world"; return p; } void Test(void){ char str = NULL; str = GetMemory(); printf(str); } 請問運行Test 函數(shù)會有什么樣的結(jié)果? 答:無效的指針,輸出不確定 5. 編寫strcat函數(shù)(6分) 已知strcat函數(shù)的原型是char strcat (char strDest, const char strSrc); 其中strDest 是目的字符串,strSrc 是源字符串。 (1)不調(diào)用C++/C 的字符串庫函數(shù),請編寫函數(shù) strcat 答: VC源碼: char __cdecl strcat (char dst, const char src) { char cp = dst; while( cp ) cp++; / find end of dst / while( cp++ = src++ ) ; / Copy src to end of dst / return( dst ); / return dst / } (2)strcat能把strSrc 的內(nèi)容連接到strDest,為什么還要char 類型的返回值? 答:方便賦值給其他變量