本書作為程序設(shè)計課程的教材,在結(jié)構(gòu)上注重知識的系統(tǒng)性、完整性和連貫性,將理論與實踐有機結(jié)合,作者在總結(jié)多年教學(xué)與實踐的基礎(chǔ)上,精選了近400道設(shè)計獨到的例題來作為典型概念示例和程序精講,并且兼顧C語言等級考試,且所有程序例題與習(xí)題都在VC++6.0環(huán)境下上機通過。對重點章節(jié)如函數(shù)和指針內(nèi)容,作者采用了獨創(chuàng)的動態(tài)圖分析方法來分析程序執(zhí)行中函數(shù)或指針變化的情況,使函數(shù)和指針內(nèi)容中難以掌握的難題迎刃而解。本書在寫法上循序漸進、深入淺出且圖文并茂,力求使讀者達到深入掌握C語言程序設(shè)計的目的。本書除了可以作為程序設(shè)計語言教材外,還可以作為全國計算機等級考試的教材或參考書。對于從事計算機專業(yè)的工作者,本書也是難得的一本資料書。
1994.9-1998.7 西安理工大學(xué) 計算機及其應(yīng)用 學(xué)士2000.9-2003.4 西安理工大學(xué) 計算機應(yīng)用技術(shù) 碩士2005.4-2008.3 日本大學(xué) 理工學(xué)部 計算機科學(xué) 博士2008.7-2013.11 西安理工大學(xué)計算機科學(xué)與工程學(xué)院 副教授2013.12至今 西安理工大學(xué)計算機科學(xué)與工程學(xué)院 教授2018.1至今,西安理工大學(xué)計算機學(xué)院教授、院長
目 錄
第1章 C語言與程序設(shè)計簡介 1
1.1 計算機和程序設(shè)計的基本概念 1
1.1.1 計算機系統(tǒng)的組成 1
1.1.2 程序與程序設(shè)計語言 2
1.2 C語言的發(fā)展歷程和特點 4
1.2.1 C語言發(fā)展歷程 4
1.2.2 C語言的主要特點 5
1.3 C語言程序的基本組成 6
習(xí)題1 8
第2章 C語言程序設(shè)計基礎(chǔ) 10
2.1 C語言基本符號與基本數(shù)據(jù)類型 10
2.1.1 C語言基本符號 10
2.1.2 C語言的數(shù)據(jù)類型 12
2.2 常量 13
2.2.1 整型常量、實型常量及符號常量 14
2.2.2 字符常量與字符串常量 15
2.3 變量 17
2.3.1 變量的概念、定義與初始化 17
2.3.2 整型變量、實型變量與字符型變量 19
2.4 運算符與表達式 24
2.4.1 C語言運算符簡介 24
2.4.2 算術(shù)運算符與算術(shù)表達式 26
2.4.3 關(guān)系運算符與關(guān)系表達式 28
2.4.4 邏輯運算符與邏輯表達式 30
2.4.5 賦值運算符與復(fù)合賦值運算符 32
2.4.6 表達式中數(shù)據(jù)類型的自動轉(zhuǎn)換和強制轉(zhuǎn)換 34
2.5 數(shù)據(jù)的輸入/輸出 36
2.5.1 字符輸入/輸出函數(shù) 36
2.5.2 格式輸出函數(shù) 37
2.5.3 格式輸入函數(shù) 41
習(xí)題2 45
第3章 三種基本結(jié)構(gòu)的程序設(shè)計 50
3.1 程序的基本結(jié)構(gòu)及C程序中的語句分類 50
3.1.1 程序的基本結(jié)構(gòu) 50
3.1.2 C程序中的語句分類 51
3.2 順序結(jié)構(gòu)程序設(shè)計 53
3.2.1 賦值語句 53
3.2.2 順序結(jié)構(gòu)程序 54
3.3 選擇結(jié)構(gòu)程序設(shè)計 56
3.3.1 if語句 56
3.3.2 if語句的嵌套 60
3.3.3 條件運算符與條件表達式 62
3.3.4 switch語句 63
3.4 循環(huán)結(jié)構(gòu)程序設(shè)計 67
3.4.1 while語句 67
3.4.2 do…while語句 70
3.4.3 for語句 72
3.4.4 逗號運算符與逗號表達式 75
3.4.5 break語句、continue語句和goto語句 76
3.4.6 循環(huán)嵌套 79
3.5 典型例題精講 82
習(xí)題3 98
第4章 數(shù)組 108
4.1 一維數(shù)組 108
4.1.1 一維數(shù)組的定義 108
4.1.2 一維數(shù)組的引用和初始化 109
4.2 二維數(shù)組 113
4.2.1 二維數(shù)組的定義 113
4.2.2 二維數(shù)組的引用和初始化 114
4.3 字符數(shù)組和字符串 116
4.3.1 字符數(shù)組的定義、引用及初始化 116
4.3.2 字符串 119
4.3.3 常用字符串處理函數(shù) 121
4.4 典型例題精講 125
習(xí)題4 133
第5章 函數(shù) 140
5.1 函數(shù)的概念及特點 140
5.1.1 函數(shù)的概念 140
5.1.2 函數(shù)的分類 140
5.2 函數(shù)的定義和調(diào)用 141
5.2.1 函數(shù)的定義 141
5.2.2 函數(shù)的調(diào)用和返回值 143
5.2.3 函數(shù)執(zhí)行的分析方法 145
5.2.4 函數(shù)的聲明 146
5.3 變量的作用域 147
5.3.1 全局變量與局部變量 147
5.3.2 函數(shù)的副作用 149
5.4 函數(shù)的嵌套與遞歸 149
5.4.1 函數(shù)的嵌套調(diào)用 149
5.4.2 函數(shù)的遞歸調(diào)用 151
5.5 典型例題精講 154
5.6 遞歸轉(zhuǎn)化為非遞歸研究 162
5.6.1 漢諾塔問題遞歸解法 162
5.6.2 漢諾塔問題非遞歸解法 165
5.6.3 八皇后問題遞歸解法 167
5.6.4 八皇后問題非遞歸解法 169
習(xí)題5 171
第6章 指針 178
6.1 指針和指針變量 178
6.1.1 地址和指針的概念 178
6.1.2 指針變量的定義和初始化 179
6.1.3 指針變量的引用和運算 180
6.2 指針變量與數(shù)組 184
6.2.1 指針變量與一維數(shù)組 184
6.2.2 指針變量與二維數(shù)組 187
6.2.3 指針數(shù)組 192
6.3 指針變量與字符串及多級指針變量 194
6.3.1 指針變量與字符串 194
6.3.2 多級指針變量 196
6.4 指針變量與函數(shù) 198
6.4.1 指針變量作為函數(shù)參數(shù) 198
6.4.2 用數(shù)組名作函數(shù)參數(shù) 201
6.4.3 返回指針值的函數(shù) 205
*6.5 動態(tài)數(shù)組 206
6.6 典型例題精講 208
習(xí)題6 215
第7章 結(jié)構(gòu)體 223
7.1 結(jié)構(gòu)體類型的定義與結(jié)構(gòu)體變量 223
7.1.1 結(jié)構(gòu)體類型的定義 223
7.1.2 結(jié)構(gòu)體變量 226
7.1.3 用typedef定義類型標(biāo)識符 231
7.2 結(jié)構(gòu)體數(shù)組及指向結(jié)構(gòu)體的指針變量 234
7.2.1 結(jié)構(gòu)體數(shù)組 234
7.2.2 指向結(jié)構(gòu)體的指針變量 236
7.3 鏈表 240
7.3.1 鏈表的概念 240
7.3.2 動態(tài)存儲分配 241
7.3.3 動態(tài)鏈表的建立與查找 243
7.3.4 鏈表節(jié)點的插入與刪除 246
7.4 共用體 250
7.4.1 共用體的概念與定義 250
7.4.2 共用體變量的引用和賦值 252
7.5 典型例題精講 255
習(xí)題7 262
第8章 文件 271
8.1 文件的概念 271
8.1.1 文件的分類 271
8.1.2 文件指針變量及文件操作過程 272
8.2 文件的打開與關(guān)閉 273
8.2.1 文件的打開 273
8.2.2 文件的關(guān)閉 275
8.3 文件的讀/寫 276
8.3.1 字符讀/寫函數(shù) 276
8.3.2 字符串讀/寫函數(shù) 279
8.3.3 數(shù)據(jù)塊讀/寫函數(shù) 280
8.3.4 格式化讀/寫函數(shù) 282
8.4 文件的定位與隨機讀/寫 283
8.5 典型例題精講 287
習(xí)題8 292
第9章 C語言與程序設(shè)計補遺 296
9.1 變量的存儲類別與生命期 296
9.2 指向函數(shù)的指針變量 300
9.3 帶參數(shù)的main函數(shù) 304
9.4 編譯預(yù)處理命令 306
9.4.1 宏定義命令 306
9.4.2 文件包含命令 309
9.5 枚舉類型 312
9.6 位運算 315
習(xí)題9 319
附錄 324
附錄1 ASCII表 324
附錄2 C語言中的運算符及其優(yōu)先級 325
附錄3 常用C語言庫函數(shù) 326
參考文獻 328