本書是全國普通高等學校優秀教材,從實用性出發,針對初學者較全面地介紹C語言的語法規則、編程思路、編程方法和程序設計具體應用方面的技能。全書共8章,主要內容包括:算法與C語言程序設計、C語言概述、順序結構程序設計、選擇結構程序設計、循環結構程序設計、簡單構造數據類型、模塊化程序設計和復雜構造數據類型,以及C語言庫函數,每章后附實驗指導和上機實踐。本書提供配套電子課件、程序代碼和習題參考答案等。
王端理,1985年大學畢業后進入貴州師范大學數學系工作,承擔《高等數學》、《復變函數》、《計算機基礎》、《C語言程序設計》、《數據庫原理》、《數據結構》、《軟件工程》、《數據庫應用實例開發》等課程的教學工作,2000年評為副教授,1998年曾到清華大學進修。
目 錄
第1章 算法與C語言程序設計 1
1.1 算法 1
1.1.1 基本概念 1
1.1.2 算法表示案例 6
1.2 C語言程序設計 9
1.2.1 分析問題 9
1.2.2 C語言程序設計的基本方法 10
1.2.3 C語言程序的構成和基本格式 10
自我練習 12
第2章 C語言概述 15
2.1 認識C語言 15
2.1.1 C語言的來歷 15
2.1.2 C語言的特點 15 目 錄
第1章 算法與C語言程序設計 1
1.1 算法 1
1.1.1 基本概念 1
1.1.2 算法表示案例 6
1.2 C語言程序設計 9
1.2.1 分析問題 9
1.2.2 C語言程序設計的基本方法 10
1.2.3 C語言程序的構成和基本格式 10
自我練習 12
第2章 C語言概述 15
2.1 認識C語言 15
2.1.1 C語言的來歷 15
2.1.2 C語言的特點 15
2.2 C語言的集成開發環境 16
2.3 書寫實驗報告 21
2.4 數據類型 22
2.5 標識符與關鍵字 23
2.6 常量和變量 23
2.6.1 常量 23
2.6.2 變量 24
2.7 表達式 25
2.7.1 算術運算符與算術表達式 25
2.7.2 強制類型轉換運算符與強制
類型轉換表達式 26
2.7.3 賦值運算符與賦值表達式 26
2.7.4 自增自減運算符 28
2.7.5 逗號運算符與逗號表達式 29
2.8 C語言數據類型、運算符和
表達式實驗指導 30
自我練習 31
第3章 順序結構程序設計 33
3.1 C語句 33
3.1.1 變量定義語句 33
3.1.2 賦值語句 33
3.1.3 由printf( )函數和scanf( )函數
構成的輸入/輸出語句 33
3.1.4 復合語句 36
3.1.5 空語句 37
3.2 順序結構程序案例 37
3.3 順序結構程序設計實驗指導 40
自我練習 41
上機實戰 42
第4章 選擇結構程序設計 43
4.1 關系表達式和邏輯表達式 43
4.1.1 關系表達式 43
4.1.2 邏輯表達式 45
4.2 由if語句實現的選擇結構 46
4.2.1 if語句的兩種基本形式 46
4.2.2 if語句的嵌套 50
4.3 由switch語句實現的多分支
選擇結構 53
4.4 能實現雙分支選擇結構的條件
表達式 56
4.5 選擇結構程序設計實驗指導 56
自我練習 57
上機實戰 59
第5章 循環結構程序設計 60
5.1 while語句(當型循環) 60
5.1.1 while循環的執行流程 60
5.1.2 while循環案例 61
5.2 do-while語句(直到型循環) 62
5.2.1 do-while循環的執行流程 63
5.2.2 do-while循環案例 63
5.3 for語句(當型循環) 64
5.3.1 for循環的執行流程 65
5.3.2 for循環案例 66
5.4 幾種循環的比較 67
5.4.1 比較 68
5.4.2 案例 69
5.5 循環的嵌套 70
5.6 break語句和continue語句 71
5.6.1 釋義 71
5.6.2 二者的區別 72
5.7 循環結構程序設計實驗指導 73
自我練習 75
上機實戰 77
第6章 簡單構造數據類型 78
6.1 一維數組 78
6.1.1 一維數組的定義 78
6.1.2 一維數組的引用 79
6.1.3 一維數組的初始化 80
6.1.4 一維數組程序案例 80
6.2 二維數組 83
6.2.1 二維數組的定義 83
6.2.2 二維數組的引用 83
6.2.3 二維數組的初始化 84
6.2.4 二維數組程序案例 85
6.3 字符數組 85
6.3.1 字符數組的定義 85
6.3.2 字符數組的用途 86
6.3.3 字符數組的初始化 86
6.3.4 字符數組的輸入與輸出 86
6.3.5 字符串處理函數 88
6.4 指針 90
6.4.1 指針和指針變量 90
6.4.2 指針變量的定義與賦值 91
6.4.3 指針變量的使用方法 92
6.5 指針與數組 93
6.5.1 指針與數組的關系 93
6.5.2 指針基本運算 94
6.5.3 使指針指向一個字符串 97
6.6 指針數組 98
6.6.1 指針數組的定義 98
6.6.2 指針數組元素的使用 99
6.7 綜合案例 100
6.8 數組程序設計實驗指導 103
自我練習 104
上機實戰 106
第7章 模塊化程序設計 107
7.1 概述 107
7.2 函數的定義 107
7.3 函數的參數和返回值 109
7.3.1 函數的參數 109
7.3.2 函數的返回值 109
7.4 函數的調用 110
7.4.1 函數調用的一般形式 110
7.4.2 對被調用函數的聲明和函數
原型 111
7.4.3 函數的嵌套調用 113
7.4.4 函數的遞歸調用 114
7.5 數組作為函數的參數 117
7.6 變量的作用域 121
7.6.1 局部變量 121
7.6.2 全局變量 122
7.7 變量的存儲類別 123
7.8 函數程序設計實驗指導 127
自我練習 127
上機實戰 131
第8章 復雜構造數據類型 132
8.1 結構體 132
8.1.1 結構體類型定義 132
8.1.2 結構體數組 136
8.1.3 指向結構體類型數據的指針 140
8.2 共用體 142
8.2.1 共用體類型定義 142
8.2.2 共用體類型應用案例 143
8.3 枚舉類型 144
8.4 用typedef為類型定義別名 145
8.5 結構體程序設計實驗指導 145
自我練習 146
上機實戰 148
附錄A C語言庫函數 149
參考文獻 153
前 言
隨著我國計算機技術的迅猛發展,社會對具備計算機基本能力人才的需求急劇增加,具備計算機基本知識與能力已成為21世紀人才的基本素質之一。
未來社會利用計算機解決問題已經成為了一種主流。要想做到這一點,人類必須首先將現實世界的事物抽象成計算機能夠識別并加工的數據,接著抽象出加工的流程,然后用計算機語言描述加工流程,最后提交給計算機執行。這就需要我們具備相應的計算思維能力,因此計算思維在人類未來的工作和生活中極為重要。程序設計是培養計算思維能力的一個很好的平臺。
為了適應高等學校正在開展的以計算思維能力培養為重點的大學計算機教育的教學改革,及時反映計算機基礎教學的研究成果,積極探索適應21世紀人才培養的教學模式,我們編寫了這本C語言程序設計案例教程。
C語言是目前世界上使用最廣泛的計算機程序設計語言。由于其強大的功能,特別是其高級語言的表示風格和低級語言的特性,使得利用C語言在編寫應用程序和系統軟件方面都得天獨厚,成為目前最實用且功能強大的編程語言,因而被大多數高等學校采用作為理工科的公共必修課程。然而其精細的語言規則和強悍的計算思維體系成為初學者學習C語言的兩道屏障。對于C語言的初學者而言,必須通過大量的程序實例,由淺入深地逐步體會C語言的語法規則和計算思維,才能達到具有使用C語言編寫程序的基本能力。
本書采用“知識講解—程序案例—實驗跟進—引發思考”的形式,將知識點融入程序案例,以程序案例帶動知識點的學習,并在關鍵點上通過“想一想,做一做”的方式引發思考,來提高讀者對該課程的學習興趣,同時配以一定的實驗,四者相輔相成。在具體程序案例的講解中,通過閱讀問題、展開分析、給出解題思路并結合C語言的語法規則,讓讀者理解并掌握C語言程序設計思想的具體實現過程,通過實驗中的實驗目的和具體要求,將問題由易到難逐步進行編程,從而掌握C語言。
本書是全國普通高等學校優秀教材,從實用性出發,針對初學者較全面地介紹C語言的語法規則、編程思路、編程方法和程序設計具體應用方面的技能。全書共8章,主要內容包括:算法與C語言程序設計、C語言概述、順序結構程序設計、選擇結構程序設計、循環結構程序設計、簡單構造數據類型、模塊化程序設計和復雜構造數據類型,以及C語言庫函數。
通過學習本書,你可以:
了解結構化程序設計的基本原理和技術;
在實驗引導下逐步認識VC++的編程環境;
在簡單易懂的案例驅動下掌握程序設計的思維和方法;
自己動手設計一個簡單的程序;
結合實際問題做好分析——進行簡單的應用程序的開發。
本書可作為高等學校本科理工類專業C語言程序設計課程的教材,也可作為高職高專及C語言自學者的教材和參考書。
為適應教學模式、教學方法和手段的改革,本書提供配套電子課件、程序代碼和習題參考答案等教學資源,請登錄華信教育資源網(http://www.hxedu.com.cn)注冊下載。
本書第1~4章由王端理編寫,第5、8章由付蘇嘉編寫,第6章和第2章的2.2節由楊焱編寫,第7章和附錄A由冉桂萍編寫。本書各章的實驗指導由王端理編寫,全書由王端理統稿。
本書在編寫過程中一直堅持將理論與實踐緊密結合的原則,但由于成書時間較為倉促,加之編寫者水平有限,書中難免出現錯誤和不妥之處,敬請讀者批評指正。
作 者