本書是全國普通高等學(xué)校優(yōu)秀教材。本書從實(shí)用性出發(fā),針對初學(xué)者較全面地介紹了C語言的語法規(guī)則、編程思路、編程方法和程序設(shè)計(jì)具體應(yīng)用方面的技能。全書共分9章,主要內(nèi)容包括:算法設(shè)計(jì)、C語言的數(shù)據(jù)類型、表達(dá)式、語句結(jié)構(gòu)、函數(shù)、指針、數(shù)組等。內(nèi)容精練、層次分明、思路清晰、言簡易懂。
前 言
隨著我國計(jì)算機(jī)技術(shù)的迅猛發(fā)展,社會對具備計(jì)算機(jī)基本能力的人才需求急劇增加,具備計(jì)算機(jī)基本知識與能力已成為21 世紀(jì)人才的基本素質(zhì)之一。
未來社會利用計(jì)算機(jī)解決問題已經(jīng)成為了一種主流。要想做到這一點(diǎn),必須首先將現(xiàn)實(shí)世界的事物抽象成計(jì)算機(jī)能夠識別并加工的數(shù)據(jù),接著抽象出加工的流程,然后用計(jì)算機(jī)的語言描述加工流程,最后提交計(jì)算機(jī)執(zhí)行。這就需要我們具備相應(yīng)的計(jì)算思維能力。因此計(jì)算思維在人類未來的工作和生活中極為重要,而程序設(shè)計(jì)正是培養(yǎng)計(jì)算思維能力的一個很好的平臺。
為了適應(yīng)高等學(xué)校正在開展的以計(jì)算機(jī)思維能力培養(yǎng)為重點(diǎn)的大學(xué)計(jì)算機(jī)教育的教學(xué)改革,及時反映計(jì)算機(jī)基礎(chǔ)教學(xué)的研究成果,積極探索適應(yīng)21 世紀(jì)人才培養(yǎng)的教學(xué)模式,我們編寫了這本C 語言程序設(shè)計(jì)案例教材。
C 語言是目前世界上使用最為廣泛的計(jì)算機(jī)程序設(shè)計(jì)語言。由于其強(qiáng)大的功能,特別是其高級語言的表示風(fēng)格和低級語言的特性,使得利用C 語言在編寫應(yīng)用程序和系統(tǒng)軟 前 言
隨著我國計(jì)算機(jī)技術(shù)的迅猛發(fā)展,社會對具備計(jì)算機(jī)基本能力的人才需求急劇增加,具備計(jì)算機(jī)基本知識與能力已成為21 世紀(jì)人才的基本素質(zhì)之一。
未來社會利用計(jì)算機(jī)解決問題已經(jīng)成為了一種主流。要想做到這一點(diǎn),必須首先將現(xiàn)實(shí)世界的事物抽象成計(jì)算機(jī)能夠識別并加工的數(shù)據(jù),接著抽象出加工的流程,然后用計(jì)算機(jī)的語言描述加工流程,最后提交計(jì)算機(jī)執(zhí)行。這就需要我們具備相應(yīng)的計(jì)算思維能力。因此計(jì)算思維在人類未來的工作和生活中極為重要,而程序設(shè)計(jì)正是培養(yǎng)計(jì)算思維能力的一個很好的平臺。
為了適應(yīng)高等學(xué)校正在開展的以計(jì)算機(jī)思維能力培養(yǎng)為重點(diǎn)的大學(xué)計(jì)算機(jī)教育的教學(xué)改革,及時反映計(jì)算機(jī)基礎(chǔ)教學(xué)的研究成果,積極探索適應(yīng)21 世紀(jì)人才培養(yǎng)的教學(xué)模式,我們編寫了這本C 語言程序設(shè)計(jì)案例教材。
C 語言是目前世界上使用最為廣泛的計(jì)算機(jī)程序設(shè)計(jì)語言。由于其強(qiáng)大的功能,特別是其高級語言的表示風(fēng)格和低級語言的特性,使得利用C 語言在編寫應(yīng)用程序和系統(tǒng)軟件方面都得天獨(dú)厚,成為目前最為實(shí)用的且功能強(qiáng)大的編程語言,因而被大多數(shù)高等院校當(dāng)作理工科學(xué)生的公共必修課程。但是其精細(xì)的語言規(guī)則和強(qiáng)悍的計(jì)算思維成為初學(xué)者學(xué)習(xí)C語言的兩道屏障。對于學(xué)C 語言的初學(xué)者而言,必須通過大量的程序?qū)嵗,由淺入深逐步體會C 語言的語法規(guī)則和計(jì)算思維,才能達(dá)到具有使用C 語言編寫程序的基本能力。
本書采用知識講解、程序案例、實(shí)驗(yàn)、反思的書寫形式,將知識點(diǎn)融入程序案例,以程序案例帶動知識點(diǎn)的學(xué)習(xí),并在關(guān)鍵點(diǎn)上通過“知識延伸”和“思維拓展”的方式引發(fā)讀者的思考來提高其對該課程的學(xué)習(xí)興趣,同時配以一定的實(shí)驗(yàn),四者相輔相成。在具體程序案例的講解中,通過閱讀問題、展開分析、給出解題思路并結(jié)合C 語言的語法規(guī)則,使讀者理解并掌握C 程序設(shè)計(jì)思想的具體實(shí)現(xiàn)過程,通過實(shí)驗(yàn)中的實(shí)驗(yàn)?zāi)康暮途唧w要求,將問題由易到難逐步編程,從而掌握C 語言。
任軍老師負(fù)責(zé)本書統(tǒng)稿,并編寫了本書第1、2章,第3~5章由王宇龍編寫,第6、7章由孔琳俊編寫,第8章由高印軍編寫,第9章由王超編寫,附錄A由張永編寫。
本書向使用本書作為教材的老師提供免費(fèi)電子課件、程序代碼和習(xí)題參考答案,請登錄華信教育資源網(wǎng)注冊下載。
本書在編寫過程中一直致力于將理論與實(shí)踐緊密結(jié)合的原則,然而由于時間較為倉促,
加之編寫者水平有限,書中難免出現(xiàn)不妥之處和局部錯誤,敬請讀者批評指正。
王宇龍,兵器工業(yè)信息中心?琢湛,浙江財(cái)經(jīng)大學(xué)。高印軍,中海油研究總院。王超,南陽師范學(xué)院。張永,南昌航空航天大學(xué)。
第1章 算法與C程序設(shè)計(jì) 1
1.1 算法 1
1.1.1 算法的相關(guān)知識 1
1.1.2 算法表示案例 8
1.2 C程序設(shè)計(jì) 10
1.2.1 分析問題 11
1.2.2 C程序設(shè)計(jì)的基本方法 11
1.2.3 C語言程序的構(gòu)成和基本格式 12
1.3 C語言程序的集成開發(fā)環(huán)境 13
練習(xí)與實(shí)戰(zhàn) 18
第2章 C語言基礎(chǔ) 21
2.1 C語言特點(diǎn) 21
2.1.1 C語言的來歷 21
2.1.2 C語言的特點(diǎn) 21
2.2 數(shù)據(jù)類型 22 第1章 算法與C程序設(shè)計(jì) 1
1.1 算法 1
1.1.1 算法的相關(guān)知識 1
1.1.2 算法表示案例 8
1.2 C程序設(shè)計(jì) 10
1.2.1 分析問題 11
1.2.2 C程序設(shè)計(jì)的基本方法 11
1.2.3 C語言程序的構(gòu)成和基本格式 12
1.3 C語言程序的集成開發(fā)環(huán)境 13
練習(xí)與實(shí)戰(zhàn) 18
第2章 C語言基礎(chǔ) 21
2.1 C語言特點(diǎn) 21
2.1.1 C語言的來歷 21
2.1.2 C語言的特點(diǎn) 21
2.2 數(shù)據(jù)類型 22
2.3 標(biāo)識符與關(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 逗號運(yùn)算符和逗號表達(dá)式 30
2.6 C語言數(shù)據(jù)類型、運(yùn)算符和表達(dá)式實(shí)驗(yàn)指導(dǎo) 32
2.7 書寫上機(jī)實(shí)驗(yàn)報(bào)告 33
練習(xí)與實(shí)戰(zhàn) 34
第3章 順序結(jié)構(gòu)程序設(shè)計(jì) 37
3.1 C語句 37
3.1.1 變量定義語句 37
3.1.2 表達(dá)式語句 37
3.1.3 復(fù)合語句 38
3.1.4 空語句 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語句實(shí)現(xiàn)的選擇結(jié)構(gòu) 53
4.2.1 if語句的兩種基本形式 54
4.2.2 if語句的嵌套 58
4.3 由switch語句實(shí)現(xiàn)的多分支選擇結(jié)構(gòu) 61
4.3.1 switch語句的基本形式 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)語句 69
5.2 do-while循環(huán)語句 71
5.3 for循環(huán)語句 73
5.4 循環(huán)的嵌套 78
5.5 break語句和continue語句 80
5.5.1 break語句 80
5.5.2 continue語句 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 對被調(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 變量的存儲類別 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庫函數(shù) 171