這是一本適合學習C語言編程的入門教材,全書通過豐富的范例對C語言的基礎語法進行通俗明了的講解,內容包括C語言的數據處理、表達式與運算符、選擇性流程控制、循環流程控制、數組與字符串以及函數等的應用。
本書強調學用相結合,豐富的范例程序結合上機實踐,教你領會C語言結構化編程的基本概念;綜合范例練習幫助你強化語法的理解能力;各章的課后練習可馬上檢驗你的學習效果;另外還有完整的教學視頻可供下載,以輔助你更加高效地自學。
希望本書能降低中學生學習C語言編程的門檻,減少編程初學者自學的障礙,成為大家進入程序設計領域的*課,同時為進一步學習人工智知識理論、應用拓展、創新設計等打下堅實的基礎。
這是一本適合中學生零基礎學C語言的入門書,全書重點以基礎語法為主。
通過章節內有趣多樣的范例程序,在實踐練習中輕松理解C語言的概念。
每章*后的綜合范例程序,有助于讀者靈活應用C編程。
各章均安排了課后習題,可以檢驗學習成效。
前 言
人工智能技術的未來就是信息技術的未來,而程序設計或稱為編程是學習人工智能技術的邏輯編程類和通過編程實踐解決問題的基礎課程之一,已經列入中學的信息技術課程,對于將來人才綜合素質的評估,即便是非計算機或信息類專業的人才,程序設計也是必備的基礎能力之一。
C 語言稱得上是一門歷史悠久的高級程序設計語言,也往往是現代程序設計初學者最先接觸的程序設計語言,對近代的計算機科學領域有著非凡的貢獻。C 語言持續屹立不倒已達40 余年,無論是后來的C 、Java、PHP,還是.NET 中的C#、VB.NET 等,都是以C 語言作為參考發展起來的。因此,學會C 語言往往是學習其他程序設計語言的基礎。只有當我們具備了邏輯編程的堅實基礎和通過編程實踐來解決問題的能力,才能進一步學習人工智能的知識理論類的課程、應用拓展類課程、創新設計類的課程。
C 語言具備高級語言的結構化語法,有高度可移植性與強大的數據處理能力。絕大多數硬件驅動程序、網絡協議都是C 語言所編寫的,特別是以C開發出來的程序,其執行效率相當高,也相當穩定,深受許多程序設計者的喜愛。
市面上關于C 程序設計方面的書非常多,但編寫的主要內容通常適用于大專院校的程序設計語言課程,這類書的定位較不適合中學生和初學者,在這種思路的指引下,希望可以編寫一本適合中學生入門和初學者自學的教材。因此本書講述的內容以基礎語法為主,再導入一些簡單的函數基本概念,希望學習者可以通過有趣且多樣的簡易范例程序,輕松學會C 程序設計語言。
另外,本書在各章結束前除了綜合程序范例外,還安排了課后習題,可用于檢驗學習成效。因此,本書非常適合作為C 語言的入門教材。筆者通過大量的范例程序來幫助初學者學習,以便快速帶領大家進入C 語言程序設計領域。
本書由趙軍主編,參與本書編寫的人員還有張明、王國春、施妍然、王然等。由于編者水平和經驗所限,書中難免存在疏漏和不足之處,希望得到大家的批評指正。
本書為讀者特意錄制了教學視頻,希望能降低中學生的學習門檻,減少初學者的自學困惑。
讀者可以從以下地址(注意區分數字與英文大小寫)下載所有范例程序的源代碼、教學PPT 和全程視頻文件:
https://pan.baidu.com/s/1cJ5-nuB4m8_c5OpuI3KTHA
也可以掃描右方的二維碼下載,如果下載有問題,或者對本書有任何疑問與建議,請聯系booksaga@126.com,郵件主題為C 語言程序設計第一課。
最后,為了便于讀者在學習中進行討論和交流,我們還建立了程序設計第一課討論群(QQ 群),大家可以在群里討論問題,筆者也會對重點問題進行解答。QQ 群號為801630455,也可以直接掃描進群的二維碼:
編 者
趙軍,畢業于北京大學計算機系并獲得計算機科學理學碩士學位,在英特爾中國OEM部門擔任高級技術工程師,并于2001年獲得英特爾成就獎。自2003年10月至2007年5月,趙軍擔任工程技術經理、技術市場經理。從2007年6月至2013年6月底,他在產品市場部擔任資深架構經理,技術和產品發言人。
目 錄
第 1 章C 語言初步體驗
1.1 認識程序設計語言 2
1.1.1 機器語言 2
1.1.2 匯編語言 3
1.1.3 高級語言 3
1.1.4 非過程性語言 4
1.1.5 人工智能語言 4
1.2 C 語言的特色 4
1.2.1 硬件溝通能力 5
1.2.2 高效率的編譯型語言 5
1.2.3 程序的可移植性高 6
1.2.4 靈活的流程控制 6
1.3 Dev-C 的下載與簡介 6
1.3.1 Dev-C 下載過程 6
1.3.2 認識Dev-C 工作環境 10
1.4 Hello ! 我的第一個C 程序 11
1.4.1 程序代碼的編寫 12
1.4.2 程序代碼的編譯與運行 14
1.4.3 程序調試簡介 15
1.5 程序代碼快速解析 16
1.5.1 頭文件與#include 指令 17
1.5.2 main() 函數 18
1.5.3 printf() 函數與注釋 18
1.5.4 return 語句 19
1.6 綜合范例程序 19
本章重點回顧 20
課后習題 21
第 2 章 C 語言的數據處理
2.1 變量 24
2.1.1 變量聲明 24
2.1.2 變量的命名規則 27
2.1.3 sizeof 運算符 28
2.1.4 常數 30
2.2 基本數據類型 32
2.2.1 整數類型 32
2.2.2 浮點數類型 36
2.2.3 字符類型 40
2.2.4 轉義序列 43
2.3 格式化輸入與輸出功能 45
2.3.1 printf() 函數 45
2.3.2 格式化字符的高級設置 49
2.3.3 scanf() 函數 51
2.4 綜合范例程序1成績統計小幫手 53
2.5 綜合范例程序2轉義字符序列的應用 55
本章重點回顧 56
課后習題 57
第 3 章活用表達式與運算符
3.1 運算符的簡介 60
3.1.1 賦值運算符 60
3.1.2 算術運算符 61
3.1.3 關系運算符 63
3.1.4 邏輯運算符 64
3.1.5 遞增與遞減運算符 67
3.1.6 位運算符 70
3.1.7 復合賦值運算符 75
3.1.8 條件運算符 77
3.2 運算符的優先級 79
3.3 綜合范例程序1鈔票兌換機 84
3.4 綜合范例程序2溫度轉換器 85
本章重點回顧 86
課后習題 87
第 4 章選擇性流程控制
4.1 結構化程序設計 90
4.2 選擇結構 92
4.2.1 if 條件指令 93
4.2.2 if else 條件語句 96
4.2.3 if else if 條件語句 99
4.2.4 switch 選擇語句 104
4.3 綜合范例程序1閏年計算器 110
4.4 綜合范例程序2簡易計算器的制作 111
本章重點回顧 113
課后習題 113
第 5 章循環流程控制
5.1 for 循環 116
5.2 while 循環 121
5.3 流程跳離指令 127
5.3.1 break 指令 128
5.3.2 continue 指令 129
5.3.3 goto 指令 132
5.4 綜合范例程序1求解最大公約數 134
5.5 綜合范例程序2密碼驗證器 135
本章重點回顧 137
課后習題 138
第 6 章數組與字符串
6.1 數組簡介 141
6.1.1 一維數組 141
6.1.2 二維數組 147
6.1.3 多維數組 152
6.2 字符串 154
6.2.1 字符串聲明 155
6.2.2 字符串數組 157
6.3 綜合范例程序1冒泡排序法 161
6.4 綜合范例程序2字母大小寫轉換器 165
本章重點回顧 166
課后習題 167
第7章 函數
7.1 函數簡介 170
7.1.1 函數的原型聲明 172
7.1.2 函數主體的定義 174
7.1.3 函數調用 174
7.2 參數的傳遞方式 176
7.2.1 傳值調用 177
7.2.2 傳址調用 179
7.3 數組參數的傳遞 181
7.3.1 一維數組傳遞 182
7.3.2 多維數組傳遞 184
7.4 遞歸函數 189
7.5 綜合范例程序1漢諾塔游戲 192
7.6 綜合范例程序2萬年歷 194
本章重點回顧 196
課后習題 197
附錄習題答案199