C 程式語言線上教材

這一套教材基本上是按照以下這本書編寫的。

B. W. Kernighan, D. M. Ritchie, The C Programming Language, 2nd ed. Prentice-Hall, 1988.
Ritchie 是 C 語言的發明人。 雖然發明人未必是最好的說明人,但是我發現 Ritchie 的文章也是很好的。 而且,這本書的合作者 Kernighan 是在貝爾實驗室實施教育訓練的人, 他的專長應該就是說明技術細節、和設計教材。 就我個人而言,我認為這本書是極少數的讓我讀起來感到愉快的電腦技術性書籍。

在這份教材中,我們稱以上那本書為 [K&R2]。

這本書已經有中文翻譯本。但是我自己從未讀過,不知該不該推薦。

我們假設的學習環境,是 UNIX 作業系統。 最好能有 gcc 編譯程式,有 screen 模擬文字視窗的功能。

[ 相逢篇 ]‧[ 認識篇 ]‧ [ 交遊篇 ]‧[ 追求篇 ]

    C 程式語言---相逢篇

  1. 預備工具
  2. hello, world---hello.c
  3. 檔頭與註解
  4. C 的字 (word)、語句 (expression) 和指令 (statement)
  5. 函式 (function)
  6. 標準函式庫 (standard library)
  7. 整數變數 int---fahr-int.c
  8. printf() 與跳脫字元 \ (escape character)
  9. 宣告 vs 定義
  10. 整數計算
  11. 浮點數變數 double---fahr-float.c
  12. 其他資料型態與它們之間的轉換 (charshort)
  13. 流程控制 (flow control)---f2c-straight.c
  14. while---f2c-while.c
  15. 邏輯計算
  16. 排版格式 (indentation)
  17. 原始碼的可讀性、符號常數 (symbolic constant)---f2c-sym.c
  18. for---f2c-for.c f2c-whfor.c
  19. 更多的迭代範例
  20. 再多點兒技巧的迭代範例
  21. getchar()putchar()---mycat0.c
  22. 標準輸入裝置 stdin
  23. 為什麼 getchar() 要儲存到 int 資料型態的變數?
  24. 優先序與左右傾觀念---mycat.c
  25. sizeof 和 ++、-- 運算---nc-long.cnc-double.cnc-whfor.c
  26. if---nl.c
  27. 廣義字,if-else|| 算子---mywc.c
  28. ||&& 算子
  29. 層層相套的 if-else
  30. 數學函式 <math.h>---test-pow.ctest-ceil.c


  31. C 程式語言---認識篇

  32. 序列 array 資料結構---digits-ifelse.cdigits.c
  33. 序列編號---toolong.c
  34. ++ 的前後差別意義
  35. 序列計算的範例---demo-stats.cprime.c
  36. 雙足標序列---test-matrix.c
  37. 矩陣與向量計算範例---demo-dot.cdemo-mvmul.c
  38. 使用者自定函式---test-ipow.c
  39. 使用函式做數學計算的範例---newton-iteration.ctrapezoidal.ccollatz.c
  40. 遞迴---fac()
  41. 更多遞迴的範例---choose()
  42. +=-=*=/=%= 運算符號
  43. void---test-void.c
  44. address-of 運算符號---test-address.c
  45. scanf() 函式---test-scanf.cstats-scanf.cg58.txt
  46. 指標資料型態 (pointer)---test-pointer.c
  47. 讀取磁碟檔案---test-getc.c
  48. 寫入磁碟檔案---test-putc.c
  49. 格式化讀寫檔案---stats-fscanf.ctest-fprintf.c
  50. stdin 和 stdout
  51. de-reference 運算符號
  52. Call by Value---test-callvalue.cipow() 第二版
  53. Call by Name---test-callname-ref.ctest-callname-arr.c
  54. Call by Name   vs   Call by Value
  55. 向量值函數的範例---demo-polar.c
  56. 字串 (String)---printf-string.c
  57. 字串銜接與複製
  58. main() 函式的返回值---main-return.c
  59. 用 return 中斷函式
  60. main() 函式的輸入參數 stats-arg
  61. stderr


  62. C 程式語言---交遊篇

  63. 再談關於字 (word) 的規則
  64. 再談資料型態與含量---test-char.cint2char.c
  65. 再談常數
  66. 一次讀一列字元的函式:getline()---cline.cgetline()
  67. 當佇列滿溢的解決範例---maxline.c
  68. 字串與函式的應用範例---dewhite.c
  69. 字串與 <string.h>---test-strlen.ctest-strlen.c
  70. 再談 printf() 的輸出格式---pow2_113.c
  71. ASCII 控制碼---VT_BS.c
  72. 唯讀變數 const
  73. 唯讀變數 vs 符號常數
  74. enum
  75. 逗點指令---reverse()
  76. 語句執行的順序
  77. 再談資料型態轉換 (cast)
  78. 位元計算---bcount()
  79. 條件語句 ?:
  80. 巨集---ROUND()
  81. 再談優先序
  82. 使用者自定外部函式---s2i()test_s2i.c
  83. do-while---i2s()test_i2s.c
  84. continue---mean.c
  85. break---trim.c
  86. switch---par2str.c
  87. 排序---nsort()
  88. 搜尋---search()vsearch()
  89. goto---vsearch() goto 版、prime.c goto 版
  90. 快速搜尋---binsearch()


  91. C 程式語言---追求篇

  92. 髏數的位址
  93. 指標資料型態 (pointer)
  94. main(int, char*[]) 的參數
  95. +標與足標、指標算術
  96. 無型態咽標   void*
  97. 列印記憶體內的位元排列
  98. &A談 Call by Name vsearch() 第三版
  99. 變數的有效範圍、外部變數 (b18)
  100. 函數當作函數的參數---mysort.c

[ 相逢篇 ]‧[ 認識篇 ]‧ [ 交遊篇 ]‧[ 追求篇 ]


Up User Forum BCC16 Home Chap 0 Chap 1 Chap 2 Chap 3 Chap 4 Chap 5 Chap 6 Chap 7 Chap 8 Chap 9 Chap A Chap B Chap C Chap D Chap E Chap F Copyright Pool
製作人、
修改記錄
單維彰 (2000/04/04) --- 01/01/06 (單), 03/04/26 (單)