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