本試題僅用於考查C++/C程式設計師的基本程式設計技能。 內容限於C++/C常用語法,不涉及資料結構、演算法以及深奧的語法。 考試成績能反映出考生的程式設計質量以及對C++/C的理解程度, 但不能反映考生的智力和軟體開發能力。 筆試時間90分鐘。請考生認真答題,切勿輕視。 一、請填寫BOOL , float, 指標變數 與"零值"比較的 if 語句。 (10分) 提示:這裡"零值"可以是0, 0.0 , FALSE或者"空指標"。 例如 int 變數 n 與"零值"比較的 if 語句為: if ( n == 0 ) if ( n != 0 ) 以此類推。 請寫出 BOOL flag 與"零值"比較的 if 語句: 請寫出 float x 與"零值"比較的 if 語句: 請寫出 char *p 與"零值"比較的 if 語句: 二、以下為Windows NT下的32位C++程式,請計算sizeof的值(10分) char str[] = "Hello" ; char *p = str ;int n = 10; 請計算 sizeof (str ) = sizeof ( p ) = sizeof ( n ) = void Func ( char str[100]) {請計算 sizeof( str ) = } void *p = malloc( 100 ); 請計算sizeof ( p ) = 三、簡答題(25分) 1、標頭檔案中的 ifndef/define/endif 幹什麼用? 2、#include 和 #include "filename.h" 有什麼區別? 3、const 有什麼用途?(請至少說明兩種) 4、在C++ 程式中呼叫被 C編譯器編譯後的函式, 為什麼要加 extern "C"宣告? 5、請簡述以下兩個for迴圈的優缺點 // 第一個for (i=0; i {if (condition) DoSomething(); else DoOtherthing();} 優點:缺點: // 第二個if (condition) {for (i=0; i DoSomething();} else{ for (i=0; i 優點:缺點: 四、有關記憶體的思考題(20分) void GetMemory(char *p) { p = (char *)malloc(100); } void Test(void) { char *str = NULL;GetMemory(str); strcpy(str, "hello world"); printf(str); }請問執行Test函式會有什麼樣的結果?答: char *GetMemory(void) { char p[] = "hello world"; return p; } void Test(void) { char *str = NULL; str = GetMemory(); 相關文章:
|