![]() ![]() |
C語言開發(fā)手冊:基礎·案例·應用 讀者對象:本書不僅適合初學者、零基礎的編程自學者,也可供計算機相關專業(yè)師生、程序開發(fā)人員等閱讀參考。 ![]()
《C語言開發(fā)手冊:基礎·案例·應用》是“計算機科學與技術手冊系列”圖書之一,該系列圖書內容全面,以理論聯系實際、能學到并做到為宗旨,以技術為核心,以案例為輔助,引領讀者全面學習基礎技術、代碼編寫方法和具體應用項目,旨在為想要進入相應領域的技術人員提供新而全的技術性內容及案例。
本書是一本側重編程基礎+實踐的C語言圖書,從基礎、案例、應用三個層次循序漸進地介紹了C語言從入門到實戰(zhàn)所需知識,使讀者在打好基礎的同時快速提升實踐能力。本書內容充實,給讀者提供了較為豐富全面的技術支持和案例強化,通過各種示例將學習與應用相結合,打造輕松學習、零壓力學習的環(huán)境,通過案例對所學知識進行綜合應用,通過開發(fā)實際項目將C語言的各個知識點應用到實際工作中,幫助讀者實現學以致用,快速掌握C語言開發(fā)的各項技能。 本書提供豐富的資源,包含120個實例、12個案例、2個項目,力求為讀者打造一本基礎+案例+應用一體化的、精彩的C語言圖書。 本書不僅適合初學者、零基礎的編程自學者,也可供計算機相關專業(yè)師生、程序開發(fā)人員等閱讀參考。
基礎篇
第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 單片機系統(tǒng) 5 1.3.2 應用軟件 5 1.3.3 數據處理 5 1.3.4 嵌入式系統(tǒng) 5 1.3.5 游戲方面 5 1.4 本書約定 6 1.4.1 選擇操作系統(tǒng) 6 1.4.2 選擇開發(fā)環(huán)境 6 第2章 第一個C程序 2.1 安裝C語言開發(fā)環(huán)境 8 2.1.1 下載Visual Studio 2019 8 2.1.2 安裝Visual Studio 2019 9 2.2 熟悉C語言開發(fā)環(huán)境 11 2.2.1 編寫第一個C程序 11 2.2.2 熟悉開發(fā)環(huán)境 14 2.3 第一個C程序 16 2.3.1 #include指令 16 2.3.2 main()函數 17 2.3.3 函數體 18 2.3.4 執(zhí)行語句 18 2.3.5 return語句 18 2.3.6 注釋 18 2.4 實戰(zhàn)練習 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 實戰(zhàn)練習 45 第4章 位運算符 4.1 位與字節(jié) 48 4.2 位運算操作符 48 4.2.1 “與”運算符 48 【實例4.1】編寫程序,把兩個人的年齡做一個“與”運算 49 4.2.2 “或”運算符 49 【實例4.2】將數字0xEFCA與本身進行“或”運算 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 循環(huán)移位 56 【實例4.7】編程實現循環(huán)左移 56 【實例4.8】編程實現循環(huán)右移 57 4.4 綜合案例——密碼二次加密 58 4.5 實戰(zhàn)練習 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 實戰(zhàn)練習 72 第6章 循環(huán)控制語句 6.1 什么是循環(huán) 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 循環(huán)嵌套 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 實戰(zhàn)練習 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】統(tǒng)計字符串中單詞的個數 100 7.4 多維數組 101 7.5 綜合案例——十二生肖 101 7.6 實戰(zhàn)練習 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 實戰(zhàn)練習 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 實戰(zhàn)練習 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 實戰(zhàn)練習 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 創(chuàng)建動態(tài)鏈表 168 11.5.3 輸出鏈表 170 11.6 鏈表相關操作 171 11.6.1 鏈表的插入操作 171 11.6.2 鏈表的刪除操作 172 11.7 綜合案例——查找手機通訊錄 173 11.8 實戰(zhàn)練習 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 實戰(zhàn)練習 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 實戰(zhàn)練習 199 第14章 內存管理 14.1 內存組織方式 202 14.1.1 內存的組織方式 202 14.1.2 堆與棧 202 【實例14.1】利用malloc()函數分配內存空間 202 14.2 動態(tài)管理 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 實戰(zhàn)練習 208 案例篇 第15章 讓音樂響起來(C+媒體播放函數) 15.1 案例效果預覽 210 15.2 案例準備 211 15.3 業(yè)務流程圖 211 15.4 實現過程 211 15.4.1 創(chuàng)建新項目 211 15.4.2 下載mp3文件 213 15.4.3 引用函數庫 213 15.4.4 導入媒體靜態(tài)庫 213 15.4.5 使用媒體播放 213 15.5 關鍵技術 214 第16章 搶紅包(數組+隨機函數) 16.1 案例效果預覽 217 16.2 案例準備 218 16.3 業(yè)務流程圖 218 16.4 實現過程 218 16.4.1 創(chuàng)建新項目 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 業(yè)務流程圖 225 17.4 實現過程 225 17.4.1 分析移動漢諾塔過程 225 17.4.2 創(chuàng)建新項目 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 業(yè)務流程圖 233 18.4 實現過程 233 18.4.1 存儲練習的單詞 233 18.4.2 創(chuàng)建新項目 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 業(yè)務流程圖 239 19.4 實現過程 240 19.4.1 創(chuàng)建新項目 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 業(yè)務流程圖 252 20.4 實現過程 252 20.4.1 下載并安裝EasyX圖形庫插件 252 20.4.2 創(chuàng)建新項目 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 業(yè)務流程圖 261 21.4 實現過程 261 21.4.1 創(chuàng)建新項目 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章 抖音表白小程序(MessageBox+判斷語句) 22.1 案例效果預覽 273 22.2 案例準備 273 22.3 業(yè)務流程圖 274 22.4 實現過程 274 22.4.1 創(chuàng)建新項目 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 業(yè)務流程圖 279 23.4 實現過程 279 23.4.1 創(chuàng)建新項目 279 23.4.2 創(chuàng)建彈幕內容 280 23.4.3 導入函數庫 280 23.4.4 將指定內容拷貝到剪貼板上 281 23.4.5 實現發(fā)彈幕 281 23.4.6 main()函數 282 23.5 關鍵技術 282 第24章 控制紅綠燈(條件判斷+圖像處理+Sleep()函數) 24.1 案例效果預覽 286 24.2 案例準備 287 24.3 業(yè)務流程圖 287 24.4 實現過程 287 24.4.1 創(chuàng)建新項目 287 24.4.2 導入函數庫 288 24.4.3 定義變量及初始化窗口 289 24.4.4 顯示紅綠燈初始狀態(tài) 289 24.4.5 根據輸入顯示紅綠燈狀態(tài) 289 24.4.6 凍結屏幕以及關閉繪制窗口 290 24.5 關鍵技術 290 第25章 射a箭機器人(條件判斷+自定義函數) 25.1 案例效果預覽 293 25.2 案例準備 293 25.3 業(yè)務流程圖 293 25.4 實現過程 293 25.4.1 創(chuàng)建新項目 293 25.4.2 導入函數庫 294 25.4.3 中靶等級劃分 295 25.4.4 輸入射中環(huán)數 295 第26章 倒計時軟件(循環(huán)嵌套+windows.h) 26.1 案例效果預覽 296 26.2 案例準備 296 26.3 業(yè)務流程圖 297 26.4 實現過程 297 26.4.1 創(chuàng)建新項目 297 26.4.2 導入函數庫 298 26.4.3 自定義顏色函數 298 26.4.4 輸入倒計時開始時間 298 26.4.5 實現倒計時功能 299 26.5 關鍵技術 299 應用篇 第27章 智能共享汽車管理系統(tǒng) 27.1 系統(tǒng)需求分析 304 27.1.1 系統(tǒng)概述 304 27.1.2 系統(tǒng)可行性分析 304 27.1.3 功能性需求分析 304 27.2 系統(tǒng)功能設計 304 27.2.1 系統(tǒng)功能結構 304 27.2.2 系統(tǒng)業(yè)務流程 304 27.2.3 系統(tǒng)預覽 305 27.3 系統(tǒng)開發(fā)必備 306 27.3.1 系統(tǒng)開發(fā)環(huán)境 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短信控制家庭防盜報警系統(tǒng) 28.1 系統(tǒng)需求分析 327 28.1.1 系統(tǒng)概述 327 28.1.2 系統(tǒng)可行性分析 327 28.1.3 功能性需求分析 327 28.2 系統(tǒng)功能設計 327 28.2.1 系統(tǒng)功能結構 327 28.2.2 系統(tǒng)業(yè)務流程 327 28.2.3 系統(tǒng)預覽 328 28.3 系統(tǒng)開發(fā)必備 328 28.3.1 系統(tǒng)開發(fā)工具 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 液晶屏顯示狀態(tài) 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:運算符優(yōu)先級和結合性 352 附錄2:ASCII碼表 352
你還可能感興趣
我要評論
|