本書(shū)是全國(guó)普通高等學(xué)校優(yōu)秀教材。本書(shū)從實(shí)用性出發(fā),針對(duì)初學(xué)者較全面地介紹了C語(yǔ)言的語(yǔ)法規(guī)則、編程思路、編程方法和程序設(shè)計(jì)具體應(yīng)用方面的技能。全書(shū)共分9章,主要內(nèi)容包括:算法設(shè)計(jì)、C語(yǔ)言的數(shù)據(jù)類型、表達(dá)式、語(yǔ)句結(jié)構(gòu)、函數(shù)、指針、數(shù)組等。內(nèi)容精練、層次分明、思路清晰、言簡(jiǎn)易懂。
前 言
隨著我國(guó)計(jì)算機(jī)技術(shù)的迅猛發(fā)展,社會(huì)對(duì)具備計(jì)算機(jī)基本能力的人才需求急劇增加,具備計(jì)算機(jī)基本知識(shí)與能力已成為21 世紀(jì)人才的基本素質(zhì)之一。
未來(lái)社會(huì)利用計(jì)算機(jī)解決問(wèn)題已經(jīng)成為了一種主流。要想做到這一點(diǎn),必須首先將現(xiàn)實(shí)世界的事物抽象成計(jì)算機(jī)能夠識(shí)別并加工的數(shù)據(jù),接著抽象出加工的流程,然后用計(jì)算機(jī)的語(yǔ)言描述加工流程,最后提交計(jì)算機(jī)執(zhí)行。這就需要我們具備相應(yīng)的計(jì)算思維能力。因此計(jì)算思維在人類未來(lái)的工作和生活中極為重要,而程序設(shè)計(jì)正是培養(yǎng)計(jì)算思維能力的一個(gè)很好的平臺(tái)。
為了適應(yīng)高等學(xué)校正在開(kāi)展的以計(jì)算機(jī)思維能力培養(yǎng)為重點(diǎn)的大學(xué)計(jì)算機(jī)教育的教學(xué)改革,及時(shí)反映計(jì)算機(jī)基礎(chǔ)教學(xué)的研究成果,積極探索適應(yīng)21 世紀(jì)人才培養(yǎng)的教學(xué)模式,我們編寫(xiě)了這本C 語(yǔ)言程序設(shè)計(jì)案例教材。
C 語(yǔ)言是目前世界上使用最為廣泛的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。由于其強(qiáng)大的功能,特別是其高級(jí)語(yǔ)言的表示風(fēng)格和低級(jí)語(yǔ)言的特性,使得利用C 語(yǔ)言在編寫(xiě)應(yīng)用程序和系統(tǒng)軟 前 言
隨著我國(guó)計(jì)算機(jī)技術(shù)的迅猛發(fā)展,社會(huì)對(duì)具備計(jì)算機(jī)基本能力的人才需求急劇增加,具備計(jì)算機(jī)基本知識(shí)與能力已成為21 世紀(jì)人才的基本素質(zhì)之一。
未來(lái)社會(huì)利用計(jì)算機(jī)解決問(wèn)題已經(jīng)成為了一種主流。要想做到這一點(diǎn),必須首先將現(xiàn)實(shí)世界的事物抽象成計(jì)算機(jī)能夠識(shí)別并加工的數(shù)據(jù),接著抽象出加工的流程,然后用計(jì)算機(jī)的語(yǔ)言描述加工流程,最后提交計(jì)算機(jī)執(zhí)行。這就需要我們具備相應(yīng)的計(jì)算思維能力。因此計(jì)算思維在人類未來(lái)的工作和生活中極為重要,而程序設(shè)計(jì)正是培養(yǎng)計(jì)算思維能力的一個(gè)很好的平臺(tái)。
為了適應(yīng)高等學(xué)校正在開(kāi)展的以計(jì)算機(jī)思維能力培養(yǎng)為重點(diǎn)的大學(xué)計(jì)算機(jī)教育的教學(xué)改革,及時(shí)反映計(jì)算機(jī)基礎(chǔ)教學(xué)的研究成果,積極探索適應(yīng)21 世紀(jì)人才培養(yǎng)的教學(xué)模式,我們編寫(xiě)了這本C 語(yǔ)言程序設(shè)計(jì)案例教材。
C 語(yǔ)言是目前世界上使用最為廣泛的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。由于其強(qiáng)大的功能,特別是其高級(jí)語(yǔ)言的表示風(fēng)格和低級(jí)語(yǔ)言的特性,使得利用C 語(yǔ)言在編寫(xiě)應(yīng)用程序和系統(tǒng)軟件方面都得天獨(dú)厚,成為目前最為實(shí)用的且功能強(qiáng)大的編程語(yǔ)言,因而被大多數(shù)高等院校當(dāng)作理工科學(xué)生的公共必修課程。但是其精細(xì)的語(yǔ)言規(guī)則和強(qiáng)悍的計(jì)算思維成為初學(xué)者學(xué)習(xí)C語(yǔ)言的兩道屏障。對(duì)于學(xué)C 語(yǔ)言的初學(xué)者而言,必須通過(guò)大量的程序?qū)嵗,由淺入深逐步體會(huì)C 語(yǔ)言的語(yǔ)法規(guī)則和計(jì)算思維,才能達(dá)到具有使用C 語(yǔ)言編寫(xiě)程序的基本能力。
本書(shū)采用知識(shí)講解、程序案例、實(shí)驗(yàn)、反思的書(shū)寫(xiě)形式,將知識(shí)點(diǎn)融入程序案例,以程序案例帶動(dòng)知識(shí)點(diǎn)的學(xué)習(xí),并在關(guān)鍵點(diǎn)上通過(guò)“知識(shí)延伸”和“思維拓展”的方式引發(fā)讀者的思考來(lái)提高其對(duì)該課程的學(xué)習(xí)興趣,同時(shí)配以一定的實(shí)驗(yàn),四者相輔相成。在具體程序案例的講解中,通過(guò)閱讀問(wèn)題、展開(kāi)分析、給出解題思路并結(jié)合C 語(yǔ)言的語(yǔ)法規(guī)則,使讀者理解并掌握C 程序設(shè)計(jì)思想的具體實(shí)現(xiàn)過(guò)程,通過(guò)實(shí)驗(yàn)中的實(shí)驗(yàn)?zāi)康暮途唧w要求,將問(wèn)題由易到難逐步編程,從而掌握C 語(yǔ)言。
任軍老師負(fù)責(zé)本書(shū)統(tǒng)稿,并編寫(xiě)了本書(shū)第1、2章,第3~5章由王宇龍編寫(xiě),第6、7章由孔琳俊編寫(xiě),第8章由高印軍編寫(xiě),第9章由王超編寫(xiě),附錄A由張永編寫(xiě)。
本書(shū)向使用本書(shū)作為教材的老師提供免費(fèi)電子課件、程序代碼和習(xí)題參考答案,請(qǐng)登錄華信教育資源網(wǎng)注冊(cè)下載。
本書(shū)在編寫(xiě)過(guò)程中一直致力于將理論與實(shí)踐緊密結(jié)合的原則,然而由于時(shí)間較為倉(cāng)促,
加之編寫(xiě)者水平有限,書(shū)中難免出現(xiàn)不妥之處和局部錯(cuò)誤,敬請(qǐng)讀者批評(píng)指正。
王宇龍,兵器工業(yè)信息中心?琢湛,浙江財(cái)經(jīng)大學(xué)。高印軍,中海油研究總院。王超,南陽(yáng)師范學(xué)院。張永,南昌航空航天大學(xué)。
第1章 算法與C程序設(shè)計(jì) 1
1.1 算法 1
1.1.1 算法的相關(guān)知識(shí) 1
1.1.2 算法表示案例 8
1.2 C程序設(shè)計(jì) 10
1.2.1 分析問(wèn)題 11
1.2.2 C程序設(shè)計(jì)的基本方法 11
1.2.3 C語(yǔ)言程序的構(gòu)成和基本格式 12
1.3 C語(yǔ)言程序的集成開(kāi)發(fā)環(huán)境 13
練習(xí)與實(shí)戰(zhàn) 18
第2章 C語(yǔ)言基礎(chǔ) 21
2.1 C語(yǔ)言特點(diǎn) 21
2.1.1 C語(yǔ)言的來(lái)歷 21
2.1.2 C語(yǔ)言的特點(diǎn) 21
2.2 數(shù)據(jù)類型 22 第1章 算法與C程序設(shè)計(jì) 1
1.1 算法 1
1.1.1 算法的相關(guān)知識(shí) 1
1.1.2 算法表示案例 8
1.2 C程序設(shè)計(jì) 10
1.2.1 分析問(wèn)題 11
1.2.2 C程序設(shè)計(jì)的基本方法 11
1.2.3 C語(yǔ)言程序的構(gòu)成和基本格式 12
1.3 C語(yǔ)言程序的集成開(kāi)發(fā)環(huán)境 13
練習(xí)與實(shí)戰(zhàn) 18
第2章 C語(yǔ)言基礎(chǔ) 21
2.1 C語(yǔ)言特點(diǎn) 21
2.1.1 C語(yǔ)言的來(lái)歷 21
2.1.2 C語(yǔ)言的特點(diǎn) 21
2.2 數(shù)據(jù)類型 22
2.3 標(biāo)識(shí)符與關(guān)鍵字 23
2.4 常量和變量 24
2.4.1 常量 24
2.4.2 變量 25
2.5 表達(dá)式 26
2.5.1 算術(shù)運(yùn)算符與算術(shù)表達(dá)式 26
2.5.2 強(qiáng)制類型轉(zhuǎn)換運(yùn)算符與強(qiáng)制類型轉(zhuǎn)換表達(dá)式 27
2.5.3 賦值運(yùn)算符和賦值表達(dá)式 27
2.5.4 自增、自減運(yùn)算符 29
2.5.5 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 30
2.6 C語(yǔ)言數(shù)據(jù)類型、運(yùn)算符和表達(dá)式實(shí)驗(yàn)指導(dǎo) 32
2.7 書(shū)寫(xiě)上機(jī)實(shí)驗(yàn)報(bào)告 33
練習(xí)與實(shí)戰(zhàn) 34
第3章 順序結(jié)構(gòu)程序設(shè)計(jì) 37
3.1 C語(yǔ)句 37
3.1.1 變量定義語(yǔ)句 37
3.1.2 表達(dá)式語(yǔ)句 37
3.1.3 復(fù)合語(yǔ)句 38
3.1.4 空語(yǔ)句 38
3.2 數(shù)據(jù)的輸入和輸出 38
3.2.1 printf函數(shù)(格式輸出函數(shù)) 39
3.2.2 scanf函數(shù)(格式輸入函數(shù)) 42
3.3 順序結(jié)構(gòu)程序案例 43
3.4 順序結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo) 46
練習(xí)與實(shí)戰(zhàn) 47
第4章 選擇結(jié)構(gòu)程序設(shè)計(jì) 50
4.1 關(guān)系表達(dá)式和邏輯表達(dá)式 50
4.1.1 關(guān)系表達(dá)式 50
4.1.2 邏輯表達(dá)式 52
4.2 由if語(yǔ)句實(shí)現(xiàn)的選擇結(jié)構(gòu) 53
4.2.1 if語(yǔ)句的兩種基本形式 54
4.2.2 if語(yǔ)句的嵌套 58
4.3 由switch語(yǔ)句實(shí)現(xiàn)的多分支選擇結(jié)構(gòu) 61
4.3.1 switch語(yǔ)句的基本形式 61
4.4 能實(shí)現(xiàn)雙分支選擇結(jié)構(gòu)的條件表達(dá)式 64
4.5 選擇結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo) 65
練習(xí)與實(shí)戰(zhàn) 66
第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 69
5.1 while循環(huán)語(yǔ)句 69
5.2 do-while循環(huán)語(yǔ)句 71
5.3 for循環(huán)語(yǔ)句 73
5.4 循環(huán)的嵌套 78
5.5 break語(yǔ)句和continue語(yǔ)句 80
5.5.1 break語(yǔ)句 80
5.5.2 continue語(yǔ)句 80
5.6 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo) 83
練習(xí)與實(shí)戰(zhàn) 85
第6章 數(shù)組與字符串 89
6.1 一維數(shù)組 89
6.1.1 一維數(shù)組的定義 89
6.1.2 一維數(shù)組元素的引用 89
6.1.3 一維數(shù)組的初始化 91
6.1.4 一維數(shù)組程序案例 91
6.2 二維數(shù)組 95
6.2.1 二維數(shù)組的定義 95
6.2.2 二維數(shù)組元素的引用 96
6.2.3 二維數(shù)組的初始化 97
6.2.4 二維數(shù)組程序案例 98
6.3 字符數(shù)組與字符串 99
6.3.1 字符數(shù)組的定義 99
6.3.2 字符數(shù)組的初始化 99
6.3.4 字符數(shù)組的案例 100
6.3.5 字符串處理函數(shù) 102
6.4 數(shù)組程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo) 104
練習(xí)與實(shí)戰(zhàn) 105
第7章 指針 107
7.1 指針和指針變量 107
7.1.1 指針的概念及指針變量 107
7.1.2 指針變量的定義 108
7.1.3 指針變量的引用 109
7.2 指針與數(shù)組 113
7.2.1 指針與數(shù)組元素的關(guān)系 113
7.2.2 指針運(yùn)算 114
7.2.3 指針與數(shù)組 117
7.2.4 指針與字符串 120
7.3 指針數(shù)組 121
7.3.1 指針數(shù)組的定義 121
7.3.2 指針數(shù)組元素的使用 122
7.4 指針程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo) 123
練習(xí)與實(shí)戰(zhàn) 124
上機(jī)實(shí)戰(zhàn) 126
第8章 模塊化程序設(shè)計(jì) 127
8.1 概述 127
8.2 函數(shù)的定義 127
8.3 函數(shù)的參數(shù)和返回值 129
8.3.1 函數(shù)的參數(shù) 129
8.3.2 函數(shù)的返回值 130
8.4 函數(shù)的調(diào)用 131
8.4.1 函數(shù)調(diào)用的一般形式 131
8.4.2 對(duì)被調(diào)用函數(shù)的聲明和函數(shù)原型 133
8.4.3 函數(shù)的嵌套調(diào)用 134
8.4.4 函數(shù)的遞歸調(diào)用 135
8.5 數(shù)組作為函數(shù)的參數(shù) 138
8.6 變量的作用域 140
8.6.1 局部變量 140
8.6.2 全局變量 141
8.7 變量的存儲(chǔ)類別 142
8.8 函數(shù)程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo) 146
練習(xí)與實(shí)戰(zhàn) 147
第9章 復(fù)雜數(shù)據(jù)類型 152
9.1 結(jié)構(gòu)體 152
9.1.1 結(jié)構(gòu)體類型定義 152
9.1.2 結(jié)構(gòu)體變量的引用 155
9.1.3 結(jié)構(gòu)體數(shù)組 157
9.2 共用體 160
9.2.1 共用體類型定義 161
9.2.2 共用體類型應(yīng)用案例 162
9.3 枚舉類型 163
9.4 用typedef為類型定義別名 165
9.5 結(jié)構(gòu)體程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo) 165
練習(xí)與實(shí)戰(zhàn) 167
附錄A C庫(kù)函數(shù) 171