21天學通C語言(第7版)
第1部分 C語言基礎
第1課 初識C語言
1.1 C語言發展簡史
1.2 為何要使用C語言
1.3 准備編程
1.4 程序開發周期
1.4.1 創建源代碼
1.4.2 使用編輯器
1.4.3 編譯源代碼
1.4.4 鏈接以創建可執行文件
1.4.5 完成開發周期
1.5 第1個C程序
1.5.1 輸入並編譯hello.c
1.5.2 編譯錯誤
1.5.3 鏈接器錯誤消息
1.6 小 結
1.7 答 疑
1.8 課后研習
1.8.1 小測驗
1.8.2 練習題
第2課 C程序的組成部分
2.1 簡短的C程序
2.2 程序的組成部分
2.2.1 main()函數
2.2.2 include和 define指令
2.2.3 變量定義
2.2.4 函數原型
2.2.5 程序語句
2.2.6 函數定義
2.2.7 程序的注釋
2.2.8 使用花括號
2.2.9 運行程序
2.2.10 補充說明
2.3 學以致用
2.4 小 結
2.5 答 疑
2.6 課后研習
2.6.1 小測驗
2.6.2 練習題
第3課 儲存信息:變量和常量
3.1 計算機的內存
3.2 用變量儲存信息
3.2.1 變量名
3.3 數值類型
3.3.1 變量聲明
3.3.2 typedef關鍵字
3.3.3 初始化變量
3.4 常 量
3.4.1 字面常量
3.4.2 符號常量
3.5 小 結
3.6 答 疑
3.7 課后研習
3.7.1 小測驗
3.7.2 練習題
第4課 語句、表達式和運算符
4.1 語 句
4.1.1 在語句中留白
4.1.2 創建空語句
4.1.3 復合語句
4.2 理解表達式
4.2.1 簡單表達式
4.2.2 復雜表達式
4.3 運算符
4.3.1 賦值運算符
4.3.2 數學運算符
4.3.3 運算符優先級和圓括號
4.3.4 子表達式的計算順序
4.3.5 關系運算符
4.4 if語句
4.4.1 else子句
4.5 對關系表達式求值
4.5.1 關系運算符的優先級
4.6 邏輯運算符
4.7 詳議真/假值
4.7.1 運算符的優先級
4.7.2 復合賦值運算符
4.7.3 條件運算符
4.7.4 逗號運算符
4.8 運算符優先級歸納
4.9 小 結
4.10 答 疑
4.11 課后研習
4.11.1 小測驗
4.11.2 練習題
第5課 函 數
5.1 理解函數
5.1.1 函數定義
5.1.2 函數示例
5.2 函數的工作原理
5.3 函數和結構化程序設計
5.3.1 結構化程序設計的優點
5.3.2 規划結構化程序
5.3.3 自上而下的方法
5.4 編寫函數
5.4.1 函數頭
5.4.2 函數體
5.4.3 函數原型
5.5 給函數傳遞實參
5.6 調用函數
5.6.1 遞歸
5.7 函數的位置
5.8 內聯函數
5.9 小 結
5.10 答 疑
5.11 課后研習
5.11.1 小測驗
5.11.2 練習題
第6課 基本程序控制
6.1 數組:基本概念
6.2 控制程序的執行
6.2.1 for語句
6.2.2 嵌套for語句
6.2.3 while語句
6.2.4 嵌套while語句
6.2.5 do...while循環
6.3 嵌套循環
6.4 小 結
6.5 答 疑
6.6 課后研習
6.6.1 小測驗
6.6.2 練習題
第7課 信息讀寫基礎
7.1 在屏幕上顯示信息
7.1.1 printf()函數
7.1.2 printf()的格式字符串
7.1.3 使用puts()顯示消息
7.2 使用scanf()輸入數值數據
7.3 三字符序列
7.4 小 結
7.5 答 疑
7.6 課后研習
7.6.1 小測驗
7.6.2 練習題
第2部分 C語言應用
第8課 數值數組
8.1 什么是數組
8.1.1 一維數組
8.1.2 多維數組
8.2 命名和聲明數組
8.2.1 初始化數組
8.2.2 初始化多維數組
8.3 小 結
8.4 答 疑
8.5 課后研習
8.5.1 小測驗
8.5.2 練習題
第9課 指 針
9.1 什么是指針
9.1.1 計算機的內存
9.1.2 創建指針
9.2 指針和簡單變量
9.2.1 聲明指針
9.2.2 初始化指針
9.2.3 使用指針
9.3 指針和變量類型
9.4 指針和數組
9.4.1 數組名
9.4.2 儲存數組元素
9.4.3 指針算術
9.5 指針的注意事項
9.6 數組下標表示法和指針
9.7 給函數傳遞數組
9.8 小 結
9.9 答 疑
9.10 課后研習
9.10.1 小測驗
9.10.2 練習題
第10課 字符和字符串
10.1 char數據類型
10.2 使用字符變量
10.3 使用字符串
10.3.1 字符數組
10.3.2 初始化字符數組
10.4 字符串和指針
10.5 未儲存在數組中的字符串
10.5.1 在編譯期分配字符串的空間
10.5.2 malloc()函數
10.5.3 malloc()函數的用法
10.6 顯示字符串和字符
10.6.1 puts()函數
10.6.2 printf()函數
10.7 讀取從鍵盤輸入的字符串
10.7.1 用gets()函數輸入字符串
10.7.2 用scanf()函數輸入字符串
10.8 小 結
10.9 答 疑
10.10 課后研習
10.10.1 小測驗
10.10.2 練習題
第11課 結構、聯合和typedef
11.1 簡單結構
11.1.1 聲明和定義結構
11.1.2 訪問結構的成員
11.2 復雜結構
11.2.1 包含結構的結構
11.2.2 包含數組的結構
11.3 結構數組
11.4 初始化結構
11.5 結構和指針
11.5.1 包含指針成員的結構
11.5.2 創建指向結構的指針
...
...
11.5.3 使用指針和結構數組
11.5.4 給函數傳遞結構實參
11.6 聯合
11.6.1 聲明、定義並初始化聯合
11.6.2 訪問聯合成員
11.7 用typedef創建結構的別名
11.8 小 結
11.9 答 疑
11.10 課后研習
11.10.1 小測驗
11.10.2 練習題
第12課 變量作用域
12.1 什么是作用域
12.1.1 演示作用域
12.1.2 作用域的重要性
12.2 創建外部變量
12.2.1 外部變量作用域
12.2.2 何時使用外部變量
12.2.3 extern關鍵字
12.3 創建局部變量
12.3.1 靜態變量和自動變量
12.3.2 函數形參的作用域
12.3.3 外部靜態變量
12.3.4 寄存器變量
12.4 局部變量和main()函數
12.5 如何使用存儲類別
12.6 局部變量和塊
12.7 小 結
12.8 答 疑
12.9 課后研習
12.9.1 小測驗
12.9.2 練習題
第13課 高級程序控制
13.1 提前結束循環
13.1.1 break語句
13.1.2 continue語句
13.2 goto語句
13.3 無限循環
13.4 switch語句
13.5 退出程序
13.5.1 exit()函數
13.6 小 結
13.7 答 疑
13.8 課后研習
13.8.1 小測驗
13.8.2 練習題
第14課 輸入和輸出
14.1 C語言和流
14.1.1 程序的輸入/輸出
14.1.2 什么是流
14.1.3 文本流和二進制流
14.1.4 預定義流
14.2 C語言的流函數
14.2.1 示例
14.3 鍵盤輸入
14.3.1 字符輸入
14.3.2 行輸入
14.3.3 格式化輸入
14.4 屏幕輸出
14.4.1 使用putchar()、putc()和fputc()輸出字符
14.4.2 使用puts()和fputs()輸出字符串
14.4.3 使用printf()和fprintf()格式化輸出
14.5 何時使用fprintf()
14.5.1 使用stderr
14.6 小 結
14.7 答 疑
14.8 課后研習
14.8.1 小測驗
14.8.2 練習題
第3部分 C語言進階
第15課 指向指針的指針和指針數組
15.1 聲明指向指針的指針
15.2 指針和多維數組
15.3 指針數組
15.3.1 復習字符串和指針
15.3.2 聲明指向char類型的指針數組
15.3.3 示例
15.4 小 結
15.5 答 疑
15.6 課后研習
15.6.1 小測驗
15.6.2 練習題
第16課 函數指針和鏈表
16.1 函數指針
16.1.1 聲明函數指針
16.1.2 初始化函數指針及其用法
16.2 鏈 表
16.2.1 鏈表的基本知識
16.2.2 使用鏈表
16.2.3 簡單鏈表示例
16.2.4 實現鏈表
16.3 小 結
16.4 答 疑
16.5 課后研習
16.5.1 小測驗
16.5.2 練習題
第17課 磁盤文件
17.1 將流與磁盤文件相關聯
17.2 磁盤文件的類型
17.3 文件名
17.4 打開文件
17.5 讀寫文件數據
17.5.1 格式化輸入和輸出
17.5.2 字符輸入和輸出
17.5.3 直接文件輸入/輸出
17.6 文件緩沖:關閉和刷新文件
17.7 順序文件訪問和隨機文件訪問
17.7.1 ftell()函數和rewind()函數
17.7.2 fseek()函數
17.8 檢測文件末尾
17.9 文件管理函數
17.9.1 刪除文件
17.9.2 重命名文件
17.9.3 拷貝文件
17.10 臨時文件
17.11 小 結
17.12 答 疑
17.13 課后研習
17.13.1 小測驗
17.13.2 練習題
第18課 操控字符串
18.1 確定字符串長度
18.2 拷貝字符串
18.2.1 strcpy()函數
18.2.2 strncpy()函數
18.3 拼接字符串
18.3.1 strcat()函數
18.3.2 strncat()函數
18.4 比較字符串
18.4.1 比較字符串本身
18.4.2 比較部分字符串
18.5 查找字符串
18.5.1 strchr()函數
18.5.2 strrchr()函數
18.5.3 strcspn()函數
18.5.4 strspn()函數
18.5.5 strpbrk()函數
18.5.6 strstr()函數
18.6 將字符串轉換為數字
18.6.1 將字符串轉換為整型值
18.6.2 將字符串轉換為long
18.6.3 將字符串轉換為long long類型值
18.6.4 將字符串轉換為浮點值
18.7 字符測試函數
18.7.1 ANSI支持的大小寫轉換
18.8 小 結
18.9 答 疑
18.10 課后研習
18.10.1 小測驗
18.10.2 練習題
第19課 函數的高級主題
19.1 給函數傳遞指針
19.2 void指針
19.3 帶可變數目參數的函數
19.4 返回指針的函數
19.5 小 結
19.6 答 疑
19.7 課后研習
19.7.1 小測驗
19.7.2 練習題
第20課 C語言的函數庫
20.1 數學函數
20.1.1 三角函數
20.1.2 指數函數和對數函數
20.1.3 雙曲線函數
20.1.4 其他數學函數
20.1.5 演示數學函數
20.2 處理時間
20.2.1 表示時間
20.2.2 時間函數
20.2.3 使用時間函數
20.3 錯誤處理
20.3.1 assert()宏
20.3.2 errno.h頭文件
20.3.3 perror()函數
20.4 查找和排序
20.4.1 用bsearch()函數進行查找
20.4.2 用qsort()函數進行排序
20.4.3 演示查找和排序
20.5 小 結
20.6 答 疑
20.7 課后研習
20.7.1 小測驗
20.7.2 練習題
第21課 管理內存
21.1 類型轉換
21.1.1 自動類型轉換
21.1.2 顯示轉換
21.2 分配內存存儲空間
21.2.1 用malloc()函數分配內存
21.2.2 用calloc()函數分配內存
21.2.3 用realloc()函數分配更多內存
21.2.4 用free()函數釋放內存
21.3 操控內存塊
21.3.1 用memset()函數初始化內存
21.3.2 用memcpy()函數拷貝內存的數據
21.3.3 用memmove()函數移動內存的數據
21.4 位
21.4.1 移位運算符
21.4.2 按位邏輯運算符
21.4.3 求反運算符
21.4.4 結構中的位字段
21.5 小 結
21.6 答 疑
21.7 課后研習
21.7.1 小測驗
21.7.2 練習題
第22課 編譯器的高級用法
22.1 多源代碼文件編程
22.1.1 模塊化編程的優點
22.1.2 模塊化編程技術
22.1.3 模塊化的組成部分
22.1.4 外部變量和模塊化編程
22.2 C預處理器
22.2.1 define預處理器指令
22.2.2 include指令
22.2.3 if、 elif、 else和 endif
22.2.4 使用 if… endif幫助調試
22.2.5 避免多次包含頭文件
22.2.6 undef指令
22.3 預定義宏
22.4 命令行參數
22.5 小 結
22.6 答 疑
22.7 課后研習
22.7.1 小測驗
22.7.2 練習題
第4部分 附 錄
附錄A ASCII表
附錄B C/C++關鍵字
附錄C 常用函數
附錄D 參考答案
思維導圖
防止博客圖床圖片失效,防止圖片源站外鏈:
http://www.processon.com/chart_image/5e5b2e2de4b02bc3ad6a10f3.png)
思維導圖在線編輯鏈接: