C程序設計(慕課版)
-
【作 者】劉衛國
【I S B N 】978-7-5226-1923-1
【責任編輯】魏淵源
【適用讀者群】本專通用
【出版時間】2023-12-22
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數】296
【千字數】473
【印 張】18.5
【定 價】¥54
【叢 書】普通高等教育“十四五”規劃教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書以C語言作為實現工具,介紹程序設計的基礎知識與基本方法。本書的主要內容有程序設計概述、程序的數據描述、順序結構、選擇結構、循環結構、函數、數組、指針、構造數據類型、文件操作等。
本書切合培養程序設計能力的教學要求,突出C語言的重要概念和本質特點。本書以實際問題的求解過程為向導,突出從問題到算法,再到程序的一種思維過程,強調計算機求解問題的思路引導與程序設計思維方式的訓練,重點放在程序設計的思想與方法上。本書教學資源豐富,包括配套的教學參考書、大規模在線開放課程(Massive Open Online Course,MOOC)、重點內容的微視頻講解以及其他教學資源。
本書既可作為高等學校程序設計課程的教材,也可作為參加各類計算機等級考試的讀者以及社會各類計算機應用人員的參考用書。
● 結合大量實例,介紹計算機問題求解思路
突出從問題到算法再到程序的一種思維過程。
● 重點關注重要概念,不過分死摳語言細節
引導讀者在程序設計實踐中掌握語法規則。
● 根據初學者認知,梳理知識點和常見錯誤
幫助讀者總結歸納課程內容,達到鞏固提高的目的。
● 配套豐富的教學資源,方便讀者課后自學
慕課、微課、教學大綱、教學課件、習題答案、源程序等。
黨的二十大報告指出:“教育、科技、人才是全面建設社會主義現代化國家的基礎性、戰略性支撐。”教育是基礎,科技是關鍵,人才是根本。在云計算、大數據、人工智能、物聯網、移動計算等新一代信息技術背景下,程序設計既是信息化時代各種應用的技術基礎,也是高素質人才培養的重要內容,其目的是介紹程序設計的基礎知識,使學生掌握高級語言程序設計的基本思想、方法和技術,理解利用計算機解決實際問題的基本過程和思維規律,從而更好地培養學生的創新能力,為將來應用計算機進行科學研究等奠定堅實的基礎。
計算思維能力培養是計算機教育的重要任務,而程序設計最能夠體現問題求解方法,是理解計算機工作過程的有效途徑,也是計算思維能力培養的重要載體。因此,程序設計課程的重要性不僅體現在一般意義上的程序設計能力的培養,而且體現在引導學生實現問題求解的思維方式的轉換,即學生計算思維能力的培養。當然,要實現計算思維能力的培養不是一件容易的事,這也是程序設計教學改革的重要切入點。本書正是按照這種改革理念,以實際問題的求解過程為向導,介紹程序設計的基礎知識與基本方法,本書內容強調計算機求解問題的思路引導與程序設計思維方式的訓練,重點放在程序設計的思想與方法上。
C語言是目前流行的程序設計語言之一,具有程序簡潔、數據類型豐富、表達能力強、使用靈活、實用高效等特點,在當今軟件開發領域有著廣泛的應用,也是高等學校常用的程序設計教學語言之一。誠然,當下C語言程序設計的書不少。經過分析發現,相關教材組織模式大致有兩種,一種是按照語言的語法體系組織教材,先講語法知識,再舉例說明這些語法的應用,這樣做的好處是語言本身的語法體系完整,便于初學者學習掌握。這實際上也是很重要的基本功。但人們擔心,專注于語法,沖淡了程序設計能力的培養,于是就有另外一種教材組織模式,即按問題組織教材內容,先提出問題,再尋找解決辦法,引出語法規則,這樣做的好處是將學習時的注意力放在解決問題的方法上,但顯然程序語言的系統性沒有了,初學者學習起來有困難。經過多年教學改革實踐,我們認為,突出程序設計能力培養是十分必要的,這是計算思維能力培養的必然要求,但給學生完整的語言體系也是必要的。因此,如何處理好語法體系和求解問題方法的矛盾,是教材內容組織的關鍵問題。我們提出,在保持完整語法體系的前提下,給學生一個完整的解決問題的思路,這是解決問題的根本途徑。為此,本書在編寫過程中,力求體現以下四個方面的特點。
一是強調計算機問題求解的思路引導,突出從問題到算法,再到程序的一種思維過程。不是羅列現成的程序,而是講清楚程序是怎么來的,怎樣才能得到程序。各章的序言部分講清不同的語言要素在問題求解中的作用,由此引出各章內容。在講程序實例時,先條理性地列出問題求解的基本步驟,再對基本步驟進行逐步細化后得到完整的算法。有些例子更多的是從教學的角度設計的,這是應用的基礎和前提,有些例子則具有很強的實際應用背景,可以更好地培養讀者的應用開發能力。書中穿插介紹了遞推法、迭代法、窮舉法、試探法、遞歸法、分治法等算法設計策略,有利于讀者掌握有關程序設計方法。
二是恰當取舍,突出C語言的本質特點和教學要求。本書用通俗易懂的語言講清C語言的重要概念,不求面面俱到。本書也不過分死摳語言細節,引導讀者在程序設計實踐中去掌握語法規則。
三是組織編排遵循循序漸進原則。本書前6章體現了基本程序設計能力的訓練,第1章介紹程序設計的基礎知識,建立起對C語言的初步認識;第2章介紹程序的數據描述,在這一章中并未羅列全部表達式,而將相關表達式分散到各章去介紹,一方面讓讀者盡早接觸到程序,另一方面也避免了因語言細節過多而導致單調無味;第3~5章分別介紹程序的3種基本結構,體現了最基本的程序設計方法;第6章是函數,介紹模塊化程序設計的基本方法。前6章只涉及C語言的基本數據類型,重點放在程序的3種基本結構的實現方法和程序設計能力培養上。第7~9章是數組、指針和構造數據類型,涉及更復雜數據的表示方法。第10章是文件操作,這是程序設計語言的經典內容。這種內容編排符合初學者的認知特點,有利于總體上把握內容,幫助讀者逐步深入理解和掌握知識。各章小結中總結了本章主要的知識點,幫助讀者總結歸納本章內容,達到鞏固提高的目的。
四是配套資源豐富。本書配有教學參考書、慕課(MOOC)、重點內容的微視頻講解以及其他相關教學資源。為了方便教學和讀者上機操作練習,作者還編寫了《C程序設計實踐教程》一書,作為與本書配套使用的教學參考書。本書有配套的MOOC(https://www.icourse163.org/course/CSU-1003517003),方便讀者學習。作者團隊在中南大學開展基于MOOC的混合式教學實踐,取得良好效果。本書還配有微視頻講解,對讀者理解重點概念、掌握重要方法、化解學習難點很有幫助。另外,還有與本書配套的教學大綱、教學課件、各章習題答案、例題源程序等教學資源,可從中國水利水電出版社網站下載使用。
本書由劉衛國擔任主編,參與編寫的有曹岳輝、呂格莉、羅芳、何小賢、童鍵、嚴暉等。許多教師參與了課程建設實踐,為本書編寫積累了豐富的素材。在本書編寫過程中吸取了許多教師、MOOC學員的寶貴意見和建議,在此表示衷心的感謝。
由于編者水平有限,書中難免存在不足之處,懇請廣大讀者批評指正。
編 者
2023年6月于中南大學
1.1 程序設計與算法 2
1.1.1 程序與程序設計 2
1.1.2 算法及其描述 3
1.2 C語言的發展與特點 8
1.2.1 C語言的發展歷史 8
1.2.2 C語言的特點 9
1.3 C語言程序的基本結構 10
1.3.1 初識C語言程序 10
1.3.2 C語言程序的結構特點與書寫規則 12
1.4 C語言程序的運行 13
1.4.1 C語言程序的運行步驟與調試 13
1.4.2 C語言的集成開發環境 15
本章小結 16
習題 16
第2章 程序的數據描述 18
2.1 C語言的數據類型 19
2.2 常量與變量 19
2.2.1 常量 20
2.2.2 變量 20
2.3 基本數據類型 22
2.3.1 整型數據 22
2.3.2 實型數據 24
2.3.3 字符型數據 25
2.4 常用數學庫函數 28
2.5 基本運算與表達式 29
2.5.1 C語言運算符 29
2.5.2 算術運算 30
2.5.3 逗號運算 32
2.6 混合運算時數據類型的轉換 32
2.6.1 算術運算的隱式類型轉換 32
2.6.2 顯式類型轉換 33
本章小結 34
習題 35
第3章 順序結構 38
3.1 C語句 39
3.1.1 簡單語句 39
3.1.2 復合語句 40
3.1.3 流程控制語句 40
3.2 賦值運算與賦值語句 41
3.2.1 賦值運算 41
3.2.2 賦值語句 42
3.2.3 賦值時的數據類型轉換 43
3.3 數據輸入輸出 43
3.3.1 輸入輸出的實現方式 43
3.3.2 printf函數的格式化輸出 44
3.3.3 scanf函數的格式化輸入 47
3.3.4 字符輸入輸出函數 49
3.4 順序結構程序舉例 50
本章小結 54
習題 55
第4章 選擇結構 58
4.1 條件的描述 59
4.1.1 關系運算 59
4.1.2 邏輯運算 59
4.1.3 位運算 62
4.2 if選擇結構 63
4.2.1 單分支if選擇結構 63
4.2.2 雙分支if選擇結構 64
4.2.3 多分支if選擇結構 67
4.2.4 if選擇結構的嵌套 68
4.2.5 容易混淆的==和=運算符 71
4.3 條件運算 71
4.4 switch多分支選擇結構 72
4.5 選擇結構程序舉例 74
本章小結 78
習題 79
第5章 循環結構 83
5.1 while循環結構 84
5.1.1 while語句的格式 84
5.1.2 while循環的應用 85
5.2 do-while循環結構 87
5.2.1 do-while語句的格式 88
5.2.2 do-while循環的應用 88
5.3 for循環結構 90
5.3.1 for語句的格式 90
5.3.2 for循環的應用 91
5.3.3 for語句的各種變形 92
5.4 與循環有關的控制語句 94
5.4.1 break語句 95
5.4.2 continue語句 95
5.4.3 goto語句 96
5.5 三種循環語句的比較 96
5.6 循環的嵌套 98
5.7 循環結構程序舉例 100
本章小結 105
習題 107
第6章 函數 111
6.1 C語言程序的模塊結構 112
6.2 函數的定義與調用 113
6.2.1 函數的定義 113
6.2.2 函數的調用 114
6.2.3 對被調用函數的聲明和函數原型 115
6.2.4 帶參數的宏定義 117
6.3 函數的參數傳遞 118
6.4 函數的嵌套調用與遞歸調用 120
6.4.1 函數的嵌套調用 120
6.4.2 函數的遞歸調用 122
6.5 變量的作用域與存儲類別 126
6.5.1 變量的作用域 126
6.5.2 變量的存儲類別 129
6.6 內部函數和外部函數 133
6.6.1 內部函數 133
6.6.2 外部函數 133
6.7 函數應用舉例 134
本章小結 138
習題 139
第7章 數組 143
7.1 數組的概念 144
7.2 數組的定義 144
7.2.1 一維數組 145
7.2.2 二維數組 146
7.2.3 數組的存儲結構 147
7.3 數組的賦值與輸入輸出 147
7.3.1 數組的賦值 147
7.3.2 數組的輸入輸出 148
7.4 數組的應用 149
7.4.1 一維數組應用舉例 149
7.4.2 二維數組應用舉例 159
7.5 字符數組與字符串 162
7.5.1 字符數組的定義和初始化 162
7.5.2 字符數組的輸入輸出 165
7.5.3 字符串處理函數 167
7.5.4 字符數組應用舉例 169
7.6 數組作為函數的參數 172
7.6.1 數組元素作函數的參數 172
7.6.2 數組名作函數的參數 173
本章小結 177
習題 179
第8章 指針 182
8.1 指針的概念 183
8.2 指針變量的定義與運算 184
8.2.1 指針變量的定義 184
8.2.2 指針變量的運算 185
8.3 指針與數組 187
8.3.1 指針與一維數組 187
8.3.2 指針與二維數組 192
8.4 指針與字符串 195
8.5 指針與函數 197
8.5.1 指針變量作函數參數 197
8.5.2 指向函數的指針變量 200
8.5.3 返回指針的函數 203
8.6 指針數組與指向指針的指針 205
8.6.1 指針數組 205
8.6.2 指向指針的指針 206
8.6.3 main函數的參數 207
8.7 指針與動態內存管理 208
8.7.1 動態內存管理函數 209
8.7.2 動態數組 210
8.8 指針應用舉例 212
本章小結 215
習題 217
第9章 構造數據類型 221
9.1 結構體類型與結構體變量 222
9.1.1 結構體類型的定義 222
9.1.2 結構體變量的定義 223
9.1.3 結構體變量的使用 225
9.2 結構體數組 228
9.2.1 結構體數組的定義與引用 228
9.2.2 結構體數組的應用 229
9.3 結構體指針 230
9.3.1 指向結構體變量的指針 230
9.3.2 用結構體作函數參數 232
9.4 鏈表 235
9.4.1 鏈表的概念 235
9.4.2 鏈表的基本操作 236
9.5 共用體 243
9.5.1 共用體類型及變量定義 243
9.5.2 共用體變量的使用 245
9.6 枚舉 247
本章小結 249
習題 250
第10章 文件操作 255
10.1 文件概述 256
10.1.1 文件的概念 256
10.1.2 C語言的文件系統 256
10.1.3 文件類型指針 257
10.2 文件的打開與關閉 258
10.2.1 打開文件 258
10.2.2 關閉文件 259
10.3 文件的順序讀寫操作 260
10.3.1 按字符讀寫文件 260
10.3.2 按字符串讀寫文件 263
10.3.3 按格式讀寫文件 264
10.3.4 按數據塊讀寫文件 266
10.4 文件的隨機讀寫操作 268
10.4.1 文件的定位 268
10.4.2 二進制隨機文件 269
10.5 文件操作時的出錯檢測 271
10.6 文件應用舉例 272
本章小結 277
習題 277
附錄1 ASCII字符編碼表 280
附錄2 C語言運算符的優先級與結合方向 281
附錄3 C語言常用的庫函數 283
參考文獻 288
- 人工智能開發框架應用 [主編 王明超 蘆婭云]
- 信息系統項目管理師案例分析一本通(第二版) [王樹文 編著]
- 價值營銷戰略模型—用三大價值構建白酒營銷系統 [李學 編著]
- 軟考論文高分特訓與范文10篇——系統規劃與管理師 [薛大龍 施游 胡曉萍]
- 新概念英語單詞(全四冊)循環速記一本通 [周琨 編著]
- Windows Server 2016網絡操作系統 [孟凡樓 劉洋]
- HTML5+CSS3網頁設計與制作項目化教程 [范佳 胡卓舒 馮迎]
- 水利水電工程金屬結構和機電設備制造監理工作指南 [主編 張小陽]
- 廣西瑤族傳統服飾文化研究 [容婷 著]
- 面向知識元的領域信息抽取與圖譜構建 [朱小龍 著]
- 電子產品設計與制作 [黃荻 陳志漫]
- 數據庫原理與實踐(MySQL版) [楊俊杰 劉忠艷]
- 南陽漢代畫像石造型語言研究 [龐國華 著]
- C語言程序設計(第三版) [主編 丁紅 王立新 蔡開立]
- 民航客艙服務實用英語教程 [主編 田靜 徐亞玲]
- 軟考論文高分特訓與范文10篇—信息系統項目管理師(第二版) [主編 薛大龍]
- Python數據分析 [主編 馮志輝 趙磊 李放]
- 大學信息技術 [曾翰穎 編著]
- 大學生創新創業基礎 [主 編 李婷 張玉萍]
- Python程序設計與應用(第二版) [主編 張廣淵]
- 多維視域下的高校籃球教學創新研究 [張利超 李寧 著]
- 創新創業訓練實踐教程 [主編 王日華 陳武 黃喆誠]
- 智能控制導論(第四版) [蔡自興 編著]
- 輸水管線工程風險管理 [張勇 黨亥生 著]
- 民用航空飛機標準線路施工 [主編 王志敏 陳明]
- 不息的水脈—大運河講談錄 [趙珩 著]
- 實用運籌學 [主編 邢育紅 于晉臣]
- 三峽梯級電站水資源決策支持系統研究與開發 [姚華明 潘紅忠 湯正]
- 海南黎族民俗文化鑒賞 [龐國華 著]
- 石墨烯在太赫茲及中紅外頻段電磁器件設計中的應用 [李艷秀 莊華偉 著]