《C語言程序設(shè)計》主要講述C語言的基本知識 和程序設(shè)計的初步方法。全書共11 章,其中第1章至第6章主要介紹C語言程序設(shè)計的基本概念、基本結(jié)構(gòu)及 函數(shù)等;第7章至第11章主要介紹數(shù)組、指針、結(jié)構(gòu)體與共用體等復(fù)雜數(shù)據(jù) 結(jié)構(gòu)。為便于讀者掌握書中的知識和操作,本書配有《C語言程序設(shè)計輔導(dǎo) 及實驗指導(dǎo)書》,其中包含大量的操作實例和習(xí)題。
《C語言程序設(shè)計》結(jié)構(gòu)合理,詳略得當(dāng),語言精練,通俗易懂,可作 為高等院校各專業(yè) C語言程序設(shè)計課程教材,也可供相關(guān)領(lǐng)域的工程技術(shù)人員參考。
更多科學(xué)出版社服務(wù),請掃碼獲取。
目錄
前言
第1章 C語言概述 1
1.1 C語言簡介 1
1.1.1 程序和程序設(shè)計語言 1
1.1.2 C語言的發(fā)展歷史 1
1.1.3 C語言的特點 3
1.2 簡單的C程序介紹 4
1.3 運行C程序的步驟 7
本章小結(jié) 9
第2章 基本數(shù)據(jù)類型及運算 10
2.1 數(shù)據(jù)類型 10
2.2 常量與變量 11
2.2.1 標(biāo)識符 11
2.2.2 常量 11
2.2.3 變量 14
2.3 格式化輸入與輸出函數(shù) 15
2.3.1 格式輸出函數(shù)printf() 16
2.3.2 格式輸入函數(shù)scanf() 20
2.4 整型數(shù)據(jù) 23
2.4.1 整型變量 23
2.4.2 整型常量 24
2.5 實型數(shù)據(jù) 25
2.5.1 實型常量 25
2.5.2 實型變量 25
2.6 字符型數(shù)據(jù) 26
2.6.1 字符常量 26
2.6.2 字符變量 26
2.7 變量賦初值 28
2.8 各類數(shù)值型數(shù)據(jù)間的混合運算 29
2.8.1 隱式類型轉(zhuǎn)換 29
2.8.2 強制類型轉(zhuǎn)換 30
2.9 算術(shù)運算符和算術(shù)表達式 30
2.9.1 C語言運算符簡介 30
2.9.2 算術(shù)運算符和算術(shù)表達式 31
2.10 賦值運算符和賦值表達式 34
2.10.1 賦值運算符 34
2.10.2 賦值表達式 35
2.11 逗號運算符和逗號表達式 35
本章小結(jié) 35
第3章 順序結(jié)構(gòu)程序設(shè)計 36
3.1 結(jié)構(gòu)化程序設(shè)計方法 36
3.1.1 結(jié)構(gòu)化程序設(shè)計方法的產(chǎn)生 36
3.1.2 三種基本控制結(jié)構(gòu) 36
3.2 C語句概述 38
3.2.1 表達式語句 38
3.2.2 控制語句 38
3.2.3 函數(shù)調(diào)用語句 39
3.2.4 空語句 39
3.2.5 復(fù)合語句 39
3.3 字符數(shù)據(jù)的輸入與輸出 40
3.3.1 字符格式控制符 40
3.3.2 字符輸入輸出函數(shù) 40
3.3.3 程序舉例 42
本章小結(jié) 43
第4章 選擇結(jié)構(gòu)程序設(shè)計 44
4.1 關(guān)系運算符和關(guān)系表達式 44
4.2 邏輯運算符和邏輯表達式 45
4.3 if語句 46
4.3.1 if語句的基本形式 46
4.3.2 if話句的嵌套形式 49
4.3.3 條件運算符 52
4.4 switch語句 53
本章小結(jié) 56
第5章 循環(huán)結(jié)構(gòu)程序設(shè)計 57
5.1 概述 57
5.2 while語句 57
5.3 do-while語句 61
5.4 for語句 63
5.5 循環(huán)的嵌套 68
5.6 break語句和continue語句 71
5.6.1 break語句 71
5.6.2 continue語句 73
本章小結(jié) 75
第6章 函數(shù) 77
6.1 概述 77
6.1.1 模塊化程序設(shè)計思想 77
6.1.2 函數(shù)的基本概念 78
6.1.3 庫函數(shù)與用戶自定義函數(shù) 79
6.2 函數(shù)定義的一般形式 81
6.2.1 函數(shù)的定義 81
6.2.2 自定義函數(shù)在程序代碼中的位置 85
6.3 函數(shù)的參數(shù)和函數(shù)的返回值 85
6.3.1 函數(shù)的參數(shù) 85
6.3.2 函數(shù)的返回值 86
6.4 函數(shù)的調(diào)用 87
6.4.1 語句調(diào)用 87
6.4.2 表達式調(diào)用 87
6.4.3 嵌套調(diào)用 88
6.5 局部變量和全局變量 89
6.5.1 局部變量 89
6.5.2 全局變量 91
6.6 函數(shù)的高級應(yīng)用 91
6.6.1 函數(shù)的遞歸調(diào)用 91
6.6.2 變量的存儲類別 94
6.6.3 內(nèi)部函數(shù)和外部函數(shù) 96
本章小結(jié) 97
第7章 數(shù)組 99
7.1 一雛數(shù)組的定義和引用 99
7.1.1 一維數(shù)組的定義 99
7.1.2 一維數(shù)組元素的引用 100
7.1.3 一維數(shù)組元素的初始化 100
7.1.4 一維數(shù)組程序舉例 101
7.2 二維數(shù)組的定義和引用 103
7.2.1 二維數(shù)組的定義 103
7.2.2 二維數(shù)組元素的引用 104
7.2.3 二維數(shù)組的初始化 104
7.2.4 二維數(shù)組程序舉例 105
7.3 用字符數(shù)組表示字符串 108
7.3.1 字符數(shù)組的定義 108
7.3.2 字符數(shù)組的初始化 108
7.3.3 字符數(shù)組的輸入和輸m 110
7.3.4 字符串處理函數(shù) 111
7.3.5 字符數(shù)組應(yīng)用舉例 115
7.4 數(shù)組作為函數(shù)參數(shù) 116
7.4.1 數(shù)組元素作函數(shù)實際參數(shù) 116
7.4.2 數(shù)組名作函數(shù)參數(shù) 117
7.5 數(shù)組綜合實例 119
本章小結(jié) 122
第8章 編譯預(yù)處理 123
8.1 宏定義 123
8.1.1 不帶參數(shù)的宏 123
8.1.2 帶參數(shù)的宏 125
8.2 文件包含 127
8.2.1 庫函數(shù)與頭文件包含 127
8.2.2 文件包含處理 128
8.3 條件編譯 131
本章小結(jié) 134
第9章 指針 135
9.1 內(nèi)存地址與指針 135
9.1.1 內(nèi)存地址和內(nèi)存分配 135
9.1.2 指針和指針變量 138
9.2 指向變量酌指針變量 139
9.2.1 指向變量的指針變量的定義 139
9.2.2 指向變量的指針變量的賦值和初始化 140
9.2.3 指向變量的指針變量的引用 141
9.3 指針和數(shù)組 143
9.3.1 指向一維數(shù)組元素的指針變量 143
9.3.2 指針變量的算術(shù)運算和比較 144
9.3.3 通過指針引用一維數(shù)組元素 145
9.3.4 指針數(shù)組 147
9.4 字符串與指針 148
9.4.1 用字符數(shù)組實現(xiàn) 148
9.4.2 用字符指針實現(xiàn) 150
9.4.3 字符串的數(shù)組實現(xiàn)和指針實現(xiàn)的區(qū)別 151
9.4.4 字符串的數(shù)組實現(xiàn)和指針實現(xiàn)的聯(lián)系 154
9.5 函數(shù)與指針 155
9.5.1 指針作為函數(shù)的參數(shù) 155
9.5.2 返回值為指針的函數(shù) 157
9.5.3 函數(shù)的指針與通過指針調(diào)用函數(shù) 159
本章小結(jié) 160
第10章 結(jié)構(gòu)體和共用體 162
10.1 概述 162
10.2 定義結(jié)構(gòu)體類型變量的方法 162
10.2.1 結(jié)構(gòu)體類型聲明 162
10.2.2 結(jié)構(gòu)體類型變量的定義 163
10.3 結(jié)構(gòu)體變量的引用 165
10.4 結(jié)構(gòu)體變量的初始化 166
10.5 結(jié)構(gòu)體數(shù)組 167
10.5.1 結(jié)構(gòu)體數(shù)組的定義 167
10.5.2 結(jié)構(gòu)體數(shù)組的初始化 168
10.6 共用體 169
10.6.1 共用體類型聲明 169
10.6.2 共用體變量的定義及引用 170
10.7 枚舉類型 172
10.7.1 枚舉類型聲明 172
10.7.2 權(quán)舉變量的定義及其賦值 173
10.8 用typedef定義類型 174
本章小結(jié) 175
第11章 文件 176
11.1 文件概述 176
11.1.1 文件的基本概念 176
11.1.2 文本文件和二進制文件 176
11.1.3 緩沖文件系統(tǒng) 177
11.2 文件類型指針 178
11.3 文件的打開和關(guān)閉 178
11.3.1 文件的打開 178
11.3.2 文件的關(guān)閉 180
11.4 文件的讀寫 181
11.4.1 以字符方式讀寫文件 181
11.4.2 以字符串方式讀寫文件 183
11.4.3 格式化方式讀寫文件 186
11.4.4 數(shù)據(jù)塊方式讀寫文件 187
11.4.5 文件結(jié)束判斷 189
11.5 文件的定位函數(shù) 190
11.5.1 指向文件的首地址 190
11.5.2 改變文件指針位置 190
11.5.3 獲取當(dāng)前文件指針位置 190
11.6 出錯檢測 192
11.6.1 ferror()函數(shù) 192
11.6.2 clearerr()函數(shù) 192
本章小結(jié) 193
參考文獻 194
第1章 C語言概述
1.1 C語言簡介
1.1.1 程序和程序設(shè)計語言
在人類發(fā)展的歷史中,人們?yōu)榱藗鬟_信息、表達思想、交流情感,逐漸發(fā)明了各種語言,如漢語、英語等。人類進行交流所用的語言稱為自然語言。自從世界上第一臺電子計算機ENIAC誕生以來,計算機的發(fā)展已歷經(jīng)半個多世紀(jì)。在這一過程中,為了能夠更好、更有效地與計算機進行通信,指揮其為人類工作,人們發(fā)明、設(shè)計出許多專門與計算機進行交流的語言,這些語言稱為程序設(shè)計語言。程序設(shè)計語言相對自然語言來說,使用的詞匯不多、語法簡單、語義清晰,便于人們使用其去控制計算機。
計算機是能夠自動進行數(shù)據(jù)處理的電子設(shè)備。那么,計算機為什么能夠自動、有條不紊地工作呢?原因就在于計算機是在程序的控制下進行工作的。什么是程序呢?程序?qū)嶋H上就是用戶用于指揮計算機進行各種動作,使計算機完成指定任務(wù)的指令序列。編寫程序的過程稱為程序設(shè)計。程序設(shè)計過程中所使用的語言就是程序設(shè)計語言。
計算機的一切工作都是通過執(zhí)行程序完成的,而計算機可以直接識別并執(zhí)行的程序是用二進制串表示的機器語言程序。對于人類來說,直接用機器語言書寫程序是一件十分痛苦的工作。為此,人們發(fā)明了匯編語言,采用便于記憶的符號代替二進制串,但實際上匯編語言僅是機器語言的一種助記符,沒有本質(zhì)的區(qū)別,使用仍然不便。在這種情況下,各種高級程序設(shè)計語言便隨之產(chǎn)生了。高級程序設(shè)計語言之所以高級就在于它接近人類的自然語言,更加符合人類的思維方式。
因為高級程序設(shè)計語言更接近人所習(xí)慣的描述形式,所以更容易被接受,這也使得更多的人能夠參與程序設(shè)計活動。因為開發(fā)效率高,所以人們使用高級程序設(shè)計語言設(shè)計出了更多的應(yīng)用系統(tǒng),這反過來又大大推動了計算機應(yīng)用的發(fā)展。應(yīng)用的發(fā)展又推動了計算機工業(yè)的發(fā)展。可以說,高級程序設(shè)計語言的誕生和發(fā)展,對于計算機發(fā)展到今天起了極其重要的作用。
1.1.2 C語言的發(fā)展歷史
C語言是國際上最流行的、應(yīng)用最廣泛的高級程序設(shè)計語言之一,深受廣大程序員的歡迎。C語言的發(fā)展過程大致分為以下幾個階段。
1.C語言的出現(xiàn)
C語言是在貝爾實驗室由KenThompson和DennisRitchie在開發(fā)UNIX操作系統(tǒng)的過程中開發(fā)出來的一種程序設(shè)計語言。UNIX系統(tǒng)最初是用匯編語言編寫的,當(dāng)時,Thompson