內容簡介
本書作為C 語言程式設計的教程,系統全面地介紹了有關C 語言程式設計開發所涉及的各類知識。全書共分17 章,內容包括C 語言概述、算法、數據類型、運算符與表達式、常用的數據輸入/輸出函式、選擇結構程式設計、循環控制、數組、函式、指針、結構體和共用體、位運算、預處理、檔案、存儲管理、網地糊和絡套接字編程、綜合實例——學生信息管理系統。全書每章內容都與實例緊密結合,有助於學生理解知識、套用知識,達到學以致用的目的。
圖書目錄
第 1 章 C 語言概述 1
1.1 C 語言的發展史 2
1.1.1 程式語言簡述 2
1.1.2 C 語言的歷史 2
1.2 C 語言的特灑翻盛點 3
1.3 一個簡單的C 程式 3
1.4 一個完整的C 程式 5
1.5 C 語言程式的格式 8
1.6 開發環境 9
1.6.1 Dev C++ 9
1.6.2 Visual C++ 6.0 13
小結 14
上機指導 15
習題 15
第 2 章 算法 16
2.1 算法的基本概念 17
2.1.1 算法的特性 17
2.1.2 算法的優劣 17
2.2 算法的描述 18
2.2.1 自然語言 18
實例:用自然語言求n!
2.2.2 流程圖 19
實例:畫出趣味俄羅斯方塊的流程圖
2.2.3 N-S 流程圖 22
實例:繪製N-S 流程圖求n!
小結 24
上機指導 24
習題 24
第3 章 數據類型婚市 25
3.1 編程規範 26
3.2 關鍵字 26
3.3 標識符 27
3.4 數據類型 28
3.5 常量 29
3.5.1 整型常量 29
3.5.2 實型常量 31
3.5.3 字元型常量 32
實例1:輸出字元常量
實例2:輸出字元串常量
3.5.4 轉義字元 34
3.5.5 符號常量 35
實例:船和剃輸入半徑,得到圓的面積
3.6 變數 36
3.6.1 整型變數 36
3.6.2 實型變數 38
實例:使用各種實型變數
3.6.3 字元型變數 40
實例:使用字元型變數
3.7 變數的存儲類別 42
3.7.1 靜態存儲與動態存儲 42
3.7.2 auto 變數 42
實例:使用auto 變數
3.7.3 static 變數 43
實例:使用static 變數
3.7.4 register 變數 43
實例:使用register 變數修飾整型變數
3.7.5 extern 變數 44
實例:使用extem 變數
3.8 混合運算 45
實例:int、char、float 型變數相加,
得出double 型變數進行輸出
小結 46
上機指導 46
習題 47
第4 章 運算符與表達式 48
4.1 表達式 49
實例:求解二元一次不定方程ax+by=c 的解
4.2.1 變數賦初值 51
實例:模擬鐘點工的計費情況,使用
賦值語句和表達式得出鐘點工
工作8 個小時後所得的薪水
實例:通阿戲察付過不同類型變數之間的賦
值,將賦值操作後的結果進行輸出
4.3.1 算術運算符 53
實例:求100~1000 之間滿足各位
數字之和是5 的所有數
4.3.2 算術表達式 54
實例:使用算術表達式計算攝氏溫度
4.3.3 優先權與結合性 55
實例:通過不同運算符的優先權和
結合性,使用printf 函式顯
示最終的計算結果
4.3.4 自增/自減運算符 57
實例:比較阿戲料自增、自減運算符前綴
與後綴的不同
4.4.3 優先權與結合性 59
實例:使用if 語句判斷兩個學科的分數大小
4.5.1 邏輯運算符 61
4.5.2 邏輯表達式 61
實例:判斷閏年
4.5.3 優先權與結合性 61
實例端墓市禁:使用邏輯運算符構造表達
式,通過輸出函式顯示表達
式的結果
4.6 位邏輯運算符與位邏輯表達式 62
4.6.1 位邏輯運算符 62
4.6.2 位邏輯表達式 63
實例:通過逗號運算符將其他運算
符結合在一起形成表達式,
再將表達式的最終結果賦
值給變數
實例:使用複合賦值運算符簡化賦
值運算
小結 65
上機指導 67
習題 67
第5 章 常用的數據輸入/輸出
函式 68
5.1 語句 69
5.2 字元數據輸入/輸出 69
5.2.1 字元數據輸出 69
實例:使用putchar 函式,輸出字
符串“Hello”
5.2.2 字元數據輸入 70
實例1:使用getchar 函式獲取在鍵
盤上輸入的字元,再利用
putchar 函式進行輸出
實例2:使用getchar 函式取消獲取
回車符
5.3 字元串輸入/輸出 72
5.3.1 字元串輸出函式 72
實例:使用puts 函式對字元串常量
和字元串變數都進行操作
5.3.2 字元串輸入函式 73
實例:使用字元串輸入函式gets 獲
取輸入信息
5.4 格式輸出函式 74
實例:使用printf 函式輸出字元花
5.5 格式輸入函式 78
實例:利用scanf 函式得到用戶
輸入的兩個整型數據
5.6 順序程式設計套用 81
實例:將大寫字元轉換成小寫字元
小結 83
上機指導 83
習題 83
第6 章 選擇結構程式設計 85
6.1 if 語句 86
6.2 if 語句的基本形式 86
6.2.1 if 語句形式 86
實例:使用if 語句模擬信號燈指揮
車輛行駛
6.2.2 if…else 語句形式 89
實例1:使用if…else 語句得到兩個
數的最大值
實例2:使用if…else 語句模擬信號燈
6.2.3 else if 語句形式 92
實例:使用else if 語句編寫螢幕菜
單程式
6.3 if 的嵌套形式 95
實例:使用if 嵌套語句選擇日程安排
實例:使用條件運算符計算欠款金額
6.5 switch 語句 99
6.5.1 switch 語句的基本形式 99
實例:使用switch 語句輸出分數段
6.5.2 多路開關模式的switch 語句 103
實例:使用switch 語句設計歡迎界
面的選單選項
6.6 if…else 語句和switch 語句的區別 104
6.7 選擇結構程式套用 106
實例:使用switch 語句計算運輸
公司的計費
小結 108
上機指導 108
習題 109
第7 章 循環控制 110
7.1 循環語句 111
7.2 while 語句 111
實例:計算1 累加到100 的結果
7.3 do-while 語句 112
實例:使用do-while 語句計算1~
100 之間的累加結果
7.4 for 語句 114
7.4.1 for 語句使用 114
實例:列印俄羅斯方塊的遊戲視窗
7.4.2 for 循環的變體 117
實例:省略for 語句中的第 一個
表達式
7.4.3 for 語句中的逗號套用 119
實例:計算1~100 之間所有偶數
的累加結果
7.5 3 種循環語句的比較 120
7.6 循環嵌套 120
7.6.1 循環嵌套的結構 120
7.6.2 循環嵌套實例 122
實例:使用嵌套語句列印歡迎界面
的框線
7.7 轉移語句 124
7.7.1 goto 語句 124
實例:使用goto 語句從循環內部跳出
7.7.2 break 語句 125
實例:使用break 語句跳出循環
7.7.3 continue 語句 126
實例:使用continue 語句結束本次
的循環操作
小結 127
上機指導 128
習題 128
第8 章 數組 129
8.1 一維數組 130
8.1.1 一維數組的定義和引用 130
實例:使用數組保存數據
8.1.2 一維數組初始化 131
實例:初始化一維數組
8.1.3 一維數組套用 134
實例:使用數組保存學生姓名
8.2 二維數組 135
8.2.1 二維數組的定義和引用 135
8.2.2 二維數組初始化 136
實例:使用二維數組標記遊戲螢幕上的圖案
8.2.3 二維數組套用 138
實例:列印遊戲視窗,並設定左右下橫框上有圖案
8.3 字元數組 141
8.3.1 字元數組的定義和引用 141
8.3.2 字元數組初始化 141
實例:使用二維字元數組輸出一個鑽石形狀
8.3.3 字元數組的結束標誌 143
8.3.4 字元數組的輸入和輸出 144
實例:使用兩種方式輸出字元串
8.3.5 字元數組套用 145
實例:計算字元串中單詞的個數
8.4 多維數組 146
8.5 數組的排序算法 146
8.5.3 交換法排序 150
實例:實現學生信息管理系統中的
學生成績排名功能
8.5.4 插入法排序 152
8.5.5 折半法排序 154
8.5.6 排序算法的比較 156
8.6 字元串處理函式 157
8.6.1 字元串複製 157
實例:字元串複製套用
8.6.2 字元串連線 158
實例:字元串連線套用
8.6.3 字元串比較 160
實例:字元串比較套用
8.6.4 字元串大小寫轉換 161
實例:字元串大小寫轉換
8.6.5 獲得字元串長度 163
實例:獲得字元串長度
8.7 數組套用 164
8.7.1 反轉輸出字元串 164
8.7.2 輸出系統日期和時間 165
8.7.3 字元串的加密和解密 166
小結 168
上機指導 168
習題 169
第9 章 函式 170
9.1 函式概述 171
實例:在主函式中調用其他函式
9.2 函式的定義 172
9.2.1 函式定義的形式 173
9.2.2 定義與聲明 174
實例:定義獲取螢幕游標位置和設定文字顏色函式
9.3 返回語句 177
9.3.1 從函式返回 177
實例:從函式返回套用
9.3.2 返回值 178
實例:返回值類型與return 值類型
9.4 函式參數 180
9.4.1 形式參數與實際參數 180
實例:形式參數與實際參數的比喻實現
9.4.2 數組作函式參數 182
實例:數組元素作為函式參數
9.4.3 main 函式的參數 187
實例:main 函式的參數使用
9.5 函式的調用 188
9.5.1 函式的調用方式 188
實例:調用獲取螢幕游標位置和設
置文字顏色函式,來設定趣
味俄羅斯方塊的標題圖
9.5.2 嵌套調用 193
實例:函式的嵌套調用
9.5.3 遞歸調用 195
實例:函式的遞歸調用
9.6 內部函式和外部函式 197
9.6.1 內部函式 197
實例:內部函式的使用
9.6.2 外部函式 198
實例:外部函式的使用
9.7 局部變數和全局變數 200
9.7.1 局部變數 200
實例1:局部變數的作用域
實例2:局部變數的禁止作用
9.7.2 全局變數 203
實例:使用全局變數模擬價格調整
9.8 函式套用 204
實例1:數學庫函式使用
實例2:使用三角函式
實例3:使用字元函式判斷輸入字元
小結 210
上機指導 210
習題 211
第 10 章 指針 212
10.1 指針相關概念 213
10.1.1 地址與指針 213
10.1.2 變數與指針 214
10.1.3 指針變數 214
實例:從鍵盤中輸入兩個數,利用指
針的方法將這兩個數輸出
10.1.4 指針自加自減運算 218
實例:整型變數地址輸出
10.2 數組與指針 219
10.2.1 一維數組與指針 219
實例:輸出數組中的元素
10.2.2 二維數組與指針 223
實例:利用指針對二維數組進行輸
入和輸出
10.2.3 字元串與指針 226
實例:輸入兩個字元串a 和b,將
字元串a 和b 連線起來
10.2.4 字元串數組 228
實例:輸出12 個月
10.3 指向指針的指針 229
實例1:使用指向指針的指針輸出12 個月
實例2:利用指向指針的指針輸出一維數組中是偶數的元
素,並統計偶數的個數
10.4 指針變數作函式參數 232
實例1:調用自定義函式交換兩變數值
實例2:嵌套的函式調用
實例3:任意輸入10 個數據,先將
這10 個數據中是奇數的數
據輸出,再求這10 個數據
中所有奇數之和
10.5 返回指針值的函式 240
實例:使用返回指針的函式查找最大值
10.6 指針數組作main 函式的參數 242
實例:輸出main 函式的參數內容
小結 243
上機指導 243
習題 244
第 11 章 結構體和共用體 245
11.1 結構體 246
11.1.2 結構體變數的定義 247
11.1.3 結構體變數的引用 248
實例:引用學生成績結構體
11.1.4 結構體類型的初始化 250
實例:聲明結構體類型表示商品,
然後定義結構體變數,之後
對變數中的成員進行賦值,
最後將結構體變數中保存
的信息進行輸出
11.2 結構體數組 251
11.2.1 定義結構體數組 251
11.2.2 初始化結構體數組 253
實例:初始化學生信息結構體數
組,並輸出學生信息
11.3 結構體指針 254
11.3.1 指向結構體變數的指針 255
實例:通過指針使用點運算符引用
結構體變數的成員
11.3.2 指向結構體數組的指針 257
實例:根據學生結構類型定義結構
體數組,並對其進行初始化
操作
11.3.3 結構體作為函式參數 259
實例:聲明一個簡單的結構類型表
示學生成績,編寫一個函
數,使得該結構類型變數作
為函式的參數
11.4 包含結構的結構 262
實例:定義兩個結構體類型,一個
表示日期,一個表示學生的
個人信息
11.5 鍊表 263
11.5.1 鍊表概述 263
11.5.2 創建動態鍊表 264
11.5.3 輸出鍊表 266
實例:編寫一個包含學生信息的鏈
表結構,並且將鍊表中的信
息進行輸出
11.6 鍊表相關操作 268
11.6.1 鍊表的插入操作 269
11.6.2 鍊表的刪除操作 270
實例:對學生信息鍊表進行刪除操作
11.7 共用體 274
11.7.1 共用體的概念 274
11.7.2 共用體變數的引用 274
實例:定義共用體變數,通過定義
的顯示函式,引用共用體中
的數據成員
11.7.3 共用體變數的初始化 275
實例:定義共用體變數的同時進行
初始化操作,並將引用變數
的值輸出
11.7.4 共用體類型的數據特點 276
11.8 枚舉類型 276
實例:使用枚舉類型
小結 278
上機指導 278
習題 279
第 12 章 位運算 280
12.1 位與位元組 281
12.2 位運算操作符 281
12.2.1 “與”運算符 281
實例:任意輸入兩個數分別賦給a
和b,計算a&b 的值
12.2.2 “或”運算符 283
實例:任意輸入兩個數分別賦給a
和b,計算a|b 的值
12.2.3 “取反”運算符 284
實例:輸入一個數賦給變數a,計
算~a 的值
12.2.4 “異或”運算符 285
實例:輸入兩個數分別賦給變數a
和b,計算a^b 的值
12.2.5 “左移”運算符 287
實例:將15 先左移兩位,將其左
移後的結果輸出,在這個結
果的基礎上再左移3 位,並
將結果輸出
12.2.6 “右移”運算符 288
實例:將30 和-30 分別右移3 位,
將所得結果分別輸出,在所
得結果的基礎上再分別右
移兩位,並將結果輸出
12.3 循環移位 289
實例:從鍵盤中輸入一個八進制數,
然後輸入要移位的位數,最後
將移位的結果顯示在螢幕上
12.4 位段 292
12.4.1 位段的概念與定義 292
12.4.2 位段相關說明 293
小結 294
上機指導 294
習題 295
第 13 章 預處理 296
13.1 宏定義 297
13.1.1 不帶參數的宏定義 297
實例:設計趣味俄羅斯方塊的宏
13.1.2 帶參數的宏定義 298
實例:對兩個數實現乘法加法混合運算
13.2 #include 指令 299
實例:檔案包含套用
13.3 條件編譯 301
13.3.1 #if 命令 301
實例:#if 套用
13.3.2 #ifdef 及#ifndef 命令 304
實例:#ifdef 和#ifndef 的具體套用
13.3.3 #undef 命令 305
13.3.4 #line 命令 305
實例:輸出行號
13.3.5 #pragma 命令 306
小結 306
上機指導 307
習題 307
第 14 章 檔案 308
14.1 檔案概述 309
14.2 檔案基本操作 309
14.2.1 檔案指針 309
14.2.2 檔案的打開 310
14.2.3 檔案的關閉 310
14.3 檔案的讀寫 311
14.3.1 fputc 函式 311
實例:向E:\exp01.txt 中寫入
“forever…forever…”
14.3.2 fgetc 函式 312
實例:在螢幕中顯示出exp02.txt 中
的內容
14.3.3 fputs 函式 312
實例:向指定的磁碟檔案中寫入字
符串“gone with the wind”
14.3.4 fgets 函式 313
實例:讀取任意磁碟檔案中的內容
14.3.5 fprintf 函式 314
實例:將數字88 以字元的形式寫
到磁碟檔案中
14.3.6 fscanf 函式 315
實例:將檔案中的5 個字元以整數
形式輸出
14.3.7 fread 和fwrite 函式 316
實例:將錄入的通訊錄信息保存到
磁碟檔案中,並顯示
14.4 檔案的定位 318
14.4.1 fseek 函式 318
實例:向任意一個二進制檔案中寫
入一個長度大於6 的字元
串,然後從該字元串的第6
個字元開始輸出餘下字元
14.4.2 rewind 函式 320
實例:rewind 函式的套用
14.4.3 ftell 函式 321
實例:求字元串長度
小結 322
上機指導 323
習題 323
第 15 章 存儲管理 324
15.1 記憶體組織方式 325
15.1.1 記憶體的組織方式 325
15.1.2 堆與棧 325
實例:在堆中分配記憶體並釋放
15.2 動態管理 327
15.2.1 malloc 函式 327
實例:使用malloc 函式動態分配空間
15.2.2 calloc 函式 328
實例:使用calloc 函式分配數組記憶體
15.2.3 realloc 函式 329
實例:使用realloc 函式重新分配記憶體
15.2.4 free 函式 330
實例:使用free 函式釋放記憶體空間
15.3 記憶體丟失 331
小結 332
上機指導 332
習題 333
第 16 章 網路套接字編程 334
16.1 記憶體組織方式 335
16.1.1 IP 地址 335
16.1.2 OSI 七層參考模型 335
16.1.3 地址解析 336
16.1.4 域名系統 337
16.1.5 TCP/IP 337
16.1.6 連線埠 339
16.1.7 套接字的引入 339
16.1.8 網路位元組順序 339
16.2 套接字概述 339
16.2.1 套接字概述 340
16.2.2 TCP 的套接字的socket 編程 340
16.2.3 UDP 的套接字的socket 編程 340
16.3 套接字函式 341
16.3.1 套接字函式介紹 341
16.3.2 基於TCP 的網路聊天程式 345
實例:設計網路聊天伺服器端
小結 351
上機指導 352
習題 352
第 17 章 綜合實例—學生信息
管理系統 353
17.1 開發背景 354
17.2 開發環境需求 354
17.3 系統功能設計 354
17.4 預處理模組設計 354
17.4.1 模組概述 354
17.4.2 控制輸出格式 355
17.4.3 檔案引用 355
17.4.4 宏定義 355
17.4.5 函式聲明 355
17.5 主函式設計 356
17.5.1 功能概述 356
17.5.2 實現主函式 356
17.5.3 顯示主選單 358
17.6 錄入學生信息 358
17.6.1 模組概述 358
17.6.2 實現檔案的打開和關閉功能 359
17.6.3 實現錄入學生信息 360
17.7 查詢學生信息 362
17.7.1 模組概述 362
17.7.2 查詢沒有記錄的檔案 363
17.7.3 查找並列印學生信息 363
17.8 刪除學生信息 364
17.8.1 模組概述 364
17.8.2 實現刪除學生信息 364
17.9 修改學生信息 366
17.9.1 模組概述 366
17.9.2 實現修改學生信息 367
17.10 插入學生信息 368
17.10.1 模組概述 368
17.10.2 實現插入學生信息 368
17.11 學生成績排名 370
17.11.1 模組概述 370
17.11.2 使用交換排序法實現排序功能 371
17.11.3 實現學生成績排名 371
17.12 統計學生總數 372
17.12.1 模組概述 372
17.12.2 實現統計學生總數 372
17.13 顯示所有學生信息 373
17.13.1 模組概述 373
17.13.2 讀取並顯示所有學生信息 374
小結 374
5.3.2 字元串輸入函式 73
實例:使用字元串輸入函式gets 獲
取輸入信息
5.4 格式輸出函式 74
實例:使用printf 函式輸出字元花
5.5 格式輸入函式 78
實例:利用scanf 函式得到用戶
輸入的兩個整型數據
5.6 順序程式設計套用 81
實例:將大寫字元轉換成小寫字元
小結 83
上機指導 83
習題 83
第6 章 選擇結構程式設計 85
6.1 if 語句 86
6.2 if 語句的基本形式 86
6.2.1 if 語句形式 86
實例:使用if 語句模擬信號燈指揮
車輛行駛
6.2.2 if…else 語句形式 89
實例1:使用if…else 語句得到兩個
數的最大值
實例2:使用if…else 語句模擬信號燈
6.2.3 else if 語句形式 92
實例:使用else if 語句編寫螢幕菜
單程式
6.3 if 的嵌套形式 95
實例:使用if 嵌套語句選擇日程安排
實例:使用條件運算符計算欠款金額
6.5 switch 語句 99
6.5.1 switch 語句的基本形式 99
實例:使用switch 語句輸出分數段
6.5.2 多路開關模式的switch 語句 103
實例:使用switch 語句設計歡迎界
面的選單選項
6.6 if…else 語句和switch 語句的區別 104
6.7 選擇結構程式套用 106
實例:使用switch 語句計算運輸
公司的計費
小結 108
上機指導 108
習題 109
第7 章 循環控制 110
7.1 循環語句 111
7.2 while 語句 111
實例:計算1 累加到100 的結果
7.3 do-while 語句 112
實例:使用do-while 語句計算1~
100 之間的累加結果
7.4 for 語句 114
7.4.1 for 語句使用 114
實例:列印俄羅斯方塊的遊戲視窗
7.4.2 for 循環的變體 117
實例:省略for 語句中的第 一個
表達式
7.4.3 for 語句中的逗號套用 119
實例:計算1~100 之間所有偶數
的累加結果
7.5 3 種循環語句的比較 120
7.6 循環嵌套 120
7.6.1 循環嵌套的結構 120
7.6.2 循環嵌套實例 122
實例:使用嵌套語句列印歡迎界面
的框線
9.2.2 定義與聲明 174
實例:定義獲取螢幕游標位置和設定文字顏色函式
9.3 返回語句 177
9.3.1 從函式返回 177
實例:從函式返回套用
9.3.2 返回值 178
實例:返回值類型與return 值類型
9.4 函式參數 180
9.4.1 形式參數與實際參數 180
實例:形式參數與實際參數的比喻實現
9.4.2 數組作函式參數 182
實例:數組元素作為函式參數
9.4.3 main 函式的參數 187
實例:main 函式的參數使用
9.5 函式的調用 188
9.5.1 函式的調用方式 188
實例:調用獲取螢幕游標位置和設
置文字顏色函式,來設定趣
味俄羅斯方塊的標題圖
9.5.2 嵌套調用 193
實例:函式的嵌套調用
9.5.3 遞歸調用 195
實例:函式的遞歸調用
9.6 內部函式和外部函式 197
9.6.1 內部函式 197
實例:內部函式的使用
9.6.2 外部函式 198
實例:外部函式的使用
9.7 局部變數和全局變數 200
9.7.1 局部變數 200
實例1:局部變數的作用域
實例2:局部變數的禁止作用
9.7.2 全局變數 203
實例:使用全局變數模擬價格調整
9.8 函式套用 204
實例1:數學庫函式使用
實例2:使用三角函式
實例3:使用字元函式判斷輸入字元
小結 210
上機指導 210
習題 211
第 10 章 指針 212
10.1 指針相關概念 213
10.1.1 地址與指針 213
10.1.2 變數與指針 214
10.1.3 指針變數 214
實例:從鍵盤中輸入兩個數,利用指
針的方法將這兩個數輸出
10.1.4 指針自加自減運算 218
實例:整型變數地址輸出
10.2 數組與指針 219
10.2.1 一維數組與指針 219
實例:輸出數組中的元素
10.2.2 二維數組與指針 223
實例:利用指針對二維數組進行輸
入和輸出
10.2.3 字元串與指針 226
實例:輸入兩個字元串a 和b,將
字元串a 和b 連線起來
10.2.4 字元串數組 228
實例:輸出12 個月
10.3 指向指針的指針 229
實例1:使用指向指針的指針輸出12 個月
實例2:利用指向指針的指針輸出一維數組中是偶數的元
素,並統計偶數的個數
10.4 指針變數作函式參數 232
實例1:調用自定義函式交換兩變數值
實例2:嵌套的函式調用
實例3:任意輸入10 個數據,先將
這10 個數據中是奇數的數
據輸出,再求這10 個數據
中所有奇數之和
10.5 返回指針值的函式 240
12.1 位與位元組 281
12.2 位運算操作符 281
12.2.1 “與”運算符 281
實例:任意輸入兩個數分別賦給a
和b,計算a&b 的值
12.2.2 “或”運算符 283
實例:任意輸入兩個數分別賦給a
和b,計算a|b 的值
12.2.3 “取反”運算符 284
實例:輸入一個數賦給變數a,計
算~a 的值
12.2.4 “異或”運算符 285
實例:輸入兩個數分別賦給變數a
和b,計算a^b 的值
12.2.5 “左移”運算符 287
實例:將15 先左移兩位,將其左
移後的結果輸出,在這個結
果的基礎上再左移3 位,並
將結果輸出
12.2.6 “右移”運算符 288
實例:將30 和-30 分別右移3 位,
將所得結果分別輸出,在所
得結果的基礎上再分別右
移兩位,並將結果輸出
12.3 循環移位 289
實例:從鍵盤中輸入一個八進制數,
然後輸入要移位的位數,最後
將移位的結果顯示在螢幕上
12.4 位段 292
12.4.1 位段的概念與定義 292
12.4.2 位段相關說明 293
小結 294
上機指導 294
習題 295
第 13 章 預處理 296
13.1 宏定義 297
13.1.1 不帶參數的宏定義 297
實例:設計趣味俄羅斯方塊的宏
13.1.2 帶參數的宏定義 298
實例:對兩個數實現乘法加法混合運算
13.2 #include 指令 299
實例:檔案包含套用
13.3 條件編譯 301
13.3.1 #if 命令 301
實例:#if 套用
13.3.2 #ifdef 及#ifndef 命令 304
實例:#ifdef 和#ifndef 的具體套用
13.3.3 #undef 命令 305
13.3.4 #line 命令 305
實例:輸出行號
13.3.5 #pragma 命令 306
小結 306
上機指導 307
習題 307
第 14 章 檔案 308
14.1 檔案概述 309
14.2 檔案基本操作 309
14.2.1 檔案指針 309
14.2.2 檔案的打開 310
14.2.3 檔案的關閉 310
14.3 檔案的讀寫 311
14.3.1 fputc 函式 311
實例:向E:\exp01.txt 中寫入
“forever…forever…”
14.3.2 fgetc 函式 312
實例:在螢幕中顯示出exp02.txt 中
的內容
14.3.3 fputs 函式 312
實例:向指定的磁碟檔案中寫入字
符串“gone with the wind”
14.3.4 fgets 函式 313
實例:讀取任意磁碟檔案中的內容
14.3.5 fprintf 函式 314
實例:將數字88 以字元的形式寫
到磁碟檔案中
14.3.6 fscanf 函式 315
實例:將檔案中的5 個字元以整數
形式輸出
14.3.7 fread 和fwrite 函式 316
實例:將錄入的通訊錄信息保存到
磁碟檔案中,並顯示
14.4 檔案的定位 318
14.4.1 fseek 函式 318
實例:向任意一個二進制檔案中寫
入一個長度大於6 的字元
串,然後從該字元串的第6
個字元開始輸出餘下字元
14.4.2 rewind 函式 320
實例:rewind 函式的套用
14.4.3 ftell 函式 321
實例:求字元串長度
小結 322
上機指導 323
習題 323
第 15 章 存儲管理 324
15.1 記憶體組織方式 325
15.1.1 記憶體的組織方式 325
15.1.2 堆與棧 325
實例:在堆中分配記憶體並釋放
15.2 動態管理 327
15.2.1 malloc 函式 327
實例:使用malloc 函式動態分配空間
15.2.2 calloc 函式 328
實例:使用calloc 函式分配數組記憶體
15.2.3 realloc 函式 329
實例:使用realloc 函式重新分配記憶體
15.2.4 free 函式 330
實例:使用free 函式釋放記憶體空間
15.3 記憶體丟失 331
小結 332
上機指導 332
習題 333
第 16 章 網路套接字編程 334
16.1 記憶體組織方式 335
16.1.1 IP 地址 335
16.1.2 OSI 七層參考模型 335
16.1.3 地址解析 336
16.1.4 域名系統 337
16.1.5 TCP/IP 337
16.1.6 連線埠 339
16.1.7 套接字的引入 339
16.1.8 網路位元組順序 339
16.2 套接字概述 339
16.2.1 套接字概述 340
16.2.2 TCP 的套接字的socket 編程 340
16.2.3 UDP 的套接字的socket 編程 340
16.3 套接字函式 341
16.3.1 套接字函式介紹 341
16.3.2 基於TCP 的網路聊天程式 345
實例:設計網路聊天伺服器端
小結 351
上機指導 352
習題 352
第 17 章 綜合實例—學生信息
管理系統 353
17.1 開發背景 354
17.2 開發環境需求 354
17.3 系統功能設計 354
17.4 預處理模組設計 354
17.4.1 模組概述 354
17.4.2 控制輸出格式 355
17.4.3 檔案引用 355
17.4.4 宏定義 355
17.4.5 函式聲明 355
17.5 主函式設計 356
17.5.1 功能概述 356
17.5.2 實現主函式 356
17.5.3 顯示主選單 358
17.6 錄入學生信息 358
17.6.1 模組概述 358
17.6.2 實現檔案的打開和關閉功能 359
17.6.3 實現錄入學生信息 360
17.7 查詢學生信息 362
17.7.1 模組概述 362
17.7.2 查詢沒有記錄的檔案 363
17.7.3 查找並列印學生信息 363
17.8 刪除學生信息 364
17.8.1 模組概述 364
17.8.2 實現刪除學生信息 364
17.9 修改學生信息 366
17.9.1 模組概述 366
17.9.2 實現修改學生信息 367
17.10 插入學生信息 368
17.10.1 模組概述 368
17.10.2 實現插入學生信息 368
17.11 學生成績排名 370
17.11.1 模組概述 370
17.11.2 使用交換排序法實現排序功能 371
17.11.3 實現學生成績排名 371
17.12 統計學生總數 372
17.12.1 模組概述 372
17.12.2 實現統計學生總數 372
17.13 顯示所有學生信息 373
17.13.1 模組概述 373
17.13.2 讀取並顯示所有學生信息 374
小結 374