明解C語言 中級篇
[日]柴田望洋
買這商品的人也買了...
-
$354$336 -
$352ACM 國際大學生程序設計競賽題目與解讀
-
$474$450 -
$580$493 -
$600$540 -
$450$338 -
$354$336 -
$480$360 -
$414$393 -
$880$660 -
$779$740 -
$521C語言程序設計
-
$419$398 -
$1,428$1,357 -
$894$849 -
$458Effective C (中文版)
-
$680$510 -
$750$585 -
$450$351 -
$680$530 -
$680$537 -
$654$621 -
$774$735 -
$720$562 -
$534$507
相關主題
商品描述
《明解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
\n:換行符35
\f:換頁符35
\b:退格符36
\r:回車符38
\t:水平製表符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/OSX) 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