C語言從入門到精通 第4版( 簡體 字) | |
作者:李嵐 | 類別:1. -> 程式設計 -> C -> C |
出版社:人民郵電出版社 | 3dWoo書號: 54604 詢問書籍請說出此書號! 有庫存 NT售價: 450 元 |
出版日:7/1/2021 | |
頁數:434 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787115548351 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第 0 章 學習攻略
0.1 編程的魔力 002 0.2 C語言的起源及特點 002 0.3 C語言的用途 004 0.4 C語言實現的人機交互 004 0.5 C語言的學習方法 005 第 Ⅰ 篇基礎知識 第 1 章 步入C語言的世界——Hello C 1.1 C語言的開發環境 009 1.1.1 C語言常用的開發環境 009 1.1.2 Code::Blocks開發環境 010 1.1.3 手機編譯器 011 1.2 開始C編程—我的第 一個C程序 012 1.2.1 程序編寫及運行流程 012 1.2.2 在Code::Blocks中開發C程序 013 1.2.3 在手機編譯器中開發C程序 015 1.3 高手點撥 016 1.4 實戰練習 016 第 2 章 C程序的結構 2.1 引例 018 2.2 聲明區 018 2.2.1 頭文件 018 2.2.2 函數聲明 019 2.2.3 變量聲明 019 2.3 主函數 020 2.4 函數定義區 020 2.5 注釋 021 2.6 書寫代碼的規則 021 2.7 高手點撥 022 2.8 實戰練習 022 第 3 章 C語言的基本構成元素 3.1 標識符和關鍵字 024 3.1.1 標識符 024 3.1.2 關鍵字 024 3.2 常量 024 3.3 常量的類別 025 3.3.1 數值常量 025 3.3.2 字符常量 026 3.3.3 字符串常量 028 3.3.4 符號常量 028 3.4 綜合應用——常量與符號常量 028 3.5 高手點撥 029 3.6 實戰練習 030 第 4 章 變量 4.1 變量概述 032 4.1.1 變量的定義 032 4.1.2 變量的定義與聲明 033 4.2 變量的初始化和賦值 033 4.3 變量的輸入和輸出 034 4.3.1 格式化輸出函數——printf() 034 4.3.2 格式控制符 035 4.3.3 格式化輸入函數——scanf() 040 4.4 字符的輸入和輸出 042 4.4.1 字符輸出函數——putchar() 043 4.4.2 字符輸入函數——getchar() 043 4.5 綜合應用——對變量的操作 044 4.6 高手點撥 046 4.7 實戰練習 046 第 5 章 計算機中的數制系統 5.1 二進制 048 5.2 八進制 049 5.3 十進制 049 5.4 十六進制 050 5.5 數制間的轉換 050 5.6 綜合應用——數制轉換 051 5.7 高手點撥 052 5.8 實戰練習 052 第 6 章 數據的種類——數據類型 6.1 數據類型的分類 054 6.1.1 基本類型 054 6.1.2 構造類型 054 6.1.3 指針類型 054 6.1.4 空類型 054 6.2 整型 055 6.3 字符型 057 6.4 浮點型 059 6.5 類型轉換 060 6.5.1 隱式轉換 060 6.5.2 顯式轉換 061 6.6 綜合應用——數據類型轉換 062 6.7 高手點撥 063 6.8 實戰練習 064 第 7 章 C 語言中的運算符和表達式 7.1 運算符和表達式 066 7.1.1 運算符 066 7.1.2 表達式 066 7.2 算術運算符和表達式 067 7.2.1 算術運算符 067 7.2.2 算術表達式 067 7.2.3 應用舉例 067 7.3 關系運算符和表達式 069 7.3.1 關系運算符 069 7.3.2 關系表達式 069 7.3.3 應用舉例 069 7.4 邏輯運算符和表達式 070 7.4.1 邏輯運算符 070 7.4.2 邏輯表達式 071 7.4.3 應用舉例 071 7.5 條件運算符和表達式 073 7.6 賦值運算符和表達式 074 7.6.1 賦值運算符 074 7.6.2 賦值表達式 074 7.6.3 應用舉例 075 7.7 自增、自減運算符 076 7.8 逗號運算符和表達式 077 7.9 位運算符 078 7.9.1 按位與運算符 078 7.9.2 按位或運算符 079 7.9.3 按位異或運算符 079 7.9.4 按位取反運算符 080 7.9.5 左移運算符 080 7.9.6 右移運算符 081 7.9.7 位運算賦值運算符 082 7.9.8 位運算應用 082 7.10 運算符的優先級和結合性 085 7.10.1 算術運算符 085 7.10.2 關系運算符 085 7.10.3 邏輯運算符 085 7.10.4 賦值運算符 085 7.11 綜合應用——條件運算符的應用 086 7.12 高手點撥 087 7.13 實戰練習 088 第 8 章 程序的靈魂——算法 8.1 算法概述 090 8.1.1 算法的定義 090 8.1.2 算法的特性 090 8.1.3 簡單算法舉例——解方程 091 8.2 如何表示一個算法 092 8.2.1 自然語言表示算法 092 8.2.2 流程圖表示算法 094 8.2.3 N-S 流程圖表示算法 098 8.2.4 偽代碼表示算法 100 8.2.5 計算機語言表示算法 101 8.3 結構化程序設計方法 101 8.4 衡量程序質量的標準 102 8.5 綜合應用——求解一元二次方程的根 103 8.6 高手點撥 104 8.7 實戰練習 104 第 9 章 順序結構與選擇結構 9.1 語句 106 9.1.1 表達式語句 106 9.1.2 控制語句 106 9.1.3 空語句和復合語句 106 9.1.4 函數調用語句 107 9.2 順序結構 107 9.3 選擇結構 109 9.3.1 選擇結構的定義 109 9.3.2 二分支選擇結構——if 語句 109 9.3.3 二分支選擇結構——if-else 語句 111 9.3.4 二分支選擇結構——if-else 的嵌套形式 112 9.3.5 多分支選擇結構——switch 語句 116 9.4 綜合應用—計算獎金 118 9.5 高手點撥 119 9.6 實戰練習 120 第 10章 循環結構與轉向語句 10.1 循環結構 122 10.1.1 循環結構的定義 122 10.1.2 for 語句 123 10.1.3 while 語句 126 10.1.4 do-while 語句 127 10.1.5 循環的嵌套 129 10.2 轉向語句 132 10.2.1 goto 語句 132 10.2.2 break 語句 133 10.2.3 continue 語句 135 10.3 綜合應用——簡單計算器的設計 136 10.4 高手點撥 138 10.5 實戰練習 138 第 11章 數組 11.1 數組概述 140 11.2 一維數組 140 11.2.1 一維數組的定義 140 11.2.2 一維數組的初始化 142 11.2.3 一維數組元素的引用 143 11.2.4 一維數組的應用舉例 145 11.3 二維數組 147 11.3.1 二維數組的定義 148 11.3.2 二維數組的初始化 148 11.3.3 二維數組元素的引用 149 11.3.4 二維數組的應用舉例 149 11.4 綜合應用——楊輝三角 151 11.5 高手點撥 152 11.6 實戰練習 153 第 12章 字符數組和字符串 12.1 字符數組概述 156 12.2 字符數組 156 12.2.1 字符數組的定義 156 12.2.2 字符數組的初始化 156 12.2.3 字符數組的引用 157 12.2.4 字符數組的輸入與輸出 157 12.3 字符串 158 12.3.1 字符串和字符數組 159 12.3.2 字符串的輸入和輸出 160 12.3.3 字符串應用舉例 162 12.4 綜合應用——自動分類字符 164 12.5 高手點撥 165 12.6 實戰練習 166 第 Ⅱ 篇 核心技術——函數 第 13章 函數 13.1 函數概述 169 13.1.1 什么是函數 169 13.1.2 函數的分類 170 13.2 函數功能 171 13.3 函數的返回值及類型 173 13.3.1 函數的返回值 173 13.3.2 函數返回值的類型 174 13.4 函數的參數及傳遞方式 177 13.4.1 函數的參數 177 13.4.2 函數參數的傳遞方式 179 13.4.3 帶參數的主函數 182 13.5 函數的調用 183 13.5.1 函數調用方式 184 13.5.2 函數的聲明 185 13.5.3 函數的嵌套調用 187 13.5.4 函數的遞歸調用 188 13.6 內部函數和外部函數 193 13.6.1 內部函數 193 13.6.2 外部函數 193 13.7 綜合應用——用截弦法求方程的根 195 13.8 高手點撥 196 13.9 實戰練習 197 第 14章 變量的作用范圍和存儲類型 14.1 變量的作用范圍 200 14.1.1 局部變量 200 14.1.2 全局變量 201 14.2 變量的存儲類型 203 14.2.1 自動類型 204 14.2.2 寄存器類型 204 14.2.3 靜態類型 205 14.2.4 外部類型 207 14.3 綜合應用——根據日期判斷是該年第幾天 208 14.4 高手點撥 209 14.5 實戰練習 210 第 15章 庫函數 15.1 C 標準函數庫 212 15.2 數學函數 212 15.2.1 絕對值函數 213 15.2.2 冪函數和開平方函數 213 15.2.3 指數函數和對數函數 214 15.2.4 三角函數 214 15.2.5 取整函數和取余函數 215 15.3 字符串處理函數 216 15.3.1 字符串長度函數 216 15.3.2 字符串連接函數 216 15.3.3 字符串復制函數 217 15.3.4 字符串比較函數 218 15.3.5 字符串查找函數 219 15.3.6 字符串填充函數 220 15.4 字符處理函數 220 15.4.1 字符類型判斷函數 221 15.4.2 字符大小寫轉換函數 222 15.5 數據類型轉換和存儲管理函數 222 15.5.1 數據類型轉換函數 222 15.5.2 存儲管理函數 223 15.6 隨機函數 225 15.6.1 初識隨機函數 225 15.6.2 使用隨機函數 226 15.7 日期和時間處理函數 227 15.8 診斷函數 228 15.9 其他函數 229 15.9.1 exit()函數 229 15.9.2 qsort()函數 230 15.10 綜合應用——猜數字游戲 231 15.11 高手點撥 233 15.12 實戰練習 233 第 16章 結構體和聯合體 16.1 結構體 236 16.1.1 結構體類型的定義 236 16.1.2 結構體變量的定義 236 16.1.3 結構體變量的初始化 237 16.1.4 結構體變量的引用 238 16.2 結構體數組 238 16.2.1 結構體數組的定義 239 16.2.2 結構體數組的初始化 239 16.2.3 結構體數組元素的引用 240 16.3 結構體與函數 241 16.3.1 結構體變量作為函數的參數——傳值調用方式 241 16.3.2 結構體作為函數的返回值 242 16.4 聯合體 243 16.4.1 聯合體類型的定義 243 16.4.2 聯合體變量的定義 244 16.4.3 聯合體變量的初始化 244 16.4.4 聯合體變量的引用 246 16.5 結構體和聯合體的區別與聯系 247 16.6 綜合應用——計算學生平均成績 247 16.7 高手點撥 249 16.8 實戰練習 249 第 17章 枚舉 17.1 枚舉類型 252 17.1.1 枚舉類型的定義 252 17.1.2 枚舉類型的應用 253 17.2 高手點撥 254 17.3 實戰練習 254 第 Ⅲ 篇高級應用——指針及文件 第 18章 指針 18.1 指針概述 257 18.1.1 指針類型的變量和定義 257 18.1.2 指針所指向變量的類型 257 18.1.3 指針的值 257 18.1.4 指針所占內存 257 18.2 指針的算術運算 258 18.2.1 指針與整數的運算 258 18.2.2 指針與指針的運算 259 18.3 &和*運算符 260 18.4 指針表達式 262 18.5 綜合應用——使用指針進行排序 262 18.6 高手點撥 263 18.7 實戰練習 263 第 19章 指針與數組 19.1 數組指針 266 19.2 數組指針作為函數參數 266 19.3 指針與字符數組 267 19.4 指針數組與指針的指針 267 19.5 綜合應用——報數游戲(約瑟夫環) 269 19.6 高手點撥 270 19.7 實戰練習 270 第 20章 指針與函數 20.1 函數指針 272 20.1.1 函數指針的定義 272 20.1.2 函數指針的賦值 272 20.1.3 通過函數指針調用函數 272 20.2 指針函數 273 20.3 指向函數的指針作為函數參數 275 20.4 綜合應用——根據當年第幾天輸出該天的日期 276 20.5 高手點撥 277 20.6 實戰練習 278 第 21章 指針與字符串 21.1 字符串指針 280 21.1.1 字符串指針的定義 280 21.1.2 字符串指針的應用 281 21.2 字符串指針作為函數參數 284 21.3 字符串指針與字符數組的區別 285 21.4 綜合應用——“回文”問題 286 21.5 實戰練習 287 第 22章 指針與結構體 22.1 結構體指針 290 22.1.1 結構體指針的定義 290 22.1.2 結構體指針的初始化 290 22.1.3 使用指針訪問結構體成員 290 22.1.4 給結構體指針賦值 291 22.2 指向結構體數組的指針 292 22.3 結構體指針作為函數參數 294 22.4 綜合應用——利用結構體創建單鏈表 295 22.5 高手點撥 296 22.6 實戰練習 296 第 23章 指針的高級應用與技巧 23.1 指向指針的指針 298 23.2 void指針 299 23.3 內存操作 301 23.4 指針的傳遞 304 23.5 綜合應用——數值的降序排列 304 23.6 高手點撥 305 23.7 實戰練習 306 第 24章 文件 24.1 文件概述 308 24.1.1 文件類型 308 24.1.2 C如何操作文件——文件指針 308 24.1.3 文件緩沖區 309 24.2 文件的打開和關閉 309 24.2.1 文件的打開函數——fopen() 309 24.2.2 文件的關閉函數——fclose() 310 24.2.3 文件結束檢測函數——feof() 311 24.3 文件的順序讀寫 311 24.3.1 文本文件中字符的輸入/輸出 311 24.3.2 文本文件中字符串的輸入/輸出 313 24.3.3 文本文件中數據的格式化輸入/輸出 315 24.3.4 二進制文件的輸入/輸出——數據塊讀寫 317 24.4 文件的隨機讀寫 319 24.5 綜合應用——文件操作 320 24.6 高手點撥 321 24.7 實戰練習 322 第 Ⅳ 篇數據結構及C語言中的常用算法 第 25章 數據管理者——數據結構 25.1 數據結構概述 325 25.1.1 邏輯結構 325 25.1.2 存儲結構 326 25.1.3 數據的運算 326 25.2 線性表 326 25.2.1 線性表的定義 326 25.2.2 線性表的主要操作 327 25.2.3 順序表 327 25.2.4 單鏈表 329 25.3 棧 332 25.3.1 棧的定義 332 25.3.2 棧的主要操作 333 25.3.3 順序棧 333 25.3.4 鏈式棧 333 25.4 隊列 334 25.4.1 隊列的定義 334 25.4.2 隊列的主要操作 334 25.4.3 順序隊列 334 25.4.4 鏈隊列 335 25.5 樹和二叉樹 335 25.5.1 樹和二叉樹的定義 336 25.5.2 二叉樹的主要操作 336 25.5.3 二叉樹的存儲表示 336 25.5.4 二叉樹的遍歷 338 25.6 圖 338 25.6.1 圖的定義 338 25.6.2 圖的主要操作 338 25.6.3 圖的存儲表示 338 25.6.4 圖的遍歷 339 25.7 綜合應用——鏈表的反轉 342 25.8 高手點撥 343 25.9 實戰練習 344 第 26章 C語言中的高級算法 26.1 模擬算法 346 26.2 簡單動態規劃 347 26.3 用遞歸實現回溯算法 350 26.4 最短路徑算法 352 26.4.1 只有五行的算法——Floyd-Warshall 352 26.4.2 Dijkstra 算法——單源最短邊 352 26.4.3 Bellman-Ford算法——解決負權邊 353 26.4.4 Bellman-Ford 的隊列優化算法 353 26.4.5 最短路徑算法對比分析 353 26.5 分治算法 356 26.6 貪心算法 358 26.7 綜合應用——鏢局運鏢 359 26.8 高手點撥 361 26.9 實戰練習 361 第 27章 數學問題算法 27.1 質因數分解 364 27.2 最大公約數的歐幾里得算法 365 27.3 加法原理與乘法原理 366 27.4 排列與組合 367 27.5 綜合應用——進站方案 368 27.6 高手點撥 369 27.7 實戰練習 370 第 28章 排序問題算法 28.1 插入排序法 372 28.2 選擇排序法 373 28.3 冒泡排序法 375 28.4 快速排序法 376 28.5 桶排序法 378 28.6 高手點撥 379 28.7 實戰練習 380 第 29章 查找問題算法 29.1 順序查找法 382 29.2 折半查找法 384 29.3 高手點撥 386 29.4 實戰練習 386 第30章 算法競賽實例 30.1 Hilbert曲線 388 30.2 四色問題 390 30.3 跳馬問題 391 30.4 生成全部排列及其應用 392 30.5 貪吃蛇游戲 393 30.6 幻方 394 30.7 高精度計算 395 30.8 高手點撥 396 30.9 實戰練習 396 第 Ⅴ 篇趣味解題 第31章 歌手比賽評分系統 31.1 問題描述 399 31.2 問題分析及實現 399 31.2.1 問題分析 399 31.2.2 問題實現 399 31.2.3 程序運行 403 31.3 開發過程常見問題及解決方案 406 第32章 哥德巴赫猜想 32.1 問題描述 408 32.2 問題分析及實現 408 32.2.1 問題分析 408 32.2.2 問題實現 408 32.2.3 程序運行 410 32.3 開發過程常見問題及解決方案 410 第33章 打印日歷 33.1 問題描述 412 33.2 問題分析及實現 412 33.2.1 問題分析 412 33.2.2 問題實現 412 33.2.3 程序運行 413 33.3 開發過程常見問題及解決方案 414 第34章 背包問題 34.1 問題描述 416 34.2 問題分析及實現 416 34.2.1 問題分析 416 34.2.2 問題實現 416 34.2.3 程序運行 419 34.3 開發過程常見問題及解決方案 419 第35章 火車車廂重排 35.1 問題描述 422 35.2 問題分析及實現 422 35.2.1 問題分析 422 35.2.2 問題實現 422 35.2.3 程序運行 425 35.3 開發過程常見問題及解決方案 426 第36章 商人過河 36.1 問題描述 428 36.2 問題分析及實現 428 36.2.1 問題分析 428 36.2.2 問題實現 428 36.2.3 程序運行 430 36.3 開發過程常見問題及解決方案 430 第37章 K階斐波那契數列的實現 37.1 問題描述 432 37.2 問題分析及實現 432 37.2.1 問題分析 432 37.2.2 問題實現 432 37.2.3 程序運行 433 37.3 開發過程常見問題及解決方案 434 本書以零基礎入門為宗旨,用范例引導讀者學習,深入淺出地介紹了C語言的相關知識和實戰技能。
本書第Ⅰ篇【基礎知識】主要講解步入C語言的世界—Hello C、C程序的結構、C語言的基本構成元素、變量、數制、數據類型、運算符和表達式、算法、順序結構與選擇結構、循環結構與轉向語句、數組以及字符數組和字符串等;第Ⅱ篇【核心技術—函數】主要講解函數、變量的作用范圍和存儲類型、庫函數、結構體和聯合體、枚舉等;第Ⅲ篇【高級應用—指針及文件】主要介紹指針、指針與數組、指針與函數、指針與字符串、指針與結構體、指針的高級應用與技巧以及文件等;第Ⅳ篇【數據結構及C語言中的常用算法】主要介紹數據結構、C語言中的高級算法、數學問題算法、排序問題算法、查找問題算法以及算法競賽實例等;第Ⅴ篇【趣味解題】主要介紹歌手比賽評分系統、哥德巴赫猜想、打印日歷、背包問題、火車車廂重排、商人過河以及K階斐波那契數列的實現等。 本書提供了與圖書內容全程同步的教學錄像。此外,還贈送了大量相關的學習資料,以便讀者擴展學習。 本書適合任何想學習C語言的讀者,無論你是否從事計算機相關行業、是否接觸過C語言,均可通過學習本書快速掌握C語言的開發方法和技巧。 |