[www.ed2k.online]下載基地為您提供軟件、遊戲、圖書、教育等各種資源的ED2K電驢共享下載和MAGNET磁力鏈接下載。
設為首頁
加入收藏
首頁 圖書資源 軟件資源 游戲資源 教育資源 其他資源
 電驢下載基地 >> 图书资源 >> 計算機與網絡 >> 《C語言開發手冊(典藏版)》掃描版[PDF]
《C語言開發手冊(典藏版)》掃描版[PDF]
下載分級 图书资源
資源類別 計算機與網絡
發布時間 2017/7/10
大       小 -
《C語言開發手冊(典藏版)》掃描版[PDF] 簡介: 中文名 : C語言開發手冊(典藏版) 作者 : 薛園園 圖書分類 : 網絡 資源格式 : PDF 版本 : 掃描版 出版社 : 電子工業出版社 書號 : 9787121121203 發行時間 : 2011年3月25日 地區 : 大陸 語言 : 簡體中文 簡介 : 評論處1樓有網盤鏈接 內容介紹:  
電驢資源下載/磁力鏈接資源下載:
全選
"《C語言開發手冊(典藏版)》掃描版[PDF]"介紹
中文名: C語言開發手冊(典藏版)
作者: 薛園園
圖書分類: 網絡
資源格式: PDF
版本: 掃描版
出版社: 電子工業出版社
書號: 9787121121203
發行時間: 2011年3月25日
地區: 大陸
語言: 簡體中文
簡介:



評論處1樓有網盤鏈接
內容介紹:
   毋庸置疑,c語言從產生到現在的各個階段,都是最重要和最流行的編程語言之一。熟悉和掌握c語言程序設計,已經成為程序員的一門必修課。本書言簡意赅、通俗易懂,知識點覆蓋全面,詳細介紹了c語言的程序設計及最新的c語言編程技術。
   《c語言開發手冊(典藏版)》分4篇,共29章,分別介紹了c語言基礎、c語言進階、c語言的接口技術和現代c語言的擴展。首先,介紹了c語言及其開發環境,並全面介紹了c語言的基本語法知識;接著,詳細講解了c語言的一些高級程序應用;然後,介紹了c語言與其他主流編程語言的接口;最後,講解了現代c語言的一些擴展應用和高級技術。
   《c語言開發手冊(典藏版)》結構安排緊湊、講解詳細、實例豐富。c語言程序設計的初學者通過本書可以快速掌握c語言程序設計方法。同時,本書對現代c語言程序的接口和高級技術進行了全面講解,對具有一定開發經驗的設計人員也有非常好的參考價值。本書可以作為c語言初學者的入門教材,也可作為c語言程序員的參考手冊,還可作為大中專院校學生及電腦培訓班的參考書。
內容截圖:



目錄:


第1篇 c語言基礎篇
第1章 c語言概述 2
c語言是現代應用最為廣泛的編程語言,深受廣大程序員的喜愛。本章將簡要介紹c語言的產生發展、c語言的特點、標准及c語言流程等內容。並通過一個完整的例子演示c程序開發過程中的項目創建、源代碼編寫、編譯及調試的全過程。同時,將分析c語言程序構成特點。
1.1 c語言發展歷史 2
1.2 c語言的特點 3
1.2.1 c語言的基本特點 3
1.2.2 c語言的優點 4
1.2.3 c語言的缺點 5
1.3 c語言的標准 5
1.3.1 c標准概述 5
1.3.2 c語言的新標准 6
1.3.3 編譯器對c標准的支持 10
1.4 c語言開發流程 11
1.4.1 功能分析 11
1.4.2 劃分任務 11
1.4.3 編寫源代碼 12
1.4.4 編譯和鏈接 12
1.4.5 修改源代碼 13
1.4.6 功能測試 13
.1.4.7 發布程序 13
1.4.8 維護和修改 13
1.5 第一個c程序 13
1.5.1 創建項目 14
1.5.2 輸入源代碼 15
1.5.3 編譯鏈接 16
1.5.4 調試 16
1.6 c程序構成分析 17
1.6.1 頭文件 17
1.6.2 主函數 17
1.6.3 其他組成部分 18
1.7 良好的編程規范 21
1.7.1 完備和詳盡的程序注釋 21
1.7.2 整齊的代碼書寫格式 21
1.7.3 簡潔清晰的命名 22
1.8 c語言在不同領域的擴展應用 22
1.8.1 單片機方面 22
1.8.2 labview方面 22
1.8.3 labwindows/cvi方面 23
1.8.4 matlab方面 23
1.8.5 javascript方面 23
1.8.6 並行計算方面 24
1.8.7 linux平台 24
1.9 小結 24
第2章 典型的c語言開發環境 25
c語言的成功及大范圍的應用也造就了豐富的c語言編譯器。對於用戶來說,學習c語言要緊密結合c編譯器或者c集成開發環境來進行。程序員要想快速高效地開發c程序,必須首先熟悉c語言開發環境的使用。本章將介紹幾種主流的c語言開發環境。
2.1 c語言開發環境簡介 25
2.1.1 c語言開發環境的構成 25
2.1.2 典型的c語言開發環境 26
2.2 使用turbo c開發 30
2.2.1 turbo c的開發環境簡介 30
2.2.2 turbo c的配置文件 31
2.2.3 用turbo c創建c程序 31
2.2.4 編譯鏈接程序 32
2.2.5 運行程序 33
2.3 使用visual studio開發 34
2.3.1 microsoft visual c++的開發環境簡介 34
2.3.2 使用visual studio 2008創建c程序 35
2.3.3 編譯鏈接程序 38
2.3.4 調試運行程序 38
2.4 使用dev-c++開發 38
2.4.1 dev-c++的開發環境簡介 39
2.4.2 dev-c++開發環境的設置 39
2.4.3 使用dev-c++創建c程序 41
2.4.4 編譯和運行程序 41
2.4.5 升級dev-c++ 42
2.5 使用code::blocks開發 42
2.5.1 code::blocks的開發環境簡介 42
2.5.2 code::blocks開發環境的設置 43
2.5.3 使用code::blocks創建c程序 45
2.5.4 編譯運行程序 46
2.6 小結 46
第3章 c語言數據類型 47
應用程序一般在計算機的內存中運行,對各種數據進行操作。c語言中的數據具有不同的類型,用於不同對象的表示。數據是c語言基本的操作對象。本章將首先介紹內存中程序和數據的存儲,然後將介紹c語言中各種數據類型及其特點。
3.1 數據的存儲 47
3.1.1 內存單元 47
3.1.2 數據的存儲 48
3.1.3 程序在內存中的映射 49
3.2 數據類型簡介 49
3.2.1 基本類型 49
3.2.2 構造類型 51
3.2.3 指針類型 51
3.2.4 空類型 51
3.3 標識符和關鍵字 51
3.3.1 標識符 52
3.3.2 關鍵字 52
3.4 分隔符 53
3.4.1 單分隔符 54
3.4.2 組合分隔符 54
3.5 常量 54
3.5.1 直接常量 54
3.5.2 符號常量 55
3.6 變量 58
3.6.1 變量聲明 58
3.6.2 變量初始化 59
3.7 整型數據 60
3.7.1 整型數據的聲明 60
3.7.2 整型數據的存儲 61
3.7.3 整型常量 65
3.7.4 整型數據的輸入 66
3.7.5 整型數據的輸出 68
3.8 字符型數據 69
3.8.1 字符型變量的聲明 69
3.8.2 字符型的存儲 70
3.8.3 字符型常量 71
3.8.4 轉義字符 72
3.8.5 字符型數據的輸入 73
3.8.6 字符型數據的輸出 74
3.9 浮點型數據 75
3.9.1 浮點型數據的聲明 75
3.9.2 浮點型數據的存儲 76
3.9.3 浮點型常量 77
3.9.4 浮點型數據的輸入 78
3.9.5 浮點型數據的輸出 79
3.10 類型轉換 80
3.10.1 混合運算中的類型轉換 80
3.10.2 強制類型轉換 83
3.11 c99新增數據類型 84
3.12 小結 86
第4章 運算符和表達式 87
第3章介紹了c語言中的基本數據類型,這些是c語言最基本的操作對象。而在第4章中,讀者將了解到最基本的操作方法,即運算符和表達式。在c語言中,通過運算符將常量、變量等操作對象組成表達式,而後,由表達式進一步構成c語句。可以說,運算符和表達式是c語言中最基本的操作方法。
4.1 運算符 87
4.1.1 運算符概述 87
4.1.2 算術運算符 88
4.1.3 賦值運算符 90
4.1.4 關系運算符 92
4.1.5 邏輯運算符 93
4.1.6 條件運算符 94
4.1.7 位運算符 95
4.1.8 其他運算符 98
4.1.9 運算符優先級和結合性 102
4.2 表達式 104
4.2.1 算術表達式 104
4.2.2 賦值表達式 105
4.2.3 逗號表達式 106
4.2.4 關系和邏輯表達式 107
4.3 小結 109
第5章 c語句及流程控制結構 110
第4章介紹了c語言中的運算符和表達式,這些是構成c語句的基本單元。c語句,即c語言中的操作命令,用於使計算機完成特定的功能。一條完整的語句必須以“;”結束。c語言的源程序是由一系列的語句組成的,這些語句可以完成變量聲明、賦值和控制輸入/輸出等操作。由於計算機能識別的是機器指令,因此,編譯系統將一條語句轉換成若干條機器指令來執行。c語言中的語句包括說明語句、表達式語句、循環語句、條件語句、開關語句、復合語句、空語句和返回語句等,下面分別進行介紹。
5.1 說明語句 110
5.2 表達式語句 110
5.3 復合語句 111
5.4 循環語句 112
5.4.1 while循環語句 112
5.4.2 do…while循環語句 113
5.4.3 for循環語句 114
5.5 條件語句 116
5.5.1 單分支if條件結構 116
5.5.2 雙分支if條件結構 116
5.5.3 階梯式if…else…if條件結構 117
5.5.4 if條件結構總結 119
5.6 開關語句 120
5.7 跳轉語句 121
5.7.1 goto跳轉語句 121
5.7.2 break跳轉語句 122
5.7.3 continue跳轉語句 123
5.8 函數調用語句 124
5.9 空語句 125
5.10 返回語句 126
5.11 c語言的流程控制結構 127
5.12 小結 128
第6章 格式化輸入/輸出 129
使用計算機程序解決問題時,需要由用戶輸入數據,通過程序進行運算後,再輸出結果。由此過程可以看到,程序中輸入/輸出占有相當重要的地位。在c語言中,所有的數據輸入/輸出都是由庫函數完成的,因此都是函數語句。在前面各章的實例中,曾使用過printf()函數和scanf()函數進行數據的輸出和輸入。本章將詳細介紹這兩個函數的使用,同時,還將介紹其他一些用於輸入和輸出的函數。
6.1 格式化輸出函數printf() 129
6.1.1 printf()函數的格式 129
6.1.2 printf()函數的格式字符 130
6.1.3 printf()函數的修飾符 131
6.1.4 典型的printf()函數實例 134
6.1.5 動態設置輸出寬度和精度 138
6.1.6 printf()函數的返回值 139
6.1.7 理解輸出列表 140
6.1.8 printf格式化輸出函數綜合實例 142
6.2 格式化輸入函數scanf() 143
6.2.1 scanf()函數的格式 143
6.2.2 scanf()函數格式字符串 145
6.2.3 scanf()函數注意問題 146
6.2.4 scanf()函數的返回值 148
6.2.5 格式化輸入函數scanf()綜合實例 148
6.3 其他常用的輸入/輸出函數 149
6.3.1 字符讀入函數getchar() 149
6.3.2 字符讀入函數getch() 150
6.3.3 字符串讀入函數gets() 151
6.3.4 字符輸出函數putch() 152
6.3.5 字符輸出函數putchar() 153
6.3.6 字符串輸出函數puts() 153
6.3.7 格式化內存緩沖區輸出函數sprintf() 154
6.3.8 格式化內存緩沖區輸入函數sscanf() 155
6.4 小結 156
第7章 數組 157
在前面章節中介紹了c語言的基本數據類型,包括整型、字符型和實型。以這些基本數據類型為基礎,c語言還提供幾種構造數據類型。構造類型數據是由基本類型數據按一定規則組成的,數組就是其中一種構造數據類型。在程序中用循環結構可以很方便地處理數組。本章將詳細介紹c語言中數組的使用。
7.1 了解數組 157
7.1.1 使用數組的好處 157
7.1.2 數組的概念 158
7.1.3 數組的維數 160
7.2 一維數組 161
7.2.1 一維數組的聲明 161
7.2.2 一維數組的存儲 164
7.2.3 一維數組的引用 164
7.2.4 向函數傳遞一維數組 166
7.2.5 一維數組的初始化 166
7.3 二維數組 169
7.3.1 二維數組的聲明 169
7.3.2 二維數組的存儲 170
7.3.3 二維數組的引用 171
7.3.4 二維數組的初始化 173
7.4 字符數組和字符串 175
7.4.1 一維字符串數組 176
7.4.2 了解字符串 177
7.4.3 字符串的操作函數 178
7.4.4 字符串的輸入輸出 179
7.4.5 二維字符串數組 181
7.5 多維數組 182
7.6 數組的基本應用 182
7.6.1 反轉字符串 182
7.6.2 查找最大值 183
7.6.3 數據排序 185
7.7 小結 186
第8章 函數 187
使用c語言編程,就肯定會使用到函數。c語言允許用戶使用一些編譯環境自帶的庫函數,例如使用printf()函數輸出變量的值,使用scanf()函數接收用戶的輸入等。合理使用庫函數可以大大簡化程序設計過程。同時,為了有利於程序的模塊化,促進程序資源的共享。c語言也支持用戶使用自定義函數。本章將詳細介紹函數的概念、調用、作用域等相關知識。
8.1 函數的概念 187
8.1.1 什麼是函數 187
8.1.2 函數的分類 188
8.1.3 函數的定義 189
8.1.4 main()函數 191
8.2 函數的工作過程 192
8.2.1 程序結構 192
8.2.2 函數執行過程 193
8.3 編寫函數 193
8.3.1 函數頭 193
8.3.2 返回類型 194
8.3.3 參數列表 195
8.3.4 函數體 195
8.3.5 函數原型 196
8.4 函數的參數 197
8.4.1 形參和實參 197
8.4.2 參數傳遞過程 198
8.4.3 值調用 198
8.4.4 引用調用 199
8.4.5 數組作為函數參數 201
8.4.6 指針作為函數參數 205
8.4.7 main()函數的參數 206
8.5 函數調用 208
8.5.1 函數調用方式 208
8.5.2 被調函數的說明 209
8.5.3 函數的返回值 210
8.6 幾種典型的函數調用形式 212
8.6.1 賦值調用與引用調用 212
8.6.2 嵌套調用 213
8.6.3 遞歸調用 215
8.7 函數及其變量的作用域 221
8.7.1 函數的作用域 221
8.7.2 函數的變量作用域 221
8.8 小結 222
第9章 指針 223
指針是c語言中廣泛使用的一種數據類型。利用指針可以操作各種基本的數據類型,以及數組等復合數據結構,甚至使用指針還可以訪問函數。正確理解和使用指針對於成功進行c語言程序設計是至關重要的。
指針是c語言最顯著的特征,同時又是c語言最危險的特征。例如,在使用指針的程序中,常常因為用錯指針導致程序出錯,而這類錯誤卻很難發現。更嚴重的是,對未初始化的指針進行操作可能會導致系統崩潰。
9.1 內存和變量 223
9.1.1 計算機內存 223
9.1.2 變量的存儲 224
9.2 指針和簡單變量 225
9.2.1 指針的概念 225
9.2.2 創建指針 226
9.2.3 初始化指針變量 227
9.2.4 指針變量的引用 228
9.2.5 給函數傳遞指針 232
9.3 指針變量的賦值 232
9.3.1 初始化賦值 232
9.3.2 取地址賦值 233
9.3.3 指針之間賦值 233
9.3.4 數組賦值 233
9.3.5 字符串賦值 234
9.3.6 函數入口賦值 234
9.4 指針和數組的關系 234
9.4.1 指針、數組和地址間的關系 234
9.4.2 指針變量的運算 236
9.4.3 用指針操作數組元素 237
9.5 指向多維數組的指針 240
9.5.1 理解二維數組的地址 240
9.5.2 多維數組的指針表示 242
9.5.3 指向多維數組的指針變量 243
9.5.4 數組名作為函數的參數 247
9.5.5 指向數組的指針小結 250
9.6 指針和字符串 251
9.6.1 字符串的指針表示 251
9.6.2 字符串指針作函數參數 253
9.6.3 字符數組和字符指針的區別 254
9.7 指針數組 256
9.7.1 指針數組的概念 256
9.7.2 用指針數組處理字符串 258
9.7.3 指針數組作函數參數 259
9.8 指向指針的指針 261
9.8.1 理解指向指針的指針 261
9.8.2 二級指針變量與數組 263
9.9 指針和函數 268
9.9.1 返回指針的函數 268
9.9.2 指向函數的指針 269
9.10 指針和const變量 272
9.10.1 用const控制指針 273
9.10.2 const的幾種特殊用法 274
9.11 指針總結 274
9.11.1 明確分辨各種指針類型 275
9.11.2 正確理解指針 275
9.12 小結 276
第10章 結構 277
在實際的程序設計中,經常需要處理具有不同數據類型的一組數據。例如,在學生成績統計表中,應該包含如下幾項:姓名(字符型)、學號(整型或字符型)、年齡(整型)、性別(字符型)和成績(整型或浮點型)。由於數組中各元素的類型和長度都必須一致,因此不能用一個數組存放這一組數據。在這種情況下,c語言中可以使用“結構”,這是一種構造數據類型,相當於其他高級語言中的記錄類型。
10.1 結構的定義 277
10.2 結構變量的定義 278
10.2.1 先定義結構,再定義結構變量 279
10.2.2 在定義結構的同時,定義結構變量 279
10.2.3 直接說明結構變量 279
10.3 結構變量的使用 280
10.4 結構變量的初始化 281
10.5 結構數組 283
10.5.1 結構數組的定義和引用 283
10.5.2 結構數組的初始化 285
10.5.3 結構數組實例 285
10.6 結構指針 286
10.6.1 定義結構指針 286
10.6.2 結構指針的引用 287
10.6.3 用指針處理結構數組 289
10.7 嵌套結構 291
10.7.1 包含數組的結構 291
10.7.2 包含指針的結構 292
10.7.3 包含結構的結構 292
10.8 向函數傳遞結構 296
10.8.1 傳遞結構變量的值 296
10.8.2 傳遞結構指針到函數 297
10.9 小結 298
第11章 聯合、枚舉和位域 299
在c語言中,除了數組和指針外,還定義了聯合和枚舉兩種聚合數據類型,並且可以進行類型說明和定義位域,這些是特殊形式的數據類型。下面分別進行講解。
11.1 聯合 299
11.1.1 定義聯合類型 299
11.1.2 定義聯合變量 300
11.1.3 聯合變量成員的引用 301
11.1.4 聯合變量數組 301
11.1.5 聯合變量指針 302
11.1.6 在結構中嵌套聯合類型 303
11.1.7 結構和聯合的區別 305
11.2 枚舉 306
11.2.1 定義枚舉類型 306
11.2.2 定義枚舉變量 307
11.2.3 枚舉類型變量的賦值 308
11.3 類型說明 310
11.4 二進制數據存儲 311
11.4.1 數據的存儲 312
11.4.2 不同數據類型的二進制表示 312
11.5 位運算 315
11.5.1 位邏輯運算符 315
11.5.2 移位運算符 318
11.5.3 位運算的復合賦值運算符 318
11.5.4 位運算的用途 319
11.6 位域 320
11.6.1 定義位域結構 320
11.6.2 位域變量的聲明 321
11.6.3 位域的使用 322
11.6.4 位域與聯合的使用 323
11.7 小結 324
第12章 預處理 325
c語言的程序中可包括各種以符號#開頭的編譯指令,這些指令稱為預處理命令。預處理命令屬於c語言編譯器,而不是c語言的組成部分。通過預處理命令可擴展c語言程序設計的環境。
預處理命令通常在程序編譯時進行一些符號處理,其並不執行具體的硬件操作。c語言中的預處理命令主要有宏定義指令、文件包含指令和條件編譯指令,還有其他一些調試時使用的指令。本章將介紹預處理程序各命令的使用方法。
12.1 預處理簡介 325
12.1.1 預處理功能 325
12.1.2 預處理命令 325
12.2 宏定義命令 326
12.2.1 無參數的宏定義 326
12.2.2 帶參數的宏定義 329
12.2.3 #undef命令 331
12.2.4 預處理操作符#和## 331
12.3 文件包含指令 334
12.4 條件編譯指令 335
12.4.1 #if、#else、#endif命令 336
12.4.2 #elif命令 337
12.4.3 #ifdef、#ifndef命令 339
12.4.4 使用#defined和#undef 340
12.5 其他預處理命令 340
12.5.1 預定義的宏名 340
12.5.2 重置行號和文件名命令#line 341
12.5.3 修改編譯器設置命令#pragma 342
12.5.4 產生錯誤信息命令#error 342
12.6 內聯函數 343
12.7 小結 344
第13章 存儲管理 345
在大多數情況下,存儲管理都是操作系統的功能。一般的程序設計語言不提供對內存的管理。而c語言提供了管理內存的相關函數,可實現內存的動態存儲管理。這是c語言功能強大的一個表現,本章將介紹c語言的內存組織方式和動態存儲管理。
13.1 內存組織方式 345
13.1.1 內存組織方式 345
13.1.2 堆和棧的比較 346
13.2 c語言的動態存儲管理 347
13.3 分配內存函數——malloc() 347
13.4 帶初始化的分配內存函數——calloc() 349
13.5 調整已分配內存函數——realloc() 350
13.6 釋放分配的內存函數——free() 352
13.7 丟失的內存 354
13.8 小結 356
第2篇 c語言進階篇
第14章 字符及字符串操作 358
在實際的程序設計中,經常需要處理文本數據。在c語言中,文本數據按字符串格式保存。對於字符串,前面已經介紹過如何用字符數組保存字符串、用字符指針指向一個字符串常量、字符串的輸入與輸出函數等。
在c語言的庫函數中提供了豐富的處理字符及字符串的函數,本章將介紹這些函數的用法。
14.1 字符的操作 358
14.1.1 檢查英文字母函數 359
14.1.2 檢查字母數字函數 360
14.1.3 檢查控制字符函數 360
14.1.4 十進制數字檢查函數 361
14.1.5 可打印字符檢查函數 362
14.1.6 包含空格的可打印字符檢查函數 363
14.1.7 格式字符檢查函數 364
14.1.8 小寫英文字母檢查函數 365
14.1.9 大寫英文字母檢查函數 366
14.1.10 控制字符檢查函數 367
14.1.11 十六進制數字檢查函數 368
14.1.12 大寫字符轉換函數 368
14.1.13 小寫字符轉換函數 369
14.1.14 ascii字符轉換函數 370
14.1.15 大寫字符宏轉換函數 371
14.1.16 小寫字符宏轉換函數 371
14.2 字符串的存儲 372
14.2.1 字符串的靜態存儲 372
14.2.2 字符串的動態存儲 373
14.3 字符串的操作 374
14.4 檢測字符串長度函數 375
14.5 查找字符串 376
14.5.1 查找字符位置函數——strchr() 376
14.5.2 查找相同字符函數——strspn() 378
14.5.3 查找包含字符位置函數——strcspn() 378
14.5.4 查找包含字符函數——strpbrk() 379
14.5.5 查找子串函數——strstr() 380
14.5.6 字符查找函數——memchr() 381
14.5.7 字符包含函數——strrchr() 382
14.6 比較字符串 383
14.6.1 比較字符串函數——strcmp() 383
14.6.2 比較部分字符串函數——memcmp() 384
14.6.3 比較時忽略大小寫函數——stricmp() 386
14.6.4 包含結束符的比較函數——strncmp() 387
14.7 連接字符串 388
14.7.1 連接字符串函數——strcat() 388
14.7.2 連接部分字符函數——strncat() 390
14.8 復制字符串 391
14.8.1 復制字符串函數——strcpy() 391
14.8.2 復制部分字符函數——strncpy() 392
14.8.3 更省事的復制函數——strdup() 393
14.8.4 字符串復制函數——memcpy() 394
14.8.5 帶終止字符的復制函數——memccpy() 395
14.8.6 字符串移動函數——memmove() 395
14.9 字符和字符串的轉換 396
14.9.1 大小寫字符的轉換 396
14.9.2 轉換大小寫字符串 397
14.9.3 字符串與數值的轉換 398
14.10 其他字符串函數 399
14.10.1 字符串反轉函數——strrev() 399
14.10.2 替換字符串中的字符函數——strset() 400
14.10.3 分解字符串函數——strtok() 401
14.10.4 字符串填充函數——memset() 402
14.11 小結 403
第15章 文件操作 404
在前面各章的實例程序中,每次執行程序時,需要用戶從鍵盤上輸入數據,並將程序運行結果輸出到屏幕上。在實際的應用中,可能需要將計算機的處理結果打印輸出或保存到一個文件中,以供其他用戶查看。當程序需要處理大量數據時,可能還需要從一個文件中讀取這些數據。c語言提供了豐富的文件操作函數。本章將介紹操作文件的常用函數。
15.1 文件與數據流 404
15.1.1 程序的輸入/輸出概念 404
15.1.2 流的概念 404
15.1.3 預定義的流 405
15.1.4 文件的基本概念 405
15.1.5 緩沖文件系統 406
15.2 文件的打開與關閉 406
15.2.1 文件指針 406
15.2.2 打開文件函數——fopen() 407
15.2.3 關閉文件函數——fclose() 409
15.3 從文件中讀寫字符 409
15.3.1 寫字符函數——putc()和fputc() 410
15.3.2 讀字符函數——getc()和fgetc() 411
15.3.3 合並文件 413
15.4 從文件中讀寫字符串 414
15.4.1 寫字符串函數——fputs() 414
15.4.2 讀字符串函數——fgets() 416
15.4.3 文件格式輸出函數——fprintf() 417
15.4.4 文件格式輸入函數——fscanf() 418
15.5 二進制文件的讀寫 420
15.5.1 寫入整型數據函數——putw() 421
15.5.2 讀取整型數據函數——getw() 422
15.5.3 寫數據塊函數——fwrite() 423
15.5.4 讀數據塊函數——fread() 425
15.5.5 文件檢測函數 426
15.6 文件的隨機讀寫 427
15.6.1 獲取當前位置函數——ftell() 427
15.6.2 重置文件位置指針函數——rewind() 429
15.6.3 設置文件位置指針——fseek()函數 430
15.7 管理緩沖區 432
15.8 輸入/輸出的重定向 433
15.8.1 操作系統的重定向功能 433
15.8.2 重定向輸出 434
15.8.3 重定向函數——freopen() 435
15.9 文件管理 436
15.9.1 重命名文件 436
15.9.2 刪除文件 437
15.9.3 復制文件 438
15.9.4 創建臨時文件 439
15.10 小結 441
第16章 典型庫函數應用 442
前面曾經介紹過c語言中的字符及字符串處理函數。在實際應用中,其實還有很多其他方面的應用。例如數學運算或繪圖程序中需要用到大量的數學函數,而另一些程序中可能需要處理日期和時間類的數據等。在c語言中,還提供了一些庫函數用於數學和時間處理等。本章將介紹c語言程序設計中,這些典型的庫函數應用。
16.1 隨機函數 442
16.1.1 偽隨機函數——rand() 442
16.1.2 隨機種子函數——srand() 443
16.1.3 更加合理的隨機數產生方法 444
16.1.4 獲取任意范圍的隨機數 445
16.1.5 獲取隨機字符 446
16.2 數學函數 447
16.2.1 絕對值函數 448
16.2.2 三角函數 448
16.2.3 雙曲三角函數 449
16.2.4 指數函數和對數函數 450
16.2.5 取整函數 452
16.2.6 浮點型分離函數 453
16.2.7 冪函數 454
16.2.8 取余函數 454
16.2.9 c99中擴展的數學函數 455
16.3 日期時間函數 455
16.3.1 表示日期時間的數據結構 455
16.3.2 獲取日期時間 456
16.3.3 轉換日期時間的表示形式 457
16.3.4 格式化日期時間 460
16.4 小結 463
第17章 模塊化程序設計方法 464
c語言提供支持模塊化軟件開發的功能,如c語言的程序整體由一個或多個函數組成,每個函數都具有各自獨立的功能。這些函數還可分布在不同的源文件中,在需要時包含到c主程序中即可。c語言還允許通過使用不同存儲類別的變量,控制模塊內部及外部的信息交換。
本章首先簡單介紹模塊化設計的概念,接著介紹c程序模塊的結構,最後詳細介紹c語言中不同存儲類別變量的使用。
17.1 模塊化程序設計概念 464
17.2 程序模塊結構 465
17.2.1 c程序的組織 465
17.2.2 多文件模塊的編譯鏈接 467
17.2.3 文件包含 470
17.2.4 內部函數與外部函數 471
17.3 變量的作用域 472
17.3.1 局部變量 472
17.3.2 在復合語句中的變量 473
17.3.3 全局變量 474
17.3.4 全局變量和局部變量同名 477
17.4 變量的存儲類型 477
17.4.1 了解存儲類型 478
17.4.2 自動變量 478
17.4.3 寄存器變量 480
17.4.4 外部變量 481
17.4.5 靜態變量 482
17.5 函數、文件、變量的關系 485
17.6 小結 486
第18章 典型算法應用 487
算法是對特定問題求解步驟的描述。對於同一個問題,可能用不同算法來求解,程序員可根據算法的可讀性、效率等進行取捨。針對不同的數據保存方式,也會有不同的算法。本章將重點介紹c語言程序設計中的常用算法,也會穿插著簡單介紹常用數據和數據結構的內容。
18.1 排序 487
18.1.1 排序概述 487
18.1.2 冒泡排序法 488
18.1.3 選擇排序法 489
18.1.4 插入排序法 491
18.1.5 shell排序法 492
18.1.6 快速排序法 494
18.1.7 字符串數組的排序 496
18.1.8 字符串的排序 498
18.2 查找 499
18.2.1 順序查找 499
18.2.2 折半查找 501
18.3 隊列 503
18.3.1 隊列的概念 504
18.3.2 隊列的操作 504
18.4 堆棧 508
18.4.1 堆棧的概念 508
18.4.2 堆棧的實現 508
18.5 鏈表 512
18.5.1 鏈表的概念 512
18.5.2 鏈表的基本操作 513
18.5.3 測試鏈表的功能 517
18.6 小結 518
第19章 圖形繪制 519
到目前為止,本書所有的操作都是針對文本模式進行的。從本章開始將帶領讀者進入一個新的模式——圖形模式,主要介紹圖形顯示的相關技術,包括各種圖形的繪制及圖形的編輯。本章介紹的是dos界面下的圖形編譯,將使用djgpp開發環境編寫相關程序。
19.1 顯示系統簡介 519
19.1.1 顯示系統基本概念 519
19.1.2 顯示卡種類 520
19.1.3 顯示模式 520
19.2 djgpp開發環境 522
19.2.1 下載djgpp開發環境 522
19.2.2 安裝djgpp開發環境 523
19.2.3 測試djgpp開發環境 524
19.2.4 調用中斷服務 525
19.3 繪圖基礎 526
19.3.1 設置顯示模式 527
19.3.2 控制顯示緩沖區 527
19.4 圖形函數 528
19.4.1 繪制點 528
19.4.2 讀取點的信息 529
19.4.3 繪制直線 530
19.4.4 繪制矩形 532
19.4.5 繪制圓 532
19.4.6 繪制多邊形 534
19.5 編輯圖形 536
19.5.1 復制圖形 536
19.5.2 移動圖形 536
19.5.3 保存圖形 537
19.5.4 載入圖形 537
19.6 小結 539
第20章 鼠標控制 540
在前面的程序設計中,需要進行人機交互的時候都是采用鍵盤輸入的。除鍵盤之外,鼠標是計算機中用得最多的輸入設置。特別是windows操作系統的普及,使鼠標成為了計算機一個必備的輸入設備。本章將介紹在c語言中控制鼠標的方法。
20.1 鼠標驅動程序 540
20.1.1 通過中斷訪問鼠標驅動程序 540
20.1.2 djgpp開發環境對中斷的支持 541
20.2 鼠標庫函數 541
20.2.1 定義頭文件mouse.h 541
20.2.2 通過中斷控制鼠標 542
20.2.3 初始化鼠標 543
20.2.4 復位鼠標 544
20.2.5 移動鼠標 544
20.2.6 顯示鼠標指針 545
20.2.7 隱藏鼠標指針 545
20.2.8 獲取按下的按鍵信息 546
20.2.9 獲取釋放的按鍵信息 546
20.2.10 獲取鼠標狀態信息 547
20.2.11 獲取鼠標指針位置信息 548
20.2.12 保存鼠標指針位置 548
20.2.13 捕獲鍵盤或鼠標 549
20.2.14 鼠標指針區域 550
20.3 鼠標應用實例 551
20.3.1 了解屏幕函數 551
20.3.2 實例程序 552
20.4 小結 554
第3篇 c語言接口篇
第21章 c語言與匯編的接口 556
c語言的強大在於其和現代很多主流的編程語言都可以進行嵌套編程,各種編程語言都提供了和c語言的接口。從本章開始,將介紹目前主流的編程語言與c語言的接口方式及程序設計。
21.1 at&t匯編簡介 556
21.1.1 了解匯編的兩種格式 556
21.1.2 將c語言輸出為匯編程序 558
21.2 gcc內嵌匯編 559
21.2.1 基本內聯匯編 559
21.2.2 擴展內聯匯編 559
21.2.3 內聯匯編實例 563
21.3 調用匯編程序 564
21.3.1 c編譯程序的調用約定 565
21.3.2 c語言調用匯編的結構 566
21.3.3 建立匯編函數的框架 567
21.3.4 調用匯編函數 567
21.4 在visual c++中調用匯編 569
21.4.1 內聯匯編關鍵字 569
21.4.2 在__asm塊中使用匯編語言 570
21.4.3 在__asm塊中使用c/c++語言元素 571
21.4.4 寄存器的使用 572
21.4.5 跳轉 572
21.4.6 內聯匯編調用函數實例 573
21.4.7 內聯匯編的優缺點 574
21.5 小結 574
第22章 c語言與labview的接口 575
虛擬儀器軟件設計是目前比較流行的程序設計方法,其以圖形化語言labview為主。通過labview可以方便、快捷地創建各種控制及數據采集系統。但在遇到labview不易實現的功能時,可通過在labview中調用c實現。本章介紹在labview中調用c的方法和配置cin節點的原則,並通過例子詳細說明實現labview和c混合編程的過程。
22.1 labview概述 575
22.1.1 虛擬儀器概述 575
22.1.2 虛擬儀器與傳統儀器的對比 576
22.1.3 虛擬儀器的優勢 577
22.1.4 什麼是labview 577
22.1.5 labview的運行機制 578
22.2 cin節點 580
22.2.1 cin概述 580
22.2.2 支持在labview中調用的cin的編譯器 580
22.2.3 cin節點說明 581
22.3 cin節點的設計方法 582
22.3.1 創建cin節點的基本方法 582
22.3.2 創建cin節點 582
22.3.3 創建.c源文件 583
22.3.4 編譯.c文件 585
22.3.5 加載.lsb文件 587
22.4 cin節點的多線程運行 587
22.5 小結 587
第23章 c語言與matlab的接口 588
matlab作為世界頂尖的數學應用軟件,以其強大的工程計算、算法研究、工程繪圖、應用程序開發、數據分析和動態仿真等功能,在各個領域發揮著越來越重要的作用。雖然matlab是一個完整的、功能齊全的編程環境,但在某些情況下,與外部環境的數據和程序的交互是非常必須而且有益的。而c語言是目前應用最廣的編程語言,其功能豐富,使用靈活方便,目標程序效率高,既有高級語言的優點,又有低級語言的特點。本章將介紹c語言與matlab的接口。
23.1 matlab簡介 588
23.1.1 matlab簡介 588
23.1.2 matlab的版本演化 589
23.1.3 matlab的優勢 591
23.1.4 matlab常用工具箱 593
23.1.5 c語言與matlab的接口 593
23.2 matlab引擎 594
23.2.1 matlab引擎簡介 594
23.2.2 matlab引擎的工作方式 595
23.2.3 配置visual c++編譯器 595
23.2.4 matlab引擎api詳解 596
23.2.5 數據類型mxarray的操作 598
23.2.6 matlab引擎實例 600
23.3 com組件 603
23.3.1 使用deploytool 603
23.3.2 使用comtool 608
23.4 mex文件 611
23.4.1 matlab編譯器簡介 611
23.4.2 matlab編譯器的安裝與配置 612
23.4.3 c語言的mex文件的結構 614
23.4.4 c語言的mex文件實例 615
23.4.5 mex文件的優勢 616
23.4.6 常用的mex函數和mx函數 618
23.4.7 c-mex文件字符串操作實例 620
23.5 使用matcom 622
23.6 小結 622
第24章 c語言與javascript的接口 623
javascript(簡稱js)在浏覽器中的應用幾乎是盡人皆知的。實際上,javascript技術也可以使用在非浏覽器應用程序當中,從而讓應用程序具有自動的腳本功能。本章將介紹一種功能非常強大的javascript-c引擎,通過其可以使c程序能夠解釋執行javascript腳本。
24.1 javascript簡介 623
24.1.1 什麼是javascript 623
24.1.2 javascript基本特點 624
24.1.3 正確認識javascript 624
24.1.4 javascript的基本概念 624
24.1.5 javascript的運行環境 627
24.2 javascript-c引擎 627
24.2.1 javascript-c引擎的由來 627
24.2.2 獲取javascript-c引擎 628
24.2.3 javascript-c引擎支持的版本 628
24.2.4 運行javascript-c引擎的條件 628
24.2.5 javascript-c引擎與應用程序的關系 629
24.3 javascript-c引擎開發 631
24.3.1 嵌入javascript-c引擎的必要條件 631
24.3.2 管理一個運行時 632
24.3.3 管理上下文 633
24.3.4 初始化內置的和全局的javascript對象 634
24.3.5 創建和初始化自定義對象 634
24.3.6 javascript類型的處理 635
24.4 在c/c++中執行javascript程序 636
24.4.1 創建 javascript 運行時環境 636
24.4.2 創建一個上下文 637
24.4.3 初始化全局對象 637
24.4.4 執行腳本 637
24.4.5 清理腳本引擎 638
24.5 javascript-c引擎的編譯 638
24.6 javascript-c引擎實例 639
24.6.1 建立項目 639
24.6.2 c源文件 640
24.7 小結 642
第25章 c語言硬件端口操作 643
c語言既有高級語言的特點,又有低級語言的特點,這主要體現在c語言可以對硬件端口進行操作。在turbo c中可以直接對並行接口進行操作,在其他開發環境中可以通過嵌入匯編語言或者使用相應的庫文件實現並行接口操作。本章以計算機並行接口的操作為例,向讀者展示c語言的硬件端口操作能力。
25.1 並行端口簡介 643
25.1.1 認識計算機並口 643
25.1.2 並口的引腳定義 643
25.1.3 並口的工作模式 644
25.1.4 並口寄存器定義 645
25.1.5 並口開發調試工具包 646
25.2 turbo c下的並口操作 647
25.2.1 端口操作函數 648
25.2.2 並口讀寫實例 648
25.3 其他c語言環境下的並口操作 649
25.3.1 端口開發庫函數 649
25.3.2 並口讀寫實例 651
25.4 小結 652
第4篇 c語言擴展篇
第26章 linux下的c語言開發 654
linux操作系統在服務器領域的應用和普及已經有較長的歷史,這源於它的開源特點及其超越windows的安全性和穩定性。linux的大部分代碼都是用c語言開發的,在linux操作系統中進行程序開發時首選程序設計語言為c語言。本章將簡單介紹linux,以及在linux中使用c語言編寫程序的方法。
26.1 linux簡介 654
26.2 linux常用命令詳解 655
26.2.1 文件管理 656
26.2.2 文件傳輸 659
26.2.3 文檔編輯 660
26.2.4 系統管理 662
26.2.5 系統設置 666
26.2.6 網絡通信 669
26.2.7 磁盤管理 672
26.2.8 磁盤維護 675
26.2.9 備份壓縮 677
26.2.10 設備管理 678
26.3 linux c語言開發環境 679
26.3.1 linux c開發環境的構成 679
26.3.2 代碼編輯器 680
26.3.3 gcc編譯器 681
26.4 linux下的c程序開發 682
26.4.1 在emacs中編譯c程序 682
26.4.2 在linux中編寫c程序 683
26.5 小結 685
第27章 單片機的c語言開發 686
c語言是目前最為流行的編程語言,它的成功也延續到了其他領域。單片機便是一個重要的例子。在傳統的單片機程序設計中,一般采用匯編語言實現。而後來,單片機的開發全面借鑒了c語言,從而進入了c語言開發單片機的時代。本章將介紹單片機的c語言開發及其與標准c語言的一些區別。
27.1 單片機簡介 686
27.1.1 單片機的發展 686
27.1.2 51系列單片機 687
27.1.3 認識單片機 687
27.1.4 單片機的結構 688
27.1.5 單片機的應用領域 690
27.2 單片機c語言簡介 690
27.2.1 單片機c語言和匯編語言的對比 691
27.2.2 單片機c語言的特點 691
27.3 單片機c語言的開發工具 691
27.3.1 keil μvision3簡介 691
27.3.2 keil μvision3的系統需求 692
27.3.3 keil μvision3集成開發環境 692
27.4 單片機c語言開發實例 693
27.4.1 創建項目 693
27.4.2 創建源文件 694
27.4.3 編譯項目 695
27.4.4 仿真調試 696
27.5 單片機c語言與標准c語言的區別 696
27.5.1 標識符 696
27.5.2 關鍵字 697
27.5.3 數據類型 697
27.5.4 中斷函數 697
27.5.5 存儲類型 698
27.5.6 擴展數據類型 700
27.5.7 存儲模式 702
27.5.8 指針 703
27.5.9 遞歸或可重入函數指定 704
27.6 小結 705
第28章 嵌入式系統c語言開發 706
嵌入式系統(embeded system)是目前最為流行的一門技術。嵌入式系統不僅和一般的pc機上的應用系統不同,就是針對不同的具體應用而設計的嵌入式系統之間差別也很大。這就導致嵌入式系統的開發與pc機不同。目前使用最多的便是基於linux的嵌入式系統。本章將介紹嵌入式linux系統下的c語言開發工具和開發流程。
28.1 嵌入式系統簡介 706
28.1.1 什麼是嵌入式系統 706
28.1.2 嵌入式系統的基本結構 707
28.1.3 嵌入式系統的特點 707
28.1.4 嵌入式系統中的處理器 707
28.1.5 嵌入式操作系統 708
28.1.6 嵌入式系統中的軟件系統 709
28.2 嵌入式linux c語言開發工具 710
28.2.1 編輯器vim 710
28.2.2 編譯器gcc 715
28.2.3 gcc的常用編譯選項 717
28.2.4 調試器gdb 720
28.2.5 工程管理 make 725
28.3 集成開發環境eclipse 730
28.3.1 eclipse的安裝 730
28.3.2 eclipse的界面簡介 732
28.3.3 創建hello項目 733
28.3.4 調試hello項目 735
28.4 嵌入式c語言開發流程 735
28.4.1 命令行下的開發流程 735
28.4.2 基於eclipse的開發流程 739
28.5 小結 743
第29章 基於c語言的高性能並行gpu編程 744
普通的c語言程序運行在cpu上,都是順序執行的語句。目前,並行計算是高性能計算的一個方面。如何將c語言的簡單易學、功能強大的特點與並行計算結合起來是一個研究方向。現在,普通用戶可以通過顯卡gpu運行c程序實現並行計算,提供程序的計算性能。本章將介紹如何使用c語言和nvidia的gpu進行並行編程。
29.1 gpu概述 744
29.1.1 gpu和cpu 744
29.1.2 gpu的作用 744
29.1.3 gpu的優勢 745
29.1.4 gpu的供應商 747
29.1.5 gpu的開發環境 748
29.2 基於c語言的cuda 748
29.2.1 什麼是cuda 748
29.2.2 cuda的發展歷史 749
29.2.3 cuda基本構架 750
29.2.4 cuda編程模型 752
29.2.5 cuda硬件實現 753
29.3 cuda應用程序編程接口(api) 754
29.3.1 cuda編程接口的構成 754
29.3.2 cuda對c語言的擴展 754
29.3.3 nvcc編譯 756
29.3.4 公共運行時(runtime)組件 757
29.3.5 設備運行時組件 758
29.3.6 主機運行時組件 761
29.3.7 cuda運行時api詳解 762
29.3.8 cuda驅動程序api詳解 772
29.4 在visual studio中使用cuda 784
29.4.1 安裝cuda 784
29.4.2 配置cuda nvcc 786
29.4.3 使用第三方工具配置cuda nvcc 789
29.5 cuda並行編程實例 790
29.5.1 初始化cuda實例 791
29.5.2 gpu運算實例 792
29.6 小結 794



相關資源:

免責聲明:本網站內容收集於互聯網,本站不承擔任何由於內容的合法性及健康性所引起的爭議和法律責任。如果侵犯了你的權益,請通知我們,我們會及時刪除相關內容,謝謝合作! 聯系信箱:[email protected]

Copyright © 電驢下載基地 All Rights Reserved