編輯推薦
暢銷書《明解C語言》第-2彈,C語言進階不二之選! 111段代碼+152幅圖錶,圖文並茂,講解清晰易懂。 10個有趣的遊戲程序,讓你在快樂編程中學會實用技巧。 雙色印刷,版式賞心悅目。 本書是日本超受歡迎的C語言教程,榮獲日本工學教育協會著作奬,原版係列纍計暢銷超100萬冊! 本書適閤以下讀者閱讀: 1.入門書中的示例程序都能看懂,但是自己寫不齣來; 2.理解數組、指針等語法,但是不知如何在程序中使用; 3.學完入門書後找不到一本閤適的書繼續學習……
內容簡介
《明解C語言:中級篇》延續瞭《明解C語言:入門篇》圖文並茂、示例豐富、講解細緻的風格,在結構上又獨樹一幟,通過每章帶領讀者編寫一個遊戲程序並逐步完善或加以變更,來講解相關的C語言進階知識。每章的程序都很簡單有趣,而且包含著很多實用性的技巧,例如隨機數的生成、數組的應用方法、字符串和指針、命令行參數、文件處理、接收可變參數的函數的生成方法、存儲空間的動態分配與釋放,等等。此外,還會講解詳細的語法規則、眾多庫函數的使用方法、算法等知識。 本書非常適閤有一定C語言基礎的讀者閱讀。
作者簡介
柴田望洋 日本福岡工業大學信息工程學院副教授。在IT界傢喻戶曉,編寫瞭一係列極富影響力的計算機教材和參考書,如《明解C++》《明解Java》等。本書榮獲日本工學教育協會著作奬。
目錄
第1章 猜數遊戲 1
1-1 猜數判定 2
通過if語句實現條件分支 2
if語句的嵌套 3
實現多分支的方法 4
1-2 重復到猜對為止 8
通過do語句循環 8
相等運算符和關係運算符 9
通過while語句循環 10
break語句 10
while語句和do語句 11
先判斷後循環和先循環後判斷 11
1-3 隨機設定目標數字 12
rand函數:生成隨機數 12
srand函數:設置用於生成隨機數的種子 13
隨機設定目標數字 15
限製輸入次數 17
1-4 保存輸入記錄 22
數組 22
把輸入的值存入數組 24
通過for語句來顯示輸入記錄 26
數組元素的初始化 28
獲取數組的元素個數 29
第2章 專注於顯示 33
2-1 熟練運用轉義字符 34
轉義字符 34
a:警報符 35
:換行符 35
f:換頁符 35
:退格符 36
:迴車符 38
:水平製錶符 39
v:垂直製錶符 39
'和":單引號和雙引號 40
putchar函數:輸齣字符 40
:問號符 40
\:反斜杠字符 41
八進製轉義字符和十六進製轉義字符 41
2-2 操縱時間 42
clock函數:獲取程序啓動後經過的時間 42
計算處理所需的時間 46
暫停處理一段時間 47
2-3 字幕顯示 50
逐個顯示並消除字符 50
strlen函數:查詢字符串的長度 50
字幕顯示(從右往左) 52
字幕顯示(從左往右) 53
2-4 格式輸入輸齣 56
把要顯示的位數指定為變量 56
顯示任意數量的空白字符 57
printf函數:格式輸齣 60
scanf函數:格式輸入 63
第3章 猜拳遊戲 69
3-1 猜拳遊戲 70
基本設計 70
switch語句 72
錶示“手勢”的字符串 74
包含漢字的字符串 75
char型 76
顯示所有的字符 77
isprint函數:判斷顯示字符 78
條件運算符和條件錶達式 78
字符串的內部 79
通過指針來遍曆字符串 80
CHAR_BIT 81
指嚮字符串的指針數組 81
程序的改良 84
手勢的值和手勢的判斷 86
讓計算機“後齣” 87
3-2 函數的分割 88
勝負次數 88
函數和標識符的作用域 90
猜贏3次就結束 91
第4章 珠璣妙算 97
4-1 珠璣妙算 98
珠璣妙算 98
齣題 99
讀取數字串 101
atoi函數/atol函數/atof函數:把字符串轉換為數值 102
檢查已讀取的字符串的有效性 103
字符類彆的判斷 105
hit和blow的判斷 107
第5章 記憶力訓練 117
5-1 單純記憶訓練 118
訓練記憶4位數 118
整數型的錶示範圍 119
訓練記憶任意位數的數值 120
輸入訓練等級 121
用字符串錶示數值 122
生成作為題目的字符串 122
顯示作為題目的字符串 123
strcmp函數:字符串的比較 124
英文字母記憶訓練(其一) 125
生成作為題目的字符串 127
英文字母記憶訓練(其二) 127
5-2 加一訓練 130
加一訓練 130
輸入等級 132
生成並顯示題目 132
消除題目 132
輸入答案 133
判斷對錯 133
保存答對數量 133
顯示訓練結果 133
用橫嚮圖形顯示 134
用縱嚮圖形顯示 135
把數值存入數組 136
如何存儲超過數組元素個數的值(其一) 138
如何存儲超過數組元素個數的值(其二) 140
加一訓練的改良 142
5-3 存儲空間的動態分配與釋放 144
聲明數組 144
動態存儲期 145
存儲空間的動態分配與釋放 146
指嚮void型的指針 146
為單個對象分配存儲空間 148
為數組對象分配存儲空間 151
第6章 日曆 161
6-1 今天是幾號 162
今天的日期 162
time_t型:日曆時間 162
time函數:以日曆時間的形式來獲取當前時間 163
tm結構體:分解時間 164
localtime函數:把日曆時間轉換成錶示本地時間的分解時間 164
gmtime函數:把日曆時間轉換成UTC分解時間 166
通過當前時間設定隨機數種子 167
asctime函數:把分解時間轉換成字符串 167
ctime函數:把日曆時間轉換成字符串 170
difftime函數:求時間差 171
暫停處理一段時間 173
6-2 求星期 174
mktime函數:把錶示本地時間的分解時間轉換成日曆時間 174
蔡勒公式 175
6-3 日曆 178
顯示日曆 178
求星期 179
閏年的判斷 179
月份的天數 179
顯示日曆的過程 180
橫嚮顯示 182
把1個月的日曆存入字符串 186
sprintf函數:對字符串進行格式化輸齣 186
生成空字符串 187
strcpy函數:字符串的復製 188
在第1日左側設置空白 189
strcat函數:字符串的連接 190
顯示字符串 192
年月的計算 193
6-4 命令行參數 194
命令行參數 194
argv指嚮的實體 196
通過指針以字符串為單位遍曆argv 197
通過指針以字符為單位遍曆argv 199
不使用argc來遍曆 204
啓動程序時指定年月的日曆 205
第7章 右腦訓練 211
7-1 尋找幸運數字 212
復製數組 212
復製數組時跳過一個數組元素 214
尋找幸運數字 216
重新排列數組元素 217
交換兩個值 219
7-2 尋找重復數字 222
尋找重復數字 222
鍵盤輸入和操作性能的提升(MS-Windows/MS-DOS) 224
getch函數:獲取按下的鍵 225
putch函數:輸齣到控製颱 225
鍵盤輸入和操作性能的提升(UNIX / Linux / OS X) 226
通用頭文件 227
包含頭文件保護的頭文件的設計 229
替換調用的函數 231
可變參數的聲明 232
va_start宏:訪問可變參數前的準備 233
va_arg宏:取齣可變參數 234
va_end宏:結束對可變參數的訪問 235
vprintf函數/ vfprintf函數:輸齣到流 235
vsprintf函數:輸齣到字符串 237
改良後的程序 238
7-3 三字母詞聯想訓練 241
瞬間判斷力的養成 241
生成題目 242
第8章 打字練習 247
8-1 基本打字練習 248
輸入一個字符串 248
消除已輸入的字符 249
輸入多個字符串 252
打亂齣題順序(方法一) 254
打亂齣題順序(方法二) 256
8-2 鍵盤布局聯想打字 258
鍵盤布局聯想打字 258
8-3 綜閤打字練習 261
練習菜單 261
單一位置訓練 267
混閤位置訓練 269
C語言的單詞訓練 271
英語會話訓練 273
第9章 文件處理 277
9-1 標準流 278
復製程序 278
getchar函數和EOF 278
賦值和比較 279
流和緩衝區 280
緩衝的種類 280
setvbuf函數/setbuf函數:更改緩衝方法 281
fflush函數:刷新緩衝區 282
標準流 283
重定嚮 284
9-2 文本文件 285
文件的打開和關閉 285
fopen函數:打開文件 285
FILE型 287
fclose函數:關閉文件 288
保存和獲取訓練信息 288
更新最高得分 292
讀取訓練信息 292
fscanf函數:輸入格式 293
寫入訓練信息 293
fprintf函數:輸齣格式 293
9-3 實用程序的編寫 294
concat:文件的連接輸齣 294
fgetc函數:從流中讀取一個字符 297
fputc函數:嚮流輸齣一個字符 297
detab:把水平製錶符轉換成空白字符 298
fputs函數:輸齣字符串 301
entab:把空白字符轉換成水平製錶符 302
9-4 二進製文件 304
文本文件和二進製文件 304
fread函數:從文件中讀取數據 305
fwrite函數:嚮文件中寫入數據 305
hdump:通過字符和十六進製編碼實現文件轉儲 305
bcopy:復製文件 307
第10章 英語單詞學習軟件 311
10-1 英語單詞學習軟件 312
單詞顯示軟件 312
選擇和顯示單詞 313
嚮單詞學習軟件擴展 314
顯示選項 316
生成選項 316
生成選項(改良版本) 318
10-2 為字符串數組動態分配空間 320
為單一字符串動態分配空間 320
為字符串數組(二維數組)動態分配空間 321
為字符串數組(指針數組)動態分配空間 323
單詞文件的讀取 330
後記 335
緻謝 336
參考文獻 337
明解C語言 中級篇 下載 mobi epub pdf txt 電子書 格式