本書是學習C語言程序設計的基礎教程,內容包括C語言概述、C語言常用編程環境、順序結構程序設計、分支結構程序設計、循環結構程序設計、數組、函數、指針、結構體、文件等。本書以程序設計思想的掌握為主線,以編程應用為驅動,通過案例和問題引入內容,由淺入深,循序漸進,重點訓練學生的編程思想,能夠充分提高學生的編程能力,鍛煉學生的工程能力和創新能力,并鼓勵學生利用所學C語言知識解決專業的具體問題。本書是為“卓越工程師教育培養計劃”本科專業編寫的計算機教材,強化編程能力、工程能力和創新能力;也可以作為其他應用型本科理工類專業的計算機應用教材。
第1章C語言概述
1.1一個C語言程序
1.2計算機程序設計與程序設計語言
1.2.1程序與指令
1.2.2程序設計語言
1.3C語言的發展與應用現狀
1.4C語言的特點
1.4.1C語言的優勢
1.4.2如何學習C語言程序設計
1.4.3C語言的語法特點
1.4.4C語言的結構特點
1.4.5C語言的編譯與編程環境
習題
第2章C語言常用編程環境
2.1經典的Visual C++ 6.0編程環境
2.1.1Visual C++ 6.0概述
2.1.2使用Visual C++ 6.0建立C語言應用程序
2.2開源的DevC++
習題
第3章用C語言編寫簡單程序
3.1在屏幕上顯示自定義文字“Hello World!”
3.1.1程序解析
3.1.2程序的三種結構
3.2攝氏溫度與華氏溫度換算(簡單的順序結構程序的編寫)
3.2.1程序解析
3.2.2常量、變量和數據類型
3.2.3賦值運算和算術運算
3.2.4格式化輸出函數printf
3.3判斷一元二次方程是否有實數解(簡單的分支結構程序的編寫)
3.3.1程序解析
3.3.2關系運算
3.3.3if…else二分支語句
3.3.4格式化輸入函數scanf
3.4計算自由落體反彈高度和總距離(簡單的循環結構程序
——for語句的編寫)
3.4.1指定次數的循環程序設計
3.4.2for語句
3.4.3計算自由落體反彈高度和總距離
3.4.4程序解析
習題
第4章分支結構程序設計
4.1從鍵盤輸入一個控制命令字符,判斷輸入是否正確
4.1.1程序解析
4.1.2字符類型
4.1.3邏輯運算符和邏輯表達式
4.1.4字符型數據的輸入和輸出
4.2分支結構程序設計——求解一元二次方程
4.2.1程序解析
4.2.2if 語句的三種形式
4.2.3if 語句的嵌套
4.3模擬工程控制,根據指令進行相應的操作
4.3.1程序解析
4.3.2switch語句
習題
第5章循環結構程序設計
5.1輸入一批學生的成績,統計平均分
5.1.1程序解析
5.1.2while語句
5.1.3數列問題求解
5.2用牛頓迭代法求方程2x3-4x2+3x-6=0的根
5.2.1程序解析
5.2.2do…while 語句
5.2.3循環語句的選擇
5.3打印九九乘法表
5.3.1程序解析
5.3.2循環的嵌套
5.4求素數
5.4.1程序解析
5.4.2用break語句和continue語句改變循環狀態
5.5復雜循環結構程序設計
5.5.1傅里葉級數逼近
5.5.2數據處理與回歸分析
習題
第6章C語言的數據類型和表達式
6.1C語言的基本數據類型
6.2常量和變量
6.2.1常量
6.2.2變量
6.3運算符和表達式
6.3.1算術運算符和算術表達式
6.3.2強制類型轉換運算符
6.3.3自增、自減運算符
6.3.4賦值運算符和賦值表達式
6.3.5關系運算符和表達式
6.3.6邏輯運算符和表達式
6.3.7條件表達式
6.3.8逗號表達式
6.4綜合程序設計案例
6.5算法與程序設計
習題
第7章數組
7.1排序問題
7.1.1程序解析
7.1.2一維數組的定義和引用
7.1.3一維數組的初始化
7.1.4使用一維數組編程
7.2找出矩陣中最大值所在的位置
7.2.1程序解析
7.2.2二維數組的定義和引用
7.2.3二維數組的初始化
7.3數據通信過程中的信息加密問題
7.3.1程序解析
7.3.2一維字符數組
7.3.3字符串處理
習題
第8章函數
8.1用函數求幾何圖形的面積
8.1.1程序解析
8.1.2函數的定義
8.1.3函數的聲明
8.1.4函數的調用
8.2用函數求Fibonacci數列
8.2.1程序解析
8.2.2形式參數與實際參數
8.2.3函數的返回值
8.2.4值傳遞與地址傳遞
8.3變量與函數
8.3.1局部變量和全局變量
8.3.2變量的存儲類別
8.3.3函數的遞歸調用——求n!
習題
第9章指針及其應用
9.1替代用變量名引用數據的新方法
9.1.1指針概念的引入
9.1.2定義指針變量
9.1.3指針與變量的關系
9.1.4為指針變量賦值及指針變量的初始化
9.1.5利用指針變量進行數據處理
9.2指針和一維數組
9.3利用被調函數對主調函數中的數組元素進行冒泡排序
9.3.1指針變量作為函數參數
9.3.2數組名作為函數的參數
9.4字符串和字符指針
9.4.1字符串常量的值
9.4.2使用字符指針處理字符串的程序舉例
習題
第10章結構體、共用體和枚舉類型
10.1按價格排序輸出一組待售汽車的信息
10.1.1程序解析
10.1.2結構體類型的概念和定義
10.1.3結構體類型變量的定義
10.1.4結構體類型變量的使用
10.1.5結構體變量作為函數參數
10.2編寫一個書籍管理程序,顯示所有書籍信息
10.2.1程序解析
10.2.2結構體數組
10.2.3結構體數組的應用實例
10.3共用體——每個時刻只能有一個成員占用內存的“結構體”
10.3.1程序解析
10.3.2共用體類型的定義
10.3.3共用體變量的定義
10.3.4共用體變量的引用
10.4讓變量的取值局限于特定范圍
10.4.1枚舉類型的定義
10.4.2枚舉變量的定義
10.4.3枚舉類型的應用
10.5隨心所欲地安排數據類型名——typedef的使用方法
10.5.1利用typedef定義類型名
10.5.2typedef的典型用法
習題
第11章宏定義與文件包含
11.1宏定義
11.1.1程序解析
11.1.2無參宏定義
11.1.3帶參宏定義
11.2文件包含
11.3條件編譯
習題
第12章文件
12.1將“歡迎卓越工程師”寫入文件
12.1.1程序解析
12.1.2C文件概述
12.1.3文件指針
12.1.4文件的打開與關閉
12.2文件的讀寫——讀取工程文件
12.2.1程序解析——讀取工程文件
12.2.2字符讀寫函數fgetc和fputc
12.2.3字符串讀寫函數fgets和fputs
12.2.4數據塊讀寫函數fread和fwrite
12.2.5格式化讀寫函數fscanf和fprintf
12.3文件的隨機讀寫
12.3.1改變文件位置指針函數fseek( )
12.3.2位置指針重返文件頭函數rewind( )
12.3.3位置指針當前值函數 ftell( )
12.3.4文件的隨機讀寫
12.4文件檢測函數
12.4.1文件結束檢測函數feof函數
12.4.2讀寫文件出錯檢測函數ferror函數
12.4.3文件出錯標志和文件結束標志置0函數clearerr函數
習題
附錄AASCII編碼表
附錄BC語言常用的庫函數
附錄CC語言運算符優先級表
參考文獻