※ 引述《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