《C語(yǔ)言程序設(shè)計(jì)》主要講述C語(yǔ)言的基本知識(shí) 和程序設(shè)計(jì)的初步方法。全書共11 章,其中第1章至第6章主要介紹C語(yǔ)言程序設(shè)計(jì)的基本概念、基本結(jié)構(gòu)及 函數(shù)等;第7章至第11章主要介紹數(shù)組、指針、結(jié)構(gòu)體與共用體等復(fù)雜數(shù)據(jù) 結(jié)構(gòu)。為便于讀者掌握書中的知識(shí)和操作,本書配有《C語(yǔ)言程序設(shè)計(jì)輔導(dǎo) 及實(shí)驗(yàn)指導(dǎo)書》,其中包含大量的操作實(shí)例和習(xí)題。
《C語(yǔ)言程序設(shè)計(jì)》結(jié)構(gòu)合理,詳略得當(dāng),語(yǔ)言精練,通俗易懂,可作 為高等院校各專業(yè) C語(yǔ)言程序設(shè)計(jì)課程教材,也可供相關(guān)領(lǐng)域的工程技術(shù)人員參考。
更多科學(xué)出版社服務(wù),請(qǐng)掃碼獲取。
目錄
前言
第1章 C語(yǔ)言概述 1
1.1 C語(yǔ)言簡(jiǎn)介 1
1.1.1 程序和程序設(shè)計(jì)語(yǔ)言 1
1.1.2 C語(yǔ)言的發(fā)展歷史 1
1.1.3 C語(yǔ)言的特點(diǎn) 3
1.2 簡(jiǎn)單的C程序介紹 4
1.3 運(yùn)行C程序的步驟 7
本章小結(jié) 9
第2章 基本數(shù)據(jù)類型及運(yùn)算 10
2.1 數(shù)據(jù)類型 10
2.2 常量與變量 11
2.2.1 標(biāo)識(shí)符 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í)型數(shù)據(jù) 25
2.5.1 實(shí)型常量 25
2.5.2 實(shí)型變量 25
2.6 字符型數(shù)據(jù) 26
2.6.1 字符常量 26
2.6.2 字符變量 26
2.7 變量賦初值 28
2.8 各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算 29
2.8.1 隱式類型轉(zhuǎn)換 29
2.8.2 強(qiáng)制類型轉(zhuǎn)換 30
2.9 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 30
2.9.1 C語(yǔ)言運(yùn)算符簡(jiǎn)介 30
2.9.2 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 31
2.10 賦值運(yùn)算符和賦值表達(dá)式 34
2.10.1 賦值運(yùn)算符 34
2.10.2 賦值表達(dá)式 35
2.11 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 35
本章小結(jié) 35
第3章 順序結(jié)構(gòu)程序設(shè)計(jì) 36
3.1 結(jié)構(gòu)化程序設(shè)計(jì)方法 36
3.1.1 結(jié)構(gòu)化程序設(shè)計(jì)方法的產(chǎn)生 36
3.1.2 三種基本控制結(jié)構(gòu) 36
3.2 C語(yǔ)句概述 38
3.2.1 表達(dá)式語(yǔ)句 38
3.2.2 控制語(yǔ)句 38
3.2.3 函數(shù)調(diào)用語(yǔ)句 39
3.2.4 空語(yǔ)句 39
3.2.5 復(fù)合語(yǔ)句 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è)計(jì) 44
4.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 44
4.2 邏輯運(yùn)算符和邏輯表達(dá)式 45
4.3 if語(yǔ)句 46
4.3.1 if語(yǔ)句的基本形式 46
4.3.2 if話句的嵌套形式 49
4.3.3 條件運(yùn)算符 52
4.4 switch語(yǔ)句 53
本章小結(jié) 56
第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 57
5.1 概述 57
5.2 while語(yǔ)句 57
5.3 do-while語(yǔ)句 61
5.4 for語(yǔ)句 63
5.5 循環(huán)的嵌套 68
5.6 break語(yǔ)句和continue語(yǔ)句 71
5.6.1 break語(yǔ)句 71
5.6.2 continue語(yǔ)句 73
本章小結(jié) 75
第6章 函數(shù) 77
6.1 概述 77
6.1.1 模塊化程序設(shè)計(jì)思想 77
6.1.2 函數(shù)的基本概念 78
6.1.3 庫(kù)函數(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 語(yǔ)句調(diào)用 87
6.4.2 表達(dá)式調(diào)用 87
6.4.3 嵌套調(diào)用 88
6.5 局部變量和全局變量 89
6.5.1 局部變量 89
6.5.2 全局變量 91
6.6 函數(shù)的高級(jí)應(yīng)用 91
6.6.1 函數(shù)的遞歸調(diào)用 91
6.6.2 變量的存儲(chǔ)類別 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í)際參數(shù) 116
7.4.2 數(shù)組名作函數(shù)參數(shù) 117
7.5 數(shù)組綜合實(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 庫(kù)函數(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ù)運(yùn)算和比較 144
9.3.3 通過指針引用一維數(shù)組元素 145
9.3.4 指針數(shù)組 147
9.4 字符串與指針 148
9.4.1 用字符數(shù)組實(shí)現(xiàn) 148
9.4.2 用字符指針實(shí)現(xiàn) 150
9.4.3 字符串的數(shù)組實(shí)現(xiàn)和指針實(shí)現(xiàn)的區(qū)別 151
9.4.4 字符串的數(shù)組實(shí)現(xiàn)和指針實(shí)現(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 文本文件和二進(jìn)制文件 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 出錯(cuò)檢測(cè) 192
11.6.1 ferror()函數(shù) 192
11.6.2 clearerr()函數(shù) 192
本章小結(jié) 193
參考文獻(xiàn) 194
第1章 C語(yǔ)言概述
1.1 C語(yǔ)言簡(jiǎn)介
1.1.1 程序和程序設(shè)計(jì)語(yǔ)言
在人類發(fā)展的歷史中,人們?yōu)榱藗鬟_(dá)信息、表達(dá)思想、交流情感,逐漸發(fā)明了各種語(yǔ)言,如漢語(yǔ)、英語(yǔ)等。人類進(jìn)行交流所用的語(yǔ)言稱為自然語(yǔ)言。自從世界上第一臺(tái)電子計(jì)算機(jī)ENIAC誕生以來(lái),計(jì)算機(jī)的發(fā)展已歷經(jīng)半個(gè)多世紀(jì)。在這一過程中,為了能夠更好、更有效地與計(jì)算機(jī)進(jìn)行通信,指揮其為人類工作,人們發(fā)明、設(shè)計(jì)出許多專門與計(jì)算機(jī)進(jìn)行交流的語(yǔ)言,這些語(yǔ)言稱為程序設(shè)計(jì)語(yǔ)言。程序設(shè)計(jì)語(yǔ)言相對(duì)自然語(yǔ)言來(lái)說(shuō),使用的詞匯不多、語(yǔ)法簡(jiǎn)單、語(yǔ)義清晰,便于人們使用其去控制計(jì)算機(jī)。
計(jì)算機(jī)是能夠自動(dòng)進(jìn)行數(shù)據(jù)處理的電子設(shè)備。那么,計(jì)算機(jī)為什么能夠自動(dòng)、有條不紊地工作呢?原因就在于計(jì)算機(jī)是在程序的控制下進(jìn)行工作的。什么是程序呢?程序?qū)嶋H上就是用戶用于指揮計(jì)算機(jī)進(jìn)行各種動(dòng)作,使計(jì)算機(jī)完成指定任務(wù)的指令序列。編寫程序的過程稱為程序設(shè)計(jì)。程序設(shè)計(jì)過程中所使用的語(yǔ)言就是程序設(shè)計(jì)語(yǔ)言。
計(jì)算機(jī)的一切工作都是通過執(zhí)行程序完成的,而計(jì)算機(jī)可以直接識(shí)別并執(zhí)行的程序是用二進(jìn)制串表示的機(jī)器語(yǔ)言程序。對(duì)于人類來(lái)說(shuō),直接用機(jī)器語(yǔ)言書寫程序是一件十分痛苦的工作。為此,人們發(fā)明了匯編語(yǔ)言,采用便于記憶的符號(hào)代替二進(jìn)制串,但實(shí)際上匯編語(yǔ)言僅是機(jī)器語(yǔ)言的一種助記符,沒有本質(zhì)的區(qū)別,使用仍然不便。在這種情況下,各種高級(jí)程序設(shè)計(jì)語(yǔ)言便隨之產(chǎn)生了。高級(jí)程序設(shè)計(jì)語(yǔ)言之所以高級(jí)就在于它接近人類的自然語(yǔ)言,更加符合人類的思維方式。
因?yàn)楦呒?jí)程序設(shè)計(jì)語(yǔ)言更接近人所習(xí)慣的描述形式,所以更容易被接受,這也使得更多的人能夠參與程序設(shè)計(jì)活動(dòng)。因?yàn)殚_發(fā)效率高,所以人們使用高級(jí)程序設(shè)計(jì)語(yǔ)言設(shè)計(jì)出了更多的應(yīng)用系統(tǒng),這反過來(lái)又大大推動(dòng)了計(jì)算機(jī)應(yīng)用的發(fā)展。應(yīng)用的發(fā)展又推動(dòng)了計(jì)算機(jī)工業(yè)的發(fā)展?梢哉f(shuō),高級(jí)程序設(shè)計(jì)語(yǔ)言的誕生和發(fā)展,對(duì)于計(jì)算機(jī)發(fā)展到今天起了極其重要的作用。
1.1.2 C語(yǔ)言的發(fā)展歷史
C語(yǔ)言是國(guó)際上最流行的、應(yīng)用最廣泛的高級(jí)程序設(shè)計(jì)語(yǔ)言之一,深受廣大程序員的歡迎。C語(yǔ)言的發(fā)展過程大致分為以下幾個(gè)階段。
1.C語(yǔ)言的出現(xiàn)
C語(yǔ)言是在貝爾實(shí)驗(yàn)室由KenThompson和DennisRitchie在開發(fā)UNIX操作系統(tǒng)的過程中開發(fā)出來(lái)的一種程序設(shè)計(jì)語(yǔ)言。UNIX系統(tǒng)最初是用匯編語(yǔ)言編寫的,當(dāng)時(shí),Thompson