本書全面、系統(tǒng)地介紹了C語言的基本概念、基本語法、數(shù)據(jù)類型、程序結(jié)構(gòu)及高級語言程序設(shè)計的方法和常規(guī)算法,既考慮了全國計算機等級考試大綱主要內(nèi)容,又結(jié)合了具體的程序設(shè)計綜合要求。本書根據(jù)初學(xué)者的特點,在內(nèi)容安排上由淺入深,循序漸進,旨在幫助學(xué)生掌握C語言程序設(shè)計的基本方法,理解、領(lǐng)會C語言的特點和本質(zhì),提高學(xué)生運用C語言解決實際問題的綜合能力。作者在各章中精選了配合各個知識點的相應(yīng)案例程序,并都給出完整的注釋、運行結(jié)果和分析說明,案例程序由淺入深,強化了知識點、算法、編程方法與技巧。全書運用計算思維的方法設(shè)計程序,以案例程序為導(dǎo)向,拓寬學(xué)生思維,引導(dǎo)學(xué)生自主思考,使學(xué)生逐步掌握程序設(shè)計的一般規(guī)律和方法。 本書除了可以作為程序設(shè)計語言教材,還可以作為全國計算機等級考試的教材或參考書。對于從事計算機專業(yè)的工作者,本書也是一本難得的參考書。
孫軍,碩士,講師,F(xiàn)任湖北大學(xué)計算機與信息工程學(xué)院講師。出版教材和論文情況如下:教材:《大學(xué)計算機基礎(chǔ)簡明教程》 科學(xué)出版社,主編,2009年;《大學(xué)計算機基礎(chǔ)》 科學(xué)出版社,副主編,2013年;《C語言程序設(shè)計》科學(xué)出版社,副主編,2016年;《大學(xué)計算機基礎(chǔ)教程》科學(xué)出版社,副主編,2016年。論文:分布式光伏數(shù)據(jù)采集器的設(shè)計與實現(xiàn) 計算機測量與控制,通訊作,2018-08-25;《程序設(shè)計》課程教學(xué)中計算思維的培養(yǎng) 長江大學(xué)學(xué)報(自科版),第二作者,2015-04-05。
目 錄
第1章 程序設(shè)計基礎(chǔ) 1
1.1 程序和程序設(shè)計語言 1
1.1.1 程序 1
1.1.2 程序設(shè)計語言 1
1.1.3 程序設(shè)計語言的發(fā)展歷史 1
1.1.4 語言處理程序 3
1.2 C語言的發(fā)展及特點 3
1.3 C和C++語言 4
1.4 簡單的C程序介紹 5
1.5 Microsoft Visual C++ 2010學(xué)習(xí)版開發(fā)環(huán)境的使用 8
1.5.1 開發(fā)C程序的基本步驟 8
1.5.2 使用Microsoft Visual C++2010學(xué)習(xí)版開發(fā)簡單的C程序 9
1.5.3 開發(fā)C程序的常見問題 13
習(xí)題1 15
第2章 基本數(shù)據(jù)類型、運算符和表達式 17
2.1 字符集和標識符 17
2.2 數(shù)據(jù)類型 19
2.2.1 整型 21
2.2.2 實型(浮點型) 23
2.2.3 字符型 26
2.3 運算符和表達式 30
2.3.1 算術(shù)運算 30
2.3.2 自增運算和自減運算 31
2.3.3 賦值運算 32
2.3.4 數(shù)據(jù)類型的轉(zhuǎn)換 33
2.3.5 逗號運算 37
2.3.6 位運算 37
2.3.7 sizeof運算 40
習(xí)題2 41
第3章 數(shù)據(jù)的輸入和輸出 45
3.1 單個字符的輸入和輸出 45
3.1.1 函數(shù)getchar() 45
3.1.2 函數(shù)putchar() 45
3.2 數(shù)據(jù)的格式化輸出和輸入 47
3.2.1 數(shù)據(jù)的格式化輸出 47
3.2.2 數(shù)據(jù)的格式化輸入 52
3.3 順序結(jié)構(gòu)程序舉例 57
習(xí)題3 61
第4章 選擇結(jié)構(gòu) 64
4.1 關(guān)系運算 64
4.1.1 C語言的邏輯值 64
4.1.2 關(guān)系運算符 64
4.1.3 關(guān)系表達式 65
4.2 邏輯運算 67
4.2.1 邏輯運算符 67
4.2.2 邏輯表達式 68
4.2.3 邏輯表達式求值的優(yōu)化 69
4.3 if語句 70
4.3.1 單分支if語句 70
4.3.2 雙分支if語句 71
4.3.3 多分支if語句 73
4.3.4 條件運算符 77
4.4 switch語句 79
4.5 選擇結(jié)構(gòu)程序舉例 82
習(xí)題4 85
第5章 循環(huán)結(jié)構(gòu) 90
5.1 while語句 90
5.2 do…while語句 97
5.3 for語句 102
5.4 循環(huán)結(jié)構(gòu)的嵌套 107
5.5 break語句和continue語句 110
5.5.1 用break語句提前終止循環(huán) 110
5.5.2 用continue 語句提前結(jié)束本輪循環(huán) 113
習(xí)題5 114
第6章 數(shù)組 121
6.1 一維數(shù)組 121
6.1.1 一維數(shù)組的定義 121
6.1.2 一維數(shù)組元素的訪問 122
6.1.3 一維數(shù)組元素的初始化 123
6.1.4 一維數(shù)組應(yīng)用舉例 124
6.2 二維數(shù)組 130
6.2.1 二維數(shù)組的定義 130
6.2.2 二維數(shù)組的訪問 131
6.2.3 二維數(shù)組的初始化 132
6.2.4 二維數(shù)組應(yīng)用舉例 133
習(xí)題6 135
第7章 函數(shù) 141
7.1 函數(shù)的定義 142
7.2 函數(shù)的調(diào)用 144
7.3 函數(shù)的聲明 145
7.4 函數(shù)調(diào)用時的數(shù)據(jù)傳遞 146
7.4.1 函數(shù)的設(shè)計方法 146
7.4.2 函數(shù)調(diào)用時的數(shù)據(jù)傳遞 147
7.4.3 函數(shù)調(diào)用時的類型轉(zhuǎn)換 148
7.5 函數(shù)的嵌套調(diào)用和遞歸調(diào)用 149
7.5.1 函數(shù)的嵌套調(diào)用 149
7.5.2 函數(shù)的遞歸調(diào)用 150
7.6 數(shù)組作為參數(shù)的用法 153
7.6.1 數(shù)組元素作為函數(shù)實參 153
7.6.2 數(shù)組名作為函數(shù)實參 154
7.6.3 二維數(shù)組名作為函數(shù)實參 156
7.7 函數(shù)main()的參數(shù) 157
7.8 變量的作為用域和生存期 158
7.8.1 變量的作為用域 159
7.8.2 變量的生存期 161
7.9 內(nèi)部函數(shù)和外部函數(shù) 165
習(xí)題7 167
第8章 指針 172
8.1 變量地址與指針 172
8.1.1 變量的地址 172
8.1.2 指針的概念 173
8.2 指針的定義與使用 173
8.2.1 定義指針變量 173
8.2.2 指針變量賦值 174
8.2.3 使用指針 176
8.3 指針與函數(shù) 177
8.3.1 指針作為函數(shù)參數(shù) 179
8.3.2 指針作為函數(shù)返回值 181
8.4 指針與數(shù)組 183
8.4.1 數(shù)組首地址與數(shù)組元素地址 183
8.4.2 指針與數(shù)組元素 185
8.5 指針和二維數(shù)組 191
8.5.1 二維數(shù)組元素的地址 191
8.5.2 使用指針訪問二維數(shù)組元素 196
8.5.3 二維數(shù)組作為函數(shù)參數(shù) 199
8.6 函數(shù)指針 200
習(xí)題8 202
第9章 字符串 206
9.1 字符數(shù)組表示字符串 206
9.1.1 字符數(shù)組的初始化 206
9.1.2 字符串的結(jié)束標志 207
9.1.3 字符串的整體輸入和輸出 208
9.2 字符指針表示字符串 211
9.2.1 字符指針指向字符串常量 211
9.2.2 字符指針作為函數(shù)參數(shù) 212
9.2.3 字符指針數(shù)組 215
9.3 字符串處理和應(yīng)用 217
9.3.1 字符串處理函數(shù) 217
9.3.2 字符串應(yīng)用 227
習(xí)題9 234
第10章 編譯預(yù)處理和動態(tài)分配 239
10.1 編譯預(yù)處理(include、define) 239
10.2 動態(tài)分配 242
習(xí)題10 244
第11章 結(jié)構(gòu)體和共用體 245
11.1 結(jié)構(gòu)體 245
11.1.1 定義結(jié)構(gòu)體 245
11.1.2 定義結(jié)構(gòu)體類型變量 246
11.1.3 結(jié)構(gòu)體變量賦值和訪問 247
11.1.4 結(jié)構(gòu)體數(shù)組 249
11.1.5 結(jié)構(gòu)體指針 249
11.2 靜態(tài)鏈表、動態(tài)鏈表 249
11.2.1 靜態(tài)鏈表 250
11.2.2 動態(tài)鏈表 252
11.3 共用體 257
習(xí)題11 261
第12章 文件 262
12.1 C語言中文件的概念 262
12.1.1 文件的概念 262
12.1.2 計算機中的流 262
12.1.3 文件分類 263
12.1.4 文件的緩沖區(qū) 263
12.1.5 文件指針 264
12.2 文件的打開與關(guān)閉 265
12.2.1 文件的打開 265
12.2.2 文件的打開方式 265
12.2.3 文件的關(guān)閉 266
12.3 讀/寫文件常用函數(shù) 266
12.3.1 以字符形式讀/寫文件 266
12.3.2 以字符串的形式讀/寫文件 267
12.3.3 以數(shù)據(jù)塊的形式讀/寫文件 267
12.3.4 格式化讀/寫文件 268
12.3.5 隨機讀/寫文件 268
12.3.6 文件操作的出錯檢測 269
12.4 文件操作應(yīng)用示例 270
12.4.1 文本文件操作 270
12.4.2 二進制文件操作 272
12.4.3 學(xué)生成績的存儲和刪除 273
習(xí)題12 276
附錄 278
附錄A 標準ASCII碼字符集 278
附錄B 運算符和結(jié)合性 279
附錄C 常用庫函數(shù) 281