本書依據(jù)《國家中長期教育改革和發(fā)展綱要(20202035年)》的指導精神,結合新工科人才培養(yǎng)要求及高等學校的教學特點編寫而成。全書共分為11章,從C語言程序設計概述講起,依次講述數(shù)據(jù)類型、運算符與表達式、三種基本結構程序設計、數(shù)組、函數(shù)、編譯預處理、指針、結構體與共用體和文件等。本書從培養(yǎng)學生的實際編程能力出發(fā),內容全面,重點突出,例題和習題豐富,書中所有示例程序均上機調式運行并給出結果,程序遵循標準化的編程風格,便于學生理解。
每章提供課前導讀、學習目標、教學要求和思維導圖,并給出每一章節(jié)具體的教學要求和能力要求,便于讀者閱讀
郭曉利,從事科研、教學工作32年,吉林省拔尖創(chuàng)新人才,三級教授,碩士生導師。講授《C語言程序設計》、《數(shù)據(jù)結構》、《計算機二級》等課程。為《C語言程序設計》省級優(yōu)秀課負責人、《數(shù)據(jù)結構》省級優(yōu)秀課主講教師。主持省級教改項目4項(排名1),校教改項目3項(排名1)。參加省級教改項目5項。獲吉林省教學成果獎2項,省教育技術成果獎5項。 第d一主編編寫《C語言程序設計》、《C語言簡明教程》、《數(shù)據(jù)結構實訓與習題解析》、《計算機網絡基礎》等教材,其中《數(shù)據(jù)結構實訓與習題解析》獲吉林省優(yōu)秀教材三等獎(排名1)。主持吉林省科技廳項目4項(排名1),吉林省教育廳科研項目2項(排名1),橫向項目2項(排名1)。參加國家自然科學基金項目1項(排名3)。獲吉林省科學技術進步二等獎3項(其中1項排名1),三等獎3項(其中2項排名1),市科學技術進步一等獎2項(排名1)。申請發(fā)明專利3項,軟件著作權8項。發(fā)表論文24篇,其中EI檢索10篇。
前言
第1 章 概述1
1.1 程序示例2
1.1.1 C 語言程序的結構3
1.1.2 C 語言程序的發(fā)展史3
1.1.3 C 語言程序的特點3
1.2 C 語言的基本符號與關鍵字4
1.2.1 字符集4
1.2.2 關鍵字4
1.2.3 用戶標識符5
1.2.4 ASCII 字符集6
1.3 算法及其表示6
1.3.1 算法的概念和特征6
1.3.2 三種基本程序結構6
1.3.3 算法的表示7
習題9
第2 章 數(shù)據(jù)類型、運算符與表達式 12
2.1 問題提出與程序示例 13
2.2 數(shù)據(jù)類型 14
2.3 常量與變量 14
2.3.1 常量 14
2.3.2 變量 16
2.4 運算符與表達式 19
2.4.1 算術運算符與算術表達式 19
2.4.2 關系運算符和關系表達式 21
2.4.3 邏輯運算符和邏輯表達式 22
2.4.4 賦值運算符和賦值表達式 22
2.4.5 條件運算符和條件表達式 23
2.4.6 逗號運算符和逗號表達式 24
2.4.7 位運算符 24
習題 25
第3 章 順序結構程序設計 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 順序結構程序設計舉例 39
習題 40
第4 章 選擇結構程序設計 45
4.1 問題提出與程序示例 46
4.2 if 語句 47
4.2.1 if 語句 47
4.2.2 if 語句的嵌套 50
4.3 switch 語句 51
4.4 選擇結構程序應用舉例 53
習題 56
第5 章 循環(huán)結構程序設計 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 轉移控制語句 72
5.7.1 break 語句 72
5.7.2 continue 語句 72
5.8 循環(huán)結構程序應用舉例 73
習題 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
習題101
第7 章 函數(shù)108
7.1 問題提出與程序示例109
7.2 函數(shù)的定義與調用 110
7.2.1 函數(shù)的定義 110
7.2.2 函數(shù)的返回值 111
7.2.3 函數(shù)的說明 111
7.2.4 函數(shù)的調用 112
7.3 函數(shù)的嵌套調用和遞歸調用 113
7.3.1 函數(shù)的嵌套調用 113
7.3.2 函數(shù)的遞歸調用 115
7.4 變量的作用域與存儲類型 116
7.4.1 局部變量的作用域 117
7.4.2 全局變量的作用域 118
7.4.3 變量的存儲類型 119
習題121
第8 章 編譯預處理128
8.1 問題提出與程序示例129
8.2 宏定義129
8.2.1 無參宏定義129
8.2.2 帶參宏定義130
8.3 文件包含131
8.4 條件編譯132
習題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
習題152
第10 章 結構體與共用體158
10.1 問題提出與程序示例159
10.2 結構體160
10.2.1 結構體類型與結構體變量的定義160
10.2.2 結構體變量的初始化與引用161
10.2.3 結構體數(shù)組163
10.2.4 結構體類型指針變量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
習題175
第11 章 文件180
11.1 問題提出與程序示例181
11.2 文件概述182
11.3 文件的打開與關閉183
11.3.1 文件打開函數(shù)fopen( ) 183
11.3.2 文件關閉函數(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
習題193
附錄A 常用字符與ASCII 代碼對照表197
附錄B 運算符的優(yōu)先級及其結合性198
附錄C 常用的C 庫函數(shù)199
參考文獻202