幫助中心 | 我的帳號 | 關於我們

C語言編程從入門到實戰

  • 作者:編者:王長青|責編:張濤
  • 出版社:人民郵電
  • ISBN:9787115695192
  • 出版日期:2026/06/01
  • 裝幀:平裝
  • 頁數:492
人民幣:RMB 99 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書循序漸進、由淺入深地講解了C語言開發的基礎與核心知識。全書共25章。本書不僅介紹了C語言的基礎知識(如開發工具、語法、運算符、表達式、輸入/輸出、流程式控制制、數組、字元串、函數),還講解了C語言中的重點和難點(如指針、結構體、共用體和枚舉、鏈表、位運算、預編譯、文件操作、調試、內存管理、高級編程技術、演算法、數據結構、網路編程技術等)。此外,本書還通過4個綜合實例,介紹了C語言在綜合項目中的應用。全書內容以「技術解惑」和「範例演練」貫穿全書,引領讀者全面掌握C語言。
    本書不但適合C語言的初學者,也適合有一定C語言基礎的讀者學習,還可以作為大專院校相關專業的師生用書和培訓學校的教材。

作者介紹
編者:王長青|責編:張濤

目錄
第1章 C語言之定位
  1.1 電腦應用基礎
    1.1.1 中央處理器
    1.1.2 位和位元組
    1.1.3 二進位
    1.1.4 編碼格式
  1.2 C語言的誕生
  1.3 第一印象的建立
  1.4 理解編譯系統——學習的第一步
  1.5 技術解惑
    1.5.1 學習C語言還有用嗎
    1.5.2 怎樣學好C語言
    1.5.3 學好C語言的建議
  1.6 課後練習
第2章 C語言開發工具詳解
  2.1 用DOS開發C程序
    2.1.1 安裝Turbo C 3.0
    2.1.2 使用Turbo C 3.0
  2.2 在Windows環境下使用Visual Studio 2017
    2.2.1 安裝Visual Studio 2017
    2.2.2 使用Visual Studio 2017開發一個C程序
  2.3 使用輕量級開發工具DEV C++
    2.3.1 安裝DEV C++
    2.3.2 使用DEV C++運行一個C程序
  2.4 使用Visual C++ 6.0開發C程序
  2.5 使用手機開發C程序
  2.6 技術解惑
    2.6.1 安裝Visual Studio 2017時遇到的常見問題
    2.6.2 在Windows 7中安裝Visual Studio時遇到的常見問題
  2.7 課後練習
第3章 程序員基本素質的培養
  3.1 養成好的命名習慣
  3.2 C程序文件結構
    3.2.1 C程序的組成部分
    3.2.2 C程序的格式總結
  3.3 養成好的C語言編程風格
    3.3.1 隨時使用縮進格式
    3.3.2 注意大括弧的位置
    3.3.3 函數的規則
    3.3.4 注意註釋
  3.4 如何成為一名優秀的程序員
  3.5 技術解惑
  3.6 課後練習
第4章 C語言語法
  4.1 標識符和關鍵字
  4.2 最基本的數據類型
  4.3 常量和變數
    4.3.1 常量
    4.3.2 變數
  4.4 整型數據

    4.4.1 整型常量
    4.4.2 整型變數
  4.5 實型數據
    4.5.1 實型常量
    4.5.2 實型變數
    4.5.3 實型常量的類型
  4.6 字元型數據
    4.6.1 字元常量
    4.6.2 字元串常量
    4.6.3 字元變數
  4.7 初始化變數
  4.8 整型、實型和字元型數據間的運算總結
    4.8.1 自動轉換
    4.8.2 強制轉換
  4.9 技術解惑
    4.9.1 在C語言中無符號整型變數和有符號整型變數的定義
    4.9.2 在C語言中字元變數的含義
    4.9.3 如何理解字元型數據的取值範圍
    4.9.4 怎樣將帶小數點的字元型數據轉換成浮點型
  4.10 課後練習
第5章 運算符和表達式
  5.1 概述
    5.1.1 運算的種類
    5.1.2 運算符的優先順序
  5.2 算術運算符和算術表達式
    5.2.1 單目運算符
    5.2.2 雙目運算符
  5.3 賦值運算符和賦值表達式
    5.3.1 基本賦值運算符
    5.3.2 複合賦值運算符
    5.3.3 賦值表達式
  5.4 關係運算符和關係表達式
    5.4.1 關係運算符
    5.4.2 關係表達式
  5.5 邏輯運算符和邏輯表達式
    5.5.1 邏輯運算符
    5.5.2 邏輯表達式
  5.6 逗號運算符和逗號表達式
    5.6.1 逗號運算符
    5.6.2 逗號表達式
  5.7 求位元組數的運算符
  5.8 技術解惑
    5.8.1 C語言運算符優先順序
    5.8.2 少數運算符在規定表達式中的求值順序
    5.8.3 在C語言中是否可以進行混合運算
    5.8.4 在一個邏輯條件語句中常數項永遠在左側
    5.8.5 賦值處理的自動類型轉換
  5.9 課後練習
第6章 輸入和輸出
  6.1 C語句的初步知識

    21.6.1 處理過程
    21.6.2 NetBIOS命令
    21.6.3 NetBIOS名字解析
    21.6.4 NetBEUI
    21.6.5 NetBIOS的範圍
    21.6.6 NetBIOS控制塊
  21.7 實戰演練——獲取當前機器的MAC地址
    21.7.1 選擇開發工具
    21.7.2 設計MFC窗體
    21.7.3 具體編碼
第22章 初入江湖——設計遊戲項目
  22.1 遊戲功能描述
  22.2 遊戲總體設計
    22.2.1 功能模塊設計
    22.2.2 數據結構設計
    22.2.3 構成函數介紹
  22.3 遊戲的具體實現
    22.3.1 預處理
    22.3.2 主函數
    22.3.3 初始化界面處理
    22.3.4 時鐘中斷處理
    22.3.5 成績、速度和幫助處理
    22.3.6 滿行處理
    22.3.7 方塊顯示和消除處理
    22.3.8 方塊判斷處理
第23章 風雲再起——設計網路項目
  23.1 系統功能描述
  23.2 系統總體設計
    23.2.1 功能模塊設計
    23.2.2 數據結構設計
    23.2.3 構成函數介紹
  23.3 系統的具體實現
    23.3.1 預處理
    23.3.2 初始化處理
    23.3.3 控制模塊
    23.3.4 數據報解讀處理
    23.3.5 Ping測試處理
    23.3.6 主函數
第24章 爐火純青——學生成績管理系統
  24.1 系統總體描述
    24.1.1 項目開發的目標
    24.1.2 項目的意義
    24.1.3 系統功能描述
  24.2 系統總體設計
    24.2.1 功能模塊設計
    24.2.2 數據結構設計
    24.2.3 構成函數介紹
  24.3 系統的具體實現
    24.3.1 預處理
    24.3.2 主函數

    24.3.3 系統主菜單函數
    24.3.4 表格顯示信息
    24.3.5 信息查找定位
    24.3.6 格式化輸入數據
    24.3.7 增加學生記錄
    24.3.8 查詢學生記錄
    24.3.9 刪除學生記錄
    24.3.10 修改學生記錄
    24.3.11 插入學生記錄
    24.3.12 統計學生記錄
    24.3.13 排序處理
    24.3.14 存儲學生信息
第25章 笑傲江湖——使用C51實現跑馬燈程序
  25.1 單片機C語言基礎
    25.1.1 單片機C語言的優越性
    25.1.2 C51的數據類型
    25.1.3 C51數據的存儲結構
    25.1.4 C51運算符和表達式
    25.1.5 C51的中斷函數
  25.2 跑馬燈設計實例
    25.2.1 基本跑馬燈的實現
    25.2.2 矩形波發生器
    25.2.3 用定時器/計數器產生矩形波
  25.3 一個完整的跑馬燈程序
    25.3.1 電路設計
    25.3.2 程序設計

    6.1.1 C語句簡介
    6.1.2 賦值語句
  6.2 打通任督二脈——數據輸入和輸出
    6.2.1 putchar函數
    6.2.2 getchar函數
    6.2.3 printf函數
    6.2.4 scanf函數
    6.2.5 puts函數
    6.2.6 C11標準函數gets_s
  6.3 技術解惑
    6.3.1 gets_s函數和scanf函數的區別
    6.3.2 克服gets_s函數的缺陷
    6.3.3 C語言的輸入和輸出問題
  6.4 課後練習
第7章 流程式控制制
  7.1 最常見的順序結構
  7.2 選擇結構
    7.2.1 單分支結構語句
    7.2.2 雙分支結構語句
    7.2.3 多分支結構語句
    7.2.4 條件運算符和條件表達式
  7.3 循環結構
    7.3.1 for語句
    7.3.2 while語句
    7.3.3 do...while語句
    7.3.4 正確對待goto語句
    7.3.5 break/continue跳躍
    7.3.6 死循環/退出程序
  7.4 技術解惑
    7.4.1 循環中的低效問題
    7.4.2 分析C語言循環語句的效率
    7.4.3 使用for循環語句的注意事項
  7.5 課後練習
第8章 數組和字元串——數據的存在形式
  8.1 一維數組
    8.1.1 定義一維數組
    8.1.2 引用一維數組的元素
    8.1.3 初始化一維數組
  8.2 多維數組
    8.2.1 二維數組的用法
    8.2.2 多維數組的用法
  8.3 字元數組與字元串
    8.3.1 字元數組
    8.3.2 字元串與字元數組
    8.3.3 字元數組的輸入和輸出
  8.4 字元串處理函數
    8.4.1 測試字元串長度的函數
    8.4.2 字元串大小寫轉換函數
    8.4.3 字元串複製函數
    8.4.4 字元串比較函數

    8.4.5 字元串連接函數
    8.4.6 其他的字元串函數
    8.4.7 將字元串轉換成數值的函數
  8.5 字元處理函數
    8.5.1 字元檢測函數
    8.5.2 字元大小寫轉換函數
  8.6 技術解惑
    8.6.1 數組的下標總是從0開始嗎
    8.6.2 C語言對數組的處理非常有效嗎
    8.6.3 初始化一維數組的注意事項
    8.6.4 冒泡排序
  8.7 課後練習
第9章 函數
  9.1 C函數的基礎知識
    9.1.1 函數的分類
    9.1.2 函數的定義
  9.2 函數聲明和函數原型
  9.3 函數的參數
    9.3.1 形參和實參
    9.3.2 以數組名作為函數的參數
    9.3.3 以數組作為函數的參數
  9.4 函數的返回值
  9.5 函數的調用
    9.5.1 函數調用的格式
    9.5.2 函數的調用方式
    9.5.3 被調函數的聲明方式
    9.5.4 對調用函數的方式進行深入分析
  9.6 函數的嵌套調用和遞歸調用
    9.6.1 函數的嵌套調用
    9.6.2 函數的遞歸調用
  9.7 變數的作用域和生存期
    9.7.1 變數作用域
    9.7.2 靜態存儲變數和動態存儲變數
  9.8 C的內部函數和外部函數
    9.8.1 內部函數
    9.8.2 外部函數
  9.9 庫函數
  9.10 技術解惑
    9.10.1 通過Turbo C深入分析項目文件
    9.10.2 要盡量避免不必要的函數調用
    9.10.3 請確保函數的聲明和定義是靜態的
    9.10.4 避免過長的main()函數
    9.10.5 函數的地址也是數據
    9.10.6 說明函數的時機
    9.10.7 一個函數可以有多少個參數
    9.10.8 如果一個函數沒有返回值,是否需要加入return語句
    9.10.9 在程序退出main函數之後還有可能執行一部分代碼
    9.10.10 exit()函數和return語句的差異
  9.11 課後練習
第10章 指針

  10.1 基本概念
  10.2 變數的指針和指向變數的指針變數
    10.2.1 聲明指針變數
    10.2.2 指針變數的初始化
    10.2.3 指針變數的引用
    10.2.4 關於指針運算符的說明
    10.2.5 指針變數的運算
    10.2.6 以指針變數作為函數參數
    10.2.7 void類型的指針
  10.3 指針和數組
    10.3.1 數組元素的指針
    10.3.2 指向一維數組元素的指針變數
    10.3.3 通過指針引用數組元素
    10.3.4 以數組名作為函數參數
  10.4 指針和多維數組
    10.4.1 多維數組的地址
    10.4.2 指向多維數組的指針變數
  10.5 指針和字元串
    10.5.1 指針訪問字元串
    10.5.2 以字元串指針作為函數參數
    10.5.3 字元串指針變數與字元數組的區別
  10.6 指針數組和多級指針
    10.6.1 指針數組
    10.6.2 多級指針的定義和應用
    10.6.3 指向指針的指針
    10.6.4 main函數的參數
  10.7 指針函數和函數指針
    10.7.1 指針函數
    10.7.2 函數指針
  10.8 技術解惑
    10.8.1 初始化指針時的注意事項
    10.8.2 為指針賦值時的注意事項
    10.8.3 當指針用於數組時的注意事項
    10.8.4 在結構中使用指針時的注意事項
    10.8.5 避免不必要的內存引用
    10.8.6 避免懸空指針和野指針
    10.8.7 數組下標與指針的效率解析
    10.8.8 使用指針時的常見錯誤
  10.9 課後練習
第11章 數據的熔爐——結構體、共用體和枚舉
  11.1 結構體
    11.1.1 定義結構體類型
    11.1.2 定義結構體類型變數
    11.1.3 引用結構體變數
    11.1.4 初始化結構體變數
  11.2 結構體數組
    11.2.1 定義結構體數組
    11.2.2 初始化結構體數組
    11.2.3 引用結構體數組
  11.3 結構體指針

    11.3.1 定義結構體指針變數
    11.3.2 初始化結構體指針變數
    11.3.3 引用結構體指針變數
    11.3.4 指向結構變數的指針
    11.3.5 指向結構體數組的指針
  11.4 在函數中使用結構體
    11.4.1 結構體變數和結構體指針可以作為函數參數
    11.4.2 函數可以返回結構體類型的值
  11.5 共用體(聯合)
    11.5.1 定義共用體和共用體變數
    11.5.2 引用和初始化共用體變數
  11.6 枚舉
    11.6.1 定義枚舉類型
    11.6.2 定義枚舉變數
    11.6.3 引用枚舉變數
  11.7 typedef定義類型的作用
    11.7.1 類型定義符typedef的基礎
    11.7.2 使用typedef
  11.8 技術解惑
    11.8.1 可以省略結構體嗎
    11.8.2 是否可以定義一種通用數據類型以存儲任意類型的數據
    11.8.3 結構和共用體的區別
    11.8.4 定義C結構體的問題
  11.9 課後練習
第12章 鏈表
  12.1 動態內存分配
    12.1.1 動態內存分配的作用
    12.1.2 實現動態內存分配及管理的方法
  12.2 鏈表詳解
    12.2.1 鏈表簡介
    12.2.2 單向鏈表
    12.2.3 創建一個鏈表
    12.2.4 刪除整個鏈表
    12.2.5 在鏈表中插入節點
    12.2.6 在鏈表中刪除節點
    12.2.7 雙向鏈表
    12.2.8 循環鏈表
  12.3 技術解惑
    12.3.1 鏈表的總結
    12.3.2 面試題——判斷單鏈表是否有環
    12.3.3 面試題——實現單鏈表逆置
  12.4 課後練習
第13章 位運算
  13.1 位運算符和位運算
    13.1.1 按位與運算
    13.1.2 按位或運算
    13.1.3 按位異或運算
    13.1.4 取反運算
    13.1.5 左移運算
    13.1.6 右移運算

    13.1.7 位運算的應用實例
  13.2 位域
    13.2.1 位域的定義和位域變數的說明
    13.2.2 位域的使用
  13.3 技術解惑
    13.3.1 二進位補碼的運算公式
    13.3.2 面試題——從某個數中取出指定的某些位
    13.3.3 位域的內存對齊原則
  13.4 課後練習
第14章 預編譯處理
  14.1 預編譯的基礎
  14.2 宏定義
    14.2.1 不帶參數的宏定義
    14.2.2 帶參數的宏定義
    14.2.3 字元串化運算符
    14.2.4 並接運算符
  14.3 文件包含
  14.4 條件編譯
    14.4.1 ifdef...else...endif命令
    14.4.2 if defined...else...endif
    14.4.3 ifndef...else...endif
    14.4.4 if !defined...else...endif
    14.4.5 ifdef...elif...elif...else...endif
  14.5 技術解惑
    14.5.1 還有其他預編譯指令嗎
    14.5.2 帶參的宏定義和函數不同
    14.5.3 C語言中預處理指令的總結
    14.5.4 預編譯指令的本質
    14.5.5 sizeof(int)在預編譯階段是不會求值的
    14.5.6 多行預處理指令的寫法
  14.6 課後練習
第15章 文件操作
  15.1 文件
    15.1.1 文本文件
    15.1.2 文件分類
  15.2 文件指針
  15.3 文件的打開與關閉
    15.3.1 打開文件
    15.3.2 關閉文件
  15.4 文件讀寫
    15.4.1 字元讀寫函數
    15.4.2 字元串讀寫函數
    15.4.3 格式化讀寫函數
    15.4.4 數據塊讀寫函數
    15.4.5 其他讀寫函數
  15.5 文件的隨機讀寫
    15.5.1 fseek函數
    15.5.2 rewind函數
    15.5.3 ftell函數
  15.6 文件管理函數

    15.6.1 刪除文件
    15.6.2 重命名文件
    15.6.3 複製文件
  15.7 文件狀態檢測函數
    15.7.1 feof函數
    15.7.2 ferror函數
    15.7.3 clearerr函數
  15.8 Win32 API中的文件操作函數
    15.8.1 創建和打開文件
    15.8.2 讀取、寫入和刪除文件
  15.9 技術解惑
    15.9.1 文件指針是文件內部的位置指針嗎
    15.9.2 fseek函數的換行問題
    15.9.3 怎樣解決gets函數的溢出問題
    15.9.4 feof函數會多讀一個數據嗎
    15.9.5 流和文件的關係
  15.10 課後練習
第16章 錯誤和程序調試
  16.1 常見錯誤分析
    16.1.1 語法錯誤
    16.1.2 邏輯錯誤(語義錯誤)
    16.1.3 內存錯誤
  16.2 錯誤的檢出與分離
  16.3 調試時的注意事項
    16.3.1 上機前要先熟悉程序的運行環境
    16.3.2 在編程時要為調試做好準備
  16.4 技術解惑
    16.4.1 編譯通過並不代表運行正確
    16.4.2 兩段代碼的編譯差別
    16.4.3 調試程序的方法與技巧
  16.5 課後練習
第17章 內存管理
  17.1 C語言中的內存模型
  17.2 棧和堆
    17.2.1 棧操作
    17.2.2 堆操作
  17.3 動態管理
    17.3.1 使用函數malloc動態分配內存空間
    17.3.2 使用函數calloc分配內存空間並初始化
    17.3.3 使用函數realloc重新分配內存
    17.3.4 使用函數free釋放內存空間
  17.4 課後練習
第18章 C語言高級編程技術
  18.1 C語言的高級編程技術
  18.2 分析文本的屏幕輸出和鍵盤輸入
    18.2.1 實現文本的屏幕輸出
    18.2.2 實現鍵盤輸入
    18.2.3 應用實例
  18.3 分析圖形顯示方式和滑鼠輸入
    18.3.1 初始化圖形模式

    18.3.2 清屏和恢復顯示函數
    18.3.3 建立獨立圖形程序
    18.3.4 基本繪圖函數
    18.3.5 線性函數
    18.3.6 顏色控制函數
    18.3.7 填色函數和畫圖函數
    18.3.8 圖形窗口函數
    18.3.9 分析圖形方式下的文本輸出函數
  18.4 菜單設計
  18.5 課後練習
第19章 演算法——抓住程序的靈魂
  19.1 我們對演算法的理解
    19.1.1 演算法是程序的靈魂
    19.1.2 何謂演算法
    19.1.3 演算法的特性
  19.2 演算法表示法——流程圖
  19.3 枚舉演算法
    19.3.1 枚舉演算法的基礎
    19.3.2 實戰演練——百錢買百雞
    19.3.3 實戰演練——填寫運算符
  19.4 遞推演算法
    19.4.1 遞推演算法的基礎
    19.4.2 實戰演練——斐波那契數列
    19.4.3 實戰演練——銀行存款
  19.5 遞歸演算法
    19.5.1 遞歸演算法的基礎
    19.5.2 實戰演練——漢諾塔
    19.5.3 實戰演練——階乘
  19.6 分治演算法
    19.6.1 分治演算法的基礎
    19.6.2 實戰演練——大數相乘
    19.6.3 實戰演練——歐洲冠軍杯比賽日安排
  19.7 貪心演算法
    19.7.1 貪心演算法的基礎
    19.7.2 實戰演練——裝箱
    19.7.3 實戰演練——找零方案
  19.8 試探法演算法
    19.8.1 試探法演算法的基礎
    19.8.2 實戰演練——八皇后
    19.8.3 實戰演練——體形29選7的組合
  19.9 迭代演算法
    19.9.1 迭代演算法的基礎
    19.9.2 實戰演練——求平方根
  19.10 模擬演算法
    19.10.1 模擬演算法的思路
    19.10.2 實戰演練——猜數字遊戲
    19.10.3 實戰演練——擲骰子遊戲
  19.11 技術解惑
    19.11.1 衡量演算法的標準
    19.11.2 選擇使用枚舉法的時機

    19.11.3 遞歸和遞歸的差異
    19.11.4 分治法解決問題的類型
    19.11.5 分治演算法的機理
    19.11.6 貪婪演算法並不是解決問題最優方案的原因
    19.11.7 回溯演算法是否會影響演算法效率
    19.11.8 遞歸演算法與迭代演算法的區別
  19.12 課後練習
第20章 數據結構
  20.1 使用線性表
    20.1.1 線性表的特性
    20.1.2 順序表操作
    20.1.3 實戰演練——使用順序表操作函數
  20.2 隊列
    20.2.1 隊列的定義
    20.2.2 實戰演練——實現一個排號程序
  20.3 棧
    20.3.1 棧的定義
    20.3.2 實戰演練——實現棧操作
  20.4 技術解惑
    20.4.1 線性表插入操作的時間複雜度
    20.4.2 線性表刪除操作的時間複雜度
    20.4.3 線性表按值查找操作的時間複雜度
    20.4.4 線性錶鏈接存儲操作的11種演算法
    20.4.5 堆和棧的區別
  20.5 課後練習
第21章 網路編程技術
  21.1 OSI 7層網路模型
  21.2 TCP/IP
    21.2.1 IP
    21.2.2 TCP
    21.2.3 UDP
    21.2.4 ICMP
  21.3 使用C語言開髮網絡項目
    21.3.1 網路編程方式
    21.3.2 網路通信的基本流程
    21.3.3 搭建開發環境
    21.3.4 兩個常用的數據結構
    21.3.5 Windows套接字的基礎
  21.4 常用的Winsock函數
    21.4.1 WSAStartup函數
    21.4.2 socket函數
    21.4.3 inet_addr函數
    21.4.4 gethostbyname函數
    21.4.5 bind函數
    21.4.6 connect函數
    21.4.7 select函數
    21.4.8 recv函數
    21.4.9 sendto函數
  21.5 MAC地址
  21.6 NetBIOS編程

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032