關于我們
書單推薦
新書推薦
|
C語言學習筆記:從入門到實戰(zhàn) 本書以學習筆記的形式循序漸進地講解了使用C語言的核心知識,并通過具體實例的實現過程講解了各個知識點的使用方法和流程。全書簡潔而不失其技術深度,內容豐富全面,針對每一個知識點均搭配典型案例講解和視頻;除此之外,本書易于閱讀,以極簡的文字介紹了復雜的案例,幫助讀者扎實理解實踐應用。 精講學習視頻全程相伴,掃碼即看;146個有趣實例及精彩分析娓娓道來 從你開始學習編程的那一刻起,就注定了以后所要走的路:從編程學習者開始,依次經 歷實習生、程序員、軟件工程師、架構師、CTO 等職位的磨礪。當你站在職位頂峰的位置驀 然回首,會發(fā)現自己的成功并不是偶然,在程序員的成長之路上會有不斷修改代碼、尋找并 解決Bug、不停測試程序和修改項目的經歷。不可否認的是,只要你在自己的開發(fā)生涯中穩(wěn) 扎穩(wěn)打,并且善于總結和學習,最終將會得到可喜的收獲。 ■ 選擇一本合適的書 對于一名程序開發(fā)初學者來說,究竟如何學習并提高自己的開發(fā)能力呢?選擇一本適合 自己的開發(fā)圖書會是一個好的建議。那么什么樣的圖書才是適合自己的呢,除了對知識點的 細致講解外,更要能實現從理論平滑過渡到項目實戰(zhàn),為此,我們特意策劃了本書。 ■ 本書的特色 (1)內容全面 本書詳細講解C 語言所涵蓋的所有知識點,循序漸進地講解了這些知識點的使用方法和 技巧,幫助讀者快速步入C 語言開發(fā)高手之列。 (2)146 個示例融入其中,面向實戰(zhàn) 通過對這些實例的講解實現了對知識點的橫向切入和縱向比較,讓讀者有更多的實踐演 練機會,并且可以從不同的方位展現一個知識點的用法,確保讀者扎實掌握。 (3)視頻講解,二維碼布局全書 本書正文的每一個二級目錄都有一個二維碼,通過二維碼掃描可以觀看本小節(jié)內容的講 解視頻,既包括實例講解也包括教程講解,對讀者的開發(fā)水平實現了拔高處理。 (4)本書售后幫助讀者快速解決學習問題 無論書中的疑惑,還是在學習中遇到的問題,群主和管理員將在第一時間為讀者解答, 這就是我們對讀者的承諾。 (5)QQ 群 網站論壇實現教學互動,形成互幫互學的朋友圈 本書作者為了方便給讀者答疑,特提供了網站論壇、QQ 群等技術支持(通過QQ: 729017304 獲得),并且隨時在線與讀者互動。讓大家在互學互幫中形成一個良好的學習編 程的氛圍。 FOREWORD 前 言 I II ? C語言學習筆記:從入門到實戰(zhàn) ■ 本書的讀者對象 本書以學習筆記的形式系統(tǒng)地講解了C 語言的知識點和基本的實戰(zhàn)應用,旨在幫助入門 級的讀者輕松梳理知識點并掌握簡單開發(fā)技巧。另外,融入書中的開發(fā)經驗和綜合案例,會 對有著一定C 語言開發(fā)基礎的讀者大有裨益,幫助他們提升開發(fā)技能、積累實戰(zhàn)經驗。 ■ 致謝 本書在編寫過程中,得到了中國鐵道出版社編輯的大力支持,正是各位編輯的求實、耐 心和效率,才使得本書能夠在這么短的時間內出版。另外,也十分感謝我的家人給予的巨大 支持。本人水平畢竟有限,書中存在紕漏之處在所難免,誠請讀者提出寶貴的意見或建議, 以便修訂并使之更臻完善。 最后感謝您購買本書,希望本書能成為您編程路上的領航者,祝您閱讀快樂! 編者 2019 年8 月 薛小龍,山東大學計算機碩士,F就職于浪潮云,從事互聯網云服務器的架構和研發(fā)工作。精通Java、Python、C、C 語言,擅長大數據挖掘和數據分析工作。個人喜愛技術分享,曾經寫作出版《開發(fā)從入門到精通》系列圖書,且擁有對圖書推廣和營銷方面的經驗。 第1 章 C 語言基礎知識介紹 1.1 永不過時的C 語言 ............................................................................................1 1.1.1 品味C 語言這一壇老酒 ....................................................................................1 1.1.2 C 語言的發(fā)展史 .................................................................................................2 1.1.3 學習C 語言還有用嗎 ........................................................................................2 1.2 認識第一段C 語言程序 ....................................................................................3 1.2.1 編寫第一段C 語言程序 ....................................................................................3 實例1-1:第一段C 語言程序(定義變量并進行算數操作) ................................................. 3 1.2.2 分析C 語言程序的具體組成 ............................................................................4 1.3 如何學好C 語言 ................................................................................................6 第2 章 安裝C 語言開發(fā)工具 2.1 一步到位的Visual Studio ..................................................................................7 2.1.1 安裝Visual Studio 2017 .....................................................................................7 2.1.2 使用Visual Studio 2017 .....................................................................................9 實例2-1:使用Visual Studio 2017 運行一個C 程序 ................................................................ 9 2.2 使用DEV C 開發(fā)C 語言程序 ...................................................................12 2.2.1 安裝DEV C ..................................................................................................12 2.2.2 使用DEV C 運行一個C 語言程序 ............................................................14 2.3 使用Turbo C 3.0 開發(fā)C 語言程序 ................................................................14 2.3.1 安裝Turbo C 3.0 ...............................................................................................14 2.3.2 使用Turbo C 3.0 ...............................................................................................15 第3 章 C 語言語法基礎 3.1 標識符和關鍵字 ..............................................................................................16 3.1.1 標識符 ...............................................................................................................16 3.1.2 關鍵字 ...............................................................................................................17 3.2 數據類型 ..........................................................................................................19 3.3 常量和變量 ......................................................................................................20 3.3.1 常量 ...................................................................................................................20 3.3.2 變量 ...................................................................................................................21 實例3-1:計算圓的周長和面積 ............................................................................................... 23 3.4 整型數據 ..........................................................................................................24 3.4.1 整型常量 ...........................................................................................................24 3.4.2 整型變量 ...........................................................................................................26 實例3-2:計算兩個整型變量的和 ........................................................................................... 27 3.5 實型數據類型 ..................................................................................................28 3.5.1 實型常量 ...........................................................................................................28 3.5.2 實型變量 ...........................................................................................................29 實例3-3:對一個很大的數和一個很小的數進行加法運算 ................................................... 29 3.6 字符型數據 ......................................................................................................30 3.6.1 字符常量詳解 ...................................................................................................30 實例3-4:通過轉義字符輸出指定的文本字符 ....................................................................... 31 3.6.2 字符串常量 .......................................................................................................32 實例3-5:我最喜歡的偶像是歐陽娜娜 ................................................................................... 32 3.6.3 字符變量 ...........................................................................................................33 實例3-6:將字符變量和整型變量進行相互賦值 ................................................................... 33 3.7 整型、實型和字符型數據之間的運算 ..........................................................34 3.7.1 強制轉換 ...........................................................................................................34 實例3-7:將int 類型強制轉換為double 類型 ........................................................................ 35 3.7.2 自動轉換 ...........................................................................................................35 實例3-8:計算圓的大概面積和精確面積 ............................................................................... 36 第4 章 運算符和表達式 4.1 運算符和表達式介紹 ......................................................................................37 4.2 算術運算符和算術表達式 ..............................................................................38 4.2.1 算術運算符的分類 ...........................................................................................38 4.2.2 單目運算符 .......................................................................................................39 實例4-1:使用單目運算符實現基本的數學運算 ................................................................... 39 4.2.3 雙目運算符 .......................................................................................................39 實例4-2:獲取任意小于1000 的正整數的個位、十位、百位和千位的數字 ..................... 40 4.3 賦值運算符和賦值表達式 ..............................................................................40 4.3.1 基本的賦值運算符 ...........................................................................................41 4.3.2 復合賦值運算符 ...............................................................................................43 4.3.3 賦值表達式 .......................................................................................................43 實例4-3:實現基本的賦值表達式運算處理 ........................................................................... 43 4.4 關系運算符和關系表達式 ..............................................................................44 4.4.1 關系運算符 .......................................................................................................44 4.4.2 關系表達式 .......................................................................................................44 實例4-4:比較體重 ................................................................................................................... 45 4.5 逗號運算符和逗號表達式 ..............................................................................46 4.5.1 逗號運算符 .......................................................................................................46 4.5.2 逗號表達式 .......................................................................................................46 實例4-5:使用逗號運算符實現數學運算 ............................................................................... 47 4.6 邏輯運算符和邏輯表達式 ..............................................................................48 4.6.1 邏輯運算符 .......................................................................................................48 4.6.2 邏輯表達式 .......................................................................................................49 實例4-6:對變量進行邏輯運算處理,并輸出運算后的結果 ............................................... 49 4.7 求字節(jié)數運算符sizeof ....................................................................................50 實例4-7:使用sizeof 運算符計算不同類型數據的字節(jié)大小 ................................................ 51 4.8 運算符的優(yōu)先級 ..............................................................................................52 第5 章 數據的輸入和輸出 5.1 語句介紹 ..........................................................................................................54 5.1.1 C 語句簡介 .......................................................................................................54 5.1.2 賦值語句 ...........................................................................................................56 5.2 C 語言內置的數據輸入和輸出函數 ...............................................................57 5.2.1 使用字符輸出函數putchar ..............................................................................58 實例5-1:使用函數putchar 輸出指定的字符 ......................................................................... 58 5.2.2 使用字符輸入函數getchar .............................................................................59 實例5-2:使用getchar 函數獲取在鍵盤中輸入的內容.......................................................... 60 5.2.3 使用格式輸出函數printf .................................................................................60 實例5-3:使用printf 函數輸出不同格式變量a 和b 的數據 ................................................ 61 實例5-4:使用printf 格式字符輸出指定格式的數據 ............................................................ 62 5.2.4 使用格式輸入函數scanf ..................................................................................64 實例5-5:輸出顯示用戶輸入字符的ASCII 碼和對應的大寫字母 ....................................... 66 5.2.5 使用字符串輸出函數puts ...............................................................................67 實例5-6:使用函數puts 輸出指定的字符串 ........................................................................... 67 5.2.6 使用字符串輸入函數gets ................................................................................68 實例5-7:輸出顯示用戶的姓名和身高信息 ........................................................................... 68 第6 章 使用流程控制語句 6.1 順序結構 ..........................................................................................................69 實例6-1:計算三角形的面積 ................................................................................................... 70 6.2 選擇結構 ..........................................................................................................70 6.2.1 單分支結構語句 ...............................................................................................71 實例6-2:從大到小排列3 個數字 ........................................................................................... 71 6.2.2 雙分支結構語句 ...............................................................................................72 實例6-3:判斷用戶輸入內容的格式 ....................................................................................... 72 實例6-4:判斷變量a 和b 的值是多少 ................................................................................... 74 6.2.3 使用多分支結構語句 .......................................................................................75 實例6-5:提示用戶輸入數字,然后將用戶輸入的數字輸出。 ........................................... 77 6.2.4 條件運算符和條件表達式 ...............................................................................77 實例6-6:比較兩個數字的大小并輸出最大數 ....................................................................... 79 6.3 循環(huán)結構 ..........................................................................................................79 6.3.1 使用for 語句 ....................................................................................................79 實例6-7:計算某個整數的階乘 ............................................................................................... 80 6.3.2 使用while 循環(huán)語句 ........................................................................................81 實例6-8:依次輸出1*1、1*2…到1*20 的積 ........................................................................ 82 6.3.3 使用do-while 語句 ...........................................................................................83 實例6-9:猜數游戲 ................................................................................................................... 84 6.3.4 正確對待goto 語句 ..........................................................................................84 實例6-10:統(tǒng)計從鍵盤輸入一行字符的個數 ......................................................................... 85 6.3.5 使用break 語句 ................................................................................................85 實例6-11:計算圓的面積 ......................................................................................................... 86 6.3.6 使用continue 語句 ...........................................................................................86 實例6-12:輸出顯示100 到200 之間的不能被3 整除的整數 ............................................. 87 6.3.7 死循環(huán)/ 退出程序 ............................................................................................87 第7 章 數組存儲數據 7.1 使用一維數組 ..................................................................................................89 7.1.1 定義一維數組 ...................................................................................................89 7.1.2 引用即使用 .......................................................................................................90 實例7-1:輸出數組內的各個元素值 ....................................................................................... 91 7.1.3 數組需要初始化 ...............................................................................................91 實例7-2:實現一個由小到大排列的冒泡程序 ....................................................................... 92 7.2 多維數組 ..........................................................................................................93 7.2.1 二維數組 ...........................................................................................................93 實例7-3:輸出顯示10 行楊輝三角 ......................................................................................... 95 7.2.2 使用多維數組 ...................................................................................................96 實例7-4:獲取成績最高分的球員編號 ................................................................................... 98 7.3 使用字符數組與字符串 ..................................................................................99 7.3.1 侃侃字符數組 ...................................................................................................99 7.3.2 字符串與字符數組 .........................................................................................100 7.3.3 字符數組的輸入輸出 .....................................................................................101 實例7-5:比較兩個字符串的大小 ......................................................................................... 102 7.4 使用字符處理函數和字符串處理函數 ........................................................103 7.4.1 使用測試字符串長度函數strlen ...................................................................103 實例7-6:使用函數strlen 輸出程序中數組字符串的長度 .................................................. 103 7.4.2 使用字符串大小寫轉換函數strupr 和strlwr ...............................................103 實例7-7:分別輸出輸入字符串的小寫形式和大寫形式 ..................................................... 103 7.4.3 使用字符串復制函數strcpy 和strncpy ........................................................104 實例7-8:復制用戶輸入的字符串 ......................................................................................... 104 7.4.4 使用字符串比較函數strcmp 和strncmp ......................................................105 實例7-9:比較用戶輸入的字符串 ......................................................................................... 106 7.4.5 使用字符串連接函數strcat 和strncat ...........................................................106 實例7-10:連接用戶輸入的字符串 ....................................................................................... 107 7.4.6 將字符串轉換成數值的函數 .........................................................................108 實例7-11:將用戶輸入的字符串轉換為數值類型的值 ....................................................... 108 7.4.7 使用字符檢測函數 .........................................................................................109 實例7-12:判斷字符串中各字符所占用的個數 ................................................................... 109 7.4.8 使用字符大小寫轉換函數tolower 和toupper ..............................................110 實例7-13:將字符串分別輸出轉換為大寫形式和小寫形式 ................................................111 第8 章 函數 8.1 函數基礎知識介紹 ........................................................................................ 112 8.1.1 函數的分類 .....................................................................................................112 8.1.2 函數的定義 .....................................................................................................114 實例8-1:比較兩個數字的大小 ..............................................................................................114 8.2 函數聲明和函數原型 .................................................................................... 115 8.2.1 函數聲明 .........................................................................................................115 實例8-2:求s=(1 2 3 … n)/(1 2 3 … m) 的值 ...............................................................116 8.2.2 函數原型 .........................................................................................................117 8.3 函數的參數 .................................................................................................... 117 8.3.1 形參和實參詳解 .............................................................................................117 實例8-3:計算從1 到某個數字值的和 ..................................................................................118 8.3.2 將數組作為函數參數 .....................................................................................118 實例8-4:判斷一個整數是否大于0 .......................................................................................119 實例8-5:互換二維數組中行和列的元素 ............................................................................. 120 8.4 函數的返回值 ................................................................................................120 實例8-6:計算兩個整數3 和4 的和 ..................................................................................... 121 8.5 實現函數的調用 ............................................................................................122 8.5.1 調用函數的格式 .............................................................................................122 實例8-7:比較3 個數字的大小 ............................................................................................. 122 8.5.2 函數調用的方式 .............................................................................................123 實例8-8:計算最大公約數和最小公倍數 ............................................................................. 123 8.6 函數的嵌套調用和遞歸調用 ........................................................................124 8.6.1 函數嵌套調用詳解 .........................................................................................124 實例8-9:輸出字符串中最長的單詞 ..................................................................................... 125 8.6.2 函數遞歸調用 .................................................................................................126 實例8-10:實現數學中Hanoi 塔問題的解決方案................................................................ 127 8.7 變量的作用域 ................................................................................................129 8.7.1 局部變量作用域 .............................................................................................129 實例8-11:計算長方體的體積和三個面的面積 ................................................................... 129 8.7.2 全局變量作用域 .............................................................................................130 實例8-12:超市價格調整 ....................................................................................................... 130 8.8 靜態(tài)存儲變量和動態(tài)存儲變量 ....................................................................131 8.8.1 靜態(tài)存儲和動態(tài)存儲的區(qū)別 .........................................................................132 8.8.2 四種變量存儲類型 .........................................................................................132 8.8.3 自動變量 .........................................................................................................132 8.8.4 外部變量 .........................................................................................................133 實例8-13:在函數間通過外部函數直接傳遞數據 ............................................................... 134 8.8.5 靜態(tài)變量 .........................................................................................................134 實例8-14:使用靜態(tài)變量設置初始值 ................................................................................... 136 8.8.6 寄存器變量 .....................................................................................................136 實例8-15:使用register 變量提升效率 ................................................................................. 136 8.9 內部函數和外部函數 ....................................................................................137 8.9.1 內部函數詳解 .................................................................................................137 實例8-16:在不同的文件內使用同一個名稱的函數 ........................................................... 138 8.9.2 使用外部函數 .................................................................................................138 實例8-17:在一個文件內調用另一個外部函數 ................................................................... 138 8.10 庫函數 ..........................................................................................................139 8.10.1 庫函數介紹 ...................................................................................................139 8.10.2 庫函數的分類 ...............................................................................................139 第9 章 使用指針 9.1 指針和內存地址 ............................................................................................141 9.2 變量的指針和指向變量的指針變量 ............................................................142 9.2.1 聲明指針變量 .................................................................................................142 9.2.2 初始化指針變量 .............................................................................................143 9.2.3 引用指針變量 .................................................................................................144 實例9-1:將兩個指針變量分別指向兩個變量 ..................................................................... 145 9.2.4 指針運算符 .....................................................................................................145 實例9-2:對輸入的數字進行排序處理 ................................................................................. 146 9.2.5 指針變量的運算 .............................................................................................147 實例9-3:順序顯示數組內的元素并分別逆向輸出 ............................................................. 148 9.2.6 指針變量作為函數參數 .................................................................................148 實例9-4:按照從小到大的順序排序輸出三個整數 ............................................................. 150 9.2.7 void 類型的指針 .............................................................................................151 實例9-5:定義4 個類型的變量,然后分別輸出轉換后的結果 ......................................... 151 9.3 指針和數組 ....................................................................................................152 9.3.1 數組元素的指針 .............................................................................................153 9.3.2 指向一維數組元素的指針變量 .....................................................................154 9.3.3 通過指針引用數組元素 .................................................................................155 實例9-6:分別通過指向數組的指針引用數組、利用數組名和下標引用數組 ................. 156 9.3.4 數組名作函數參數 .........................................................................................158 實例9-7:將數組中的元素按相反順序存放 ......................................................................... 158 實例9-8:輸出數組元素中的最大值和最小值 ..................................................................... 159 9.4 指針和多維數組 ............................................................................................160 9.4.1 多維數組的地址 .............................................................................................160 實例9-9:輸出顯示二維數組元素的地址 ............................................................................. 162 9.4.2 指向多維數組的指針變量 .............................................................................162 實例9-10:2*3 或3*4 矩陣相乘運算 .................................................................................... 164 9.5 指針和字符串 ................................................................................................165 9.5.1 指針訪問字符串 .............................................................................................165 實例9-11:把一個字符串的內容復制到另一個字符串中 ................................................... 166 9.5.2 字符串指針作函數參數 .................................................................................167 實例9-12:使用函數調用復制字符串的內容 ....................................................................... 167 9.6 指針數組和多級指針 ....................................................................................168 9.6.1 指針數組 .........................................................................................................168 9.6.2 多級指針的定義和應用 .................................................................................169 實例9-13:對5 個字符串進行排序 ....................................................................................... 170 9.6.3 指向指針的指針 .............................................................................................171 9.6.4 main 函數的參數 ............................................................................................171 實例9-14:使用帶參數的main 函數輸出指針數組參數的值 ............................................. 172 9.7 指針函數和函數指針 ....................................................................................173 9.7.1 指針函數 .........................................................................................................173 9.7.2 函數指針 .........................................................................................................173
你還可能感興趣
我要評論
|