C語言編程從零開始學( 簡體 字) | |
作者:王英英、李小威 | 類別:1. -> 程式設計 -> C -> C |
出版社:清華大學出版社 | 3dWoo書號: 49682 詢問書籍請說出此書號! 有庫存 NT售價: 645 元 |
出版日:8/1/2018 | |
頁數:605 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302503262 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章為什么要學習C語言——認識C語言 1
1.1C語言概述 1 1.1.1C語言的起源 1 1.1.2C語言的特點 2 1.1.3C語言的應用領域 4 1.2C語言的常用開發環境 4 1.2.1VisualC++6.0開發環境 4 1.2.2TurboC2.0開發環境 10 1.2.3VisualStudio2017開發環境 11 1.3C語言編譯機制 14 1.4編寫第1個C語言程序 15 1.4.1在VisualC++6.0中開發C程序 15 1.4.2在TurboC中開發C程序 20 1.4.3在VisualStudio2017中開發C程序 23 1.5疑難解惑 25 1.6經典習題 26 第2章C語言程序結構 27 2.1C語言源程序 27 2.1.1熟悉源程序的特點 28 2.1.2函數 28 2.2編碼規范 29 2.2.1版式要求 29 2.2.2命名規則 30 2.2.3正確性與容錯要求 30 2.3語句 31 2.3.1表達式語句 31 2.3.2函數調用語句 31 2.3.3控制語句 31 2.3.4復合語句 32 2.3.5空語句 32 2.4輸入輸出對象 32 2.4.1格式化輸入函數 32 2.4.2格式化輸出函數 36 2.4.3字符的輸入函數 40 2.4.4字符的輸出函數 42 2.4.5字符串的輸入函數 43 2.4.6字符串的輸出函數 44 2.5關鍵字 45 2.6標識符 46 2.7小試身手—格式控制符對寬度和精度的操作 47 2.8技能提升—在printf()函數中展示各類格式控制符 48 2.9疑難解惑 49 2.10經典習題 50 第3章算法與流程圖 52 3.1算法的概念 52 3.1.1算法的特性 53 3.1.2衡量算法的“好”與“壞” 53 3.2流程圖簡介 54 3.2.1傳統流程圖 55 3.2.2N-S流程圖 57 3.3如何描述算法 57 3.3.1自然語言 57 3.3.2流程圖 59 3.3.3三種基本結構 60 3.3.4N-S流程圖 66 3.3.5偽代碼 69 3.3.6計算機語言 71 3.4結構化程序設計方法 72 3.5小試身手—求100以內能被3和5整除的數 73 3.6技能提升—求奇數的階層之后再求和 74 3.7疑難解惑 75 3.8經典習題 76 第4章數據類型 78 4.1數據的表示方法 78 4.1.1十進制 79 4.1.2二進制 79 4.1.3八進制 79 4.1.4十六進制 79 4.2基本數據類型 80 4.2.1整數類型 80 4.2.2字符類型 83 4.2.3實型 85 4.2.4布爾類型 87 4.3數據類型的轉換 88 4.3.1自動類型轉換 88 4.3.2強制類型轉換 90 4.4常量 91 4.4.1整數常量 91 4.4.2字符常量 93 4.4.3字符串常量 95 4.4.4符號常量 96 4.5變量 97 4.5.1變量的定義 97 4.5.2變量的聲明 98 4.5.3變量的初始化與賦值 99 4.5.4變量的分類 100 4.6變量的存儲類別 105 4.6.1動態存儲與靜態存儲 105 4.6.2自動(auto)變量 105 4.6.3靜態(static)變量 107 4.6.4寄存器(register)變量 107 4.6.5外部(extern)變量 108 4.7混合運算 109 4.7.1存儲形式 109 4.7.2范圍 109 4.4.3混合運算原則 110 4.8typedef與#define 111 4.9小試身手——查詢數據類型的長度 112 4.10技能提升——求長方體的體積及三個面的面積 114 4.11疑難解惑 115 4.12經典習題 116 第5章運算符和表達式 117 5.1運算符概述 117 5.1.1賦值運算符 117 5.1.2算術運算符 120 5.1.3關系運算符 122 5.1.4邏輯運算符 124 5.1.5位邏輯運算符 126 5.1.6移位運算符 127 5.1.7條件運算符 128 5.1.8逗號運算符 130 5.1.9類型轉換運算符 131 5.2運算符優先級和結合性 132 5.3表達式概述 133 5.4小試身手—判斷兩個變量的大小 134 5.5技能拓展—運算符解決生活小問題 135 5.6疑難解惑 136 5.7經典習題 137 第6章程序流程控制語句 138 6.1順序語句 138 6.2條件判斷語句 139 6.2.1if條件 139 6.2.2if…else條件 142 6.2.3條件運算符 144 6.3多重選擇語句 145 6.3.1if…else…if語句 145 6.3.2if的嵌套語句 147 6.3.3switch分支結構語句 149 6.4循環語句 151 6.4.1while循環 152 6.4.2do…while循環 153 6.4.3for循環 155 6.4.4循環語句的嵌套 157 6.5跳出循環 158 6.5.1break語句 158 6.5.2continue語句 159 6.6小試身手—判定三角形 160 6.7技能提升—自動售貨機 161 6.8疑難解惑 163 6.9自我評估 164 第7章函數 165 7.1函數的基本結構 165 7.1.1函數的聲明與定義 165 7.1.2函數的調用 170 7.1.3函數的嵌套調用 174 7.1.4函數的遞歸調用 176 7.1.5函數的參數 179 7.1.6參數的傳遞方式 181 7.2函數的返回語句 184 7.2.1函數的返回值 184 7.2.2函數的結束標志 186 7.2.3函數的返回值類型 187 7.3變量的作用域 188 7.3.1局部變量 189 7.3.2全局變量 190 7.4小試身手—倒序輸出字符 193 7.5技能提升1—打印乘法口訣表 194 7.6技能提升2—分析學生的成績 195 7.7疑難解惑 197 7.8經典習題 198 第8章數組 200 8.1數組的概述 200 8.2一維數組 201 8.2.1一維數組的定義 201 8.2.2一維數組的引用 203 8.2.3一維數組的初始化 204 8.2.4數組的操作 207 8.3二維數組和多維數組 209 8.3.1二維數組的定義 209 8.3.2二維數組的引用 209 8.3.3二維數組的初始化 212 8.3.4多維數組 215 8.3.5數組的操作 217 8.4數組與函數 220 8.4.1一維數組作為函數的參數 220 8.4.2數組名作為函數參數 221 8.4.3形參數組和實參數組 222 8.5字符數組 224 8.5.1字符數組與字符串 224 8.5.2字符數組的輸出與輸入 228 8.5.3字符串處理函數 231 8.6小試身手—計算字符數組的長度 237 8.7技能提升—操作矩陣 238 8.8疑難解惑 240 8.9經典習題 241 第9章指針 242 9.1指針概述 242 9.1.1地址與指針 242 9.1.2指針變量的定義 245 9.1.3指針變量的引用 248 9.2指針與函數 251 9.2.1指針變量作為函數參數 251 9.2.2指針函數 253 9.2.3函數指針 256 9.3指針與數組 258 9.3.1數組元素的指針 258 9.3.2指針的運算 259 9.3.3通過指針引用數組元素 260 9.3.4指向數組的指針變量作為函數參數 262 9.3.5通過指針對二維數組進行引用 268 9.4指針與字符串 274 9.4.1字符指針 274 9.4.2使用字符指針做函數參數 278 9.4.3字符數組與字符指針變量的區別 282 9.5指針數組和多重指針 283 9.5.1指針數組 284 9.5.2指向指針的指針 288 9.6小試身手—遍歷數組 294 9.7綜合案例—尋找第一個相同元素 295 9.8疑難解惑 297 9.9經典習題 300 第10章結構體、共用體和枚舉 301 10.1結構體概述 301 10.1.1結構體類型 301 10.1.2定義結構體變量 303 10.1.3初始化結構體變量 305 10.1.4結構體變量的引用 306 10.2結構體數組 309 10.2.1定義結構體數組 309 10.2.2結構體數組的初始化 311 10.2.3結構體數組元素的引用 312 10.2.4結構體數組應用實例 313 10.3結構體指針 314 10.3.1指向結構體變量的指針 314 10.3.2指向結構體數組的指針 318 10.3.3結構體變量作為函數參數 320 10.3.4指向結構體變量的指針作為函數參數 321 10.3.5結構體作為函數的返回值 323 10.4共用體 324 10.4.1共用體的定義 324 10.4.2共用體變量的定義 324 10.4.3共用體變量的初始化以及引用 326 10.5枚舉 329 10.5.1定義枚舉類型 329 10.5.2定義枚舉類型變量 330 10.6小試身手—建立居民身份信息卡 333 10.7技能提升—創建學生成績輸入系統 335 10.8疑難解惑 337 10.9經典習題 339 第11章操作文件 340 11.1文件概述 340 11.1.1文件類型 341 11.1.2文件指針 342 11.1.3文件的緩沖區 343 11.2文件的打開與關閉 343 11.2.1文件的打開操作 344 11.2.2文件的關閉 346 11.3文件的讀寫 347 11.3.1字符的讀寫 347 11.3.2字符串的讀寫 351 11.3.3數據塊的讀寫 354 11.3.4格式化讀寫函數 358 11.4文件定位與文件的隨機讀寫 362 11.4.1文件頭定位函數rewind() 362 11.4.2隨機定位函數fseek() 363 11.4.3當前讀寫位置函數ftell() 365 11.5文件檢測函數 366 11.5.1文件結束檢測函數feof() 366 11.5.2文件讀寫錯誤檢測函數ferror() 367 11.5.3文件錯誤標志清除函數clearerr() 369 11.6小試身手—整理學生體檢信息 370 11.7技能提升—制作暑期計劃表 372 11.8疑難解惑 374 11.9經典習題 376 第12章編譯與預處理指令 377 12.1預處理 377 12.2宏定義命令—#define 380 12.2.1無參數的宏 380 12.2.2帶參數的宏定義 384 12.2.3宏定義的嵌套 390 12.2.4宏定義的作用范圍 391 12.2.5宏定義的多行表示 392 12.3文件包含 393 12.4條件編譯 394 12.4.1條件編譯命令 395 12.4.2調試中使用DEBUG宏 398 12.4.3文件的嵌套包含與條件編譯 400 12.5小試身手—判斷閏年的宏函數 401 12.6技能提升—大寫字母轉換 401 12.7疑難解惑 402 12.8經典習題 403 第13章使用庫函數 404 13.1標準C庫函數 404 13.2數學函數“math.h” 405 13.2.1求冪函數與開平方函數 405 13.2.2指數函數與對數函數 407 13.2.3三角函數 408 13.2.4絕對值函數 410 13.2.5取整函數與取余函數 411 13.3字符串函數“string.h” 413 13.3.1字符串長度函數 413 13.3.2字符串連接函數 414 13.3.3字符串復制函數 415 13.3.4字符串大小寫轉換函數 418 13.3.5字符串查找函數 419 13.3.6字符串比較函數 421 13.4字符函數“ctype.h” 424 13.4.1字符的類型判斷函數 424 13.4.2字符大小寫轉換函數 426 13.5其他函數 428 13.5.1隨機函數 428 13.5.2日期時間函數 429 13.5.3結束程序函數 431 13.6小試身手—字符串首字母轉換成大寫 432 13.7技能提升—計算任意三角形面積代碼 433 13.8疑難解惑 434 13.9經典習題 435 第14章位運算 436 14.1位(bit)與字節(byte)的關系 436 14.2循環移位 436 14.3位段 439 14.3.1位段的定義 439 14.3.2位段結構在內存中的存儲方式 440 14.4小試身手—計算段位結構的大小 442 14.5技能提升—將十進制數轉換為二進制數 443 14.6疑難解惑 444 14.7經典習題 445 第15章網絡套接字編程 446 15.1計算機網絡入門 446 15.1.1IP地址 446 15.1.2OSI七層參考模型 447 15.1.3地址解析 448 15.1.4域名系統 449 15.1.5TCP/IP協議 449 15.1.6端口 451 15.1.7網絡字節順序 452 15.2認識套接字 452 15.2.1套接字概述 452 15.2.2TCP的套接字的socket編程 453 15.2.3UDP的套接字的socket編程 453 15.3套接字函數 454 15.4小試身手——基于TCP協議的服務端程序 463 15.5技能提升——基于TCP協議的客戶端程序 465 15.6疑難解惑 467 15.7經典習題 468 第16章動態數據結構 469 16.1動態存儲分配概述 469 16.1.1malloc()函數 470 16.1.2calloc()函數 471 16.1.3realloc()函數 472 16.1.4free()函數 474 16.2鏈表概述 475 16.2.1鏈表結點的定義 475 16.2.2鏈表的建立 476 16.2.3鏈表的遍歷 476 16.2.4鏈表結點的插入 478 16.2.5鏈表結點的刪除 482 16.3小試身手—鏈表的建立、插入和刪除 486 16.4綜合案例—使用鏈表添加學生信息 490 16.5疑難解惑 493 16.6經典習題 494 第17章數據結構進階 495 17.1數據結構概述 495 17.2線性表 497 17.3棧 499 17.3.1棧的基本操作 500 17.3.2順序棧 500 17.3.3鏈式棧 503 17.4隊列 505 17.4.1隊列的基本運算 505 17.4.2順序隊列 505 17.4.3鏈式隊列 509 17.5二叉樹 513 17.5.1二叉樹的定義 513 17.5.2二叉樹的遍歷 513 17.6查找 515 17.6.1順序查找 515 17.6.2折半查找 516 17.7小試身手—查找數組中指定的元素 518 17.8綜合案例—操作隊列 520 17.9疑難解惑 524 17.10經典習題 525 第18章排序 526 18.1排序的概述 526 18.2冒泡排序 527 18.3快速排序 529 18.4直接插入排序 531 18.5希爾排序 533 18.6簡單選擇排序 535 18.7堆排序 537 18.8基數排序 540 18.9歸并排序 542 18.10疑難解惑 545 18.11經典習題 547 第19章項目實訓——開發餐飲管理系統 548 19.1需求分析 548 19.2功能分析 549 19.3開發前準備工作 550 19.4系統代碼編寫 551 19.4.1登錄管理模塊 551 19.4.2員工管理模塊 554 19.4.3用餐服務相關功能 581 19.4.4數據組織及工具方法 597 19.4.5主程序入口 609 19.5系統運行 610 19.6項目總結 616 (視頻教學版)
本書分為19章,內容包括認識C語言、C語言程序結構、算法與流程圖、基本數據類型、運算符和表達式、程序流程控制結構、函數、數組與字符串、指針、結構體、共用體、枚舉、操作文件、編譯與預處理指令、使用庫函數、位運算、網絡套接字編程、動態數據結構、數據結構進階、排序等。最后通過1個綜合項目實訓,進一步講述C語言在實際工作中的應用。本書注重實戰操作,幫助讀者循序漸進地掌握C語言中的各項技術。 本書共有400多個實例,還有大量的經典習題。隨書下載包中贈送了培訓班形式的視頻教學錄像,詳細講解了書中每一個知識點與編程方法和技巧。同時下載包中還提供了本書所有例子的源代碼,讀者可以直接查看和調用。 本書適合C語言初學者和C語言開發人員,同時也能作為高等院校和培訓學校相關專業的師生教學參考。 C語言是一門歷史悠久、博大精深的程序設計語言。它對計算機技術的發展起到了極其重要的促進作用,而且這種促進作用一直在持續并將繼續持續下去。但在學習之初,很多C語言的初學者都苦于找不到一本通俗易懂、容易入門和案例實用的參考書。本書根據這樣的需求,針對初學者量身定做,內容注重實戰,通過實例的操作與分析,引領讀者快速學習和掌握C語言開發技術。
本書內容 本書提供了從入門到編程高手所具備的各類知識,大體結構如下圖所示。 本書特色 內容全面:知識點由淺入深,涵蓋了所有C語言的基礎知識,方便讀者由淺入深地掌握C語言的開發技術。 圖文并茂:注重操作,圖文并茂。在介紹案例的過程中,每一個操作均有對應步驟和過程說明。這種圖文結合的方式使讀者在學習過程中能夠直觀、清晰地看到操作的過程以及效果,便于讀者更快地理解和掌握。 易學易用:顛覆傳統“看”書的觀念,變成一本能“操作”的圖書。 案例豐富:把知識點融匯于系統的案例實訓當中,并且結合綜合案例進行講解和拓展。進而達到“知其然,并知其所以然”的效果。 提示技巧:本書對讀者在學習過程中可能會遇到的疑難問題以“提示”和“技巧”的形式進行了說明,以免讀者在學習的過程中走彎路。 超值下載包:隨書贈送400多個詳細實例源代碼,能讓讀者在實戰應用中掌握C語言的每一項技能。還提供培訓班形式的視頻教學錄像,使本書真正體現“自學無憂”,令其物超所值。 源碼、課件與教學視頻 本書配套源碼、課件與教學視頻下載地址可以右邊掃描二維碼獲取。如果有問題,請聯系booksaga@163.com,郵件主題為“C語言編程從零開始學”。 讀者對象 本書是一本完整介紹C語言編程技術的教程,內容豐富、條理清晰、實用性強,適合以下讀者學習使用: ● C語言的初學者。 ● 對C語言開發有興趣,希望快速、全面掌握C語言的人員。 ● 高等院校和培訓學校相關專業的師生。 鳴謝 本書由王英英和李小威主編,參與編寫工作的還有張開保、張國年、許金花、陳敏敏、陳鶯鶯、許剛、張雄、劉洪平、賀發紅、申青龍、李彬彬、賈文學、包惠利、張工廠、陳偉光、胡同夫、梁云亮、劉海松、劉玉萍、劉增產、孫若淞、王攀登、王維維、肖品和李園等人。雖然傾注了編者的努力,但由于水平有限、時間倉促,書中難免有錯漏之處,請讀者諒解。如果遇到問題或有建議和意見,敬請與我們聯系,技術支持QQ群:389543972,我們將全力提供幫助。 編 者 2018年6月 |