C程序設(shè)計(jì)導(dǎo)引 第2版
定 價(jià):69 元
叢書名:大學(xué)計(jì)算機(jī)優(yōu)秀教材系列
- 作者:尹寶林
- 出版時(shí)間:2020/6/1
- ISBN:9787111656722
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP312.8
- 頁碼:0
- 紙張:
- 版次:
- 開本:16開
本書是一本講解C程序設(shè)計(jì)的入門教材,根據(jù)學(xué)生對新知識學(xué)習(xí)和認(rèn)知的規(guī)律,從C語言和C程序的基本要素以及程序設(shè)計(jì)的基本方法開始,循序漸進(jìn)地引入對程序設(shè)計(jì)專業(yè)化的要求和相關(guān)的知識。全書全面地介紹了c語言的基本語法及c語言程序的設(shè)計(jì)方法,內(nèi)容包括:C程序的創(chuàng)建及其基本結(jié)構(gòu),常量、變量和表達(dá)式,條件語句和開關(guān)語句,循環(huán)語句和goto語句,函數(shù),數(shù)組,指針初步,程序設(shè)計(jì)的基本方法, 結(jié)構(gòu)和聯(lián)合,輸入/輸出和文件。
再版說明
第1版作者自序
教學(xué)建議
例題索引
第0章 引言1
第1章 C程序的創(chuàng)建及其基本結(jié)構(gòu)8
1.1 C程序的創(chuàng)建過程8
1.2 C程序的基本組成10
1.3 調(diào)試初步—語法錯誤的定位15
1.4 數(shù)據(jù)的輸入/輸出和標(biāo)準(zhǔn)文件18
習(xí)題19
第2章 常量、變量和表達(dá)式20
2.1 常量20
2.1.1 數(shù)字常量20
2.1.2 字符常量23
2.1.3 字符串字面量23
2.2 變量24
2.2.1 變量名和變量類型24
2.2.2 變量的賦值和類型轉(zhuǎn)換26
2.2.3 變量的初始化27
2.2.4 類型限定符const27
2.3 算術(shù)表達(dá)式28
2.3.1 算術(shù)運(yùn)算符28
2.3.2 增量和減量運(yùn)算符30
2.3.3 位運(yùn)算31
2.3.4 復(fù)合賦值運(yùn)算符31
2.4 強(qiáng)制類型轉(zhuǎn)換32
2.5 數(shù)據(jù)輸出/輸入函數(shù)printf()和scanf()36
2.5.1 數(shù)值的輸出函數(shù)printf()36
2.5.2 數(shù)值的輸入函數(shù)scanf()37
2.6 常量的符號表示方法39
2.6.1 常量宏39
2.6.2 枚舉常量40
習(xí)題41
第3章 條件語句和開關(guān)語句44
3.1 關(guān)系運(yùn)算符和邏輯運(yùn)算符44
3.2 運(yùn)算符的優(yōu)先級46
3.3 從實(shí)際問題中的條件到邏輯表達(dá)式47
3.4 條件語句48
3.4.1 條件語句中的條件49
3.4.2 復(fù)合語句49
3.4.3 條件語句的嵌套和級聯(lián)51
3.4.4 使用條件語句時(shí)的注意事項(xiàng)54
3.4.5 條件運(yùn)算符和條件表達(dá)式55
3.5 switch語句56
習(xí)題59
第4章 循環(huán)語句和goto語句61
4.1 while語句61
4.2 for語句64
4.3 do while語句67
4.4 循環(huán)語句的選擇和使用69
4.5 逗號表達(dá)式69
4.6 循環(huán)語句的嵌套70
4.7 循環(huán)語句中的非常規(guī)控制73
4.8 goto語句76
習(xí)題77
第5章 函數(shù)80
5.1 函數(shù)的基本概念80
5.2 函數(shù)的調(diào)用81
5.3 函數(shù)的結(jié)構(gòu)84
5.4 函數(shù)的定義85
5.5 函數(shù)的調(diào)用關(guān)系和返回值89
5.6 局部變量和全局變量90
5.6.1 局部變量91
5.6.2 全局變量92
5.6.3 對全局變量的訪問93
5.7 函數(shù)參數(shù)的傳遞94
5.8 標(biāo)準(zhǔn)庫函數(shù)95
5.8.1 常用的頭文件95
5.8.2 常用的數(shù)據(jù)輸入/輸出函數(shù)96
5.8.3 字符類型判斷函數(shù)98
5.8.4 字符串處理函數(shù)100
5.8.5 其他常用函數(shù)100
5.9 遞歸初步101
習(xí)題104
第6章 數(shù)組106
6.1 一維數(shù)組106
6.1.1 一維數(shù)組的定義和初始化106
6.1.2 一維數(shù)組元素的使用108
6.1.3 數(shù)組的復(fù)制111
6.1.4 作為函數(shù)參數(shù)的一維數(shù)組111
6.1.5 數(shù)組元素的排序和查找114
6.2 使用一維數(shù)組的常用數(shù)據(jù)結(jié)構(gòu)118
6.2.1 散列表118
6.2.2 棧120
6.2.3 隊(duì)123
6.3 字符串和字符數(shù)組125
6.3.1 字符串126
6.3.2 字符數(shù)組126
6.4 常用的標(biāo)準(zhǔn)字符串函數(shù)127
6.4.1 字符串輸出函數(shù)127
6.4.2 字符串輸入函數(shù)130
6.4.3 字符串復(fù)制和追加函數(shù)131
6.4.4 字符串比較函數(shù)133
6.4.5 字符串檢查函數(shù)134
6.4.6 字符串掃描函數(shù)sscanf()135
6.5 二維數(shù)組136
6.5.1 二維數(shù)組的定義136
6.5.2 二維數(shù)組元素的引用137
6.5.3 二維數(shù)組元素的遍歷138
6.5.4 二維數(shù)組元素的排列方式140
6.5.5 作為參數(shù)的二維數(shù)組142
習(xí)題145
第7章 指針初步148
7.1 地址與指針148
7.2 指針變量150
7.2.1 指針變量的定義和賦值150
7.2.2 通過指針訪問數(shù)據(jù)151
7.2.3 作為函數(shù)參數(shù)的指針152
7.2.4 返回指針的函數(shù)154
7.3 指針運(yùn)算156
7.3.1 指針與整數(shù)的加減156
7.3.2 指針相減157
7.3.3 指針的比較157
7.3.4 指針的強(qiáng)制類型轉(zhuǎn)換和void *160
7.3.5 不合法的指針運(yùn)算161
7.3.6 指針類型與數(shù)組類型的差異161
7.4 指針與數(shù)組162
7.5 指向二維數(shù)組的指針164
7.6 多重指針165
7.7 指針數(shù)組166
7.7.1 一維指針數(shù)組166
7.7.2 命令行參數(shù)168
7.8 函數(shù)指針170
7.8.1 函數(shù)指針變量的定義170
7.8.2 具有函數(shù)指針參數(shù)的庫函數(shù)171
習(xí)題174
第8章 結(jié)構(gòu)和聯(lián)合177
8.1 結(jié)構(gòu)177
8.1.1 結(jié)構(gòu)類型的定義177
8.1.2 結(jié)構(gòu)成員的訪問179
8.1.3 包含結(jié)構(gòu)的結(jié)構(gòu)182
8.2 聯(lián)合186
8.2.1 聯(lián)合類型的定義186
8.2.2 聯(lián)合成員的訪問187
8.3 類型定義語句190
8.4 復(fù)雜類型的解讀193
習(xí)題194
第9章 輸入/輸出和文件196
9.1 輸入/輸出的基本過程和文件類型196
9.2 文件的打開、創(chuàng)建和關(guān)閉197
9.3 文件數(shù)據(jù)的正文格式讀寫199
9.4 讀寫操作中的定位202
9.5 文件數(shù)據(jù)的二進(jìn)制格式讀寫205
習(xí)題207
第10章 程序設(shè)計(jì)的基本方法210
10.1 程序設(shè)計(jì)的基本過程210
10.2 問題分析211
10.2.1 程序功能和輸入/輸出數(shù)據(jù)211
10.2.2 對程序性能的要求213
10.2.3 程序中的錯誤處理213
10.2.4 程序的測試214
10.2.5 問題分析的結(jié)果214
10.3 方案設(shè)計(jì)216
10.3.1 解題思路216
10.3.2 算法的描述218
10.3.3 數(shù)據(jù)結(jié)構(gòu)和算法的選擇225
10.4 編碼:從算法到代碼231
10.4.1 代碼的結(jié)構(gòu)232
10.4.2 代碼的檢查238
10.4.3 代碼中的注釋239
10.5 程序的調(diào)試239
10.5.1 調(diào)試的基本方法240
10.5.2 調(diào)試工具的基本功能和使用241
10.5.3 標(biāo)準(zhǔn)輸入/輸出的重新定向243
10.6 初學(xué)者程序中容易出現(xiàn)的錯誤244
10.6.1 容易混淆的運(yùn)算符244
10.6.2 運(yùn)算符優(yōu)先級和結(jié)合關(guān)系244
10.6.3 變量的初始化245
10.6.4 數(shù)組的使用245
10.6.5 條件和邊界245
10.6.6 字符函數(shù)的參數(shù)和返回值類型246
10.6.7 編程習(xí)慣和工作方法246
習(xí)題247
附錄A 部分習(xí)題參考答案250
附錄B vi/vim的常用命令271
附錄C 使用MS VC++ 6.0 IDE創(chuàng)建C程序的基本過程273
附錄D 使用CodeBlocks創(chuàng)建和運(yùn)行C程序277
附錄E cc/gcc的常用命令行選項(xiàng)280
附錄F 常用的標(biāo)準(zhǔn)庫函數(shù)名及其頭文件281
附錄G ASCII編碼283
附錄H 調(diào)試工具GDB的常用命令284
附錄I 不同版本的C語言標(biāo)準(zhǔn)之間的主要區(qū)別285
附錄J 基本數(shù)據(jù)類型的長度287
參考文獻(xiàn)和推薦書目288
例題索引
【例1-1】最簡單的C程序10
【例1-2】產(chǎn)生可見效果的C程序11
【例1-3】生成直角三角形12
【例1-4】生成質(zhì)數(shù)表13
【例1-5】生成鑲邊的等腰三角形13
【例1-6】猜數(shù)游戲14
【例2-1】十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)21
【例2-2】十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)21
【例2-3】表達(dá)式的類型和值29
【例2-4】計(jì)算球體體積29
【例2-5】星期幾29
【例2-5-1】星期幾29
【例2-6】求一元二次方程的根29
【例2-7】時(shí)鐘指針34
【例2-8】整數(shù)的表示方式37
【例2-9】浮點(diǎn)數(shù)和字符序列的輸出格式37
【例2-10】讀入數(shù)據(jù)38
【例2-11】計(jì)算實(shí)數(shù)乘積的整數(shù)部分38
【例3-1】判斷閏年47
【例3-2】水仙花數(shù)47
【例3-3】獲獎47
【例3-4】名次預(yù)測48
【例3-5】計(jì)算并輸出一元二次方程的根50
【例3-6】判斷季節(jié)52
【例3-7】四則運(yùn)算52
【例3-8】求最大值55
【例3-9】輸出比較結(jié)果的文字值55
【例3-10】成績信息56
【例3-7-1】四則運(yùn)算—使用switch語句57
【例3-10-1】成績信息58
【例4-1】自然數(shù)的累加61
【例4-2】最大公約數(shù)62
【例4-3】數(shù)據(jù)讀入63
【例4-4】行數(shù)統(tǒng)計(jì)63
【例4-5】階乘64
【例4-2-1】最大公約數(shù)65
【例4-6】水仙花數(shù)65
【例4-7】π的近似值66
【例4-8】輸出提示信息,讀入應(yīng)答67
【例4-2-2】最大公約數(shù)68
【例4-9】平行四邊形圖案70
【例4-10】連續(xù)正整數(shù)70
【例4-11】階乘之和72
【例4-1-1】自然數(shù)的累加73
【例4-1-2】自然數(shù)的累加74
【例4-10-1】連續(xù)正整數(shù)74
【例4-12】乒乓球賽75
【例4-13】數(shù)據(jù)求和75
【例4-8-1】輸出提示信息,讀入應(yīng)答77
【例5-1】三角形的面積83
【例5-2】星期幾86
【例5-3】最大公約數(shù)87
【例5-4】水仙花數(shù)88
【例5-5】π的近似值88
【例5-6】判斷整數(shù)的奇偶90
【例5-7】局部變量和全局變量的訪問92
【例5-8】全局變量的共享93
【例5-9】錯誤的變量交換函數(shù)94
【例5-10】printf()的格式98
【例5-11】最大公約數(shù)的遞歸計(jì)算102
【例5-12】組合公式的計(jì)算102
【例5-13】阿克曼函數(shù)的計(jì)算102
【例5-14】梵塔(Hanoi Tower) 103
【例6-1】攝氏—華氏溫度對照表108
【例6-2】字符分類統(tǒng)計(jì)109
【例6-3】質(zhì)數(shù)表109
【例6-4】數(shù)組復(fù)制111
【例6-5】三維向量的點(diǎn)積112
【例6-6】n維向量的點(diǎn)積113
【例6-7】平均年齡113
【例6-8】n維向量加法函數(shù)114
【例6-9】選擇排序114
【例6-10】數(shù)組元素的順序查找115
【例6-11】數(shù)組元素的二分查找117
【例6-12】首個(gè)重復(fù)字母的位置118
【例6-13】區(qū)間合并119
【例6-14】質(zhì)數(shù)表的生成120
【例6-15】括號匹配121
【例6-16】一個(gè)int型的隊(duì)123
【例6-17】N位超級質(zhì)數(shù)124
【例6-18】字符串倒置127
【例6-19】平行四邊形圖案128
【例6-20】由參數(shù)確定輸出的小數(shù)位數(shù)129
【例6-21】分析日期和時(shí)間信息135
【例6-22】第幾天137
【例6-23】矩陣相加138
【例6-24】矩陣元素的Z形掃描138
【例6-25】星期幾140
【例6-26】數(shù)據(jù)中的最長行141
【例6-27】矩陣加法函數(shù)142
【例6-28】使用二維數(shù)組繪制函數(shù)圖像143
【例7-1】數(shù)據(jù)中的最長行151
【例7-2】數(shù)據(jù)統(tǒng)計(jì)函數(shù)153
【例7-3】刪除換行符154
【例7-4】字符串替換155
【例7-5】指針的加減運(yùn)算156
【例7-6】指針相減157
【例7-7】多行數(shù)據(jù)的平均值158
【例7-8】子串逆置159
【例7-9】超長整數(shù)加法163
【例7-10】星期幾167
【例7-11】計(jì)算命令行參數(shù)的代數(shù)和169
【例7-12】使用qsort()對一維double數(shù)組排序171
【例7-13】輸入數(shù)據(jù)的編號172
【例7-14】查質(zhì)數(shù)表174
【例8-1】結(jié)構(gòu)類型的定義178
【例8-2】輸入數(shù)據(jù)的編號180
【例8-3】矩形182
【例8-4】同心圓182
【例8-5】單向鏈表183
【例8-6】排序二叉樹的節(jié)點(diǎn)插入、查找和中序遍歷185
【例8-7】聯(lián)合類型的定義186
【例8-8】聯(lián)合成員的訪問187
【例8-9】后綴表達(dá)式求值188
【例8-10】顯示當(dāng)前時(shí)間192
【例9-1】打開文件198
【例9-2】日程列表200
【例9-3】正文數(shù)據(jù)的字符數(shù)203
【例9-4】文件按行倒置輸出203
【例9-2-1】日程列表的排序顯示204
【例9-5】二進(jìn)制數(shù)據(jù)的字符數(shù)206
【例10-1】矩陣乘法212
【例10-2】兩條線段的交點(diǎn)212
【例10-3】流程控制關(guān)鍵字的統(tǒng)計(jì)212
【例10-1-1】矩陣乘法215
【例10-4】平方數(shù)216
【例10-5】字符串循環(huán)移位218
【例10-6】數(shù)字刪除218
【例10-7】整數(shù)中的數(shù)字分離219
【例10-8】組合的生成220
【例10-9】Cantor表的第n項(xiàng)221
【例10-10】單向鏈表的逆置223
【例10-11】公式求解225
【例10-12】花朵數(shù)227
【例10-13】整數(shù)的出現(xiàn)次數(shù)230
【例10-14】最簡分?jǐn)?shù)排序230
【例10-15】6174問題232
【例10-16】序列的第N項(xiàng)234
【例10-17】小數(shù)化為分?jǐn)?shù)237