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

做者 謝恩銘,公衆號「程序員聯盟」(微信號:coderhub)。 轉載請註明出處。 原文:www.jianshu.com/p/30d4754ea…程序員

《C語言探索之旅》全系列編程

內容簡介


  1. 前言
  2. 練習題
  3. 練習題答案
  4. 習做
  5. 第三部分第一課預告

1. 前言


上一課和上上一課咱們完成了一個遊戲:數組

這一課咱們來作一些練習題,還有一個小的習做。函數

這些練習題是幫助你們鞏固知識的,其實不難。不看答案來完成這 15 道題目吧,都是單選題。學習

2. 練習題


1.什麼是全局變量?測試

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

2.當咱們引入標準庫的頭文件,使用相似以下的哪種方式?spa

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

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

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

4.若是我寫 &variable,我獲得的是什麼?

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

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. 當咱們丟失一個指向字符串的指針時形成的內存泄露

3. 練習題答案


  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

4. 習做


《用本身的語言解釋指針》

老是我說,可能有點嘮叨。這回換聽官們說說唄。

指針是 C語言的精華,也是 C語言之因此很靈活強大且具備陷阱的緣由。

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

因此在本次的「習做」中,咱們要求你用本身的語言來解釋指針,看看你們理解得如何。

若是記不太清楚了,請你們複習咱們以前關於指針的那一課:C語言探索之旅 | 第二部分第二課:進擊的指針,C語言的王牌!

將你的解釋發在留言中便可。

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

即便你不留言,也請本身多看看指針的知識點,能夠閱讀《C和指針》,《C專家編程》,《C語言深度解剖》等書。

5. 第三部分第一課預告


今天的課就到這裏,一塊兒加油吧!

下一課:C語言探索之旅 | 第三部分第一課:鏈表


我是 謝恩銘,公衆號「程序員聯盟」(微信號:coderhub)運營者,慕課網精英講師 Oscar 老師,終生學習者。 熱愛生活,喜歡游泳,略懂烹飪。 人生格言:「向着標杆直跑」

相關文章
相關標籤/搜索