分類
日記

程式設計課的期中考

「程序導向程式設計」這門課的期中考出了以下題目。如果熟悉陣列與指標的關係,大概就能答出來吧。想挑戰看看嗎?

(假設 sizeof(int) 的結果為 4 。)

題目

  1. 請寫出以下程式的輸出。

    [c]int main(int argc, char **argv)
    {
    int a[5][10][15];

    printf("%d\n", sizeof(a));

    return 0;
    }[/c]

  2. 請寫出以下程式的輸出。

    [c]int main(int argc, char **argv)
    {
    int a[5][10][15];

    printf("%d\n", sizeof(a[2]));

    return 0;
    }[/c]

  3. 請寫出以下程式的輸出。

    [c]int main(int argc, char **argv)
    {
    int a[5][10][15];

    printf("%d\n", sizeof(a[2][4]));

    return 0;
    }[/c]

  4. 請寫出以下程式的輸出。

    [c]int main(int argc, char **argv)
    {
    int a[5][10][15];

    printf("%d\n", &a[2] – &a[0]);

    return 0;
    }[/c]

  5. 請寫出以下程式的輸出。

    [c]int main(int argc, char **argv)
    {
    int a[5][10][15];

    printf("%d\n", a[2] – a[0]);

    return 0;
    }[/c]

  6. 請寫出以下程式的輸出。

    [c]int main(int argc, char **argv)
    {
    int a[5][10][15];

    printf("%d\n", a[2][0] – a[0][0]);

    return 0;
    }[/c]

  7. 請以一行指令宣告指標 p ,使其相當於a[5][10][15]中的a。

  8. 請以一行指令宣告指標 p ,使其相當於a[5][10][15]中的a[2]。

  9. 請以一行指令宣告指標 p ,使其相當於a[5][10][15]中的a[2][4]。

  10. 有一陣列a[256]。請以一行指令宣告指標 p ,使得p[1]相當於a[0],p[2]相當於a[1],……p[256]相當於a[255]。

答案

  1. 3000
  2. 600
  3. 60
  4. 2
  5. 20
  6. 300
  7.  [c]int (*p)[10][15] = a;[/c]或[c]int (*p)[10][15] = &a[0];[/c]
  8.  [c]int (*p)[15] = a[2];[/c]或[c]int (*p)[15] = &a[2][0];[/c]
  9.  [c]int *p = a[2][4];[/c]或[c]int *p = &a[2][4][0];[/c]
  10.  [c]int *p = a – 1;[/c]或[c]int *p = &a[- 1];[/c]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *