《跟“龍哥”學C語言編程》是2020年電子工業出版社出版的圖書,作者是李志龍、席潤芝、李宇龍。
基本介紹
- 書名:跟“龍哥”學C語言編程
- 作者:李志龍、席潤芝、李宇龍
- 出版社:電子工業出版社
- 出版時間:2020年6月
- 頁數:324 頁
- 定價:69 元
- 開本:16 開
- ISBN:9787121391637
內容簡介,圖書目錄,
內容簡介
越來越多的高校在錄取研究生時開始採用上機考試的形式來考查學生的動手編程能力,很多知名網際網路公司在校招時也採用線上筆試的形式,然而,在以應試為主的大學教學模式下,動手能力往往是學生的薄弱環節。為此,本書以C語言為工具,由淺入深、由易到難地講解了C語言,深入解析了程式執行的原理及數據結構和算法,為讀者後續學習Linux系統編程和C++語言編程打下堅實的基礎;同時,書中精選了各大知名網際網路公司的校招面試題和社招面試題,以及部分知名高校考研的機試真題,可為讀者提供可靠、實際的練習指導。全書強調程式的編寫與調試,內容精練,可操作性強。每章均提供教學視頻、實例代碼和課後習題代碼,讀者可按書中的建議下載並練習。本書不僅可以作為讀者提升C語言編程能力的圖書,而且可以作為研究生初試的複習用書,還可作為C語言初學者的參考用書。
圖書目錄
第1章 開發環境搭建及調試視窗設定 1
1.1 開發環境搭建 1
1.1.1 C語言的那些事 1
1.1.2 開發環境安裝 3
1.2 新建項目 7
1.3 新建代碼及編譯運行 9
1.4 程式的編譯過程 13
1.5 斷點及調試視窗設定 14
1.6 學習C語言後的境界 16
練習題 17
第2章 數據類型、運算符與表達式 18
2.1 數據類型 18
2.2 常量 19
2.3 變數 19
2.4 整型數據 19
2.4.1 符號常量 19
2.4.2 整型常量的不同進制表示 22
2.4.3 補碼的作用 25
2.4.4 整型變數 27
2.5 浮點型數據 28
2.5.1 浮點型常量 28
2.5.2 浮點型變數 28
2.6 字元型數據 30
2.6.1 字元型常量 30
2.6.2 字元數據在記憶體中的存儲形式及其使用方法 31
2.7 字元串型常量 32
2.8 混合運算 32
2.8.1 數值按int型運算 32
2.8.2 浮點型常量默認按double型運算 34
2.8.3 類型強制轉換場景 35
2.9 常用的數據輸入/輸出函式 36
2.9.1 scanf函式的原理 36
2.9.2 scanf函式的循環讀取 38
2.9.3 多種數據類型混合輸入 39
2.9.4 getchar函式介紹 40
2.9.5 putchar函式介紹 41
2.9.6 printf函式介紹 42
2.10 運算符與表達式 43
2.10.1 運算符分類 43
2.10.2 算術運算符及算術表達式 44
2.10.3 關係運算符與關係表達式 45
2.10.4 邏輯運算符與邏輯表達式 47
2.10.5 位運算符 48
2.10.6 賦值運算符 49
2.10.7 條件運算符與逗號運算符 51
2.10.8 自增、自減運算符及求位元組運算符 51
練習題 52
答案解析 52
第3章 選擇與循環 60
3.1 選擇結構程式設計 60
3.1.1 關係表達式與邏輯表達式 60
3.1.2 if語句 60
3.1.3 switch語句 62
3.2 循環結構程式設計 64
3.2.1 goto語句 64
3.2.2 while循環 65
3.2.3 do while循環 66
3.2.4 for循環 67
3.2.5 continue語句 68
3.2.6 break語句 69
練習題 69
答案解析 70
第4章 數組 83
4.1 一維數組 83
4.1.1 數組的定義 83
4.1.2 一維數組在記憶體中的存儲 84
4.1.3 棧空間和數組 87
4.2 二維數組 88
4.2.1 二維數組的定義與引用 88
4.2.2 二維數組的初始化及傳遞 89
4.3 字元數組 91
4.3.1 字元數組的定義及初始化 91
4.3.2 gets函式與puts函式 93
4.3.3 str系列字元串操作函式 93
4.3.4 strn系列字元串操作函式 95
4.3.5 mem系列操作函式 96
練習題 97
答案解析 98
第5章 指針 106
5.1 指針的本質 106
5.1.1 指針的定義 106
5.1.2 取地址操作符與取值操作符 107
5.2 指針的使用場景 108
5.2.1 指針的傳遞 108
5.2.2 指針的偏移 110
5.2.3 指針與自增、自減運算符 112
5.2.4 指針與一維數組 113
5.2.5 指針與動態記憶體申請 113
5.2.6 字元指針與字元數組的初始化 117
5.2.7 深入理解const 118
5.2.8 memcpy函式與memmove函式的差異 119
5.3 數組指針與二維數組 120
5.3.1 數組指針的套用 120
5.3.2 二維數組的偏移計算 122
5.4 二級指針 122
5.4.1 二級指針的傳遞 122
5.4.2 二級指針的偏移 123
5.5 函式指針 125
練習題 126
答案解析 126
第6章 函式 133
6.1 函式的聲明、定義與調用 133
6.1.1 函式的聲明與定義 133
6.1.2 函式的分類與調用 135
6.2 嵌套調用 137
6.3 遞歸調用 138
6.4 變數及函式的作用域 140
6.4.1 局部變數與全局變數 140
6.4.2 動態存儲方式與靜態存儲方式 142
6.5 函式調用原理詳解 144
6.5.1 關於棧 144
6.5.2 代碼實例分析 145
練習題 146
答案解析 147
第7章 結構體 149
7.1 結構體與結構體指針 149
7.1.1 結構體的定義、引用、初始化 149
7.1.2 結構體指針 151
7.1.3 typedef的使用 152
7.2 鍊表的增刪查改 152
7.2.1 鍊表 152
7.2.2 增刪查改鍊表 153
7.3 共用體與枚舉 158
7.3.1 共用體 158
7.3.2 枚舉 159
練習題 159
答案解析 160
第8章 常用數據結構與算法 182
8.1 數據結構 182
8.1.1 棧 182
8.1.2 佇列 184
8.1.3 二叉樹 187
8.1.4 紅黑樹 192
8.1.5 數據結構學習技巧 209
8.2 算法 209
8.2.1 時間複雜度與空間複雜度 209
8.2.2 排序算法 210
8.2.3 二分查找算法 235
8.2.4 哈希查找算法 236
8.2.5 其他算法 239
練習題 239
答案解析 239
第9章 檔案操作 243
9.1 C檔案概述 243
9.2 檔案的打開、讀寫、關閉 244
9.2.1 檔案指針介紹 244
9.2.2 檔案的打開與關閉 244
9.2.3 fread函式與fwrite函式 247
9.2.4 fgets函式與fputs函式 249
9.2.5 ftell函式 251
9.2.6 fprintf函式與fscanf函式 252
練習題 253
答案解析 253
第10章 C語言預處理和C語言庫 260
10.1 預處理簡介 260
10.2 預處理的工作原理 260
10.3 預處理指令 262
10.4 宏定義 263
10.4.1 簡單的宏 263
10.4.2 帶參數的宏 265
10.4.3 操作符# 267
10.4.4 操作符## 267
10.4.5 宏的通用屬性 268
10.4.6 較長的宏中的逗號操作符 269
10.4.7 宏定義中的do while循環 270
10.4.8 預定義宏 270
10.4.9 空宏參數 271
10.4.10 const與#define的差異 272
10.5 條件編譯 273
10.5.1 #if指令和#endif指令 273
10.5.2 defined操作符 273
10.5.3 #ifdef指令和#ifndef指令 274
10.5.4 #elif指令和#else指令 275
10.5.5 條件編譯 276
10.6 其他指令 277
10.6.1 指令#line 277
10.6.2 指令#undef 278
10.6.3 變參宏...和__VA_ARGS__ 278
10.7 內聯函式(C99) 279
10.8 C庫中的可變參數stdarg.h 280
練習題 282
答案解析 283
第11章 學生信息管理系統 285
11.1 系統功能描述 285
11.2 系統模組設計 286
11.3 系統用到的相關函式 288
第12章 編譯器詞法、語法分析項目 290
12.1 詞法分析項目 290
12.1.1 項目需求描述 290
12.2 詞法分析模組設計 290
12.2.1 建立字典模組 290
12.2.2 字元串存儲及其TOKEN值的快速識別設計 293
12.3 詞法及語法分析簡單樣例研究 296
12.3.1 算術表達式的合法性判斷 296
12.3.2 詞法分析 296
12.3.3 算術表達式的語法分析 299
12.4 升級版功能:編譯器語法分析 303
12.4.1 整體流程分析 304
12.4.2 函式體內流程分析 305
12.4.3 表達式解析流程分析 306
12.4.4 總結 307
附錄A ASCII碼錶 308
附錄B C語言運算符優先權 311
參考文獻 313