本書依據(jù)《國家中長期教育改革和發(fā)展綱要(20202035年)》的指導(dǎo)精神,結(jié)合新工科人才培養(yǎng)要求及高等學(xué)校的教學(xué)特點(diǎn)編寫而成。全書共分為11章,從C語言程序設(shè)計概述講起,依次講述數(shù)據(jù)類型、運(yùn)算符與表達(dá)式、三種基本結(jié)構(gòu)程序設(shè)計、數(shù)組、函數(shù)、編譯預(yù)處理、指針、結(jié)構(gòu)體與共用體和文件等。本書從培養(yǎng)學(xué)生的實(shí)際編程能力出發(fā),內(nèi)容全面,重點(diǎn)突出,例題和習(xí)題豐富,書中所有示例程序均上機(jī)調(diào)式運(yùn)行并給出結(jié)果,程序遵循標(biāo)準(zhǔn)化的編程風(fēng)格,便于學(xué)生理解。
每章提供課前導(dǎo)讀、學(xué)習(xí)目標(biāo)、教學(xué)要求和思維導(dǎo)圖,并給出每一章節(jié)具體的教學(xué)要求和能力要求,便于讀者閱讀
郭曉利,從事科研、教學(xué)工作32年,吉林省拔尖創(chuàng)新人才,三級教授,碩士生導(dǎo)師。講授《C語言程序設(shè)計》、《數(shù)據(jù)結(jié)構(gòu)》、《計算機(jī)二級》等課程。為《C語言程序設(shè)計》省級優(yōu)秀課負(fù)責(zé)人、《數(shù)據(jù)結(jié)構(gòu)》省級優(yōu)秀課主講教師。主持省級教改項(xiàng)目4項(xiàng)(排名1),校教改項(xiàng)目3項(xiàng)(排名1)。參加省級教改項(xiàng)目5項(xiàng)。獲吉林省教學(xué)成果獎2項(xiàng),省教育技術(shù)成果獎5項(xiàng)。 第d一主編編寫《C語言程序設(shè)計》、《C語言簡明教程》、《數(shù)據(jù)結(jié)構(gòu)實(shí)訓(xùn)與習(xí)題解析》、《計算機(jī)網(wǎng)絡(luò)基礎(chǔ)》等教材,其中《數(shù)據(jù)結(jié)構(gòu)實(shí)訓(xùn)與習(xí)題解析》獲吉林省優(yōu)秀教材三等獎(排名1)。主持吉林省科技廳項(xiàng)目4項(xiàng)(排名1),吉林省教育廳科研項(xiàng)目2項(xiàng)(排名1),橫向項(xiàng)目2項(xiàng)(排名1)。參加國家自然科學(xué)基金項(xiàng)目1項(xiàng)(排名3)。獲吉林省科學(xué)技術(shù)進(jìn)步二等獎3項(xiàng)(其中1項(xiàng)排名1),三等獎3項(xiàng)(其中2項(xiàng)排名1),市科學(xué)技術(shù)進(jìn)步一等獎2項(xiàng)(排名1)。申請發(fā)明專利3項(xiàng),軟件著作權(quán)8項(xiàng)。發(fā)表論文24篇,其中EI檢索10篇。
前言
第1 章 概述1
1.1 程序示例2
1.1.1 C 語言程序的結(jié)構(gòu)3
1.1.2 C 語言程序的發(fā)展史3
1.1.3 C 語言程序的特點(diǎn)3
1.2 C 語言的基本符號與關(guān)鍵字4
1.2.1 字符集4
1.2.2 關(guān)鍵字4
1.2.3 用戶標(biāo)識符5
1.2.4 ASCII 字符集6
1.3 算法及其表示6
1.3.1 算法的概念和特征6
1.3.2 三種基本程序結(jié)構(gòu)6
1.3.3 算法的表示7
習(xí)題9
第2 章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式 12
2.1 問題提出與程序示例 13
2.2 數(shù)據(jù)類型 14
2.3 常量與變量 14
2.3.1 常量 14
2.3.2 變量 16
2.4 運(yùn)算符與表達(dá)式 19
2.4.1 算術(shù)運(yùn)算符與算術(shù)表達(dá)式 19
2.4.2 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 21
2.4.3 邏輯運(yùn)算符和邏輯表達(dá)式 22
2.4.4 賦值運(yùn)算符和賦值表達(dá)式 22
2.4.5 條件運(yùn)算符和條件表達(dá)式 23
2.4.6 逗號運(yùn)算符和逗號表達(dá)式 24
2.4.7 位運(yùn)算符 24
習(xí)題 25
第3 章 順序結(jié)構(gòu)程序設(shè)計 29
3.1 問題提出與程序示例 30
3.2 C 語言的基本語句 31
3.3 字符數(shù)據(jù)的輸入輸出 32
3.3.1 字符輸出函數(shù)putchar( ) 32
3.3.2 字符輸入函數(shù)getchar( ) 32
3.4 格式輸入與輸出 33
3.4.1 格式輸出函數(shù)printf( ) 33
3.4.2 格式輸入函數(shù)scanf( ) 37
3.5 順序結(jié)構(gòu)程序設(shè)計舉例 39
習(xí)題 40
第4 章 選擇結(jié)構(gòu)程序設(shè)計 45
4.1 問題提出與程序示例 46
4.2 if 語句 47
4.2.1 if 語句 47
4.2.2 if 語句的嵌套 50
4.3 switch 語句 51
4.4 選擇結(jié)構(gòu)程序應(yīng)用舉例 53
習(xí)題 56
第5 章 循環(huán)結(jié)構(gòu)程序設(shè)計 64
5.1 問題提出與程序示例 65
5.2 goto 語句 66
5.3 while 語句 66
5.4 do…while 語句 68
5.5 for 語句 69
5.6 循環(huán)的嵌套 71
5.7 轉(zhuǎn)移控制語句 72
5.7.1 break 語句 72
5.7.2 continue 語句 72
5.8 循環(huán)結(jié)構(gòu)程序應(yīng)用舉例 73
習(xí)題 78
第6 章 數(shù)組 85
6.1 問題提出與程序示例 86
6.2 一維數(shù)組 87
6.2.1 一維數(shù)組的定義 87
6.2.2 一維數(shù)組的初始化 87
6.2.3 一維數(shù)組的引用 88
6.3 二維數(shù)組 91
6.3.1 二維數(shù)組的定義 91
6.3.2 二維數(shù)組的初始化 92
6.3.3 二維數(shù)組的引用 92
6.4 字符數(shù)組 95
6.4.1 字符數(shù)組的定義和初始化 95
6.4.2 字符數(shù)組的輸入/輸出 96
6.4.3 字符串處理函數(shù) 97
習(xí)題101
第7 章 函數(shù)108
7.1 問題提出與程序示例109
7.2 函數(shù)的定義與調(diào)用 110
7.2.1 函數(shù)的定義 110
7.2.2 函數(shù)的返回值 111
7.2.3 函數(shù)的說明 111
7.2.4 函數(shù)的調(diào)用 112
7.3 函數(shù)的嵌套調(diào)用和遞歸調(diào)用 113
7.3.1 函數(shù)的嵌套調(diào)用 113
7.3.2 函數(shù)的遞歸調(diào)用 115
7.4 變量的作用域與存儲類型 116
7.4.1 局部變量的作用域 117
7.4.2 全局變量的作用域 118
7.4.3 變量的存儲類型 119
習(xí)題121
第8 章 編譯預(yù)處理128
8.1 問題提出與程序示例129
8.2 宏定義129
8.2.1 無參宏定義129
8.2.2 帶參宏定義130
8.3 文件包含131
8.4 條件編譯132
習(xí)題134
第9 章 指針137
9.1 問題提出與程序示例138
9.2 指針與指針變量139
9.2.1 指針的定義139
9.2.2 指針變量的定義139
9.2.3 指針變量的使用140
9.3 指針和數(shù)組141
9.3.1 指針與一維數(shù)組141
9.3.2 指針與二維數(shù)組145
9.4 指針和字符串147
9.5 指針與函數(shù)148
9.5.1 指針作為函數(shù)的返回值148
9.5.2 指向函數(shù)的指針變量149
9.6 指針數(shù)組與指向指針的指針變量150
9.6.1 指針數(shù)組150
9.6.2 指向指針的指針變量150
9.6.3 主函數(shù)main( )的形參151
習(xí)題152
第10 章 結(jié)構(gòu)體與共用體158
10.1 問題提出與程序示例159
10.2 結(jié)構(gòu)體160
10.2.1 結(jié)構(gòu)體類型與結(jié)構(gòu)體變量的定義160
10.2.2 結(jié)構(gòu)體變量的初始化與引用161
10.2.3 結(jié)構(gòu)體數(shù)組163
10.2.4 結(jié)構(gòu)體類型指針變量164
10.3 鏈表165
10.4 共用體171
10.4.1 共用體類型與變量的定義171
10.4.2 共用體變量的引用172
10.5 枚舉類型173
10.5.1 枚舉類型與變量的定義173
10.5.2 枚舉類型變量的使用174
10.6 自定義數(shù)據(jù)類型175
習(xí)題175
第11 章 文件180
11.1 問題提出與程序示例181
11.2 文件概述182
11.3 文件的打開與關(guān)閉183
11.3.1 文件打開函數(shù)fopen( ) 183
11.3.2 文件關(guān)閉函數(shù)fclose( ) 184
11.4 文件的讀/寫184
11.4.1 讀/寫字符函數(shù)fgetc( )和fputc( ) 184
11.4.2 讀/寫字符串函數(shù)fgets( )和fputs( )186
11.4.3 數(shù)據(jù)塊讀/寫函數(shù)fread( )和fwrite( ) 188
11.4.4 格式化讀/寫函數(shù)fscanf( )和fprintf( )189
11.5 文件的定位190
11.5.1 rewind( )函數(shù)190
11.5.2 fseek( )函數(shù)191
11.5.3 ftell( )函數(shù)192
11.6 文件的出錯檢測192
11.6.1 ferror( )函數(shù)192
11.6.2 clearerr( )函數(shù)192
習(xí)題193
附錄A 常用字符與ASCII 代碼對照表197
附錄B 運(yùn)算符的優(yōu)先級及其結(jié)合性198
附錄C 常用的C 庫函數(shù)199
參考文獻(xiàn)202