商品描述
本書以C語言為工具,力圖用*簡明的語言、*典型的實例,介紹計算思維和程序設計的基本方法,
把它們的核心思想貫穿於C語言的介紹中,目的是使讀者在學習C語言以後,
能夠用計算思維和程序設計的方法解決相關領域中的實際問題。
本書分13章,內容包括:C語言基本概念,數據類型與表達式,格式化輸入與輸出,
選擇結構,循環結構,函數,數組,指針,字符串,指針與數組,自定義數據類型,文件,構建大規模程序。
每單後均有習題,掃描第1~12章後的二維碼,可以獲取本章知識點小結和本章常見錯誤小結。
本書免費提供電子課件,登錄華信教育資源網(www.hxedu.com.cn)註冊後下載。
本書假設讀者沒有任何編程背景,既可以是學生及計算機用戶,也可以是有經驗的但不熟悉C語言、
需要掌握結構化程序設計方法的程序員。
作者簡介
曾智勇
博士,福建師範大學數學與信息學院副教授,數字福建大數據安全技術研究所副所長,
中國人工智能學會科普委員會委員,教育部示範性軟件學院數字媒體技術專業規範研製專家組專家,
中國計算機學會高級會員,中國圖像圖形學會高級會員,福建省科技廳專家,福州市科技局專家。
主要從事計算機視覺、模式識別與人工智能方向的研究。
先後主持或參與承擔了"中國電子政務應用示範工程”863科技攻關項目,"十五”軍用高科技掃描輸入技術"總裝備部軍事預研項目,
"醫療CT圖像三維建模系統”,"支持採編播一體化的多通道收錄系統關鍵技術研究與應用”
福建省省科技廳高校產學合作重大項目,"基於計算機視覺的疲勞駕駛檢測系統研製”
福建省科技重點課題;"圖像語義的形式化分析與驗證”,"基於區域語義和相關反饋的多媒體檢索系統設計”,
<<基於區域語義和相關反饋的圖像檢索系統的設計與實現>>多項福建省自然科學基金等科研攻關項目,
在國內外核心期刊及國際會議上發表學術論文40多篇,其中被SCI或EI收錄20餘篇。
主持或參與福建省級精品在線課程"C語言程序設計”,福建省精品課程"C及面向對象程序設計”,
福建師範大學"金課”。
目錄大綱
第1章C語言基本概念1
1.1計算機語言和程序1
1.1.1計算機語言1
1.1.2計算機程序1
1.1.3 C語言2
1.1.4程序設計2
1. 2算法和算法表示3
1.2.1算法的概念4
1.2.2算法的特徵5
1.2.3算法的表示6
1.2.4算法的優化12
1.2.5結構化程序設計方法14
1.3 C語言編程17
1.4變量、表達式和賦值19
1.5從鍵盤讀取輸入20
1.6常量定義21
1.7標識符23
1.8 C程序的結構特點24
1.9 C語言編程風格25
習題1 26
第2章數據類型與表達式28
2.1變量聲明與表達式28
2.2基本數據類型28
2.3整型29
2.4浮點型30
2 .5算術運算符與表達式31
2.5.1算術運算符31
2.5.2算術表達式33
2.6賦值運算符與表達式34
2.6.1賦值運算符34
2.6. 2賦值表達式34
2.6.3複合賦值運算符及表達式35
2.7自增/自減運算符36
2.8字符型36
2.9字符處理函數38
2.10類型轉換40
2.11類型定義42
習題2 43
實驗題46
第3章格式化輸入與輸出47
3.1輸出函數47
3.2輸入函數50
習題3 55
實驗題56
第4章選擇結構57
4.1關係、等式和邏輯運算符57
4.2邏輯運算符和表達式58
4.3複合語句59
4.4空語句59
4.5 if語句59
4.6 if-else語句61
4.7 if語句的嵌套62
4.8級聯式語句66
4.9 switch語句67
4.10條件表達式69
4.11程序舉例與測試70
4.12本章擴展內容:位運算73
4.12.1位運算符73
4.12.2位邏輯運算73
4.12.3移位運算74
4. 12.4複合位運算賦值運算符75
4.12.5位運算的應用75
習題4 76
實驗題81
第5章循環結構82
5.1循環結構與循環語句82
5.2計數控制的循環87
5.3嵌套循環89
5.4條件控制的循環91
5.5流程的控制轉移95
5.5.1 break語句95
5. 5.2 continue語句96
5.5.3 goto語句98
5.6應用舉例99
習題5 103
實驗題105
第6章函數107
6.1模塊化程序設計107
6.2函數的定義108
6.2. 1函數的分類108
6.2.2函數的定義108
6.3函數調用109
6.4函數原型聲明111
6.5函數封裝與防禦性編程113
6.6函數設計的基本原則118
6.7函數的嵌套調用119
6.8函數的遞歸調用和遞歸函數120
6.9變量的作用域和存儲類型122
6.9.1變量的作用域122
6.9.2變量的存儲類型124
6.10模塊化程序設計實例128
習題6 132
實驗題135
第7章數組136
7.1一維數組136
7.2二維數組138
7.3一維數組作為函數參數140
7.4排序與查找144
7.5二維數組作為函數參數152
習題7 154
實驗題157
第8章指針158
8.1指針和指針變量158
8.2指針變量的定義和初始化158
8.3間接尋址運算符161
8.4指針變量作為函數參數163
8.5指針變量作為函數參數應用舉例166
8.6函數指針及其應用171
習題8 174
實驗題176
第9章字符串178
9.1字符串常量178
9.2字符串的存儲178
9.3字符指針179
9.4字符串的讀/寫180
9.5字符串處理函數184
9.6字符串作為函數參數186
9.7從函數返回字符串指針187
習題9 189
實驗題191
第10章指針與數組192
10.1指針的運算192
10.2指針和一維數組的關係192
10.3指針和二維數組的關係197
10.4指針數組及其應用201
10.5動態數組205
10.5.1 C程序的內存映像205
10.5.2動態內存分配函數206
10.5.3一維動態數組的內存分配208
10.5.4二維動態數組的內存分配209
習題10 211
實驗題212
第11章自定義數據類型214
11.1用戶自定義數據類型和信息隱藏214
11.2結構體的定義214
11.3結構體變量的初始化216
11.4結構體的嵌套217
11 .5結構體變量的引用217
11.6結構體變量在內存中的存儲形式219
11.7結構體數組的定義和初始化220
11.8結構體指針的定義和初始化223
11.9結構體作為函數參數224
11.10共用體229
11.11枚舉類型231
11.12單向鍊錶234
11.12.1問題的提出234
11.12.2鍊錶234
11.12.3單向鍊錶的創建235
11 .12.4單向鍊錶的搜索237
11.12.5從單向鍊錶中刪除節點238
習題11 242
實驗題244
第12章文件246
12.1文件分類246
12.2文件的打開與關閉247
12.3順序讀/寫文件248
12.3.1讀/寫字符248
12.3.2讀/寫字符串251
12.3.3格式化讀/寫文件253
12.3.4讀/寫數據塊257
12.4隨機讀/寫文件260
12.5標準輸入/輸出重定向262
習題12 263
實驗題265
第13章構建大規模程序266
13.1頭文件266
13.1.1 #include指令的使用266
13.1.2定義共享類型和宏266
13.1.3共享函數原型267
13.1.4共享變量聲明268
13.1.5嵌套包含268
13 .1.6保護頭文件268
13.1.7頭文件中的#error指令269
13.2源文件269
13.3多文件程序的設計269
13.4構建多文件程序273
13.4.1 makefile文件274
13.4.2鏈接錯誤274
13.4.3重構程序275
13.4.4在程序外定義宏276
習題13 277
實驗題277
附錄A Dev-C++和Visual C++下基本數據類型的取值範圍278
附錄B關鍵字278
附錄C運算符的優先級與結合性279
附錄D ASCII字符表280
附錄E ANSI C標準庫函數282
附錄F Dev -C++集成開發環境289
參考文獻292