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