關于我們
書單推薦
新書推薦
|
C語言程序設計(慕課版)
本書作為C 語言程序設計的教程,系統全面地介紹了有關C 語言程序設計開發(fā)所涉及的各類知識。全書共分17 章,內容包括C 語言概述、算法、數據類型、運算符與表達式、常用的數據輸入/輸出函數、選擇結構程序設計、循環(huán)控制、數組、函數、指針、結構體和共用體、位運算、預處理、文件、存儲管理、網絡套接字編程、綜合實例——學生信息管理系統。全書每章內容都與實例緊密結合,有助于學生理解知識、應用知識,達到學以致用的目的。
本書為慕課版教材,各章節(jié)主要內容配備了以二維碼為載體的微課,并在人郵學院(www.rymooc.com)平臺上提供了慕課。此外,本書還提供了課程資源包。資源包中提供了本書所有實例、上機指導、綜合案例的源代碼、制作精良的電子課件PPT、重點及難點教學視頻、自測題庫(包括選擇題、填空題、操作題題庫及自測試卷等內容),以及拓展綜合案例和拓展實驗。其中,源代碼全部經過精心測試,能夠在Windows XP、Windows 7 系統下編譯和運行
《C語言程序設計(慕課版)》是一本C語言程序設計互聯網教材,買書送名師,明日科技資深講師面對面授課。本課程依托人民郵電出版社自主開發(fā)的在線教育慕課平臺——人郵學院(www.rymooc.com),該平臺具有完備的在線“教、學、測”功能。人郵學院提供體系完整的100學時慕課教學視頻同步講解,即學即練的在線測試。書中附有188個微課視頻,掃一掃書中二維碼,便可隨時隨地學習。附贈300余道習題和自測題, PPT 課件、案例源代碼、自測試卷、拓展案例等豐富的配套資源。
第1 章 C 語言概述 1
1.1 C 語言的發(fā)展史 2 1.1.1 程序語言簡述 2 1.1.2 C 語言的歷史 2 1.2 C 語言的特點 3 1.3 一個簡單的C 程序 3 1.4 一個完整的C 程序 5 1.5 C 語言程序的格式 8 1.6 開發(fā)環(huán)境 9 1.6.1 Dev C++ 9 1.6.2 Visual C++ 6.0 13 小結 14 上機指導 15 習題 15 第2 章 算法 16 2.1 算法的基本概念 17 2.1.1 算法的特性 17 2.1.2 算法的優(yōu)劣 17 2.2 算法的描述 18 2.2.1 自然語言 18 實例:用自然語言求n! 2.2.2 流程圖 19 實例:畫出趣味俄羅斯方塊的流程圖 2.2.3 N-S 流程圖 22 實例:繪制N-S 流程圖求n! 小結 24 上機指導 24 習題 24 第3 章 數據類型 25 3.1 編程規(guī)范 26 3.2 關鍵字 26 3.3 標識符 27 3.4 數據類型 28 3.5 常量 29 3.5.1 整型常量 29 3.5.2 實型常量 31 3.5.3 字符型常量 32 實例1:輸出字符常量 實例2:輸出字符串常量 3.5.4 轉義字符 34 3.5.5 符號常量 35 實例:輸入半徑,得到圓的面積 3.6 變量 36 3.6.1 整型變量 36 3.6.2 實型變量 38 實例:使用各種實型變量 3.6.3 字符型變量 40 實例:使用字符型變量 3.7 變量的存儲類別 42 3.7.1 靜態(tài)存儲與動態(tài)存儲 42 3.7.2 auto 變量 42 實例:使用auto 變量 3.7.3 static 變量 43 實例:使用static 變量 3.7.4 register 變量 43 實例:使用register 變量修飾整型變量 3.7.5 extern 變量 44 實例:使用extem 變量 3.8 混合運算 45 實例:int、char、float 型變量相加, 得出double 型變量進行輸出 小結 46 上機指導 46 習題 47 第4 章 運算符與表達式 48 4.1 表達式 49 實例:求解二元一次不定方程ax+by=c 的解 4.2 賦值運算符與賦值表達式 50 4.2.1 變量賦初值 51 實例:模擬鐘點工的計費情況,使用 賦值語句和表達式得出鐘點工 工作8 個小時后所得的薪水 4.2.2 自動類型轉換 52 4.2.3 強制類型轉換 52 實例:通過不同類型變量之間的賦 值,將賦值操作后的結果進行輸出 4.3 算術運算符與算術表達式 53 4.3.1 算術運算符 53 實例:求100~1000 之間滿足各位 數字之和是5 的所有數 4.3.2 算術表達式 54 實例:使用算術表達式計算攝氏溫度 4.3.3 優(yōu)先級與結合性 55 實例:通過不同運算符的優(yōu)先級和 結合性,使用printf 函數顯 示最終的計算結果 4.3.4 自增/自減運算符 57 實例:比較自增、自減運算符前綴 與后綴的不同 4.4 關系運算符與關系表達式 58 4.4.1 關系運算符 58 4.4.2 關系表達式 59 4.4.3 優(yōu)先級與結合性 59 實例:使用if 語句判斷兩個學科的分數大小 4.5 邏輯運算符與邏輯表達式 61 4.5.1 邏輯運算符 61 4.5.2 邏輯表達式 61 實例:判斷閏年 4.5.3 優(yōu)先級與結合性 61 實例:使用邏輯運算符構造表達 式,通過輸出函數顯示表達 式的結果 4.6 位邏輯運算符與位邏輯表達式 62 4.6.1 位邏輯運算符 62 4.6.2 位邏輯表達式 63 4.7 逗號運算符與逗號表達式 63 實例:通過逗號運算符將其他運算 符結合在一起形成表達式, 再將表達式的最終結果賦 值給變量 4.8 復合賦值運算符 64 實例:使用復合賦值運算符簡化賦 值運算 小結 65 上機指導 67 習題 67 第5 章 常用的數據輸入/輸出 函數 68 5.1 語句 69 5.2 字符數據輸入/輸出 69 5.2.1 字符數據輸出 69 實例:使用putchar 函數,輸出字 符串“Hello” 5.2.2 字符數據輸入 70 實例1:使用getchar 函數獲取在鍵 盤上輸入的字符,再利用 putchar 函數進行輸出 實例2:使用getchar 函數取消獲取 回車符 5.3 字符串輸入/輸出 72 5.3.1 字符串輸出函數 72 實例:使用puts 函數對字符串常量 和字符串變量都進行操作 5.3.2 字符串輸入函數 73 實例:使用字符串輸入函數gets 獲 取輸入信息 5.4 格式輸出函數 74 實例:使用printf 函數輸出字符花 5.5 格式輸入函數 78 實例:利用scanf 函數得到用戶 輸入的兩個整型數據 5.6 順序程序設計應用 81 實例:將大寫字符轉換成小寫字符 小結 83 上機指導 83 習題 83 第6 章 選擇結構程序設計 85 6.1 if 語句 86 6.2 if 語句的基本形式 86 6.2.1 if 語句形式 86 實例:使用if 語句模擬信號燈指揮 車輛行駛 6.2.2 if…else 語句形式 89 實例1:使用if…else 語句得到兩個 數的最大值 實例2:使用if…else 語句模擬信號燈 6.2.3 else if 語句形式 92 實例:使用else if 語句編寫屏幕菜 單程序 6.3 if 的嵌套形式 95 實例:使用if 嵌套語句選擇日程安排 6.4 條件運算符 97 實例:使用條件運算符計算欠款金額 6.5 switch 語句 99 6.5.1 switch 語句的基本形式 99 實例:使用switch 語句輸出分數段 6.5.2 多路開關模式的switch 語句 103 實例:使用switch 語句設計歡迎界 面的菜單選項 6.6 if…else 語句和switch 語句的區(qū)別 104 6.7 選擇結構程序應用 106 實例:使用switch 語句計算運輸 公司的計費 小結 108 上機指導 108 習題 109 第7 章 循環(huán)控制 110 7.1 循環(huán)語句 111 7.2 while 語句 111 實例:計算1 累加到100 的結果 7.3 do-while 語句 112 實例:使用do-while 語句計算1~ 100 之間的累加結果 7.4 for 語句 114 7.4.1 for 語句使用 114 實例:打印俄羅斯方塊的游戲窗口 7.4.2 for 循環(huán)的變體 117 實例:省略for 語句中的第一個 表達式 7.4.3 for 語句中的逗號應用 119 實例:計算1~100 之間所有偶數 的累加結果 7.5 3 種循環(huán)語句的比較 120 7.6 循環(huán)嵌套 120 7.6.1 循環(huán)嵌套的結構 120 7.6.2 循環(huán)嵌套實例 122 實例:使用嵌套語句打印歡迎界面 的邊框 7.7 轉移語句 124 7.7.1 goto 語句 124 實例:使用goto 語句從循環(huán)內部跳出 7.7.2 break 語句 125 實例:使用break 語句跳出循環(huán) 7.7.3 continue 語句 126 實例:使用continue 語句結束本次 的循環(huán)操作 小結 127 上機指導 128 習題 128 第8 章 數組 129 8.1 一維數組 130 8.1.1 一維數組的定義和引用 130 實例:使用數組保存數據 8.1.2 一維數組初始化 131 實例:初始化一維數組 8.1.3 一維數組應用 134 實例:使用數組保存學生姓名 8.2 二維數組 135 8.2.1 二維數組的定義和引用 135 8.2.2 二維數組初始化 136 實例:使用二維數組標記游戲屏幕上的圖案 8.2.3 二維數組應用 138 實例:打印游戲窗口,并設置左右下橫框上有圖案 8.3 字符數組 141 8.3.1 字符數組的定義和引用 141 8.3.2 字符數組初始化 141 實例:使用二維字符數組輸出一個鉆石形狀 8.3.3 字符數組的結束標志 143 8.3.4 字符數組的輸入和輸出 144 實例:使用兩種方式輸出字符串 8.3.5 字符數組應用 145 實例:計算字符串中單詞的個數 8.4 多維數組 146 8.5 數組的排序算法 146 8.5.1 選擇法排序 146 8.5.2 冒泡法排序 148 8.5.3 交換法排序 150 實例:實現學生信息管理系統中的 學生成績排名功能 8.5.4 插入法排序 152 8.5.5 折半法排序 154 8.5.6 排序算法的比較 156 8.6 字符串處理函數 157 8.6.1 字符串復制 157 實例:字符串復制應用 8.6.2 字符串連接 158 實例:字符串連接應用 8.6.3 字符串比較 160 實例:字符串比較應用 8.6.4 字符串大小寫轉換 161 實例:字符串大小寫轉換 8.6.5 獲得字符串長度 163 實例:獲得字符串長度 8.7 數組應用 164 8.7.1 反轉輸出字符串 164 8.7.2 輸出系統日期和時間 165 8.7.3 字符串的加密和解密 166 小結 168 上機指導 168 習題 169 第9 章 函數 170 9.1 函數概述 171 實例:在主函數中調用其他函數 9.2 函數的定義 172 9.2.1 函數定義的形式 173 9.2.2 定義與聲明 174 實例:定義獲取屏幕光標位置和設置文字顏色函數 9.3 返回語句 177 9.3.1 從函數返回 177 實例:從函數返回應用 9.3.2 返回值 178 實例:返回值類型與return 值類型 9.4 函數參數 180 9.4.1 形式參數與實際參數 180 實例:形式參數與實際參數的比喻實現 9.4.2 數組作函數參數 182 實例:數組元素作為函數參數 9.4.3 main 函數的參數 187 實例:main 函數的參數使用 9.5 函數的調用 188 9.5.1 函數的調用方式 188 實例:調用獲取屏幕光標位置和設 置文字顏色函數,來設置趣 味俄羅斯方塊的標題圖 9.5.2 嵌套調用 193 實例:函數的嵌套調用 9.5.3 遞歸調用 195 實例:函數的遞歸調用 9.6 內部函數和外部函數 197 9.6.1 內部函數 197 實例:內部函數的使用 9.6.2 外部函數 198 實例:外部函數的使用 9.7 局部變量和全局變量 200 9.7.1 局部變量 200 實例1:局部變量的作用域 實例2:局部變量的屏蔽作用 9.7.2 全局變量 203 實例:使用全局變量模擬價格調整 9.8 函數應用 204 實例1:數學庫函數使用 實例2:使用三角函數 實例3:使用字符函數判斷輸入字符 小結 210 上機指導 210 習題 211 第10 章 指針 212 10.1 指針相關概念 213 10.1.1 地址與指針 213 10.1.2 變量與指針 214 10.1.3 指針變量 214 實例:從鍵盤中輸入兩個數,利用指 針的方法將這兩個數輸出 10.1.4 指針自加自減運算 218 實例:整型變量地址輸出 10.2 數組與指針 219 10.2.1 一維數組與指針 219 實例:輸出數組中的元素 10.2.2 二維數組與指針 223 實例:利用指針對二維數組進行輸 入和輸出 10.2.3 字符串與指針 226 實例:輸入兩個字符串a 和b,將 字符串a 和b 連接起來 10.2.4 字符串數組 228 實例:輸出12 個月 10.3 指向指針的指針 229 實例1:使用指向指針的指針輸出12 個月 實例2:利用指向指針的指針輸出一維數組中是偶數的元 素,并統計偶數的個數 10.4 指針變量作函數參數 232 實例1:調用自定義函數交換兩變量值 實例2:嵌套的函數調用 實例3:任意輸入10 個數據,先將 這10 個數據中是奇數的數 據輸出,再求這10 個數據 中所有奇數之和 10.5 返回指針值的函數 240 實例:使用返回指針的函數查找最大值 10.6 指針數組作main 函數的參數 242 實例:輸出main 函數的參數內容 小結 243 上機指導 243 習題 244 第11 章 結構體和共用體 245 11.1 結構體 246 11.1.1 結構體類型的概念 246 11.1.2 結構體變量的定義 247 11.1.3 結構體變量的引用 248 實例:引用學生成績結構體 11.1.4 結構體類型的初始化 250 實例:聲明結構體類型表示商品, 然后定義結構體變量,之后 對變量中的成員進行賦值, 最后將結構體變量中保存 的信息進行輸出 11.2 結構體數組 251 11.2.1 定義結構體數組 251 11.2.2 初始化結構體數組 253 實例:初始化學生信息結構體數 組,并輸出學生信息 11.3 結構體指針 254 11.3.1 指向結構體變量的指針 255 實例:通過指針使用點運算符引用 結構體變量的成員 11.3.2 指向結構體數組的指針 257 實例:根據學生結構類型定義結構 體數組,并對其進行初始化 操作 11.3.3 結構體作為函數參數 259 實例:聲明一個簡單的結構類型表 示學生成績,編寫一個函 數,使得該結構類型變量作 為函數的參數 11.4 包含結構的結構 262 實例:定義兩個結構體類型,一個 表示日期,一個表示學生的 個人信息 11.5 鏈表 263 11.5.1 鏈表概述 263 11.5.2 創(chuàng)建動態(tài)鏈表 264 11.5.3 輸出鏈表 266 實例:編寫一個包含學生信息的鏈 表結構,并且將鏈表中的信 息進行輸出 11.6 鏈表相關操作 268 11.6.1 鏈表的插入操作 269 11.6.2 鏈表的刪除操作 270 實例:對學生信息鏈表進行刪除操作 11.7 共用體 274 11.7.1 共用體的概念 274 11.7.2 共用體變量的引用 274 實例:定義共用體變量,通過定義 的顯示函數,引用共用體中 的數據成員 11.7.3 共用體變量的初始化 275 實例:定義共用體變量的同時進行 初始化操作,并將引用變量 的值輸出 11.7.4 共用體類型的數據特點 276 11.8 枚舉類型 276 實例:使用枚舉類型 小結 278 上機指導 278 習題 279 第12 章 位運算 280 12.1 位與字節(jié) 281 12.2 位運算操作符 281 12.2.1 “與”運算符 281 實例:任意輸入兩個數分別賦給a 和b,計算a&b 的值 12.2.2 “或”運算符 283 實例:任意輸入兩個數分別賦給a 和b,計算a|b 的值 12.2.3 “取反”運算符 284 實例:輸入一個數賦給變量a,計 算~a 的值 12.2.4 “異或”運算符 285 實例:輸入兩個數分別賦給變量a 和b,計算a^b 的值 12.2.5 “左移”運算符 287 實例:將15 先左移兩位,將其左 移后的結果輸出,在這個結 果的基礎上再左移3 位,并 將結果輸出 12.2.6 “右移”運算符 288 實例:將30 和-30 分別右移3 位, 將所得結果分別輸出,在所 得結果的基礎上再分別右 移兩位,并將結果輸出 12.3 循環(huán)移位 289 實例:從鍵盤中輸入一個八進制數, 然后輸入要移位的位數,最后 將移位的結果顯示在屏幕上 12.4 位段 292 12.4.1 位段的概念與定義 292 12.4.2 位段相關說明 293 小結 294 上機指導 294 習題 295 第13 章 預處理 296 13.1 宏定義 297 13.1.1 不帶參數的宏定義 297 實例:設計趣味俄羅斯方塊的宏 13.1.2 帶參數的宏定義 298 實例:對兩個數實現乘法加法混合運算 13.2 #include 指令 299 實例:文件包含應用 13.3 條件編譯 301 13.3.1 #if 命令 301 實例:#if 應用 13.3.2 #ifdef 及#ifndef 命令 304 實例:#ifdef 和#ifndef 的具體應用 13.3.3 #undef 命令 305 13.3.4 #line 命令 305 實例:輸出行號 13.3.5 #pragma 命令 306 小結 306 上機指導 307 習題 307 第14 章 文件 308 14.1 文件概述 309 14.2 文件基本操作 309 14.2.1 文件指針 309 14.2.2 文件的打開 310 14.2.3 文件的關閉 310 14.3 文件的讀寫 311 14.3.1 fputc 函數 311 實例:向E:\exp01.txt 中寫入 “forever…forever…” 14.3.2 fgetc 函數 312 實例:在屏幕中顯示出exp02.txt 中 的內容 14.3.3 fputs 函數 312 實例:向指定的磁盤文件中寫入字 符串“gone with the wind” 14.3.4 fgets 函數 313 實例:讀取任意磁盤文件中的內容 14.3.5 fprintf 函數 314 實例:將數字88 以字符的形式寫 到磁盤文件中 14.3.6 fscanf 函數 315 實例:將文件中的5 個字符以整數 形式輸出 14.3.7 fread 和fwrite 函數 316 實例:將錄入的通訊錄信息保存到 磁盤文件中,并顯示 14.4 文件的定位 318 14.4.1 fseek 函數 318 實例:向任意一個二進制文件中寫 入一個長度大于6 的字符 串,然后從該字符串的第6 個字符開始輸出余下字符 14.4.2 rewind 函數 320 實例:rewind 函數的應用 14.4.3 ftell 函數 321 實例:求字符串長度 小結 322 上機指導 323 習題 323 第15 章 存儲管理 324 15.1 內存組織方式 325 15.1.1 內存的組織方式 325 15.1.2 堆與!325 實例:在堆中分配內存并釋放 15.2 動態(tài)管理 327 15.2.1 malloc 函數 327 實例:使用malloc 函數動態(tài)分配空間 15.2.2 calloc 函數 328 實例:使用calloc 函數分配數組內存 15.2.3 realloc 函數 329 實例:使用realloc 函數重新分配內存 15.2.4 free 函數 330 實例:使用free 函數釋放內存空間 15.3 內存丟失 331 小結 332 上機指導 332 習題 333 第16 章 網絡套接字編程 334 16.1 內存組織方式 335 16.1.1 IP 地址 335 16.1.2 OSI 七層參考模型 335 16.1.3 地址解析 336 16.1.4 域名系統 337 16.1.5 TCP/IP 337 16.1.6 端口 339 16.1.7 套接字的引入 339 16.1.8 網絡字節(jié)順序 339 16.2 套接字概述 339 16.2.1 套接字概述 340 16.2.2 TCP 的套接字的socket 編程 340 16.2.3 UDP 的套接字的socket 編程 340 16.3 套接字函數 341 16.3.1 套接字函數介紹 341 16.3.2 基于TCP 的網絡聊天程序 345 實例:設計網絡聊天服務器端 小結 351 上機指導 352 習題 352 第17 章 綜合實例—學生信息 管理系統 353 17.1 開發(fā)背景 354 17.2 開發(fā)環(huán)境需求 354 17.3 系統功能設計 354 17.4 預處理模塊設計 354 17.4.1 模塊概述 354 17.4.2 控制輸出格式 355 17.4.3 文件引用 355 17.4.4 宏定義 355 17.4.5 函數聲明 355 17.5 主函數設計 356 17.5.1 功能概述 356 17.5.2 實現主函數 356 17.5.3 顯示主菜單 358 17.6 錄入學生信息 358 17.6.1 模塊概述 358 17.6.2 實現文件的打開和關閉功能 359 17.6.3 實現錄入學生信息 360 17.7 查詢學生信息 362 17.7.1 模塊概述 362 17.7.2 查詢沒有記錄的文件 363 17.7.3 查找并打印學生信息 363 17.8 刪除學生信息 364 17.8.1 模塊概述 364 17.8.2 實現刪除學生信息 364 17.9 修改學生信息 366 17.9.1 模塊概述 366 17.9.2 實現修改學生信息 367 17.10 插入學生信息 368 17.10.1 模塊概述 368 17.10.2 實現插入學生信息 368 17.11 學生成績排名 370 17.11.1 模塊概述 370 17.11.2 使用交換排序法實現排序功能 371 17.11.3 實現學生成績排名 371 17.12 統計學生總數 372 17.12.1 模塊概述 372 17.12.2 實現統計學生總數 372 17.13 顯示所有學生信息 373 17.13.1 模塊概述 373 17.13.2 讀取并顯示所有學生信息 374 小結 374
你還可能感興趣
我要評論
|