本書是根據(jù)教育部計算機基礎(chǔ)課程教學(xué)指導(dǎo)委員會制定的大綱,結(jié)合目前普通高等院校計算機基礎(chǔ)教學(xué)的現(xiàn)狀和全國計算機等級考試大綱,由一線教師組織編寫的。全書共12章,主要內(nèi)容包括C語言概述、基本數(shù)據(jù)類型與表達(dá)式、順序結(jié)構(gòu)程序設(shè)計、選擇結(jié)構(gòu)程序設(shè)計、循環(huán)結(jié)構(gòu)程序設(shè)計、數(shù)組、函數(shù)、編譯預(yù)處理、指針、結(jié)構(gòu)體、共用體和枚舉、文件。本書主線清晰、重點明確、敘述嚴(yán)謹(jǐn)、內(nèi)容由淺入深。書中從全國計算機等級考試二級(C語言)試題中選用了大量經(jīng)典試題作為例題和練習(xí)題,有很強的針對性,并有配套的教學(xué)課件。本書適合作為高等院校本科生的教學(xué)用書,也可作為參加全國計算機等級考試二級(C語言)的輔導(dǎo)教材,同時也是工程技術(shù)人員較好的參考用書。
陳亮, 男, 副教授, 西安交通大學(xué)博士, 西安工程學(xué)院計算機科學(xué)學(xué)院副院長, 長期從事計算機科學(xué)的教學(xué)與研究工作, 發(fā)表論文多篇.
第1章 C語言概述 1
1.1 程序設(shè)計的相關(guān)概念 1
1.1.1 基本概念 1
1.1.2 算法 1
1.1.3 數(shù)據(jù)結(jié)構(gòu) 3
1.1.4 算法+數(shù)據(jù)結(jié)構(gòu)=程序 3
1.2 C/C++語言的產(chǎn)生及特點 3
1.3 C語言程序結(jié)構(gòu)的特點 4
1.4 C語言中的詞匯 6
1.5 C語言程序編寫的基本規(guī)范 7
1.6 C語言程序的開發(fā)步驟及Microsoft Visual C++ 2010 Express集成開發(fā)環(huán)境介紹 9
1.6.1 C語言程序的開發(fā)步驟 9
1.6.2 Microsoft Visual C++ 2010 Express集成開發(fā)環(huán)境介紹 9
1.6.3 利用集成開發(fā)環(huán)境進行程序開發(fā) 10
第2章 基本數(shù)據(jù)類型與表達(dá)式 14
2.1 C語言的數(shù)據(jù)類型 14
2.2 標(biāo)識符、常量和變量 15
2.2.1 標(biāo)識符 15
2.2.2 常量和符號常量 15
2.2.3 變量 16
2.3 整型 17
2.3.1 整型常量 17
2.3.2 整型變量 17
2.3.3 整型數(shù)據(jù)的存儲形式 18
2.4 實型 19
2.4.1 實型常量 19
2.4.2 實型變量 19
2.4.3 實型數(shù)據(jù)在內(nèi)存中的存儲形式 19
2.5 字符型 20
2.5.1 字符常量 20
2.5.2 字符串常量 21
2.5.3 字符變量 22
2.6 算術(shù)表達(dá)式 22
2.6.1 C語言運算符簡介 22
2.6.2 數(shù)值型數(shù)據(jù)混合運算時的類型轉(zhuǎn)換 22
2.6.3 算術(shù)運算符及算術(shù)表達(dá)式 23
2.7 賦值表達(dá)式 25
2.7.1 賦值運算符和賦值表達(dá)式 25
2.7.2 復(fù)合賦值表達(dá)式 25
2.7.3 賦值運算中的類型轉(zhuǎn)換 26
2.8 關(guān)系表達(dá)式和邏輯表達(dá)式 27
2.8.1 C語言的邏輯值 27
2.8.2 關(guān)系運算符及關(guān)系表達(dá)式 27
2.8.3 邏輯運算符及邏輯表達(dá)式 27
2.9 逗號表達(dá)式 28
2.10 位運算 29
2.10.1 位運算符 29
2.10.2 位域簡介 32
2.11 條件運算符和條件表達(dá)式 33
第3章 順序結(jié)構(gòu)程序設(shè)計 35
3.1 C語句概述 35
3.2 程序的三種基本結(jié)構(gòu) 37
3.3 數(shù)據(jù)的輸入/輸出 39
3.3.1 格式輸出函數(shù)printf 39
3.3.2 格式輸入函數(shù)scanf 44
3.3.3 字符輸出函數(shù)putchar 47
3.3.4 字符輸入函數(shù)getchar 47
3.4 順序結(jié)構(gòu)程序設(shè)計舉例 48
第4章 選擇結(jié)構(gòu)程序設(shè)計 55
4.1 關(guān)系運算符與關(guān)系表達(dá)式 55
4.1.1 關(guān)系運算符 55
4.1.2 關(guān)系表達(dá)式 56
4.2 邏輯運算符與邏輯表達(dá)式 56
4.2.1 邏輯運算符 56
4.2.2 邏輯表達(dá)式 57
4.3 if語句 57
4.3.1 if語句的三種形式 57
4.3.2 if語句的嵌套使用 62
4.4 switch語句 64
4.5 選擇結(jié)構(gòu)程序設(shè)計舉例 67
第5章 循環(huán)結(jié)構(gòu)程序設(shè)計 71
5.1 概述 71
5.2 while語句及其循環(huán)結(jié)構(gòu) 72
5.3 do-while語句及其循環(huán)結(jié)構(gòu) 75
5.4 for語句及其循環(huán)結(jié)構(gòu) 76
5.5 break、continue和goto語句 78
5.5.1 break語句 80
5.5.2 continue語句 80
5.5.3 goto語句 81
5.6 循環(huán)的嵌套 81
5.7 循環(huán)程序舉例 83
第6章 數(shù)組 87
6.1 一維數(shù)組 87
6.1.1 一維數(shù)組的定義 87
6.1.2 一維數(shù)組元素的引用 88
6.1.3 一維數(shù)組的初始化 89
6.1.4 一維數(shù)組程序舉例 90
6.2 二維數(shù)組 96
6.2.1 二維數(shù)組的定義 96
6.2.2 二維數(shù)組元素的引用 96
6.2.3 二維數(shù)組的初始化 97
6.2.4 二維數(shù)組程序舉例 98
6.3 字符數(shù)組 103
6.3.1 字符數(shù)組的定義 104
6.3.2 字符數(shù)組的初始化 104
6.3.3 字符數(shù)組的引用 105
6.3.4 字符串和字符串結(jié)束標(biāo)志 106
6.3.5 字符數(shù)組的輸入/輸出 107
6.3.6 字符串處理函數(shù) 109
6.3.7 字符數(shù)組應(yīng)用舉例 114
第7章 函數(shù) 118
7.1 函數(shù)概述 118
7.2 函數(shù)的定義與返回值 119
7.2.1 函數(shù)的定義 119
7.2.2 函數(shù)的返回值 121
7.3 函數(shù)的調(diào)用 122
7.3.1 函數(shù)的參數(shù)及其傳遞 122
7.3.2 函數(shù)調(diào)用方式 124
7.3.3 函數(shù)聲明和函數(shù)原型 125
7.4 函數(shù)的嵌套調(diào)用 126
7.5 函數(shù)的遞歸調(diào)用 128
7.6 數(shù)組作為函數(shù)的參數(shù) 132
7.6.1 數(shù)組元素作為函數(shù)實參 132
7.6.2 數(shù)組名作為函數(shù)參數(shù) 133
7.7 局部變量和全局變量 137
7.7.1 局部變量及其作用域和生存期 138
7.7.2 全局變量及其作用域和生存期 141
7.8 內(nèi)部函數(shù)和外部函數(shù) 144
第8章 編譯預(yù)處理 147
8.1 宏定義 147
8.1.1 無參宏的定義 147
8.1.2 帶參數(shù)的宏定義 150
8.2 文件包含 153
8.3 條件編譯 155
第9章 指針 159
9.1 存儲單元及其地址 159
9.2 變量的實質(zhì) 160
9.3 指針和變量 162
9.3.1 指針相關(guān)概念的引入 162
9.3.2 指針變量的定義和聲明 163
9.3.3 指針變量的引用 164
9.4 指針和數(shù)組 168
9.4.1 指向一維數(shù)組元素的指針 168
9.4.2 通過指針變量引用一維數(shù)組元素 170
9.4.3 指向二維數(shù)組的指針 171
9.4.4 指針型數(shù)組 175
9.4.5 動態(tài)數(shù)組的實現(xiàn) 178
9.5 指針和字符串 180
9.5.1 字符指針 180
9.5.2 字符指針變量和字符數(shù)組的比較 182
9.5.3 字符串?dāng)?shù)組的進一步討論 183
9.6 指針和函數(shù) 186
9.6.1 指針作為函數(shù)的參數(shù) 186
9.6.2 指針型函數(shù) 190
9.6.3 指向函數(shù)的指針 191
9.6.4 數(shù)組和指向數(shù)組的指針變量作為函數(shù)參數(shù)的進一步討論 194
9.7 指針和多級指針 196
9.7.1 指向指針的指針 196
9.7.2 多級指針 198
第10章 結(jié)構(gòu)體與鏈表 199
10.1 概述 199
10.2 結(jié)構(gòu)體類型的聲明 200
10.3 結(jié)構(gòu)體變量的定義 200
10.4 結(jié)構(gòu)體變量的引用 202
10.4.1 對結(jié)構(gòu)體變量成員的引用 203
10.4.2 對結(jié)構(gòu)體變量的整體引用 203
10.5 結(jié)構(gòu)體變量的初始化 203
10.6 結(jié)構(gòu)體數(shù)組 204
10.6.1 結(jié)構(gòu)體數(shù)組的定義 205
10.6.2 結(jié)構(gòu)體數(shù)組的初始化 206
10.6.3 結(jié)構(gòu)體數(shù)組元素的引用 207
10.7 指向結(jié)構(gòu)體類型數(shù)據(jù)的指針 208
10.7.1 指向結(jié)構(gòu)體變量的指針 208
10.7.2 指向結(jié)構(gòu)體數(shù)組的指針 209
10.7.3 結(jié)構(gòu)體變量和指向結(jié)構(gòu)體的指針作為函數(shù)參數(shù) 211
10.8 鏈表 216
10.8.1 鏈表概述 216
10.8.2 處理動態(tài)鏈表所需的函數(shù) 216
10.8.3 單鏈表 217
10.8.4 雙向鏈表 230
10.9 用typedef定義類型 236
第11章 共用體和枚舉 238
11.1 共用體類型 238
11.1.1 共用體類型和共用體變量的定義 238
11.1.2 共用體變量的引用 240
11.1.3 共用體的特點 240
11.1.4 共用體和結(jié)構(gòu)體的比較 241
11.2 共用體類型應(yīng)用舉例 241
11.3 枚舉類型 243
11.3.1 枚舉類型的定義 243
11.3.2 枚舉類型的特點 244
11.3.3 枚舉類型應(yīng)用舉例 244
第12章 文件 247
12.1 文件概述 247
12.2 文件指針 248
12.3 文件的打開和關(guān)閉 249
12.3.1 文件的打開函數(shù)fopen 249
12.3.2 文件的關(guān)閉函數(shù)fclose 250
12.4 文件的讀/寫 251
12.4.1 字符讀/寫函數(shù)fgetc和fputc 251
12.4.2 字符串讀/寫函數(shù)fgets和fputs 252
12.4.3 數(shù)據(jù)塊讀/寫函數(shù)fread和fwrite 252
12.4.4 格式化讀/寫函數(shù)fscanf和fprintf 253
12.5 文件的隨機讀/寫 253
12.5.1 文件定位 253
12.5.2 文件的隨機讀/寫 254
12.6 文件檢測函數(shù) 255
12.6.1 文件結(jié)束檢測函數(shù)feof 255
12.6.2 讀/寫文件出錯檢測函數(shù)ferror 255
12.6.3 文件出錯標(biāo)志和文件結(jié)束標(biāo)志置零函數(shù)clearerr 255
12.7 庫文件 255
12.8 文件應(yīng)用舉例 256
附錄A ASCII碼表 261
附錄B 運算符的優(yōu)先級和結(jié)合方向一覽 264
附錄C C語言標(biāo)準(zhǔn)庫函數(shù) 265
C.1 頭文件 265
C.2 常用庫函數(shù)分類 266
參考文獻 269