看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《jay750719 (Yes we can !! Da Cin )》之銘言: : 因為很久沒有碰C語言,加上基礎也不好,去面試的題目很簡單的感覺 : 但是不確定想問問大家,回答時可否解說一下,我是想知道為什麼。 : 1. : #define MAX 5 : int prices[MAX]; : What’s wrong in the following statements ? : for (j=0; j<=MAX; j++) : prices[j] = 3; : 我的答案是下面這樣,不知道有沒有錯 : A: : prices[0] = 3, prices[1] = 3, prices[2] = 3, prices[3] = 3, : prices[4] = 3, prices[5] = 3 他問你哪裡錯了,在 j==MAX 的時候 prices[j] 就炸掉了 所以你應該回答要把 <= 改成 < : 2. : int vox = 4; : int *invox = &vox; : Which of the following expression is true? 可複選 : a. if (vox == &invox) : b. if (vox == *invox) : c. if (invox == *vox) : d. if (invox ==&vox) : 我選b d : A:b.d. : 1 2 題我會寫但是也不知道是對是錯 invox -> vox (int*) (int) 答案選b,d : 3. : Execution of the following function may cause the system crash. What : statement must be added to the following statements to make it functions : correctly ? : main() : { : int j, *ptr2j; //ptr2j will be a pointer to j : <-what statement shall be added? : *ptr2j = 3; : } : 這題說要*ptr2j的意思是將指標只想j吧 那*ptr2也可以寫成*ptr2=&j嗎 : 可是我還是不知道要加甚麼在中間才可以正常運作 ptr2j 沒有指向合理的空間,直接丟給他 *ptr2j=3 會炸掉 可以加上 ptr2j=new int; 或是 ptr2j=&j; 都可以 : 4. : What does the expression (0xF0 | 0x32) evaluate to ? : a. 0x32 : b. 0xF0 : c. 0xF2 : d. 0x00 : A:b : 這題我選b 我想應該是0xF0 | 0x32作or可是or好像是||所以??? | 是 bitwise or 0xF0 -> 1111 0000 0x32 -> 0011 0010 ------------------ 1111 0010 -> 0xF2 選c : 5. : unsigned int num = 0xF000; : what does (num >>8) evaluate to ? : a. 0x000f : b. 0x00f0 : c. 0xff00 : d. 0xfff0 : 這題我不知道著麼寫 我是想問0xF000要如何跟num>>8對應 : 0xF000 跟 8的格式??? num >> 8 右移 8 bit num -> 1111 0000 0000 0000 右移 8 bit -> 0000 0000 1111 0000 -> 0x00F0 選b : 也了這是些簡單的題目,但是我是想了解清楚可以學多少算多少。 : 感謝!!! 兩個人一樣的問題一起回答掉 XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.93.29