C程序設計:基於應用導向與任務驅動的學習方法 C程序设计:基于应用导向与任务驱动的学习方法

賀細平

  • 出版商: 電子工業
  • 出版日期: 2018-01-01
  • 定價: $534
  • 售價: 8.0$427
  • 語言: 簡體中文
  • 頁數: 510
  • 裝訂: 平裝
  • ISBN: 7121332329
  • ISBN-13: 9787121332326
  • 相關分類: C 程式語言
  • 立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

本書採用以解決實際應用問題為導向、以具體編程任務為驅動的模式,
將C語言的知識無縫融入每個實際應用程序中。
作者精心設計了100多個應用案例,每個案例均有實現特定功能的
、完整的、可運行的程序代碼。
本書圖表豐富,對程序設計的概念、求解問題的思路和方法、
程序背後的原理和機制進行了深入剖析。
全書共9章。
第1章從簡單程序入手,將程序設計相關的基礎性概念融入案例,
使讀者對C程序設計有一個整體的、直觀的、感性的認識。
第2章闡述表達復雜邏輯的分支和循環語句的用法,
使讀者對應用問題中的邏輯具有較好的表達能力。
第3章闡述了利用數組處理批量數據。
第4章闡述瞭如何存儲和處理文本型數據。
第5章全面地闡述了函數這一模塊化程序設計利器。
第6章對具有內存間接訪問能力的指針進行了深入闡述。
第7章講解如何利用結構體類型創建用戶所需新數據類型。
第8章闡述瞭如何利用文件實現數據持久化。
第9章講解了位運算的規則和用法。

作者簡介

博士,國防科技大學計算機學院計算機應用專業。
湖南農業大學信息科學技術學院電商系主任,副教授。
中國計算機學會會員,湖南省高教學會計算機教育專業委員會會員。
出版教材:
現代計算機網絡系統原理及技術研究,中國商務出版社,2013年。

目錄大綱

第1章邂逅程序設計—初識C語言1 
1.1第一個程序—我會算加法2 
1.2人機交互—輸入和輸出函數的基本用法10 
1.3條件與判斷—隨機應變17 
1.3.1二叉分支的表達—基本的if—else語句17 
1.3.2複合條件的表達22 
1.4利用庫函數—拿來主義25 
1.5機器擅長之“算術運算”—計算機的老本行28 
1.6變量—數據的棲身之所34 
1.6.1變量的概念34 
1.6.2變量的數據類型37 
1.6.3程序中的常量40 
1.7賦值運算—改變變量的值42 
1.8程序設計的一般過程47 
本章小結48 

第2章程序邏輯之關鍵—分支與循環51 
2.1機器智能與決策之基石—分支結構52 
2.1.1決策與分支結構52 
2.1.2基本分支結構及其連接方式60 
2.1.3邏輯運算與復合條件表達71 
2.1.4if條件表達典型錯誤分析75 
2.2機器擅長之“循環”—不厭其煩地重複77 
2.2.1for循環的引入78 
2.2.2剖析for循環86 
2.2.3必須應用循環結構的場合90 
2.2.4循環的初步運用93 
2.2.5for循 常見錯誤分析96
2.3程序邏輯進階—多分支和多重循環98 
2.3.1深入理解循環98 
2.3.2循環的連接100 
2.3.3雙重循環與多重循環107 
2.3.4break和continue的運用110 
2.3.5分支與循環的串聯和嵌套120 
2.4其他形式分支與循環121 
2.4.1switch—case分支結構121 
2.4.2while與do…while循環128 
本章小結130 

第3章批量數據存儲與處理—數組134 
3.1何時需要數組134 
3.2序列數據的處理—一維數組135 
3.2.1一維數組的定義135 
3.2.2數組與內存分配137 
3.2.3數組操作之演練140 
3.2.4一維數組的運用141 
3.2.5巧用數組下標149 
3.3表格型數據的處理—二維數組154 
3.3.1二維數組的定義154 
3.3.2訪問二維數組的元素155 
3.3.3二維數組操作演練155 
3.3.4二維數組的應用159 
3.4其他164 
3.4.1數組的拓展—多維數組164 
3.4.2二維數組與一維數組的關係165 
3.4.3數組下標越界165 
3.4.4數組定義時的大小能否為變量167 
本章小結168

第4章文本數據處理—字符串169 
4.1字符數據存儲和處理169 
4.1.1字符的編碼169 
4.1.2字符數據的存儲173 
4.1.3字符數據的運算173 
4.2字符串數據存儲和處理176 
4.2. 1字符串的存儲176 
4.2.2文本型數據輸入/輸出177 
4.2.3字符串處理與庫函數180 
4.3文本型數據處理之演練190 
4.4其他193 
4.4.1空字符'\0'的作用193 
4.4 .2字符和字符串的區別與聯繫194 
本章小結195 

第5章模塊化設計之利器—函數196 
5.1初識函數設計197 
5.2函數的概念200 
5.2.1函數的概念剖析200 
5.2.2模塊化設計思想在函數中的體現203 
5.3新函數是如何煉成的206 
5.4函數的設計207 
5.4.1發掘任務中的模塊207 
5.4.2函數的定義207 
5.4.3設計函數的方法論209 
5.4.4設計函數的要點詳解211 
5.5函數的測試220 
5.6函數的交付使用221 
5.6.1函數的調用形式223 
5.6.2函數調用過程詳解224 
5.6.3函數參數的傳遞230 
5.6.4函數的聲明234
5.7函數設計實踐236 
5.8函數的遞歸—自相似之美249 
5.8.1初識遞歸函數250 
5.8.2遞歸函數設計的關鍵點253 
5.8.3遞歸調用的執行過程262 
5.8.4二分法與遞歸264 
5.8 .5遞歸與非遞歸273 
5.8.6提高遞歸效率281 
5.9函數相關主題287 
5.9.1局部變量與全局變量287 
5.9.2函數的嵌套定義的應用289 
5.9.3如何生成隨機數289 
5.9.4庫函數295 
5.9.5初談提高程序效率295 
本章小結299 

第6章內存間接訪問之神器—指針301 
6.1深入理解內存地址302 
6.1.1內存是什麼302 
6.1.2什麼是內存地址302 
6.2間接訪問與直接訪問305 
6.3指針變量與普通變量309 
6.3.1指針變量的概念309 
6.3.2揭秘“指針”的由來310 
6.3.3普通變量與指針變量的對比311 
6.4指針與數組的天然聯繫312 
6.4. 1數組名與數組起始地址312 
6.4.2揭秘訪問數組的更多細節313 
6.5指針的移動319 
6.6地址值在函數調用中的特殊作用331 
6.6.1函數調用過程詳解331
6.6.2指針作為函數參數334 
6.6.3數組名作為函數實參341 
6.6.4可接受地址值的形參類型探究349 
6.7指針與動態內存分配352 
6.7.1一維數組的動態內存分配354 
6.7 .2二維及多維數組與指針357 
6.7.3多階指針370 
6.7.4返回值為指向動態分配空間的指針370 
6.8變量的存儲區、作用範圍與生命期371 
6.8.1靜態變量和全局變量372 
6.8.2進程內存地址空間佈局376 
6.8.3變量的作用範圍、生命期和存儲區379 
6.8.4extern的用法382 
6.9函數也可作為參數—函數指針與應用384 
6.9.1函數指針的概念384 
6.9.2函數指針數組的運用387 
6.9.3函數指針與qsort()函數的應用388 
本章小結396 

第7章創造新數據類型—結構體類型399 
7.1為何引入結構體類型399 
7.2結構體類型的定義和基本用法402 
7.2.1結構體類型的定義402 
7.2.2結構體類型的基本用法406 
7.3結構體類型數組的用法409 
7.4結構體類型在函數中的運用411 
7.4.1結構體類型 函數中的一般用法411 
7.4.2結構體類型數組的排序420
7.5結構體類型與鍊錶431 
7.5.1鍊錶的概念和用途431 
7.5.2鍊錶432 
7.5.3為什麼需要鍊錶439 
7.5.4循環單鍊錶及其應用440 
本章小結447 

第8章數據持久化—文件448 
8.1文件的基本概念449 
8.1.1文件的“紙帶模型”449 
8.1.2緩衝文件讀/寫過程模型451 
8.1.3讀/寫文件基本流程與文件指針452 
8.1.4文件打開方式454 
8.2文件的讀/寫454 
8.2.1文本文件的讀/寫454 
8.2.2二進製文件讀/寫459 
8.3文件讀/寫位置的定位466 
8.4文本文件與二進製文件的對比470 
8.5其他主題475 
8.5.1關於stdin、stdout、stderr475 
8.5.2標準輸入、輸出的重定向476 
8.5.3理解和運用stderr與stdout478 
8.5.4fflush()函數的用法479 
8.5.5EOF的運用481 
8.5.6容易被誤解的feof()函數482 
8.5.7fgets()與gets()的區別484 
本章小結485 
……

第9章深入到bit的運算—位運算487