C Primer Plus 第五版 中英文版和習題大全 下載地址: http://download.csdn.net/source/2933780 是 part1.rar http://download.csdn.net/source/2933786 是 part2.rar http://download.csdn.net/source/2933792 是 part3.rar http://download.csdn.net/source/2933793 是 part4.rar 僅Part1.rar 是收費10分的,可以在這里下載: 請下載解壓后修改后綴為*part1.RAR后再與其它3個文件一起解壓即可。 下面是書簽 ----------------------- 封面 -11 內容提要 -9 前言 -8 目錄 -7 第1章 概覽 1 1.1 C語言的起源 l 1.2 使用C語言的理由 1 1.2.1 設計特性 1 1.2.2 高效性 2 1.2.3 可移植性 2 1.2.4 強大的功能和靈活性 2 1.2 ,5面向編程人員 3 1.2.6 缺點 3 1.3 C語言的發展方向 3 1.4 計算機l一作的基本原理 4 1.5 高級計算機語言和編譯器 4 1.6 使用C語言的7個步驟 5 1.6.1 第1步:定義程序目標 5 1.6.2 第2步:設計程序 6 1.6.3 第3步:編寫代碼 6 1.6.4 第4步:編譯 6 1.6.5 第5步:運行程序 6 1.6.6 第6步:測試和調試程序 7 1.6.7 第7步:維護和修改程序 7 1.6.8 總結 7 1.7 編程機制 7 1.7.1 目標代碼文件、可執行文件和庫 8 1.7.2 UNIX系統 9 1.7.3 Linux系統 10 1.7.4 集成開發環境(Windows系統下) 10 1.7.5 IBMPC的DOS編譯器 II 1.7.6 Macintosh上的C II 1.8 語言標準 11 1.8.1 第1個ANSI/ISOC標準 12 1.8.2 C99標準 12 1.9 本書的組織結構 12 1.10 本書體例 13 1.10.1 字體 13 1.10.2 屏幕輸出 13 1.11 總結 14 1.12 復習題 14 1.13 編程練習 14 第2章 C語言概述 15 2.1 C語言的一個簡單實例 15 2.2 實例說明 16 2.2.1 第一遍快速簡介 16 2.2.2 第二遍程序細節 17 2.3 一個簡單程序的結構 22 2.4 使程序可讀的技巧 23 2.5 更進一步 24 2.5.1 說明 24 2.5.2 多個聲明 24 2.5.3 乘法 24 2.5.4 輸出多個值 25 2.6 多個函數 25 2.7 調試 26 2.7 ,1語法錯誤 26 2.7.2 語義錯誤 27 2.7.3 程序狀態 28 2.8 關鍵字和保留標識符 28 2.9 關鍵概念 29 2.10 總結 29 2.11 復習題 30 2.12 編程練習 31 第3章 數據和C 32 3.1 示例程序 32 3.2 變量與常量數據 34 3.3 數據:數據類型關鍵字 34 3.3.1 整數類型與浮點數類型 35 3.3.2 整數 35 3.3.3 浮點數 36 3.4 C數據類型 36 3.4.1 int類型 36 3.4.2 其他整數類型 39 3.4.3 使用字符:char類型 42 3.4.4 一Bool類型 46 3.4.5 可移植的類型:inttypes.h 46 3.4.6 float、double和longdouble類型 47 3.4.7 復數和虛數類型 50 3.4.8 其他類型 50 3.4.9 類型大小 52 3.5 使用數據類型 53 3.6 參數和易犯的錯誤 54 3.7 另一個例子:轉義序列 55 3.7.1 過程分析 55 3.7.2 刷新輸出 56 3.8 關鍵概念 56 3.9 總結 56 3.10 復習題 57 3.11 編程練習 58 第4章 字符串和格式化輸入/輸出 60 4.1 前導程序 60 4.2 字符串簡介 61 4.2.1 char數組類型和空字符 61 4.2.2 使用字符串 62 4.2.3 strlen()函數 63 4.3 常量和C預處理器 64 4.3.1 const修飾符 66 4.3.2 系統定義的明顯常量 66 4.4 研究和利用printf()和scanf() 67 4.4.1 printf()函數 68 4.4.2 使用printf() 68 4.4.3 printf()的轉換說明修飾符 70 4.4.4 轉換說明的意義 73 4.4.5 使用scanf() 78 4.4.6 printf()和scanf()的*修飾符 81 4.4.7 printf的用法提示 82 4.5 關鍵概念 83 4.6 總結 83 4.7 復習題 84 4.8 編程練習 85 第5章 運算符、表達式和語句 87 5.1 循環簡介 87 5.2 基本運算符 89 5.2.1 賦值運算符:= 89 5.2.2 加法運算符:+ 90 5.2.3 減法運算符:- 90 5.2.4 符號運算符:-和+ 90 5.2.5 乘法運算符:* 91 5.2.6 除法運算符:/ 92 5.2.7 運算符的優先級 93 5.2.8 優先級和求值順序 94 5.3 其他運算符 95 5.3.1 sizeof運算符和size_t類型 95 5.3.2 取模運算符: 96 5.3.3 增量和減量運算符:++和-- 97 5.3.4 減量:-- IOO 5.3.5 優先級 100 5.3.6 不要太聰明 101 5.4 表達式和語句 102 5.4 I表達式 102 5.4.2 語句 102 5.4.3 復合語句(代碼塊) 104 5.5 類型轉換 105 5.6 帶有參數的函數 107 5.7 -個示例程序 109 5.8 關鍵概念 11O 5.9 總結 110 5.10 復習題 111 5.11 編程練習 113 第6章 C控制語句:循環 115 6.1 再探while循環 115 6.1.1 程序注解 116 6.1.2 C風格的讀循環 117 6.2 while語句 118 6.2.1 終止while循環 118 6.2.2 循環何時終止 118 6.2.3 wlule:入口條件循環 119 6.2.4 語法要點 119 6.3 比較大。菏褂藐P系運算符和表達式 120 6.3.1 什么是真 122 6.3.2 還有什么是真 122 6.3.3 真值的問題 123 6.3.4 新的_Bool類型 124 6.3.5 關系運算符的優先級 125 6.4 不確定循環與計數循環 127 6.5 for循環 128 6.6 更多賦值運算符:+=、-=、*=、/=和 = 132 6.7 逗號運算符 133 6.8 退出條件循環:dowhilc 136 6.9 選擇哪種循環 138 6.10 嵌套循環 138 6.10 ,1程序討論 139 6.10.2 嵌套變化 139 6.1.1 數組 140 6.12 使用函數返回值的循環例子 142 6.12.1 程序討論 144 6.12.2 使用具有返回值的函數 144 6.13 關鍵概念 145 6.14 總結 145 6.15 復習題 146 6.16 編程練習 149 第7章 C控制語句:分支和跳轉 152 7.1 if語句 152 7.2 在if語句中添加else關鍵字 154 7.2.1 另一個例子:介紹getchar()和putchar() 155 7.2.2 ctype.h系列字符函數 157 7.2.3 多重選擇elseif 158 7.2.4 把else與if配對 160 7.2.5 多層嵌套的if 161 7.3 獲得邏輯性 164 7.3.1 改變拼寫法:is0646.h頭文件 166 7.3.2 優先級 166 7.3.3 求值的順序 166 7.3.4 范圍 167 7.4 -個統計字數的程序 168 7.5 條件運算符?: 170 7.6 循環輔助手段:continue和break 172 7.6.1 continue語句 172 7.6.2 break語句 174 7.7 多重選擇:switch和break 175 7.7.1 使用switch語句 177 7.7.2 只讀取一行的首字符 178 7.7.3 多重標簽 178 7.7.4 switch和ifelse 180 7.8 goto語句 180 7.9 關鍵概念 183 7.10 總結 183 7.11 復習題 184 7.12 編程練習 186 第8章 字符輸入輸出和輸入確認 188 8.1 單字符I/O:getchar()和putchar() 188 8.2 緩沖區 189 8.3 終止鍵盤輸入 190 8.3.1 文件、流和鍵盤輸入 190 8.3.2 文件結尾 191 8.4 重定向和文件 192 8.5 創建一個更友好的用戶界面 196 8.5.1 使用緩沖輸入 196 8.5.2 混合輸入數字和字符 198 8.6 輸入確認 200 8.6.1 分析程序 203 8.6.2 輸入流和數值 204 8.7 菜單瀏覽 204 8.7.1 任務 205 8.7.2 使執行更順利 205 8.7.3 混合字符和數值輸入 207 8.8 關鍵概念 209 8.9 總結 209 8.10 復習題 210 8.11 編程練習 210 第9章 函數 212 9.1 函數概述 212 91.1 編寫和使用一個簡單的函數 213 9.1.2 程序分析 214 9.1.3 函數參數 215 9.1.4 定義帶有參數的函數:形式參量 216 9.1.5 帶參數函數的原型聲明 217 9.1.6 調用帶有參數的函數:實際參數 217 9.1.7 黑盒子觀點 218 9.1.8 使用retum從函數中返回一個值 218 9.1.9 函數類型 221 9.2 ANSIC的函數原型 221 9.2.1 產生的問題 222 9.2.2 ANSI的解決方案 222 9.2.3 無參數和不確定參數 224 9.2.4 函數原型的優點 224 9.3 遞歸 224 9.3.1 遞歸的使用 224 9.3.2 遞歸的基本原理 226 9.3.3 尾遞歸 226 9.3.4 遞歸和反向計算 228 9.3.5 遞歸的優缺點 229 9.4 多源代碼文件程序的編譯 230 9.4.1 UNIX 230 9.4.2 Linux 230 9.4.3 DOS命令行編譯囂 230 9.4.4 Windows和Macintosh編譯器 230 9.4.5 頭文件的使用 231 9.5 地址運算符:& 233 9.6 改變調用函數中的變量 235 9.7 指針簡介 236 9.7.1 間接運算符:* 237 9.7.2 指針聲明 237 9.7.3 使用指針在函數間通信 238 9.8 關鍵概念 241 9.9 總結 242 9.10 復習題 242 9.1 l編程練習 243 第10章 數組和指針 244 10.1 數組 244 10.1.1 初始化 244 10.1.2 j 定初始化項目(C99) 248 10.1.3 為數組賦值 249 10.1.4 數組邊界 249 10.1.5 指定數組大小 250 10.2 多維數組 251 10.2.1 初始化二維數組 253 10.2.2 更多維數的數組 254 10.3 指針和數組 254 10.4 函數、數組和指針 256 10.4.1 使用指針參數 258 10.4.2 評論:指針和數組 260 10.5 指針操作 260 10.6 保護數組內容 263 10.6.1 對形式參量使用const 264 10.6.2 有關const的其他內容 265 10.7 指針和多維數組 267 10.7.1 指向多維數組的指針 268 10.7.2 指針兼容性 269 10.7.3 函數和多維數組 270 10.8 變長數組(VLA) 273 10.9 復合文字 276 1O.10 關鍵概念 278 10.11 總結 278 10.12 復習題 279 10.13 編程練習 281 第11章 字符串和字符串函數 282 11.1 字符串表示和字符串I/O 282 11.1.1 在程序中定義字符串 283 11.1.2 指針和字符串 288 11.2 字符串輸入 289 11.2.1 創建存儲空間 289 11.2 ,2gets()函數 289 11.2.3 fgets()函數 291 11.2.4 scanf()函數 292 11.3 字符串輸出 293 11.3.1 puts()函數 293 11.3.2 fputs()函數 294 11.3.3 printf()函數 294 11.4 自定義字符串輸入/輸出函數 295 11.5 字符串函數 297 11.5.1 sttien()畫數 297 11.5.2 strcat()函數 298 11.5.3 strncat()函數 299 11.5.4 strcmp()函數 299 11.5.5 strncmp()變種 303 11.5.6 strcpy()和stmcpy()函數 303 11.5.7 sprintf()函數 307 11.5.8 其他字符串函數 307 11.6 字符串例子:字符串排序 309 11.6.1 排序指針而不是字符串 310 11.6.2 選擇排序算法 310 11.7 ctype.h字符函數和字符串 311 11.8 命令行參數 312 11.8.1 集成環境下的命令行參數 314 11.8.2 Macintosh的命令行參數 314 11.9 把字符串轉換為數字 314 11.1 O關鍵概念 316 11.11 總結 316 11.12 復習題 317 11.13 編程練習 319 第12章 存儲類、鏈接和內存管理 321 12.1 存儲類 321 12.1.1 作用域 321 12.1.2 鏈接 323 12.1.3 存儲時期 323 12.1.4 自動變量 324 12.1.5 寄存器變量 326 12.1.6 具有代碼塊作用域的靜態變量 327 12.1.7 具有外部鏈接的靜態變量 328 12.1.8 具有內部鏈接的靜態變量 331 12.1.9 多文件 332 12.2 存儲類說明符 332 12.3 存儲類和函數 334 12.4 隨機數函數和靜態變量 335 12.5 擲骰子 337 12.6 分配內存:malloc()和free() 340 12.6.1 free()的重要性 343 12.6.2 函數calloc() 343 12.6.3 動態內存分配與變長數組 344 12.6.4 存儲類與動態內存分配 344 12.7 ANSIC的類型限定詞 345 12.7.1 類型限定詞const 345 12.7.2 類型限定詞volatile 347 12.7.3 類型限定詞festrict 347 12.7.4 舊關鍵字的新位置 348 12.8 關鍵概念 348 12.9 總結 349 12.10 復習題 350 12.11 編程練習 351 第13章 文件輸入輸出 354 13.1 和文件進行通信 354 13.1.1 文件是什么 354 13.1.2 文本視圖和二進制視圖 355 13.1.3110 級別 355 13.1.4 標準文件 355 13.2 標準I/0 356 13.2.1 檢查命令行參數 357 13.2.2 fopen()函數 357 13.2.3 getc()函數和putc()函數 358 13.2.4 文件結尾 358 13.2.5 fclose()函數 359 13.2.6 標準文件指針 359 13.3 -個簡單的文件壓縮程序 360 13.4 文件I/O:fprintf()、fscanf()、fgets()和fputs()函數 361 13.4.1 fprintf()和fscanf()函數 361 13.4.2 fgets()和fputs()函數 362 13.4.3 注釋:gets()函數和fgets()函數 364 13.5 隨機存取:fseek()和ftell()函數 364 13.5.1 fseek()和ftell()如何工作 365 13.5 ,2二進制模式和文本模式 366 13.5.3 可移植性 366 13.5.4 fgetpos()和fsetpos()函數 367 13.6 標準I/O內幕 367 13.7 其他標準I/O函數 368 13.7.1 intungetc(intc,FILE*fp)函數 368 13.7.2 intfflush()函數 368 13.7.3 intsetvbuf()函數 368 13.7.4 二進制I/O:fread()和fwrite()函數 369 13.7.5 size_tfwrite()函數 369 13.7.6 size_tfread()函數 370 13.7.7 intfeof(FILE*fp)和intferror(FILE*fp)函數 370 13.7.8 -個fread()和fwrite()的例子 370 13.7.9 使用二進制I/O進行隨機存取 372 13.8 關鍵概念 374 13.9 總結 374 13.10 復習題 375 13.11 編程練習 376 第14章 結構和其他數據形式 378 14.1 示例問題:創建圖書目錄 378 14.2 建立結構聲明 379 14.3 定義結構變量 380 14.3.1 初始化結構 381 14.3.2 訪問結構成員 381 14.3.3 結構的指定初始化項目 382 14.4 結構數組 382 14.4.1 聲明結構教組 384 14.4.2 標識結構數組的成員 384 14.4.3 程序討論 385 14.5 嵌套結構 385 14.6 指向結構的指針 387 14.6.1 聲明和初始化結構指針 388 14.6.2 使用指針訪問成員 388 14.7 向函數傳遞結構信息 389 14.7.1 傳遞結構成員 389 14.7.2 使用結構地址 390 14.7.3 把結構作為參數傳遞 391 14.7.4 其他結構特性 391 14.7.5 結構還是指向結構的指針 394 14.7.6 在結構中使用字符數組還是字符指針 395 14.7.7 結構、指針和malloc() 395 14.7.8 復合文字和結構(C99) 397 14.7.9 伸縮型數組成員(C99) 398 14.7.10 使用結構數組的函數 400 14.8 把結構內容保存到文件中 401 14.8.1 一個結構保存的實例 402 14.8.2 程序要點 404 14.9 結構:下一步是什么 405 14.10 聯合簡介 405 14.11 枚舉類型 407 14.11.1 enum常量 408 14.11.2 默認值 408 14.11.3 指定值 408 14.11.4 enum用法 408 14.11.5 共享的名字空間 410 14.12 typedef簡介 410 14.13 奇特的聲明 412 14.14 函數和指針 413 14.15 關鍵概念 418 14.16 總結 418 14.17 復習題 419 14.18 編程練習 421 第15章 位操作 423 15.1 二進制數、位和字節 423 15.1.1 二進制整數 424 15.1.2 有符號整數 424 15.1.3 二進制浮點數 424 15.2 其他基數 425 15.2.1 八進制 425 15.2.2 十六進制 425 15.3 C的位運算符 426 15.3.1 位邏輯運算符 426 15.3.2 用法:掩碼 428 15.3.3 用法:打開位 428 15.3.4 用法:關閉位 428 15.3.5 用法:轉置位 429 15.3.6 用法:查看一位的值 429 15.3.7 移位運算符 429 15.3.8 編程實例 430 15.3.9 另一個實例 432 15.4 位字段 434 15.4.1 位字段實例 435 15.4.2 位字段和位運算符 437 15.5 關鍵概念 443 15.6 總結 443 15.7 復習題 443 15.8 編程練習 444 第16章 C預處理器和C庫 446 16.1 翻譯程序的第一步 446 16.2 明顯常量:#difine 447 16.2.1 語言符號 449 16.2.2 重定義常量 450 16.3 在#define中使用參數 450 16.3.1 利用宏參數創建字符串:#運算符 452 16.3.2 預處理器的粘合劑:##運算符 453 16.3.3 可變宏:...和__VA_ARGS__ 454 16.4 宏還是函數 455 16.5 文件包含:#include 455 16.5.1 頭文件:一個實例 456 16.5.2 使用頭文件 458 16.6 其他指令 459 16.6.1 #undef指令 459 16.6.2 已定義:C預處理器的觀點 459 16.6.3 條件編譯 459 16.6.4 預定義宏 463 16.6.5 #line和#error 464 16.6.6 #pragma 464 16.7 內聯函數 465 16.8 C庫 467 16.8.1 訪問C庫 467 16.8.2 參考庫描述 467 16.9 數學庫 468 16.10 通用工具庫 471 16.10.1 exit()和atexit()函數 471 16.10.2 qsort()函數 472 16.11 診斷庫 476 16.12 string.h庫中的memcpy()和memmove() 477 16.13 可變參數:stdarg.h 478 16.14 關鍵概念 480 16.15 總結 481 16.16 復習題 481 16.17 編程練習 482 第17章 高級數據表示 484 17.1 研究數據表示 484 17.2 從數組到鏈表 486 17.2.1 使用鏈表 488 17.2.2 反思 491 17.3 抽象數據類型(ADT) 492 17.3.1 變得抽象 492 17.3.2 構造接口 493 17.3.3 使用接口 496 17.3.4 實現接口 498 17.4 隊列ADT 504 17.4.1 定義隊列抽象數據類型 504 17.4.2 定義接口 504 17.4.3 實現接口的數據表示 505 17.4.4 測試隊列 511 17.5 用隊列進行模擬 513 17.6 鏈表與數組 517 17.7 二叉搜索樹 519 17.7.1 二叉樹ADT 520 17.7.2 二叉搜索樹的接口 520 17.7.3 二叉樹的實現 522 17.7 ,4試用樹 533 17.7.5 樹的思想 536 17.8 其他說明 537 17.9 關鍵概念 537 17.10 總結 538 17.11 復習題 538 17.12 編程練習 538 附錄A復習題答案 540 附錄B參考資料 570 B.1 參考資料l:參閱書籍 570 B.2 參考資料2:C運算符 572 B.3 參考資料3:基本類型和存儲類 576 B.4 參考資料4:表達式、語句和程序流 579 B.5 參考資料5:添加了C99的標準ANSIC庫 584 B.6 參考資料6:擴展的整數類型 614 B.7 參考資料7:擴展的字符支持 617 B.8 參考資料8:C99的數值計算增強 620 B.9 參考資料9:C和C++的差別 622 |
是我覺得這里下載的速度比CSDN慢許多了,并且只能上傳10M的文件。總共65M呢!還是建議去CSDN下載其余3個文件吧。 |
csdn積分不好掙呀 |
這本書一共分為4個部分,就第一部分是要10分的所以我把它上傳到這里了,其它3部分都是0分下載的。 |
thanks |
Good Book for reference.......... |
very good |
謝謝! |
資料不錯啊!謝謝! |
謝謝。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。! |
感謝分享! |