C語言程序設計

C語言程序設計

作者: [印]亞沙萬特·卡內特卡爾(Yashavant Kanetkar)
出版社: 人民郵電
出版在: 2022-05-01
ISBN-13: 9787115582317
ISBN-10: 7115582319
裝訂格式: 平裝
總頁數: 352 頁





內容描述


學習任何程序設計語言的好方法都是創建良好的程序,C 語言也不例外。一旦決定編寫程序我們就會發現,總是有至少兩種方法可以實現。那麽,如何才能找到好的方法來實現程序?本書就能幫助讀者解決此類問題。本書是一本C 語言程序設計的教材。多年來,本書被很多工程和科學研究所及院校指定為學習教材。
 
本書這一版本(第17 版)除了講解C 語言中基本的函數、指針、控制指令、數據類型、數組、字符串、輸入輸出、位操作等內容外,還增加了C 語言程序設計的各個主題的實例和麵試問題,以便讀者盡快熟悉C 語言的實際應用。書中的實例和習題已經過作者認真挑選,集中體現了各個知識要點的具體用法。本書提供可供讀者下載的程序源代碼,並配套出版《C 語言程序設計 習題解答》。
 
本書結構合理,內容深入淺出,既適合用作高等學校本科和專科學生學習C 語言程序設計的教材,也適合用作零基礎的程序設計初學者的自學用書。


目錄大綱


第 1 章 起步 001
本章內容  002
1.1 什麽是C 語言  003
1.2 C 語言的基礎知識  003
1.2.1 字母、數字和特殊符號  004
1.2.2 常量、變量和關鍵字  004
1.2.3 C 語言的常量類型  004
1.2.4 整型常量的創建規則  005
1.2.5 浮點型常量的創建規則  005
1.2.6 字符型常量的創建規則  005
1.2.7 C 語言的變量類型  006
1.2.8 變量名的創建規則  006
1.2.9 C 語言的關鍵字  006
1.3 第 1 個C 語言程序  007
1.3.1 C 語言程序的格式  007
1.3.2 C 語言程序中的註釋  007
1.3.3 什麽是main()  008
1.3.4 變量及其用法  009
1.3.5 printf() 及其用法  009
1.3.6 編譯和運行  010
1.4 接收輸入  010
1.5 程序  011
習題  012
課後筆記  014
 
第 2 章 C 語言的指令  017
本章內容  018
2.1 指令的類型  019
2.2 類型聲明指令  019
2.3 算術指令  019
2.4 整型和浮點型的轉換  021
2.5 賦值時的類型轉換  021
2.6 操作符的優先層次  022
2.7 操作符的結合性  024
2.8 控制指令  024
2.9 程序  024
習題  026
課後筆記  028
 
第3 章 決策控制指令  031
本章內容  032
3.1 if-else 語句  033
3.2 if-else 中的多條語句  034
3.3 嵌套的if-else 語句  035
3.4 一點告誡  036
3.5 程序  037
習題  038
課後筆記  041
 
第4 章 更復雜決策的創建  043
本章內容  044
4.1 使用邏輯操作符:檢測範圍  045
4.2 使用邏輯操作符:是 否問題  046
4.3 ! 操作符  048
4.4 再論操作符的優先層次  049
4.5 條件操作符  049
4.6 程序  050
習題  052
課後筆記  056
 
第5 章 循環控制指令  059
本章內容  060
5.1 循環  061
5.2 while 循環  061
5.2.1 提示和陷阱  062
5.2.2 其他操作符  063
5.3 程序  065
習題  066
課後筆記  068
 
第6 章 更復雜的循環控制
指令  069
本章內容  070
6.1 for 循環  071
6.1.1 循環的嵌套  073
6.1.2 for 循環的多重初始化  074
6.2 break 語句  074
6.3 continue 語句  075
6.4 do-while 循環  076
6.5 非常規循環  077
6.6 程序  078
習題  079
課後筆記  081
 
第7 章 case 控制指令  083
本章內容  084
7.1 使用switch 的決策  085
7.2 switch 與if-else 梯狀結構的對比  088
7.3 goto 關鍵字  088
7.4 程序  090
習題  092
課後筆記  095
 
第8 章 函數  097
本章內容  098
8.1 什麽是函數  099
8.2 在函數之間傳遞值  101
8.3 參數的傳遞順序  104
8.4 使用庫函數  104
8.5 一個不確定的問題  105
8.6 函數的返回類型  105
8.7 程序  106
習題  108
課後筆記  109
 
第9 章 指針  111
本章內容  112
9.1 傳值調用和傳引用調用  113
9.2 指針概述  113
9.3 再論函數調用  116
9.4 結論  118
9.5 程序  118
習題  120
課後筆記  122
 
第 10 章 遞歸  125
本章內容  126
10.1 遞歸的概念  127
10.2 程序  128
習題  130
課後筆記  131
 
第 11 章 再論數據類型  133
本章內容  134
11.1 整型:long、short、signed、unsigned  135
11.2 字符型:signed、unsigned  136
11.3 浮點型:float、double、long double  136
11.4 一些其他問題  137
11.5 C 語言的存儲類型  138
11.5.1 自動存儲類型  138
11.5.2 寄存器存儲類型  139
11.5.3 靜態存儲類型  140
11.5.4 外部存儲類型  140
11.5.5 一些微妙的問題  142
11.5.6 何時何地使用存儲類型  143
習題  143
課後筆記  145
 
第 12 章 C 預處理器  149
本章內容  150
12.1 C 預處理器的特性  151
12.2 宏展開指令  151
12.2.1 帶參數的宏  152
12.2.2 宏與函數的比較  153
12.3 文件包含指令  153
12.4 條件編譯指令  154
12.5 #if 和#elif 指令  155
12.6 其他指令  156
12.6.1 #undef 指令  156
12.6.2 #pragma 指令  156
12.7 構建過程  158
12.8 程序  159
習題  161
課後筆記  162
 
第 13 章 數組  165
本章內容  166
13.1 什麽是數組  167
13.2 關於數組的其他信息  168
13.2.1 數組的初始化  168
13.2.2 內存中的數組元素  168
13.2.3 邊界檢查  169
13.2.4 向函數傳遞數組元素  169
13.3 指針和數組  170
13.3.1 使用指針訪問數組元素  171
13.3.2 把數組傳遞給函數  172
13.4 可變長數組  174
13.5 程序  175
習題  176
課後筆記  179
 
第 14 章 多維數組  181
本章內容  182
14.1 二維數組  183
14.1.1 二維數組的初始化  183
14.1.2 二維數組的內存映射  184
14.1.3 指針和二維數組  184
14.1.4 指向數組的指針  186
14.1.5 把二維數組傳遞給函數  186
14.2 指針數組  187
14.3 三維數組  188
14.4 程序  189
習題  191
課後筆記  193
 
第 15 章 字符串  195
本章內容  196
15.1 什麽是字符串  197
15.2 關於字符串的其他說明  197
15.3 指針和字符串  199
15.4 字符串處理函數  200
15.4.1 strlen()  201
15.4.2 strcpy()  202
15.4.3 strcat()  203
15.4.4 strcmp()  203
15.5 程序  204
習題  206
課後筆記  208
 
第 16 章 處理多個字符串  211
本章內容  212
16.1 二維字符數組  213
16.2 字符串指針數組  214
16.3 字符串指針數組的限制  216
16.4 程序  216
習題  218
課後筆記  219
 
第 17 章 結構體  221
本章內容  222
17.1 為什麽要使用結構體  223
17.2 結構體數組  224
17.3 結構體的細節  225
17.3.1 結構體的聲明  225
17.3.2 結構體元素的存儲  226
17.3.3 復制結構體元素  227
17.3.4 嵌套的結構體  227
17.3.5 傳遞結構體元素 結構體變量  228
17.3.6 結構體元素的對齊  229
17.4 結構體的應用  230
17.5 程序  230
習題  233
課後筆記  234
 
第 18 章 控制台輸入輸出  237
本章內容  238
18.1 I O 的類型  239
18.2 控制台I O 函數  239
18.2.1 格式化的控制台I O 函數  240
18.2.2 sprintf() 和sscanf() 函數  244
18.2.3 未格式化的控制台I O 函數  245
習題  246
課後筆記  249
 
第 19 章 文件輸入輸出  251
本章內容  252
19.1 文件操作  253
19.1.1 打開文件  253
19.1.2 讀取文件  254
19.1.3 關閉文件  255
19.2 對字符、製表符、空格等進行計數  255
19.3 一個文件復製程序  256
19.4 文件打開模式  257
19.5 文件中的字符串(行)I O  257
19.6 文本文件和二進制文件  259
19.7 文件中的記錄I O  259
19.8 低層文件I O  262
19.9 程序  264
習題  266
課後筆記  267
 
第 20 章 關於輸入輸出的更多知識  271
本章內容  272
20.1 使用argc 和argv  273
20.2 在讀取 寫入時檢測錯誤  275
20.3 標準文件指針  276
20.4 I O 重定向  276
20.4.1 輸出重定向  276
20.4.2 輸入重定向  277
20.4.3 同時重定向  278
習題  278
課後筆記  279
 
第 21 章 對位進行操作  281
本章內容  282
21.1 位的編號和轉換  283
21.2 位操作  284
21.3 反碼操作符  284
21.4 右移位和左移位操作符  285
21.4.1 警告  286
21.4.2 << 操作符的用途  287
21.5 AND、OR 和XOR 位操作符  287
21.5.1 & 操作符的用途  288
21.5.2 | 操作符的用途  289
21.5.3 ^ 操作符的用途  289
21.6 showbits() 函數  290
21.7 位復合賦值操作符  290
21.8 程序  291
習題  292
課後筆記  294
 
第 22 章 C 語言的其他特性  295
本章內容  296
22.1 枚舉數據類型  297
22.1.1 枚舉數據類型的用途  297
22.1.2 枚舉真有必要嗎  298
22.2 使用typedef 對數據類型進行重命名  299
22.3 強制類型轉換  300
22.4 位段  300
22.5 函數指針  301
22.6 返回指針的函數  302
22.7 接收可變數量參數的函數  302
22.8 聯合體  303
22.9 volatile 限定符  306
22.10 程序  306
習題  307
課後筆記  309
 
第 23 章 常見的C 語言面試問題  311
 
附錄A 編譯和運行  325
附錄B 優先級表格  331
附錄C 追蹤缺陷  333
附錄D ASCII 表  339
附錄E 階段測驗  343


作者介紹


亚沙万特·卡内特卡尔(Yashavant Kanetkar)是一位极受欢迎的IT 领域演说家,在TedEx、印度理工学院(IIT)、印度国家理工学院(NIT)、印度信息技术学院(IIIT)和一些全球软件公司举办过研讨会和讲习班。他的作品在世界范围内广受欢迎,数以百万计的学生和专业人员从中受益。他的作品被翻译为印地语、古吉拉特语、英语、日语、韩语和汉语,分别在印度、美国、日本、韩国和中国出版。由于在创业、专业以及教育方面的建树,他被印度理工学院坎普尔校区授予久负盛名的“杰出校友奖”(distinguished alumnus award)。连续5 年,他被微软公司授予“最佳.NET 技术撰稿人”和“ 最有价值专家”称号。




相關書籍

Emerging Wireless LANs, Wireless PANs, and Wireless MANs: IEEE 802.11, IEEE 802.15, 802.16 Wireless Standard Family (Hardcover)

作者 Yang Xiao Yi Pan

2022-05-01

數據結構——從概念到C++實現(第3版)

作者 王紅梅 王慧 王新穎

2022-05-01

C++ By Dissection (Paperback)

作者 Ira Pohl

2022-05-01