C語言開發手冊:基礎·案例·應用

明日科技

  • 出版商: 化學工業
  • 出版日期: 2022-02-01
  • 定價: $648
  • 售價: 8.5$551
  • 語言: 簡體中文
  • 頁數: 353
  • 裝訂: 平裝
  • ISBN: 7122401669
  • ISBN-13: 9787122401663
  • 相關分類: C 程式語言
  • 立即出貨

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

商品描述

《C語言開發手冊:基礎·案例·應用》是“計算機科學與技術手冊系列”圖書之一,該系列圖書內容全面,
以理論聯繫實際、能學到並做到為宗旨,以技術為核心,以案例為輔助,引#領讀者全面學習基礎技術、代碼編寫方法和具體應用項目,
旨在為想要進入相應領域的技術人員提供新而全的技術性內容及案例。
本書是一本側重編程基礎+實踐的C語言圖書,從基礎、案例、
應用三個層次循序漸進地介紹了C語言從入門到實戰所需知識,使讀者在打好基礎的同時快速提昇實踐能力。
本書內容充實,給讀者提供了較為豐富全面的技術支持和案例強化,通過各種示例將學習與應用相結合,
打造輕鬆學習、零壓力學習的環境,通過案例對所學知識進行綜合應用,
通過開發實際項目將C語言的各個知識點應用到實際工作中,幫助讀者實現學以致用,快速掌握C語言開發的各項技能。
 本書提供豐富的資源,包含120個實例、12個案例、2個項目,
力求為讀者打造一本基礎+案例+應用一體化的、精彩的C語言圖書。
 本書不僅適合初學者、零基礎的編程自學者,也可供計算機相關專業師生、程序開發人員等閱讀參考。

目錄大綱

基礎篇 
1章 走進C語言的世界 
1.1 計算機語言與C語言 3 
1.1.1 計算機語言 3 
1.1.2 C語言 3 
1.2 C語言的特點 4 
1.3 C語言的應用 5 
1.3.1 單片機系統 5 
1.3.2 應用軟件 5 
1.3.3 數據處理 5 
1.3.4 嵌入式系統 5 
1.3.5 遊戲方面 5 
1.4 本書約定 6 
1.4.1 選擇作系統 6 
1.4.2 選擇開發環境 6 

2章 一個C程序 
2.1 安裝C語言開發環境 8 
2.1.1 下載Visual Studio 2019 8 
2.1.2 安裝Visual Studio 2019 9 
2.2 熟悉C語言開發環境 11 
2.2.1 編寫一個C程序 11 
2.2.2 熟悉開發環境 14 
2.3 一個C程序 16 
2.3.1 #include指令 16 
2.3.2 main()函數 17 
2.3.3 函數體 18 
2.3.4 執行語句 18 
2.3.5 return語句 18 
2.3.6 註釋 18 
2.4 實戰練習 20 

3章 C語言知識 
3.1 關鍵字與標識符 22 
3.1.1 關鍵字 22 
3.1.2 標識符 23 
3.2 常量和變量 24 
3.2.1 常量 24 
3.2.2 變量 24 
3.3 算術運算符與算術表達式 25 
3.3.1 算術運算符 25 
3.3.2 算術表達式 26 
3.3.3 自增、自減運算符 26 
3.4 賦值運算符與賦值表達式 27 
3.4.1 賦值運算符 27 
3.4.2 賦值表達式 27 
3.5 基本數據類型概述 27 
3.6 整型 28 
3.6.1 聲明整型 28 
3.6.2 初始化整型 28 
3.6.3 其他整型 29 
3.6.4 輸出其他整型數據 29 
【實例3.1】輸出不同整型數據 30 
3.6.5 整型常量 30 
3.7 浮點型 30 
3.7.1 聲明浮點型 31 
3.7.2 初始化浮點型 32 
3.7.3 輸出浮點型數據 32 
3.7.4 浮點型常量 33 
3.8 字符型 33 
3.8.1 聲明字符型 33 
3.8.2 初始化字符型 34 
3.8.3 輸出字符型數據 34 
3.8.4 字符型常量 35 
3.8.5 轉義字符 39 
3.9 類型轉換 39 
3.9.1 自動類型轉換 40 
3.9.2 強制類型轉換 40 
【實例3.2】換季買鞋 40 
3.10 格式化字符輸出、輸入函數 41 
3.10.1 格式化輸出函數:printf() 41 
【實例3.3】printf()按照格式輸出不同類型數據 42 
【實例3.4】printf()附加格式輸出數據 42 
3.10.2 格式化輸入函數:scanf() 43 
【實例3.5】計算圓的周長和球的體積 43 
3.11 綜合案例——計算無人機往返A、B兩地的次數 45 
3.12 實戰練習 45 

4章 位運算符 
4.1 位與字節 48 
4.2 位運算作符 48 
4.2.1 “與”運算符 48 
【實例4.1】編寫程序,把兩個人的年齡做一個“與”運算 49 
4.2.2 “或”運算符 49 
【實例4.2】將數字0EFCA與本身進行“或”運算 50 
4.2.3 “取反”運算符 51 
【實例4.3】自己年齡的取反輸出 51 
4.2.4 “異或”運算符 51 
【實例4.4】計算a^b的值 52 
4.2.5 “左移”運算符 53 
【實例4.5】將15進行“左移”運算 53 
4.2.6 “右移”運算符 54 
【實例4.6】將15進行“右移”運算 55 
4.3 循環移位 56 
【實例4.7】編程實現循環左移 56 
【實例4.8】編程實現循環右移 57 
4.4 綜合案例——密碼二次加密 58 
4.5 實戰練習 58 

5章 條件判斷語句 
5.1 if相關語句 60 
5.1.1 單個if語句 60 
5.1.2 關係運算符與邏輯運算符 61 
5.1.3 if…else語句 62 
5.1.4 else if語句 63 
5.2 if語句的嵌套 65 
【實例5.1】日程安排 65 
5.3 條件運算符 66 
【實例5.2】模擬美團送餐 67 
5.4 switch語 句 67 
5.4.1 switch語句的基本形式 67 
5.4.2 多路開關模式的switch語句 69 
【實例5.3】每個月有多少天 70 
5.5 綜合案例——模擬高考填報誌願 70 
5.6 實戰練習 72 

6章 循環控制語句 
6.1 什麼是循環 74 
6.2 while語句 74 
6.3 do…while語句 75 
【實例6.1】用do…while語句計算1~20之和 76 
【實例6.2】用while語句計算1~20之和 77 
6.4 for語 句 77 
6.4.1 for語句使用 77 
【實例6.3】用for語句計算1~20之和 78 
6.4.2 for語句的變體 79 
6.4.3 for語句中的逗號應用 80 
6.5 循環嵌套 80 
【實例6.4】輸出金字塔形狀 81 
6.6 轉移語句 82 
6.6.1 break語句 82 
【實例6.5】從0開始查數,遇到5就停止 84 
6.6.2 continue語句 84 
【實例6.6】從0開始查數,遇到5停頓 85 
6.6.3 goto語句 86 
【實例6.7】從1開始查數,遇到5輸出字母a 86 
6.7 綜合案例——請小心!凍結賬戶 87 
6.8 實戰練習 88 

7章 數組 
7.1 一維數組 90 
7.1.1 一維數組的定義 90 
7.1.2 一維數組初始化 91 
7.1.3 一維數組的引用 92 
【實例7.1】輸出成績 92 
7.2 二維數組 93 
7.2.1 二維數組的定義 93 
7.2.2 二維數組初始化 93 
7.2.3 二維數組的引用 95 
【實例7.2】計算各科的平均成績 95 
7.3 字符數組 96 
7.3.1 字符數組的定義和引用 96 
7.3.2 字符數組初始化 97 
【實例7.3】輸出字符串“Park” 97 
【實例7.4】輸出一個鑽石形狀 98 
7.3.3 字符數組的結束標誌 98 
7.3.4 字符數組的輸入和輸出 99 
【實例7.5】輸出“MingRi KeJi” 99 
7.3.5 字符數組的應用 100 
【實例7.6】統計字符串中單詞的個數 100 
7.4 多維數組 101 
7.5 綜合案例——十二生肖 101 
7.6 實戰練習 102 

8章 字a符串處理函數 
8.1 字符串複製 104 
【實例8.1】更新招牌 104 
8.2 字符串連接 105 
【實例8.2】製作課程表 105 
8.3 字符串比較 106 
【實例8.3】模擬登錄明日學院的賬號 106 
8.4 字符串大小寫轉換 107 
【實例8.4】驗證碼大小寫轉換 107 
8.5 獲得字符串長度 108 
【實例8.5】模擬註冊明日學院賬號 108 
8.6 綜合案例——誰被@啦 109 
8.7 實戰練習 110 

9章 函數 
9.1 函數概述 112 
9.2 函數的定義 112 
9.2.1 函數定義的形式 112 
9.2.2 定義與聲明 113 
9.3 返回語句 113 
9.3.1 有返回值函數 114 
9.3.2 無返回值函數 114 
9.4 函數參數 115 
9.4.1 形參與實參 115 
9.4.2 數組作為函數參數 116 
【實例9.1】求素數 116 
9.4.3 main()函數的參數 117 
9.5 函數的調用 117 
9.5.1 函數的調用方式 117 
【實例9.2】《論語》一則 118 
【實例9.3】用歐姆定律求電阻值 118 
【實例9.4】判斷體溫是否正常 119 
9.5.2 嵌套調用 119 
【實例9.5】CEO安排工作任務 120 
9.5.3 遞歸調用 121 
【實例9.6】遞歸求年齡 122 
9.6 內部函數和外部函數 122 
9.6.1 內部函數 122 
【實例9.7】輸出“Hello MingRi!” 123 
9.6.2 外部函數 123 
9.7 局部變量和全局變量 124 
9.7.1 局部變量 124 
9.7.2 全局變量 124 
9.8 其他函數庫 125 
9.9 綜合案例——隨機抽獎 127 
9.10 實戰練習 127 

10章 指針 
10.1 指針相關概念 130 
10.1.1 地址與指針 130 
10.1.2 變量的指針 131 
10.1.3 指針變量 131 
【實例10.1】輸出變量地址 132 
【實例10.2】利用指針編寫程序實現兩個數互換 133 
【實例10.3】輸出i、j、c的地址 134 
【實例10.4】*&的使用 134 
10.1.4 指針的運算 135 
【實例10.5】指針自增,地址變化了 135 
10.2 數組與指針 137 
10.2.1 一維數組與指針 137 
【實例10.6】輸出數組中的元素 137 
10.2.2 二維數組與指針 139 
【實例10.7】將輸入的數以二維數組的形式顯示 140 
【實例10.8】輸出3行元素 141 
【實例10.9】輸出2行的停車號 142 
10.2.3 字符串與指針 142 
【實例10.10】輸出“hello mingri” 142 
【實例10.11】利用指針實現字符串複製 143 
10.2.4 指針數組 144 
【實例10.12】輸出英文的12個月 144 
10.3 指向指針的指針 145 
10.3.1 定義指向指針的指針 145 
10.3.2 引用指向指針的指針 145 
10.3.3 應用指向指針的指針 146 
【實例10.13】輸出化學週期表中前20個元素中的金屬元素 146 
10.4 指針與函數 146 
10.4.1 指針變量作函數參數 146 
【實例10.14】交換兩個變量值 147 
10.4.2 指針變量作函數參數的嵌套 148 
【實例10.15】將輸入的數從大到小輸出 148 
10.4.3 指針作函數參數與一維數組 149 
【實例10.16】使用指針實現冒泡排序 149 
10.4.4 指針作函數參數與二維數組 151 
【實例10.17】找出二維數組每行中大的數並求和 151 
10.4.5 字符指針作函數參數 152 
【實例10.18】按字母順序排序 152 
10.4.6 返回指針的函數 153 
【實例10.19】輸入長和寬,求長方形的周長 153 
10.4.7 函數指針 154 
10.5 帶參數的main()函數 155 
【實例10.20】輸出main()函數的參數內容 156 
10.6 綜合案例——誰的成績不及格? 157 
10.7 實戰練習 158 

11章 結構體和鍊錶 
11.1 結構體 160 
11.1.1 結構體類型的概念 160 
11.1.2 結構體變量的定義 160 
11.1.3 結構體類型的初始化 162 
11.1.4 結構體變量的引用 162 
【實例11.1】輸出vivo NEX(手機型號)的基本信息 162 
11.2 結構體數組 163 
11.2.1 定義結構體數組 163 
11.2.2 初始化結構體數組 164 
11.3 結構體指針 165 
11.3.1 指向結構體變量的指針 165 
11.3.2 指向結構體數組的指針 166 
11.3.3 結構體作為函數參數 166 
11.4 包含結構體的結構體 167 
【實例11.2】顯示學生的個人信息(包含生日) 167 
11.5 鍊錶 168 
11.5.1 鍊錶概述 168 
11.5.2 創建動態鍊錶 168 
11.5.3 輸出鍊錶 170 
11.6 鍊錶相關作 171 
11.6.1 鍊錶的插入作 171 
11.6.2 鍊錶的刪除作 172 
11.7 綜合案例——查找手機通訊錄 173 
11.8 實戰練習 175 

12章 共用體和枚舉類型 
12.1 共用體 177 
12.1.1 聲明共用體 177 
12.1.2 定義共用體變量 177 
12.1.3 共用體變量成員的引用 178 
【實例12.1】設計一個玻璃罐頭,一次只能裝一種水果 179 
【實例12.2】輸出“現在是夏季” 180 
12.1.4 共用體類型的數據特點 180 
12.2 枚舉類型 181 
12.2.1 枚舉類型的聲明 181 
12.2.2 枚舉類型變量的定義 181 
12.2.3 枚舉類型變量的賦值和使用 182 
【實例12.3】選擇自己喜歡的顏色 182 
12.3 綜合案例——改答案放大招 183 
12.4 實戰練習 184 

13章 文件作 
13.1 文件概述 186 
13.2 文件的基本作 186 
13.2.1 文件指針 186 
13.2.2 文件的打開 187 
13.2.3 文件的關閉 187 
13.3 文件的讀寫 188 
13.3.1 fputc()函數 188 
【實例13.1】向文件中寫入內容 188 
13.3.2 fgetc()函數 189 
【實例13.2】在屏幕中顯示出文件內容 189 
13.3.3 fputs()函數 189 
【實例13.3】向文件中寫入“gone with the wind” 190 
13.3.4 fgets()函數 190 
【實例13.4】讀取任意磁盤文件中的內容 190 
13.3.5 fprintf()函數 191 
【實例13.5】將數字88以字符的形式寫到磁盤文件中 191 
13.3.6 fscanf()函數 192 
【實例13.6】輸出標準答案 192 
13.3.7 fread()和fwrite()函數 193 
【實例13.7】將所錄入的信息全部顯示出來 193 
13.4 文件的定位 194 
13.4.1 fseek()函數 194 
【實例13.8】快遞員送快遞 195 
13.4.2 rewind()函數 196 
【實例13.9】老闆,來一屜包子 196 
13.4.3 ftell()函數 197 
【實例13.10】保存手機號 197 
13.5 綜合案例——文件加密 198 
13.6 實戰練習 199 

14章 內存管理 
14.1 內存組織方式 202 
14.1.1 內存的組織方式 202 
14.1.2 堆與棧 202 
【實例14.1】利用malloc()函數分配內存空間 202 
14.2 動態管理 203 
14.2.1 malloc()函數 203 
【實例14.2】衣服進貨啦! 203 
14.2.2 calloc()函數 204 
【實例14.3】輸出“Mingrisoft” 204 
14.2.3 realloc()函數 205 
【實例14.4】重新分配內存 205 
14.2.4 free()函數 206 
【實例14.5】釋放內存空間 206 
14.3 內存丟失 206 
14.4 綜合案例——用棧及遞歸計算多項式 207 
14.5 實戰練習 208 

案例篇 
15章 讓音樂響起來(C+媒體播放函數) 
15.1 案例效果預覽 210 
15.2 案例準備 211 
15.3 業務流程圖 211 
15.4 實現過程 211 
15.4.1 創建新項目 211 
15.4.2 下載mp3文件 213 
15.4.3 引用函數庫 213 
15.4.4 導入媒體靜態庫 213 
15.4.5 使用媒體播放 213 
15.5 關鍵技術 214 

16章 搶紅包(數組+隨機函數) 
16.1 案例效果預覽 217 
16.2 案例準備 218 
16.3 業務流程圖 218 
16.4 實現過程 218 
16.4.1 創建新項目 218 
16.4.2 引用函數庫 219 
16.4.3 存儲紅包不同金額 219 
16.4.4 隨機生成紅包金額 219 
16.4.5 輸出隨機紅包金額 220 
16.5 關鍵技術 220 

17章 漢諾塔遊戲(C+遞歸思想) 
17.1 案例效果預覽 224 
17.2 案例準備 224 
17.3 業務流程圖 225 
17.4 實現過程 225 
17.4.1 分析移動漢諾塔過程 225 
17.4.2 創建新項目 227 
17.4.3 引用函數庫 228 
17.4.4 定義移動過程函數 228 
17.4.5 main()函數 228 
17.5 關鍵技術 228 

18章 單詞背記遊戲(文件作+數組) 
18.1 案例效果預覽 232 
18.2 案例準備 232 
18.3 業務流程圖 233 
18.4 實現過程 233 
18.4.1 存儲練習的單詞 233 
18.4.2 創建新項目 233 
18.4.3 導入函數庫 234 
18.4.4 定義宏 234 
18.4.5 定義全局變量 235 
18.4.6 顯示選項 235 
18.4.7 生成選項並返回正確下標 235 
18.4.8 讀取單詞 235 
18.4.9 判斷選擇情況以及得分情況 236 
18.4.10 main()函數 237 
18.5 關鍵技術 237 

19章 情商測試(條件控制+輸入函數) 
19.1 案例效果預覽 239 
19.2 案例準備 239 
19.3 業務流程圖 239 
19.4 實現過程 240 
19.4.1 創建新項目 240 
19.4.2 導入函數庫 241 
19.4.3 函數聲明及全局變量 241 
19.4.4 定義10道測試題 242 
19.4.5 計算題目得分及分析情商 248 
19.4.6 main()函數 249 
19.5 關鍵技術 249 

20章 頭像挂件(IMAGE+圖像處理函數) 
20.1 案例效果預覽 251 
20.2 案例準備 252 
20.3 業務流程圖 252 
20.4 實現過程 252 
20.4.1 下載並安裝EasyX圖形庫插件 252 
20.4.2 創建新項目 254 
20.4.3 導入函數庫 255 
20.4.4 初始化窗口 256 
20.4.5 打印頭像加挂件 256 
20.4.6 凍結屏幕以及關閉繪製窗口 257 
20.5 關鍵技術 257 

21章 猜拳遊戲(Windows API+隨機數+文件作) 
21.1 案例效果預覽 260 
21.2 案例準備 261 
21.3 業務流程圖 261 
21.4 實現過程 261 
21.4.1 創建新項目 261 
21.4.2 預處理模塊設計 262 
21.4.3 遊戲歡迎界面設計 263 
21.4.4 遊戲說明界面設計 264 
21.4.5 遊戲邏輯設計 266 
21.4.6 顯示遊戲結束界面設計 267 
21.5 關鍵技術 271 

22章 抖音表白小程序(MessageBo+判斷語句) 
22.1 案例效果預覽 273 
22.2 案例準備 273 
22.3 業務流程圖 274 
22.4 實現過程 274 
22.4.1 創建新項目 274 
22.4.2 導入函數庫 275 
22.4.3 設置表白對話框 275 
22.4.4 按鈕“是”對話框 275 
22.4.5 按鈕“否”對話框 275 
22.5 關鍵技術 276 

23章 彈幕來嘍(文件+windows.h函數庫+自定義函數) 
23.1 案例效果預覽 278 
23.2 案例準備 279 
23.3 業務流程圖 279 
23.4 實現過程 279 
23.4.1 創建新項目 279 
23.4.2 創建彈幕內容 280 
23.4.3 導入函數庫 280 
23.4.4 將指定內容拷貝到剪貼板上 281 
23.4.5 實現發彈幕 281 
23.4.6 main()函數 282 
23.5 關鍵技術 282 

24章 控制紅綠燈(條件判斷+圖像處理+Sleep()函數) 
24.1 案例效果預覽 286 
24.2 案例準備 287 
24.3 業務流程圖 287 
24.4 實現過程 287 
24.4.1 創建新項目 287 
24.4.2 導入函數庫 288 
24.4.3 定義變量及初始化窗口 289 
24.4.4 顯示紅綠燈初始狀態 289 
24.4.5 根據輸入顯示紅綠燈狀態 289 
24.4.6 凍結屏幕以及關閉繪製窗口 290 
24.5 關鍵技術 290 

25章 a箭機器人(條件判斷+自定義函數) 
25.1 案例效果預覽 293 
25.2 案例準備 293 
25.3 業務流程圖 293 
25.4 實現過程 293 
25.4.1 創建新項目 293 
25.4.2 導入函數庫 294 
25.4.3 中靶等級劃分 295 
25.4.4 輸入中環數 295 

26章 倒計時軟件(循環嵌套+windows.h) 
26.1 案例效果預覽 296 
26.2 案例準備 296 
26.3 業務流程圖 297 
26.4 實現過程 297 
26.4.1 創建新項目 297 
26.4.2 導入函數庫 298 
26.4.3 自定義顏色函數 298 
26.4.4 輸入倒計時開始時間 298 
26.4.5 實現倒計時功能 299 
26.5 關鍵技術 299 

應用篇 
27章 智能共享汽車管理系統 
27.1 系統需求分析 304 
27.1.1 系統概述 304 
27.1.2 系統可行性分析 304 
27.1.3 功能性需求分析 304 
27.2 系統功能設計 304 
27.2.1 系統功能結構 304 
27.2.2 系統業務流程 304 
27.2.3 系統預覽 305 
27.3 系統開發 306 
27.3.1 系統開發環境 306 
27.3.2 項目文件組織結構 306 
27.4 技術準備 306 
27.4.1 連接數據庫準備工作 306 
27.4.2 非ODBC方式作數據庫 308 
27.5 數據庫設計 313 
27.6 顯示主菜單模塊設計 313 
27.6.1 模塊概述 313 
27.6.2 實現顯示主菜單模塊 314 
27.7 認證租車模塊設計 314 
27.7.1 模塊概述 314 
27.7.2 實現認證租車模塊 315 
27.8 信息查詢模塊設計 318 
27.8.1 模塊概述 318 
27.8.2 實現信息查詢模塊 319 
27.9 一鍵轉讓模塊設計 320 
27.9.1 模塊概述 320 
27.9.2 實現一鍵轉讓模塊 321 
27.10 確認還車模塊設計 322 
27.10.1 模塊概述 322 
27.10.2 實現確認還車模塊 323 
27.11 連接與關閉數據庫 324 

28章 GSM短信控製家庭防盜報警系統 
28.1 系統需求分析 327 
28.1.1 系統概述 327 
28.1.2 系統可行性分析 327 
28.1.3 功能性需求分析 327 
28.2 系統功能設計 327 
28.2.1 系統功能結構 327 
28.2.2 系統業務流程 327 
28.2.3 系統預覽 328 
28.3 系統開發 328 
28.3.1 系統開發工具 328 
28.3.2 電路圖 328 
28.3.3 元件列表 329 
28.4 LED聲光報警設計 329 
28.4.1 LED燈報警設計 329 
28.4.2 蜂鳴器報警設計 332 
28.4.3 LED聲光報警設計實物圖 334 
28.5 手機短信報警設計 334 
28.5.1 液晶屏顯示狀態 334 
28.5.2 GSM模塊接收短信 339 
28.5.3 手機短信報警設計實物圖 342 
28.6 按鍵設計 342 
28.6.1 按鍵概述 342 
28.6.2 按鍵的使用 342 
28.7 其他關鍵代碼 344 
附錄 
附錄1:運算符優先級和結合性 352 
附錄2:ASCII碼表 352