第1篇 C語言開發(fā)基礎
第1章 扎馬步——認識C語言
1.1 程序設計語言
1.1.1 程序設計語言的發(fā)展
1.1.2 C語言的發(fā)展
1.1.3 C語言的特點
1.2 結構化程序設計
1.2.1 程序設計的概念
1.2.2 程序的靈魂—算法
1.2.3 程序設計三劍客—三大基本結構
1.2.4 實現“結構化程序設計”的方法
1.3 C語言程序設計的特點
1.3.1 C程序實例
1.3.2 C程序的結構特點
1.3.3 C語言中的名字規(guī)則—標識符
1.4 C程序變成EXE文件的過程——編譯、連接和執(zhí)行
1.5 編譯和運行C程序的一般步驟
1.5.1 使用Turbo C 2.0開發(fā)
1.5.2 使用Visual C++ 6.0開發(fā)
1.6 小結
1.7 習題
第2章 地形:C語言的血液——數據類型、運算符、表達式和輸入/輸出函數
2.1 不可以改變的數據——常量
2.1.1 常量的定義
2.1.2 進化版的常量—符號常量
2.2 可以改變的數據——變量
2.2.1 變量的定義
2.2.2 給變量起名字—變量的命名規(guī)則
2.2.3 變量的出生和成長—初始化和賦值
2.2.4 變量的壽命—作用域
2.2.5 使用extern聲明變量
2.3 C語言的細胞——數據類型
2.3.1 整型(int)
2.3.2 實型(float)
2.3.3 字符型(char)
2.4 運算符和表達式
2.4.1 運算符和表達式
2.4.2 賦值運算符和賦值表達式
2.4.3 算術運算符和算術表達式
2.4.4 關系運算符和關系表達式
2.4.5 邏輯運算符和邏輯表達式
2.4.6 條件運算符和條件表達式
2.4.7 逗號運算符和逗號表達式
2.4.8 運算符的優(yōu)先級
2.5 不同類型數據之間的轉換
2.5.1 隱式轉換
2.5.2 顯式轉換
2.6 數據的輸入Input
2.6.1 使用scanf()函數實現數據輸入
2.6.2 一個字符的輸入函數—getchar()
2.7 數據的輸出Output
2.7.1 使用printf()函數實現數據格式輸出
2.7.2 使用putchar()函數實現字符輸出
2.8 順序結構程序設計舉例
2.9 本章知識點綜合應用
案例一
案例二
案例三
2.10 小結
2.11 習題
第2篇 C語言編程入門
第3章 迎戰(zhàn):選擇結構設計
3.1 入門——選擇結構簡介
3.2 選擇結構設計的實現—if語句
3.2.1 if結構語法
3.2.2 if結構程序實例
3.3 選擇結構設計實現—if…else法
3.3.1 if…else結構語法
3.3.2 if…else結構程序實例
3.4 選擇結構設計—多重if法
3.4.1 多重if結構的語法格式
3.4.2 多重if結構程序實例
3.5 選擇結構設計—if嵌套法
3.5.1 if嵌套結構語法
3.5.2 if和else配對問題
3.5.3 if嵌套結構程序實例
3.6 選擇結構設計—switch法
3.6.1 switch結構語法
3.6.2 switch語句的注意事項
3.6.3 switch的執(zhí)行過程
3.6.4 switch結構程序實例
3.7 switch和多重if的比較
3.8 選擇結構程序設計舉例
3.9 本章知識點綜合應用
案例一
案例二
案例三
3.10 小結
3.11 習題
第4章 火攻:循環(huán)結構設計
4.1 循環(huán)結構
4.2 while循環(huán)
4.2.1 while循環(huán)語法及含義
4.2.2 使用while循環(huán)程序舉例
4.3 do…while循環(huán)
4.3.1 do…while循環(huán)結構及含義
4.3.2 使用do...while循環(huán)程序實例
4.4 for循環(huán)
4.4.1 for循環(huán)結構及含義
4.4.2 for循環(huán)的注意事項
4.4.3 使用for循環(huán)程序舉例
4.5 循環(huán)嵌套
4.5.1 循環(huán)嵌套原則
4.5.2 使用循環(huán)嵌套程序舉例
4.6 三種循環(huán)的比較
4.7 跳轉語句
4.7.1 使用break語句實現循環(huán)程序中的跳轉
4.7.2 使用continue語句實現程序跳轉
4.7.3 使用goto語句實現程序跳轉
4.8 循環(huán)結構程序設計舉例
4.9 本章知識點綜合應用
案例一
案例二
案例三
4.10 小結
4.11 習題
第3篇 數 組 應 用
第5章 兵勢一:數組
5.1 一維數組
5.1.1 定義一維數組
5.1.2 訪問一維數組元素
5.1.3 初始化一維數組
5.1.4 數組的存儲形式
5.1.5 注意事項
5.1.6 一維數組示例
5.2 二維數組
5.2.1 定義二維數組
5.2.2 訪問二維數組元素
5.2.3 二維數組的存儲方式
5.2.4 初始化二維數組
5.2.5 二維數組示例
5.3 多維數組
5.3.1 定義多維數組
5.3.2 多維數組示例
5.4 本章知識點綜合應用
案例一
案例二
案例三
5.5 小結
5.6 習題
第6章 兵勢二:字符串
6.1 字符數組
6.1.1 字符數組的定義
6.1.2 字符數組的初始化
6.1.3 二維字符數組
6.1.4 字符數組實例
6.2 字符串
6.2.1 字符串常量
6.2.2 字符串變量
6.2.3 格式化輸出字符串
6.2.4 格式化輸入字符串
6.3 字符串應用示例
6.3.1 取字符串長度
6.3.2 統(tǒng)計字符串中的單詞個數
6.3.3 顛倒單詞順序
6.3.4 改進的顛倒單詞順序實現
6.4 本章知識點綜合應用
案例一
案例二
案例三
6.5 小結
6.6 習題
第4篇 函數及指針應用
第7章 謀攻:函數
7.1 函數的概念
7.1.1 什么是函數
7.1.2 函數的分類
7.1.3 函數的定義
7.1.4 main()函數
7.2 函數的工作過程
7.2.1 程序結構
7.2.2 函數執(zhí)行過程
7.3 編寫函數
7.3.1 函數頭
7.3.2 返回值類型
7.3.3 參數列表
7.3.4 函數體
7.3.5 函數原型
7.4 函數的參數
7.4.1 形參和實參
7.4.2 參數傳遞過程
7.4.3 函數參數的“值調用”
7.4.4 引用調用
7.4.5 數組作為函數參數
7.4.6 指針作為函數參數
7.4.7 main()函數的參數
7.5 函數調用
7.5.1 函數調用方式
7.5.2 被調函數的說明
7.5.3 函數的返回值
7.6 幾種典型的函數調用形式
7.6.1 賦值調用與引用調用
7.6.2 嵌套調用
7.6.3 遞歸調用
7.7 函數及其變量的作用域
7.7.1 函數的作用域
7.7.2 函數的變量作用域
7.8 本章知識點綜合應用
案例一
案例二
案例三
7.9 小結
7.10 習題
第8章 虛實:指針
8.1 內存和變量的關系
8.1.1 計算機內存
8.1.2 變量的存儲
8.2 指針和簡單變量
8.2.1 指針的概念
8.2.2 指針的創(chuàng)建
8.2.3 指針變量的初始化
8.2.4 指針變量的引用
8.2.5 給函數傳遞指針
8.3 指針變量的賦值
8.3.1 初始化賦值
8.3.2 取地址賦值
8.3.3 指針之間賦值
8.3.4 數組賦值
8.3.5 字符串賦值
8.3.6 函數入口賦值
8.4 指針和數組的關系
8.4.1 指針、數組和地址間的關系
8.4.2 指針變量的運算
8.4.3 用指針操作數組元素
8.5 指向多維數組的指針
8.5.1 理解二維數組的地址
8.5.2 多維數組的指針表示
8.5.3 指向多維數組的指針變量
8.5.4 數組名作為函數的參數
8.5.5 指向數組的指針小結
8.6 指針和字符串
8.6.1 指針表示字符串
8.6.2 字符串指針作函數參數
8.6.3 字符數組和字符指針的區(qū)別
8.7 指針數組
8.7.1 指針數組的概念
8.7.2 用指針數組處理字符串
8.7.3 指針數組作函數參數
8.8 指向指針的指針
8.8.1 理解指向指針的指針
8.8.2 二級指針變量與數組
8.9 指針和函數
8.9.1 返回指針的函數
8.9.2 指向函數的指針
8.10 指針和const變量
8.10.1 用const控制指針
8.10.2 const的幾種特殊用法
8.11 指針總結
8.11.1 明確分辨各種指針類型
8.11.2 正確理解指針
8.12 本章知識點綜合應用
案例一
案例二
案例三
8.13 小結
8.14 習題
第5篇 C語言高級數據類型
第9章 用間一:新的數據類型
9.1 結構的定義
9.2 結構變量的定義
9.2.1 先定義結構,再定義結構變量
9.2.2 在定義結構的同時,定義結構變量
9.2.3 直接說明結構變量
9.3 結構變量的使用
9.4 結構變量的初始化
9.5 結構數組
9.5.1 結構數組的定義和引用
9.5.2 結構數組的初始化
9.5.3 結構數組實例
9.6 結構指針
9.6.1 定義結構指針
9.6.2 結構指針的引用
9.6.3 用指針處理結構數組
9.7 嵌套結構
9.7.1 內含數組的結構
9.7.2 包含指針的結構
9.7.3 包含結構的結構
9.8 向函數傳遞結構型參數
9.8.1 傳遞結構變量的值
9.8.2 傳遞結構指針到函數
9.9 本章知識點綜合應用
案例一
案例二
案例三
9.10 小結
9.11 習題
第10章 用間二:聯合、枚舉和位域
10.1 聯合體(union)
10.1.1 定義聯合類型
10.1.2 定義聯合變量
10.1.3 聯合變量成員的引用
10.1.4 聯合體型變量數組
10.1.5 聯合體型變量指針
10.1.6 在結構中嵌套聯合類型
10.1.7 結構體和聯合體的區(qū)別
10.2 枚舉
10.2.1 定義枚舉類型
10.2.2 定義枚舉變量
10.2.3 枚舉類型變量的賦值
10.3 類型說明
10.4 二進制數據存儲
10.4.1 數據的存儲
10.4.2 不同數據類型的二進制表示
10.5 位運算
10.5.1 位邏輯運算符
10.5.2 移位運算符
10.5.3 位運算的復合賦值運算符
10.5.4 位運算的用途
10.6 位域
10.6.1 定義位域結構
10.6.2 位域變量的聲明
10.6.3 位域的使用
10.6.4 位域與聯合的使用
10.7 本章知識點綜合應用
案例一
案例二
案例三
10.8 小結
10.9 習題
第11章 作戰(zhàn):預處理
11.1 預處理簡介
11.1.1 預處理功能
11.1.2 預處理命令
11.2 宏定義命令
11.2.1 無參數的宏定義
11.2.2 帶參數的宏定義
11.2.3 #undef命令
11.2.4 預處理操作符#和##
11.3 文件包含指令
11.4 條件編譯指令
11.4.1 #if、#else、#endif命令
11.4.2 #elif命令
11.4.3 #ifdef、#ifndef命令
11.4.4 使用#defined和#undef
11.5 其他預處理命令
11.5.1 預定義的宏名
11.5.2 重置行號和文件名命令#line
11.5.3 修改編譯器設置命令#pragma
11.5.4 產生錯誤信息命令#error
11.6 內聯函數
11.7 小結
11.8 習題
第6篇 實 戰(zhàn) 篇
第12章 白鶴亮翅:文件操作
12.1 打開、關閉和檢測文件
12.1.1 打開文件
12.1.2 文件檢查函數
12.1.3 讀寫文件數據
12.1.4 關閉文件
12.2 文件定位函數
12.2.1 fseek()函數
12.2.2 ftell()函數
12.2.3 rewind()函數
12.3 文件管理函數的應用
12.3.1 刪除文件
12.3.2 重命名文件
12.4 使用臨時文件
12.5 非緩沖文件系統(tǒng)
12.5.1 open()函數
12.5.2 close()函數
12.5.3 create()函數
12.5.4 read()函數
12.5.5 write()函數
12.5.6 lseek()函數
12.6 小結
12.7 習題
第13章 收兵:C語言程序綜合應用
13.1 八皇后問題
13.2 漢諾塔問題
13.3 循環(huán)賽問題
13.4 猴子選大王
13.5 三個數的最小公倍數問題
13.6 背包問題
13.7 馬遍歷問題
13.8 流水線作業(yè)問題
13.9 迷宮問題
13.10 關鍵路徑
13.11 推箱子小游戲的大致實現
13.12 小結
13.13 習題