本書以C語言的基本語法、語句為基礎(chǔ),深入淺出地講述了C語言程序設(shè)計的基本概念、設(shè)計思想與方法。本書文字嚴(yán)謹(jǐn)、流暢,例題豐富,注重程序設(shè)計技能的訓(xùn)練。全書共10章,主要內(nèi)容包括程序設(shè)計基礎(chǔ)及C語言概述、C語言的數(shù)據(jù)類型及運(yùn)算、順序結(jié)構(gòu)程序設(shè)計、選擇結(jié)構(gòu)程序設(shè)計、循環(huán)結(jié)構(gòu)程序設(shè)計、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體與共用體、文件。
本書可作為高等院校非計算機(jī)專業(yè)學(xué)生學(xué)習(xí)C語言程序設(shè)計的教材,也可作為程序設(shè)計愛好者學(xué)習(xí)C語言程序設(shè)計的參考書。
本書在編寫過程中,力求做到概念準(zhǔn)確、內(nèi)容簡潔、由淺入深、循序漸進(jìn)、繁簡適當(dāng)、題型豐富,注重常用算法的介紹,有助于培養(yǎng)學(xué)生設(shè)計程序和分析問題的能力。
書中全部實例都已上機(jī)調(diào)試通過。
文字嚴(yán)謹(jǐn)、流暢,例題豐富,文檔規(guī)范,注重程序設(shè)計技能訓(xùn)練。
周虹,佳木斯大學(xué)計算機(jī)學(xué)院副院長,教授。1989年畢業(yè),2004晉教授碩士導(dǎo)師,2007年《工科計算機(jī)基礎(chǔ)的改革與實踐》獲佳木斯大學(xué)優(yōu)秀教學(xué)成果一等獎,2007年《計算機(jī)基礎(chǔ)教學(xué)改革與實踐》獲黑龍江省高等教育學(xué)會優(yōu)秀教學(xué)成果一等獎。2009年《高等學(xué)校計算機(jī)基礎(chǔ)教學(xué)的改革與實踐》獲省優(yōu)秀教學(xué)成果二等獎2009年c語言程序設(shè)計獲黑龍江省精品課。主要講授《c語言程序設(shè)計》《數(shù)據(jù)結(jié)構(gòu)》《數(shù)據(jù)庫原理》《軟件工程》《計算機(jī)基礎(chǔ)》等課程。
第 1章 程序設(shè)計及C語言概述 1
1.1 算法及表示 1
1.1.1 算法的特性 1
1.1.2 算法的表示 1
1.2 程序設(shè)計及結(jié)構(gòu)化程序設(shè)計方法 4
1.2.1 程序 4
1.2.2 程序設(shè)計的步驟 5
1.2.3 結(jié)構(gòu)化程序設(shè)計 6
1.3 C語言的發(fā)展及特點 7
1.3.1 C 語言出現(xiàn)的歷史背景 7
1.4 C語言程序的構(gòu)成 9
1.5 程序的書寫格式和程序的書寫風(fēng)格 11
1.6 C語言的編程環(huán)境 11
本章小結(jié) 15
練習(xí)與提高 15
第 2章 C語言的基本數(shù)據(jù)及其運(yùn)算 17
2.1 C語言數(shù)據(jù)類型簡介 17
2.2 標(biāo)識符 18
2.2.1字符集 18
2.2.2標(biāo)識符 18
2.2.3標(biāo)識符的分類 18
2.3 常量與變量 19
2.3.1 常量 19
2.3.2 符號常量 19
2.3.3變量 19
2.3.4 變量的初始化 19
2.4 整型數(shù)據(jù) 20
2.4.1 整型數(shù)據(jù)在內(nèi)存中的存儲形式 20
2.4.2整型常量 20
2.4.3整型變量 20
2.5實型數(shù)據(jù) 21
2.5.1實型常量 21
2.5.2實型變量 22
2.6 字符型數(shù)據(jù) 22
2.6.1 字符常量 22
2.6.2字符串常量 24
2.6.3字符變量 24
2.7 運(yùn)算符和表達(dá)式 25
2.7.1 C運(yùn)算符簡介 25
2.7.2 表達(dá)式的求值規(guī)則 25
2.7.3混合運(yùn)算中的類型轉(zhuǎn)換 25
2.8 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 27
2.8.1 基本算術(shù)運(yùn)算符 27
2.8.2 算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級與結(jié)合性 27
2.8.3 自增、自減運(yùn)算符 27
2.9 賦值運(yùn)算與賦值表達(dá)式 28
2.9.1 賦值運(yùn)算符 28
2.9.2 類型轉(zhuǎn)換 28
2.9.3 復(fù)合的賦值運(yùn)算符 29
2.9.4 賦值表達(dá)式 29
2.10 逗號運(yùn)算符和逗號表達(dá)式 29
2.11 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 30
2.11.1關(guān)系運(yùn)算符及其優(yōu)先次序 30
2.11.2 關(guān)系表達(dá)式 30
2.12 邏輯運(yùn)算符及邏輯表達(dá)式 31
2.12.1邏輯運(yùn)算符及其優(yōu)先次序 31
2.12.2 邏輯表達(dá)式 31
2.13 條件運(yùn)算符與條件表達(dá)式 33
2.13.1 條件運(yùn)算符與條件表達(dá)式 33
2.13.2 條件運(yùn)算符的優(yōu)先級與結(jié)合性 33
2.14 位運(yùn)算符與位運(yùn)算 34
2.14.1 按位與運(yùn)算符(&) 34
2.14.2 按位或運(yùn)算符(|) 35
2.14.3 按位異或運(yùn)算符(^) 35
2.14.4 按位取反運(yùn)算符(~) 36
2.14.5 左移運(yùn)算符(<<) 36
2.14.6 右移運(yùn)算符(>>) 36
2.15 應(yīng)用舉例 37
本章小結(jié) 38
練習(xí)與提高 39
第3章 順序程序設(shè)計 43
3.1 C語句概述 43
3.2 賦值語句 45
3.3 字符數(shù)據(jù)的輸入輸出 46
3.3.1 字符輸出函數(shù)putchar 46
3.3.2 字符輸入函數(shù)getchar 47
3.4 格式輸入與輸出 48
3.4.1 格式輸出函數(shù)printf 48
3.4.2 格式輸入函數(shù)scanf 54
3.5 應(yīng)用舉例 58
本章小結(jié) 60
練習(xí)與提高 61
第4章 選擇結(jié)構(gòu)程序設(shè)計 64
4.1 if語句 64
4.1.1 簡單if語句 64
4.1.2 雙分支if語句 65
4.1.3 多分支if語句 66
4.1.4 if語句使用說明 69
4.2 if語句的嵌套 70
4.3 switch語句 74
4.4 應(yīng)用舉例 76
練習(xí)與提高 82
第5章 循環(huán)結(jié)構(gòu)程序設(shè)計 92
5.1 while語句 92
5.2 do-while語句 95
5.3 for語句 97
5.4 幾種循環(huán)的比較 102
5.5 循環(huán)嵌套 102
5.6 continue語句 105
5.7 break語句 106
5.8 應(yīng)用舉例 106
本章小結(jié) 114
練習(xí)與提高 115
第6章 數(shù)組 120
6.1 數(shù)組和數(shù)組元素 120
6.2 一維數(shù)組 121
6.2.1 一維數(shù)組的定義和使用 121
6.2.2 一維數(shù)組的初始化 122
6.2.3一維數(shù)組應(yīng)用舉例 123
6.3 多維數(shù)組 130
6.3.1 二維數(shù)組的定義和引用 130
6.3.2 二維數(shù)組的初始化 132
6.3.3 二維數(shù)組程序舉例 133
6.4 字符數(shù)組 136
6.4.1 字符數(shù)組的定義和使用 136
6.4.2 字符數(shù)組的初始化 137
6.4.3字符串的輸入和輸出 137
6.4.4 用于字符處理的庫函數(shù) 139
6.4.5 字符數(shù)組應(yīng)用舉例 141
6.5 應(yīng)用舉例 143
練習(xí)與提高 146
第7章 函數(shù) 150
7.1 模塊化程序設(shè)計 150
7.1.1 模塊化程序設(shè)計 150
7.1.2 函數(shù)概述 151
7.2 函數(shù)的定義 154
7.2.1 函數(shù)的定義形式 154
7.2.2 空函數(shù)的定義 155
7.2.3 函數(shù)的返回值 155
7.3 函數(shù)的調(diào)用 156
7.3.1 函數(shù)調(diào)用的一般形式 156
7.3.2 函數(shù)的聲明 157
7.4 函數(shù)的嵌套調(diào)用與遞歸調(diào)用 159
7.4.1 函數(shù)的嵌套調(diào)用 159
7.4.2 函數(shù)的遞歸調(diào)用 160
7.5 數(shù)組作函數(shù)參數(shù) 162
7.5.1 數(shù)組元素作函數(shù)實參 162
7.5.2 數(shù)組名作函數(shù)參數(shù) 163
7.5.3 多維數(shù)組名作函數(shù)參數(shù) 164
7.6 變量的作用域 164
7.7 變量的存儲類別 168
7.7.1 變量的生存期 168
7.7.2 局部變量的存儲類別 169
7.7.3 全局變量的存儲類別 171
7.7.4 存儲類別小結(jié) 173
7.8 內(nèi)部函數(shù)和外部函數(shù) 174
7.8.1 內(nèi)部函數(shù) 174
7.8.2 外部函數(shù) 174
7.9 應(yīng)用舉例 174
本章小結(jié) 178
練習(xí)與提高 179
第8章 指針 187
8.1 相關(guān)概念 187
8.1.1 變量的地址 187
8.1.2 數(shù)據(jù)的訪問方式 187
8.1.3 指針和指針變量 188
8.2 指針變量的定義和使用 188
8.2.1 指針變量的定義 188
8.2.2 指針變量的初始化和賦值 189
8.2.3 指針變量的引用 190
8.2.4 指針的運(yùn)算 191
8.3 指針變量作函數(shù)參數(shù) 192
8.4 數(shù)組的指針和指向數(shù)組的指針變量 194
8.4.1 指向數(shù)組元素的指針 195
8.4.2 通過指針引用數(shù)組元素 195
8.4.3 數(shù)組名作函數(shù)參數(shù) 198
8.5 字符串的指針和指向字符串的指針變量 209
8.5.1 字符串的表示形式 209
8.5.2 對字符指針變量與字符數(shù)組的使用 210
8.5.3 字符指針做函數(shù)參數(shù) 212
8.6函數(shù)的指針和指向函數(shù)的指針變量 215
8.6.1 通過函數(shù)的指針調(diào)用函數(shù) 215
8.6.2 指向函數(shù)的指針變量做函數(shù)參數(shù) 216
8.7 返回指針值的函數(shù) 217
8.8 指針數(shù)組和指向指針的指針 217
8.8.1 指針數(shù)組的概念 218
8.8.2 指向指針的指針 219
8.8.3 main()函數(shù)的命令行參數(shù) 220
8.9 應(yīng)用舉例 220
本章小結(jié) 226
練習(xí)與提高 227
第9章 結(jié)構(gòu)體與共用體 229
9.1 結(jié)構(gòu)體類型 229
9.1.1 結(jié)構(gòu)體概述 229
9.1.2 結(jié)構(gòu)體類型的定義 229
9.1.3 結(jié)構(gòu)體變量的定義 230
9.2 結(jié)構(gòu)體變量的初始化和引用 232
9.2.1結(jié)構(gòu)體變量的初始化 232
9.2.2 結(jié)構(gòu)體變量的引用 233
9.3 結(jié)構(gòu)體數(shù)組 233
9.3.1 定義結(jié)構(gòu)體數(shù)組 233
9.3.2 結(jié)構(gòu)體數(shù)組的初始化 234
9.3.3 結(jié)構(gòu)體數(shù)組應(yīng)用 235
9.4 指向結(jié)構(gòu)體類型數(shù)據(jù)的指針 236
9.4.1 指向結(jié)構(gòu)體變量的指針 236
9.4.2 指向結(jié)構(gòu)體數(shù)組的指針 237
9.4.3 結(jié)構(gòu)體變量和指向結(jié)構(gòu)體的指針做函數(shù)參數(shù) 238
9.5 用指針處理鏈表 240
9.5.1 鏈表概述 240
9.5.2 處理動態(tài)鏈表所需的函數(shù) 241
9.5.3 鏈表的基本操作 242
9.6 共用體 248
9.6.1 共用體變量的引用方式 248
9.6.2 共用體類型數(shù)據(jù)的特點 249
9.7 枚舉類型 249
9.8 用typedef定義類型 252
9.9應(yīng)用舉例 254
本章小結(jié) 257
練習(xí)與提高 257
第 10章 文件 262
10.1 文件的概念 262
10.2 文件的打開和關(guān)閉 263
10.2.1 文件類型指針 263
10.2.2 文件的打開 263
10.2.3 文件的關(guān)閉 264
10.3 文件的讀寫操作 265
10.3.1 讀寫字符函數(shù):fgetc()、fputc() 265
10.3.2 讀寫字符串函數(shù):fgets()、fputs() 267
10.3.3 讀寫數(shù)據(jù)塊函數(shù):fwrite()、fread() 269
10.3.4 格式化讀寫函數(shù):fprintf()、fscanf() 273
10.4 文件的其他常用函數(shù) 273
10.4.1 文件的定位 273
10.4.2 文件檢測函數(shù) 276
10.5 應(yīng)用舉例 277
本章小結(jié) 279
練習(xí)與提高 279