本書作為程序設計課程的教材,在結構上注重知識的系統(tǒng)性、完整性和連貫性,將理論與實踐有機結合,作者在總結多年教學與實踐的基礎上,精選了近400道設計獨到的例題來作為典型概念示例和程序精講,并且兼顧C語言等級考試,且所有程序例題與習題都在VC++6.0環(huán)境下上機通過。對重點章節(jié)如函數(shù)和指針內容,作者采用了獨創(chuàng)的動態(tài)圖分析方法來分析程序執(zhí)行中函數(shù)或指針變化的情況,使函數(shù)和指針內容中難以掌握的難題迎刃而解。本書在寫法上循序漸進、深入淺出且圖文并茂,力求使讀者達到深入掌握C語言程序設計的目的。本書除了可以作為程序設計語言教材外,還可以作為全國計算機等級考試的教材或參考書。對于從事計算機專業(yè)的工作者,本書也是難得的一本資料書。
1994.9-1998.7 西安理工大學 計算機及其應用 學士2000.9-2003.4 西安理工大學 計算機應用技術 碩士2005.4-2008.3 日本大學 理工學部 計算機科學 博士2008.7-2013.11 西安理工大學計算機科學與工程學院 副教授2013.12至今 西安理工大學計算機科學與工程學院 教授2018.1至今,西安理工大學計算機學院教授、院長
目 錄
第1章 C語言與程序設計簡介 1
1.1 計算機和程序設計的基本概念 1
1.1.1 計算機系統(tǒng)的組成 1
1.1.2 程序與程序設計語言 2
1.2 C語言的發(fā)展歷程和特點 4
1.2.1 C語言發(fā)展歷程 4
1.2.2 C語言的主要特點 5
1.3 C語言程序的基本組成 6
習題1 8
第2章 C語言程序設計基礎 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 算術運算符與算術表達式 26
2.4.3 關系運算符與關系表達式 28
2.4.4 邏輯運算符與邏輯表達式 30
2.4.5 賦值運算符與復合賦值運算符 32
2.4.6 表達式中數(shù)據(jù)類型的自動轉換和強制轉換 34
2.5 數(shù)據(jù)的輸入/輸出 36
2.5.1 字符輸入/輸出函數(shù) 36
2.5.2 格式輸出函數(shù) 37
2.5.3 格式輸入函數(shù) 41
習題2 45
第3章 三種基本結構的程序設計 50
3.1 程序的基本結構及C程序中的語句分類 50
3.1.1 程序的基本結構 50
3.1.2 C程序中的語句分類 51
3.2 順序結構程序設計 53
3.2.1 賦值語句 53
3.2.2 順序結構程序 54
3.3 選擇結構程序設計 56
3.3.1 if語句 56
3.3.2 if語句的嵌套 60
3.3.3 條件運算符與條件表達式 62
3.3.4 switch語句 63
3.4 循環(huán)結構程序設計 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
習題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
習題4 133
第5章 函數(shù) 140
5.1 函數(shù)的概念及特點 140
5.1.1 函數(shù)的概念 140
5.1.2 函數(shù)的分類 140
5.2 函數(shù)的定義和調用 141
5.2.1 函數(shù)的定義 141
5.2.2 函數(shù)的調用和返回值 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ù)的嵌套調用 149
5.4.2 函數(shù)的遞歸調用 151
5.5 典型例題精講 154
5.6 遞歸轉化為非遞歸研究 162
5.6.1 漢諾塔問題遞歸解法 162
5.6.2 漢諾塔問題非遞歸解法 165
5.6.3 八皇后問題遞歸解法 167
5.6.4 八皇后問題非遞歸解法 169
習題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
習題6 215
第7章 結構體 223
7.1 結構體類型的定義與結構體變量 223
7.1.1 結構體類型的定義 223
7.1.2 結構體變量 226
7.1.3 用typedef定義類型標識符 231
7.2 結構體數(shù)組及指向結構體的指針變量 234
7.2.1 結構體數(shù)組 234
7.2.2 指向結構體的指針變量 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
習題7 262
第8章 文件 271
8.1 文件的概念 271
8.1.1 文件的分類 271
8.1.2 文件指針變量及文件操作過程 272
8.2 文件的打開與關閉 273
8.2.1 文件的打開 273
8.2.2 文件的關閉 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
習題8 292
第9章 C語言與程序設計補遺 296
9.1 變量的存儲類別與生命期 296
9.2 指向函數(shù)的指針變量 300
9.3 帶參數(shù)的main函數(shù) 304
9.4 編譯預處理命令 306
9.4.1 宏定義命令 306
9.4.2 文件包含命令 309
9.5 枚舉類型 312
9.6 位運算 315
習題9 319
附錄 324
附錄1 ASCII表 324
附錄2 C語言中的運算符及其優(yōu)先級 325
附錄3 常用C語言庫函數(shù) 326
參考文獻 328