是當時面創維數字的筆試題,題目比較簡單,只涉及到了基本的C語法,沒有考到數據結構以及算法,試題在前面說明這套題並不能反映應聘者實際的軟件開發及編程能力。
一、請填寫BOOL , float, 指針變量 與“零值”比較的 if 語句。(10分)
請寫出 BOOL flag 與“零值”比較的 if 語句。
if ( flag )
if ( !flag )
請寫出 float x 與“零值”比較的 if 語句。
const float EPSINON = 0.00001;
if ((x >= - EPSINON) && (x <= EPSINON)
不可將浮點變量用“==”或“!=”與數字比較,應該設法轉化成“>=”或“<=”此類形式。
請寫出 char *p 與“零值”比較的 if 語句。
if (p == NULL)
if (p != NULL)
二、以下爲Windows NT下的32位C++程序,請計算sizeof的值(10分)
char str[] = “Hello” ;
char *p = str ;
int n = 10;
請計算
sizeof (str ) = 6 (2分)
sizeof ( p ) = 4 (2分)
sizeof ( n ) = 4
void Func ( char str[100])
{
請計算
sizeof( str ) = 4 (2分)
}
void *p = malloc( 100 );
請計算
sizeof ( p ) = 4 (2分)
三、簡答題(25分)
1、頭檔案中的 ifndef/define/endif 幹什麼用?(5分)
答:防止該頭檔案被重複引用。
2、#include <filename.h> 和 #include “filename.h” 有什麼區別?(5分)
答:對於#include <filename.h> ,編譯器從標準庫路徑開始搜尋 filename.h
對於#include “filename.h” ,編譯器從用戶的工作路徑開始搜尋 filename.h
3、const 有什麼用途?(請至少說明兩種)(5分)