(1) CDIO 引例示范(教師的“CDIO”);
(2) 相關知識點跟進;
(3) 在教師引導下,課堂實例演練CDIO(學生參與的CDIO);
(4) 小結涵括本部分的知識點、容易混淆的概念及容易出錯的問題;
(5) 習題要求學生通過練習實現自主的CDIO;
(6) 從第4章開始,增加綜合程序設計,進一步提升學生的分析設計能力。
進入21世紀,出現了一批高校向應用型大學轉型的大趨勢,根據這一特點,我們在本書第1版的基礎上進行了修訂,結合應用型高校學生的特點及學時設置努力使本書第2版達到兼顧專業、通俗、實用和與時俱進的目標,使之成為應用型高等院校計算機專業和非計算機專業的C語言程序設計課程的教材和參考手冊。
本書采用通俗而親和的描述風格,比較適合C程序設計的初學者、大學一年級學生,也適合想更深入掌握C語言程序設計的讀者。本書中每個知識點的講解由淺入深、循序漸進,教學內容以案例驅動方法進行,案例實用、有趣、易懂,貼近普通大學生的實際生活,讓學生備感親切。本書在潛移默化中幫助學生了解應用程序設計方法和過程,掌握程序設計語言知識和實用技巧,培養他們的編程素養。
本書圍繞把問題講清楚、講明白、講透徹這個中心目標,放棄一些陳舊的、以炫技為目的的傳統設計習慣,追求更直接、更簡練的設計風格,盡量把我們多年來在教學和實際應用開發實踐中積累的經驗貫穿于書中,同時也將程序設計領域最新、最有價值的思想和方法滲透到書中,使本書以煥然一新的面貌呈現在各位親愛的讀者面前。
本書仍然延續第1版所采用的CDIO的思想和模式,即每章節的基本模式如下:
(1)CDIO引例示范(教師的“CDIO”);
(2)相關知識點描述;
(3)在教師引導下,課堂實例演練CDIO(學生參與的CDIO);
(4)小結涵蓋本部分的知識點、容易混淆的概念及容易出錯的問題;
(5)實戰演練和習題要求學生通過練習實現自主的CDIO;
(6)從第2章開始,每章均增加“綜合設計”一節,作為本章所講述知識的綜合運用模本,引導學生提升分析和設計能力。
本書第2版在第1版的基礎上進行了很多修訂和大面積擴編,增加了例題、習題,將第1版中的第10章刪去。全書共分10章,內容包括C語言概述、C程序的運算符和表達式、選擇結構、循環結構、數組、函數、自定義數據類型、指針、文件以及VisualC++6.0開發環境。
為了進一步強化學生在應用開發中的實作能力,本書每章的練習中都增加了實驗實訓部分。學生可以模仿章節綜合設計的程序實例完成自己的設計,還可以創造性地對問題進行擴展設計,形成具有個人風格的獨立程序。本書習題有編程題,也有等級考試中常見的選擇題、填空題、讀程序寫結果題,題型較多,并附有參考答案,對于備考二級考試的同學也有一定的幫助。
本書的第1、2章由布瑞琴修訂;第3、5、6、9章由鄭曉健修訂;第4章由周波修訂;第7、8章由高世健修訂;第10章由馮瑤修訂。鄭曉健負責全書的統稿。全書由李向陽教授主審。在此,我們還必須由衷地感謝本書第1版的作者李向陽教授、方嬌莉副教授、郭琳老師和王云澤老師,沒有他們之前所做的大量工作,我們的修訂工作不會如此順利。
建議本書授課時數為48學時,基本上機練習24學時,學生自主上機練習64學時左右,與本書配套的相關教學資料請到清華大學出版社網站(www.tup.com.cn)下載。由于編者水平和學識所限,書中難免存在疏漏與不足,敬請讀者指正。
編者
2017年3月
第1章C語言概述
1.1C語言的產生與發展
1.1.1程序設計語言簡述
1.1.2C語言的歷史
1.2C語言的特點
1.3一個簡單的C程序
1.4C語言程序的格式
1.5標識符、變量與常量
1.5.1標識符
1.5.2變量
1.5.3常量
1.6數據類型
1.6.1整型、實型和字符型
1.6.2C程序語句
1.6.3格式輸出/輸入函數
1.6.4實戰演練
1.7小結
習題1
本章實驗實訓
第2章C程序的運算符和表達式
2.1計算a/b和a%b的值
2.1.1分析與設計
2.1.2運算符與表達式
2.2算術運算符
2.2.1算術表達式
2.2.2數據類型與運算結果的關系
2.2.3實戰演練
2.3位運算符
2.3.1按位與運算
2.3.2按位或運算
2.3.3按位異或運算
2.3.4按位取反運算
2.3.5左移運算
2.3.6右移運算
2.3.7實戰演練
2.4賦值運算符及表達式
2.4.1賦值運算符
2.4.2賦值表達式
2.4.3復合的賦值運算符
2.5自增自減運算符
2.5.1自增1運算實例
2.5.2實戰演練
2.6其他運算符
2.6.1逗號運算符
2.6.2求字節數運算符
2.7運算符的優先級和結合性
2.7.1C語言的運算符分類
2.7.2運算符的優先級
2.7.3結合方向
2.8不同類型數據之間的轉換
2.8.1自動類型轉換
2.8.2強制類型轉換
2.9綜合設計
2.10小結
習題2
本章實驗實訓
第3章選擇結構
3.1工程師崗位面試(關系運算符和邏輯運算符)
3.1.1分析與設計
3.1.2關系運算符和關系表達式
3.1.3邏輯運算符和邏輯表達式
3.1.4條件運算符和條件表達式
3.2判斷身材是否標準(if語句)
3.2.1分析與設計
3.2.2if語句
3.2.3if語句的嵌套
3.2.4實戰演練
3.3顧客點餐(switch語句)
3.3.1分析與設計
3.3.2switch語句
3.3.3使用switch語句的注意事項
3.3.4多路選擇結構的比較
3.3.5實戰演練
3.3.6綜合設計(簡單界面設計)
3.4小結
習題3
本章實驗實訓
第4章循環結構
4.1輸出100個數(for語句)
4.1.1分析與設計
4.1.2for循環語句
4.1.3for語句的幾點說明
4.1.4實例分析與設計
4.1.5實戰演練
4.2統計英語成績(while語句)
4.2.1分析與設計
4.2.2while循環語句
4.2.3實例分析與設計
4.2.4實戰演練
4.3整數逆序輸出(dowhile語句)
4.3.1分析與設計
4.3.2dowhile循環語句
4.3.3實例分析與設計
4.3.4用while語句和用dowhile語句的比較
4.3.5實戰演練
4.4打印矩形(循環嵌套)
4.4.1分析與設計
4.4.2循環嵌套
4.4.3死循環
4.4.4實戰演練
4.5找*小數(break和continue語句)
4.5.1分析與設計
4.5.2break語句
4.5.3continue語句
4.5.4用for和while循環實現dowhile循環功能
4.5.5實戰演練
4.5.6綜合設計
4.6小結
習題4
本章實驗實訓
第5章數組
5.1廚師選魚(一維數組)
5.1.1分析與設計
5.1.2一維數組
5.1.3實戰演練
5.2果園里的競賽(二維數組)
5.2.1分析與設計
5.2.2二維數組
5.2.3實戰演練
5.3古詩詞填空(字符數組)
5.3.1分析與設計
5.3.2字符數組
5.3.3字符串處理函數
5.3.4實戰演練
5.4綜合設計
5.4.1解決數據的存儲問題
5.4.2找摘桃子*多的人
5.4.3計算選手的總成績
5.5小結
習題5
本章實驗實訓
第6章函數
6.1階乘之和(函數的定義、調用和聲明)
6.1.1分析與設計
6.1.2函數的定義和調用
6.1.3函數原型、函數聲明與函數調用
6.1.4實戰演練
6.2成績統計(函數的參數傳遞)
6.2.1分析與設計
6.2.2函數的參數傳遞
6.2.3實戰演練
6.3計算三角形面積(嵌套調用和遞歸調用)
6.3.1分析與設計
6.3.2嵌套調用
6.3.3遞歸調用
6.3.4實戰演練
6.4迎接第15億個嬰兒(變量的作用域)
6.4.1分析與設計
6.4.2局部變量和全局變量
6.4.3實戰演練
6.5構造整數(變量的存儲類型)
6.5.1分析與設計
6.5.2局部變量的存儲類型
6.5.3全局變量的存儲類型
6.5.4實戰演練
6.6快速計算(編譯預處理)
6.6.1分析與設計
6.6.2宏定義命令
6.6.3文件包含
6.6.4實戰演練
6.7綜合設計(詩詞十二宮格游戲)
6.7.1分析與設計
6.7.2完整的源程序代碼
6.8小結
習題6
本章實驗實訓
第7章自定義數據類型
7.1今天是星期幾(枚舉類型)
7.1.1分析與設計
7.1.2枚舉類型的定義與引用
7.2模擬顯示數字時鐘(結構體類型)
7.2.1分析與設計
7.2.2結構體類型的定義與引用
7.2.3結構體數組及其使用
7.2.4結構體變量做參數
7.3學生成績表的制作(共用體類型)
7.3.1分析與設計
7.3.2共用體類型的定義與引用
7.4實戰演練
7.5綜合設計
7.5.1分析與設計
7.5.2完整的源程序代碼
7.6小結
習題7
本章實驗實訓
第8章指針
8.1用函數實現變量值的交換
8.1.1分析與設計
8.1.2指針的定義及運算
8.2數組與指針
8.2.1指向一維數組的指針
8.2.2指針指向數組時的運算
8.2.3指向二維數組的指針
8.3用指針操作字符串
8.3.1分析與設計
8.3.2使用字符數組與字符指針變量的區別
8.4指針與函數
8.4.1用指向函數的指針實現函數調用
8.4.2返回指針值的函數
8.5指針數組和指向指針的指針
8.5.1指針數組的概念
8.5.2指向指針的指針
8.5.3指針數組做main()函數的參數
8.6實戰演練——驗證卡布列克運算
8.7綜合設計——用指針實現數據的動態管理
8.7.1分析與設計
8.7.2程序
8.7.3動態數據管理在插入、刪除操作中的優點
8.8小結
習題8
本章實驗實訓
第9章文件
9.1學生數據文件的創建與讀取
9.1.1分析與設計
9.1.2文件操作入門
9.2文件的概念
9.2.1文件的定義
9.2.2文件的分類
9.2.3文件緩存區
9.2.4文件類型與文件指針
9.2.5文件的操作過程
9.3文件的打開和關閉
9.3.1文件的打開
9.3.2文件的關閉
9.4文件的讀/寫操作
9.4.1字符讀/寫函數fgetc和fputc
9.4.2字符串讀/寫函數fgets和fputs
9.4.3格式化讀/寫函數fscanf和fprintf
9.4.4數據塊讀/寫函數fread和fwrite
9.5文件的定位操作
9.6文件的出錯檢測
9.7實戰演練
9.8綜合設計
9.8.1分析與設計
9.8.2完整的源程序代碼
9.9小結
習題9
本章實驗實訓
第10章Visual C++ 6.0開發環境
10.1開發環境概述
10.2菜單欄簡介
10.3開發環境的工具欄
10.4VC++ 6.0的主要窗口
10.5新建、編輯、編譯、連接、運行一個C程序
10.6常見問題處理
習題參考答案
附錄AASCII碼表
附錄BC語言中的關鍵字
附錄CC標準庫函數
參考文獻