創維數字筆試題(精華)
這是當時面創維數字的筆試題,題目比較簡單,只涉及到了基本的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分)
答:(1)可以定義 const 常量
(2)const可以修飾函式的引數、返回值,甚至函式的定義體。被const修飾的東西都受到強制保護,可以預防意外的變動,能提高程式的健壯性。
4、在C++ 程式中呼叫被 C編譯器編譯後的函式,為什麼要加 extern “C”? (5分)
答:C++語言支援函式過載,C語言不支援函式過載。函式被C++編譯後在庫中的名字與C語言的不同。假設某個函式的原型為: void foo(int x, int y);
該函式被C編譯器編譯後在庫中的名字為_foo,而C++編譯器則會產生像_foo_int_int之類的名字。
C++提供了C連線交換指定符號extern“C”來解決名字匹配問題。
四、有關記憶體的思考題(每小題5分,共20分)
一.
void GetMemory(char *p)
{
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
GetMemory(str);
strcpy(str, "hello world");
printf(str);
}
請問執行Test函式會有什麼樣的結果?
答:試題傳入GetMemory( char *p )函式的形參為字串指標,在函式內部修改形參並不能真正的改變傳入形參的值,執行完 char *str = NULL; GetMemory( str ); 後的str仍然為NULL;
二.
char *GetMemory(void)
{
char p[] = "hello world";
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
printf(str);
}
請問執行Test函式會有什麼樣的結果?
答:可能是亂碼。 char p[] = "hello world";
return p;
的p[]陣列為函式內的區域性自動變數,在函式返回後,記憶體已經被釋放。這是許多程式設計師常犯的錯誤,其根源在於不理解變數的生存期。
三.
void GetMemory2(char **p, int num)
{
p = (char *)malloc(num);}
void Test(void)
{
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello");
printf(str);
}
請問執行Test函式會有什麼樣的結果?
答:
(1)能夠輸出hello (2 )Test函式中也未對malloc的記憶體進行釋放。(3)GetMemory避免了試題1的問題,傳入GetMemory的引數為字串指標的指標,但是在GetMemory中執行申請記憶體及賦值語句
p = (char *) malloc( num );-
Yahoo筆試歸來
週三接到筆試通知,開始很高興,但是後來發現越來越多的人收到了通知,開始懷疑是否投的都被叫去筆試了。這個咱管不著,做好自己的事情就可以了。到了現場,真的是有如新生報到一樣,四個大教室,當時以為這也罷了,但考完才知道後面還有另一場,不知道是隻有這兩場還是全天都在...
-
盛大筆經(經歷而不是經驗)
1)髮捲子速度慢。。。恩2)公共卷是些邏輯,填數列,圖形填空什麼的iq題,難度一般(我就前兩個數列題卡住了。。。0,10,24,68,?)==3)遊戲軟體工程師的專業題有些選做題是分兩個方向的,要麼選做socket要麼選directx,想都不用想就選了前者=.=題目難度還可以,就是有些指標,記憶體...
-
馬士基筆試題
馬士基筆試題馬士基每年錄取者和參加應聘者的比例是1:1000,極高的淘汰率讓能進入馬士基的人成為一個神話。由於參加筆試者不用做任何準備,既不用準備英語,也不用回答諸如“為何要進我們公司”或者“你有什麼特長”的問題,因此流傳甚廣的“另類”筆試題還是吸引了一大批參...
-
浪潮筆試試題回憶
考題發下來之後,大體看了一下,54分的填空選擇,26分的程式設計題,考題涉及的內容比較多,有作業系統,資料庫,面向物件,網路模型,C語言基本知識等等,似乎還有一些計算機基礎知識,比如win98和win2k誰是16位作業系統,誰是32位作業系統這樣的題目。出來之後我問了問工作人員,軟體研發...