C語言探索之旅 | 第二部分第十一課:練習題和習作

1240

-- 簡書作者 謝恩銘 轉載請註明出處

第二部分第十一課:練習題和習作


上一課和上上一課我們完成了一個遊戲:

這些練習題是幫助大家鞏固知識的,其實不難,特別對於有編程經驗的人來說。

不看答案來完成這15道題目吧,都是單選題。

練習題


  • 1.什麼是全局變量?

    A. 可以在隨處被訪問的變量
    B. 變量類型任意的變量
    C. 聲明在main函數裏的變量

  • 2.當我們引入標準庫的頭文件,使用類似如下的哪一種方式?

    A. #include <time.h>
    B. #include "time.h"
    C. #include {time.h}
    D. #include [time.h]

  • 3.C語言的編譯按如下那種順序進行?(這裏其實還省略了一步:彙編(用到彙編器,就不贅述了))

    A. 預處理 -> 編譯 -> 鏈接
    B. 編譯 -> 鏈接 -> 預處理
    C. 鏈接 -> 預處理 -> 編譯
    D. 預處理 -> 鏈接 -> 編譯

  • 4.如果我寫 &toto,我得到的是什麼?

    A. toto的地址
    B. toto的值
    C. toto指向的變量的值

  • 5.我們用什麼值來初始化指針?

    A. NOTHING
    B. 1
    C. NULL
    D. MAIN
    E. 0_ADDRESS

  • 6.有代碼如下:

    int number = 8;
    int *pointer = &number;

    假設number位於內存地址5000處,而pointer這個指針位於內存地址2500處,那麼如果在接下來的程序中打印 *pointer 的值,是什麼呢?

    A. 5000
    B. 2500
    C. 8
    D. 無可預知

  • 7.數組的下標從幾開始?

    A. 0
    B. 1
    C. -1

  • 8.下面哪行代碼是用於創建有10個double變量的數組?

    A. double *array[10];
    B. double array{10};
    C. double array[10];
    D. double array[9];

  • 9.以下程序有一個錯誤,是哪一個?

    int main(int argc, char *argv[])
    {
      char city[100];
      printf("請問您住在哪個城市 ? ");
      scanf("%s", &city);
      printf("您住在 %s, 這個城市我很熟悉 !", city);
      return 0;
    }

    A. 第二個printf中的city前少了&號
    B. 在city數組的定義中,city前少了*號
    C. 在scanf的city前多了&號

  • 10.哪一個預處理命令表明 #if的結束?

    A. #elif
    B. #endif
    C. #ifdef
    D. #ifndef

  • 11.結構體裏面可以包含數組嗎?

    A. 可以
    B. 不可以
    C. 可以,但僅當數組都是同一種類型時

  • 12.爲什麼通常我們更喜歡用一個函數來初始化結構體?

    A. 一旦結構體做了修改,我們不需要在程序中重做此結構體的所有初始化
    B. 對電腦來說,這樣速度更快
    C. 這可以把我的代碼變成C++形式的

  • 13.在打開一個文件後總是應該做什麼事情?

    A. 關閉文件
    B. 測試文件指針的有效性
    C. 清空文件內容
    D. 把光標放在文件首位置

  • 14.如下代碼有什麼作用?

    malloc(sizeof(int) * 25);

    A. 在內存中申請一個25字節的int型變量
    B. 在內存中申請一個int型數組,數組包含25個元素
    C. 在內存中申請一個25字節的float型變量
    D. 在內存中申請一個float型數組,數組包含25個元素

  • 15.什麼是緩衝區溢出?

    A. 存儲的字符串超出了緩衝區的最大容量
    B. 在讀緩衝區時進入了死循環
    C. 當我們丟失一個指向字符串的指針時造成的內存泄露

練習題答案


  1. A
  2. A
  3. A
  4. A
  5. C
  6. C
  7. A
  8. C
  9. C
  10. B
  11. A
  12. A
  13. B
  14. B
  15. A

習作


《用自己的語言解釋指針》

總是小編說,可能有點嘮叨。這回換聽官們說說唄。

指針是C語言的精華,也是C語言之所以很靈活強大且具有陷阱的原因。

如果學習C語言,不理解指針,那就沒掌握精髓。

所以在本次的“習作”中,我們要求大家用自己的語言(當然是中文啊,你不要給我用英語或其他語言... 哈哈)來解釋指針,看看大家理解得如何。

如果記不太清楚了,請大家複習我們之前關於指針的那一課:《指針,C語言的王牌》。

將您的解釋用留言的形式發在簡書裏即可。

不要一上來就長篇大論,先捋一捋一些指針的基本概念會更好。

我會回覆的。

即使你不留言,也請自己多看看指針的知識點,可以閱讀《C和指針》,《C專家編程》,《C語言深度解剖》等書。

第三部分第一課預告:


今天的課就到這裏,一起加油吧。

下一次我們學習: 安裝SDL

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章