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