C語言程序設計 Let Us C: Authentic Guide to C PROGRAMMING Language 17th Edition

[印]亞沙萬特·卡內特卡爾(Yashavant Kanetkar)

  • 出版商: 人民郵電
  • 出版日期: 2022-05-01
  • 定價: $659
  • 售價: 7.9$521
  • 語言: 簡體中文
  • 頁數: 352
  • 裝訂: 平裝
  • ISBN: 7115582319
  • ISBN-13: 9787115582317
  • 相關分類: C 程式語言
  • 立即出貨

  • C語言程序設計-preview-1
  • C語言程序設計-preview-2
C語言程序設計-preview-1

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

商品描述

學習任何程序設計語言的好方法都是創建良好的程序,C 語言也不例外。一旦決定編寫程序我們就會發現,總是有至少兩種方法可以實現。那麽,如何才能找到好的方法來實現程序?本書就能幫助讀者解決此類問題。本書是一本C 語言程序設計的教材。多年來,本書被很多工程和科學研究所及院校指定為學習教材。

 

本書這一版本(第17 版)除了講解C 語言中基本的函數、指針、控制指令、數據類型、數組、字符串、輸入輸出、位操作等內容外,還增加了C 語言程序設計的各個主題的實例和麵試問題,以便讀者盡快熟悉C 語言的實際應用。書中的實例和習題已經過作者認真挑選,集中體現了各個知識要點的具體用法。本書提供可供讀者下載的程序源代碼,並配套出版《C 語言程序設計 習題解答》。

 

本書結構合理,內容深入淺出,既適合用作高等學校本科和專科學生學習C 語言程序設計的教材,也適合用作零基礎的程序設計初學者的自學用書。

作者簡介

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

目錄大綱

第 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