明解 C語言 (中級篇)

柴田望洋

  • 出版商: 人民郵電
  • 出版日期: 2017-09-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • 頁數: 334
  • 裝訂: 平裝
  • ISBN: 7115464065
  • ISBN-13: 9787115464064
  • 相關分類: C 程式語言
  • 下單後立即進貨 (約4週~6週)

  • 明解 C語言 (中級篇)-preview-1
  • 明解 C語言 (中級篇)-preview-2
明解 C語言 (中級篇)-preview-1

買這商品的人也買了...

商品描述

《明解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