目前日期文章:201611 (4)

瀏覽方式: 標題列表 簡短摘要

第一題  : 請擷取出Input中的第七個bit值?

 

-------------------------------------------------------------------------------------------------------------

 

Ans :

此題題意簡單明瞭,解法也不複雜。

步驟一 : 加上一個Mask遮罩( & ),只保留欲取出的bit位置。

步驟二 : 向右shift (7-1) 位元,剩下的就是你要的答案。

 

 

 

 

第二題 : 請擷取出Input中的第N個bit值?

-------------------------------------------------------------------------------------------------------------

 

 

Ans : 此題為上題的延伸,只要仔細觀察一定可以看出規則出來。

Hint : 可用 pow (x, y )  = x^y 來快速算出次方。

 

文章標籤

C 發表在 痞客邦 留言(0) 人氣()

Q :   請寫出將會印出的值

 

 

 

-------------------------------------------------------------------------------------------------------------

 

 

Ans :

此題為簡單的送分題,sizeof函數回傳該變數所佔的byte數並印出,

不同的資料型態的size為基本觀念須熟記。

另外需注意本題的兩個陷阱

1.  計算字串陣列的size大小時,須連同"空白"與最後的"空字符"(Null character) 也一同加進去。

2.  sizeof( *p ) 所代表的是該指標所指向位置的資料型態,此題*p所指向的是char,所以也等於sizeof(char)

     (另外 sizeof (p) 代表的又是不同的意思,可自行寫code試看看結果)

 

 

故答案為

 

文章標籤

C 發表在 痞客邦 留言(0) 人氣()

Q :   請寫出將會印出的值

 

 

Ans :  

首先,*p = a 代表的是 pointer p 指向陣列a的記憶體位置,

而其值也就是該陣列的第一位元,所以此時 *p = 1 。

 

而之後的兩個運算式又可看成

*p++   += 100;

*++p   += 100;

 

++ 在後 優先權最低  先取值 +=100 再 指標後移。

++ 在前 優先權最高  先指標後移 再取值 +=100。

 

故答案為 

 

文章標籤

C 發表在 痞客邦 留言(0) 人氣()

此篇只涉及C語言的基礎概念,熟悉C語言的開發者可跳過此篇。

 

在應徵程式設計師的面試中,常會有該語言的專業測驗,

而專業測驗的成績更會直接影響面試結果,

故在面試前好好熟悉該語言是非常重要的。

 

 

以下為真實面試考題分享:

第一題 : 請寫出將會印出的值

 

Ans : 答案為-2,相信大家都答得出來。

 

第二題 : 請寫出將會印出的值

 

Ans : 答案為15,當寫成 if ( a = 10)時,  a會被改值為 10

而又因為括號內為大於0的值 = True , 故印出的值為 a + b 

 

 

若以上兩題都能輕鬆解答的人,代表您對於C語言有一定程度的理解,

而第三題考的是 您對於程式熟悉度與coding的靈活性。

 

 

 

第三題 : 以上兩題可看出 (a == 10) 與 (a = 10),此兩條件式的誤植,

會造成答案的巨大差異,請問有何種方式可完全避免此問題?

 

Ans :  將條件式寫相反 (10 == a), 程式依然可正確執行。

而若誤植為 (10 = a),因為10無法賦予值,將無法編譯成功。

 

文章標籤

C 發表在 痞客邦 留言(0) 人氣()