close

上一篇有提到面試考試有C語言的測驗

這裡就稍微紀錄一下有考到然後我還記得的題目吧

有幾題是Process和Thread的問題,這些去google就有了

然後有幾題是給你一段程式寫出輸出,就是考一些指標和位元運算的觀念,在這裡稍微紀錄一下

(前面什麼標頭檔、int main()之類的就省略不寫了)

第一題:

    char *a[4] = { "black", "white", "pink", "yellow"};
    char *ptr = a[0];
    ptr++;
    printf("%s\n", ptr);

我這題一看就很直觀的寫了white... 跟個傻B一樣

其實ptr++是表示指標位址加了一位,所以就只是從black的b移到l去而已

所以答案是lack

第二題:

    int x = 30;   //假設x的位址是484 
    int *y, *z;
    y = &x;
    z = y;
    *y++ = *z++;
    x++;
    printf("x = %d, y = %d, z = %d\n", x, y, z);

這題我一開始滿混亂的,後來寫了31,485,485

想當然爾當然錯啊XDDD

稍微分析一下,x=31這個沒什麼爭議

*y++ = *z++;這一行其實不知道在做什麼,因為y和z都是指向x所以兩個值是一樣的,=根本沒作用

但因為最後都++了,這行執行完之後y和z都要加一個位址

所以答案應該對啊,到底我哪裡錯勒

...因為int是4個byte,所以加一位應該是移到488才對,沒注意到這個實在是...XDDD

第三題:

    unsigned a = 0xffff;
    ~a;
    printf("%x", a);

這題答案是ffff

~a不是取補數嗎,為什麼不是0000勒

因為他沒有賦值啊,如果是a=~a的話,答案就是ffff0000了

連這都會錯我也是醉了=ˇ=

 

大概比較記得就是這三題吧,其他大概沒啥爭議就沒記了

基本上沒什麼特別難的,如果很熟的話大概都會對吧

然後我想表達的是... 我就是不熟的那個=ˇ=

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 頁頁頁六滴 的頭像
    頁頁頁六滴

    人森很精彩,所以要把所有事情都記起來=ˇ=

    頁頁頁六滴 發表在 痞客邦 留言(0) 人氣()