《計算機基礎與C語言程序設計(第四版)》以全國計算機等級考試二級考試大綱為指導,介紹了二級 C 語言等級考試所要求的全部內容。全書共 11 章,包括計算機基礎知識、C 語言概述、基本數據類型與常用庫函數、運算符和表達式、C 語言的控制結構、數組、函數、編譯預處理、指針、結構體與共用體、文件等內容。 《計算機基礎與C語言程序設計(第四版)》例題豐富,與《計算機基礎與 C 語言程序設計實驗指導(第四版)》一起構成了一套完整的教學用書,既可作為高等院校非計算機專業(yè)的 C 語言程序設計課程的教學用書,也可作為報考全國計算機等級考試(NCRE)人員的參考資料。 《計算機基礎與C語言程序設計(第四版)》配套的電子課件和習題答案可以到 http://www.tupwk.com.cn/downpage 網站下載,也可以掃描前言中的二維碼下載。
遼寧省十二五普通高等教育本科省級規(guī)劃教材
2020年遼寧省省級優(yōu)秀教材
基礎構建:用通俗易懂的示例,幫助讀者理解C語言的基本概念和知識點,扎實構建程序設計基礎。
思維擴展:從學會解決小問題出發(fā),逐步提高讀者分析問題、解決問題的綜合應用能力。
C語言是一種非常優(yōu)秀的程序設計語言,既具備高級語言的特點,又具有直接操縱計算機硬件的能力,并因豐富靈活的控制性和數據結構、簡潔而高效的語句表達、清晰的程序結構和良好的可移植性而擁有大量的使用者。目前,國內幾乎所有的高等院校都開設了C語言程序設計課程。人們對計算機知識的需求使得C語言不僅成為計算機專業(yè)學生的必修課,也成為廣大非計算機專業(yè)學生和計算機愛好者的程序設計語言,而且全國計算機等級考試也將C語言列為重要的考試內容之一。
《計算機基礎與C語言程序設計(第四版)》面向程序設計新手,在編寫過程中,作者力求使《計算機基礎與C語言程序設計(第四版)》體現如下特點。
(1) 對C語言中的重點、難點進行分解,將重點、難點分散編排,使學生在學習過程中循序漸進。
(2) 對C語言中生僻、不常用的內容不做過多描述;對在實踐中使用較多、需要牢固掌握的內容進行詳細敘述,并給出大量的示例。
(3) 《計算機基礎與C語言程序設計(第四版)》在介紹C語言基本知識的同時,還強調讀者編程風格的形成,有意識地訓練讀者逐步養(yǎng)成良好的程序編寫習慣和程序設計風格。
(4) 《計算機基礎與C語言程序設計(第四版)》所有示例均在Visual C 2010環(huán)境下調試通過。
全書共11章。第1章介紹計算機系統(tǒng)與工作原理、數制與編碼;第2章介紹C程序的基本構成和簡單的C程序示例;第3章介紹基本數據類型、常用的輸入輸出函數;第4章介紹各種運算符和表達式;第5章介紹C語言的控制結構(順序結構、選擇結構、循環(huán)結構);第6章介紹數組的使用及常用字符串處理函數;第7章介紹函數的使用及變量的存儲類別;第8章介紹編譯預處理命令;第9章介紹指針的使用方法;第10章介紹結構體和共用體的使用以及鏈表及其操作;第11章介紹文件的類型和操作。其中,第1章由辛慧杰編寫,第2~6章由焉德軍編寫,第7~10章由劉明才編寫,第11章由王鵬編寫。
為了方便學習和加強實驗教學,我們同時編寫了該書的配套用書《計算機基礎與C語言程序設計實驗指導(第四版)》。
《計算機基礎與C語言程序設計(第四版)》作者長期從事高等學校大學計算機基礎和C語言程序設計課程的教學工作,在總結多年的教學經驗和教改實踐的基礎上,編寫了本套教材。由于作者水平有限,書中難免存在不足,懇請讀者批評指正。我們的郵箱是992116@qq.com,電話是010-62796045。
《計算機基礎與C語言程序設計(第四版)》配套的上機練習源文件可以通過http://www.tupwk.com.cn/downpage網站下載,也可以通過掃描下方的二維碼獲取。
編 者
2020年12月
第1章 計算機基礎知識 1
1.1 計算機系統(tǒng)與工作原理 1
1.1.1 計算機系統(tǒng)的組成 1
1.1.2 計算機硬件系統(tǒng) 2
1.1.3 計算機軟件系統(tǒng) 4
1.1.4 計算機的工作原理 6
1.2 數制與編碼 7
1.2.1 數制的基本概念 7
1.2.2 常用的數制 7
1.2.3 數制間的轉換 11
1.2.4 數據在計算機中的表示方式 13
1.2.5 字符編碼 16
1.2.6 漢字編碼 18
1.2.7 存儲單位 21
1.3 個人計算機的基本配置及性能指標 22
1.3.1 硬件 22
1.3.2 操作系統(tǒng) 24
1.4 習題 26
第2章 C語言概述 28
2.1 C語言的發(fā)展歷史 28
2.2 C語言的特點 29
2.3 C語言程序設計初步 30
2.3.1 簡單的C程序示例 30
2.3.2 C程序結構 32
2.4 C程序在計算機上的執(zhí)行步驟 33
2.5 習題 34
第3章 基本數據類型與常用庫函數 36
3.1 字符集與標識符 36
3.2 數據類型與基本數據類型 37
3.2.1 數據類型 37
3.2.2 基本數據類型 38
3.3 常量與變量 39
3.3.1 常量 39
3.3.2 符號常量 41
3.3.3 變量 42
3.4 輸入輸出函數 43
3.4.1 字符輸入輸出函數 43
3.4.2 格式輸出函數printf 44
3.4.3 格式輸入函數scanf 47
3.5 常用庫函數 49
3.6 習題 50
第4章 運算符和表達式 53
4.1 算術運算符和算術表達式 53
4.2 自增和自減運算 56
4.3 位運算 56
4.4 賦值運算 60
4.5 關系運算與邏輯運算 61
4.5.1 關系運算 61
4.5.2 邏輯運算 63
4.6 條件表達式與逗號表達式 64
4.6.1 條件表達式 64
4.6.2 逗號表達式 65
4.7 習題 66
第5章 C語言的控制結構 69
5.1 算法與程序 69
5.1.1 算法 69
5.1.2 程序 70
5.2 順序結構 71
5.3 選擇結構 72
5.3.1 if語句 72
5.3.2 switch語句 77
5.4 循環(huán)結構 82
5.4.1 while語句 82
5.4.2 do-while語句 83
5.4.3 for語句 84
5.4.4 break語句 86
5.4.5 continue語句 88
5.4.6 單重循環(huán)結構 88
5.4.7 多重循環(huán)結構 91
5.5 習題 93
第6章 數組 97
6.1 一維數組 97
6.1.1 一維數組的定義 97
6.1.2 一維數組的存儲形式 98
6.1.3 一維數組的初始化 98
6.1.4 一維數組的引用 99
6.1.5 一維數組應用舉例 99
6.2 二維數組 103
6.2.1 二維數組的定義 103
6.2.2 二維數組的存儲形式 103
6.2.3 二維數組的初始化 103
6.2.4 二維數組的引用 104
6.2.5 二維數組應用舉例 104
6.3 字符數組 107
6.3.1 字符數組的定義 107
6.3.2 字符數組的初始化 107
6.3.3 字符數組的輸入輸出 108
6.3.4 常用字符串處理函數 110
6.3.5 二維字符數組 113
6.3.6 字符串應用舉例 116
6.4 習題 117
第7章 函數 121
7.1 函數定義和函數調用 121
7.1.1 函數定義 121
7.1.2 return語句 124
7.1.3 函數調用 124
7.1.4 函數聲明 125
7.1.5 函數間的參數傳遞 126
7.2 函數的嵌套調用和遞歸調用 129
7.2.1 函數的嵌套調用 129
7.2.2 函數的遞歸調用 130
7.3 局部變量和全局變量 133
7.3.1 局部變量 133
7.3.2 全局變量 133
7.4 變量的存儲類別 136
7.4.1 自動變量 137
7.4.2 靜態(tài)變量 137
7.4.3 寄存器變量 138
7.5 內部函數和外部函數 139
7.6 習題 139
第8章 編譯預處理 145
8.1 宏定義 145
8.1.1 不帶參數的宏定義 145
8.1.2 帶參數的宏定義 146
8.1.3 終止宏定義的作用域 148
8.2 文件包含 148
8.3 條件編譯 150
8.4 習題 151
第9章 指針 154
9.1 指針概述 154
9.1.1 指針的概念 154
9.1.2 指針變量 155
9.1.3 指針運算 157
9.1.4 將指針作為函數的參數 158
9.2 指針與一維數組 160
9.2.1 一維數組元素的表示 160
9.2.2 將數組名作為函數的參數 163
9.3 指針與二維數組 166
9.3.1 二維數組中的指針 166
9.3.2 指向二維數組元素的指針變量 167
9.3.3 將二維數組的行指針作為函數的參數 170
9.4 指針與字符串 172
9.4.1 字符串的表示形式 172
9.4.2 將字符串指針作為函數的參數 173
9.5 指針與函數 175
9.5.1 指向函數的指針 175
9.5.2 返回指針的函數 176
9.6 指針數組與多級指針 177
9.6.1 指針數組的概念 177
9.6.2 多級指針的概念 179
9.7 習題 180
第10章 結構體與共用體 185
10.1 結構體類型的定義 185
10.2 結構體變量 186
10.2.1 結構體變量的定義 186
10.2.2 結構體變量所占的內存空間 188
10.2.3 結構體變量的引用 190
10.3 結構體數組 192
10.3.1 結構體數組的定義與初始化 192
10.3.2 結構體數組的引用 193
10.4 結構體和指針 194
10.5 結構體和函數 196
10.5.1 將結構體作為函數的參數 196
10.5.2 返回結構體的函數 199
10.6 鏈表 201
10.6.1 簡單鏈表 201
10.6.2 處理動態(tài)鏈表所需的庫函數 203
10.6.3 單向鏈表的基本操作 204
10.7 共用體 212
10.8 枚舉 214
10.9 使用typedef定義類型別名 216
10.10 習題 217
第11章 文件 222
11.1 文件的基本概念 222
11.2 文件的打開與關閉 223
11.2.1 文件類型的指針變量 223
11.2.2 文件的打開 223
11.2.3 文件的關閉 224
11.3 文件的讀寫 225
11.3.1 字符讀寫函數fgetc和fputc 225
11.3.2 字符串讀寫函數fgets和fputs 227
11.3.3 數據塊讀寫函數fread和fwrite 229
11.3.4 格式化讀寫函數fscanf和fprintf 230
11.4 文件的隨機讀寫 232
11.4.1 文件的定位 232
11.4.2 進行文件的隨機讀寫 233
11.5 綜合應用實例學生成績管理程序 234
11.6 習題 249
附錄A C語言中的關鍵字 251
附錄B 字符與ASCII碼對照表 252
附錄C 運算符的優(yōu)先級與結合性 254
附錄D 常用庫函數 256
參考文獻 262