《C語言程序設計教程》由教學篇、實驗篇以及附錄三部分組成。教學篇分為10章,第1章對高級語言以及C語言的形成與發(fā)展作了具體的敘述;第2章、第3章介紹了C程序基礎;第4章、第5章介紹了C程序的控制結構;第6章介紹了組合數據結構“數組”;第7章介紹了C語言的模塊化程序設計“函數”;第8章、第9章詳細、全面地介紹了C語言的精華——“指針”與“動態(tài)數據結構”;第10章介紹了C語言的文件系統(tǒng)。實驗篇分為2章,第1章為實驗基礎,對C源程序的開發(fā)環(huán)境Visual C++6.0和Turbo C作了全面詳細的介紹,作為學習C程序設計的基礎;第2章為實驗操作,共安排了10個實驗,實驗內容與節(jié)奏與本課程的理論教學保持同步。附錄部分提供了附錄A至附錄H共8個附錄,它們依次是:C語言主要關鍵字及其用途、運算符優(yōu)先級和結合性、常用字符與ASCII編碼對照表、常用庫函數、常用關鍵字和術語的中英文對照表、習題參考解答、實驗參考解答以及初學者編程中常犯的錯誤。特別是附錄H介紹了初學者編程中常犯的20多種錯誤,并解析了出錯原因和糾錯方法,為提高初學者的程序設計能力提供了極大的幫助。
《C語言程序設計教程》既是高校網絡教育學院的“C程序設計”課程的必修教材,又是普通高校本科生的程序設計課程參考用書,亦可用作計算機愛好者的自學讀本。
C語言以其小巧、靈活、高效等諸多優(yōu)點成為20世紀90年代以后的主要編程語言,在國內外得到了廣泛的應用。我國的大專院校在多年計算機教學的改革、實踐與探索中都將“C程序設計”課程作為大學本科生的“第一計算機語言”,作為他們獲取程序設計能力的首選課程。
隨著計算機技術的飛速發(fā)展以及計算機應用的不斷深入,如今程序設計的工具與方法也在不斷地發(fā)展與更新,這就對大學生程序設計能力的培養(yǎng)提出了更高的標準,要求當代大學生不僅能夠編寫開發(fā)面向過程的結構化程序,而且能夠熟練地利用面向對象的程序設計技術,在可視化的編程環(huán)境中開發(fā)C和windows應用程序,以適應當今信息時代用人單位的需求。
基于上述背景我們編寫了本書。本書對C語言作了全面、詳細、系統(tǒng)的介紹,并選擇Visual C++6.0可視化工具作為本書例題的編譯平臺,使傳統(tǒng)的面向過程的編程語言與現代的面向對象的可視化編譯環(huán)境有機結合。
本書的編寫力求從初學者的認知規(guī)律出發(fā),結合網絡遠程教學培養(yǎng)應用型人才的目標要求、緊扣當今信息社會的發(fā)展理念不偏廢的原則,對教材內容作了合理的構思與編排:首先在章節(jié)的順序安排上遵循由淺入深、循序漸進的原則,其次對于某些在實際應用中用得極少,甚至不用的內容在不影響知識體系結構完整性的前提下作了一定的刪減。本書以美國國家標準化協會頒布的C語言的最新版本87 ANSI C為基礎,全書的教學篇共安排了10章內容,涵蓋了C程序設計必須具備的語言、算法、數據結構、程序設計方法等方面的全部知識點。實驗篇部分共安排10次試驗,實驗篇的編寫風格凸現了本書與眾不同的特色:首先,每一次實驗在給出具體的操作內容之前,先給出要求學習者閱讀的“導讀提要”,讓學習者了解與本次實驗有關的基本概念和知識要點,明白自己要做的準備工作,這既對學習者順利完成本次實驗操作大有幫助,而且也起到了對本章節(jié)所學的理論知識進行全面、系統(tǒng)地復習與回顧的作用。其次,本書突破了傳統(tǒng)的實驗題型的框架,并非就事論事地給出幾道枯燥的、毫無啟發(fā)性的題目,讓學習者自己去編寫程序;而是采用了豐富多變的形式,給出現成的程序讓學習者去模仿,給出一個簡單的程序讓學習者去擴充功能,給出一個有錯的程序讓學習者糾錯改錯,給出一個功能不全的程序讓學習者填空補缺以及給出題目和程序說明讓學習者獨立編程。再其次,考慮到學生較少有機會與教師面對面交流與溝通這一網絡教學的特點,為了減少學生學習上的困難和無助感,本書在附錄部分增加了習題(包括實驗習題)參考答案和初學者編程中常犯的錯誤,為學生的自學提供盡可能的幫助。
第一篇 教學篇
1 C語言概述
1.1 C語言的形成與發(fā)展
1.2 C語言簡介
1.3 C語言的基本語法成分
1.4 編譯預處理
習題1
2 數據類型及基本運算
2.1 C數據類型
2.2 基本數據類型
2.3 數據的表示
2.4 常用的運算符和表達式
2.5 常用的庫函數
習題2
3 順序結構程序設計
3.1 用于順序結構的基本語句
3.2 輸入與輸出
3.3 順序結構程序設計舉例
習題3
4 選擇結構程序設計
4.1 if語句
4.2 條件表達式
4.3 switch語句
4.4 應用舉例
習題4
5 循環(huán)結構程序設計
5.1 while語句
5.2 dowhile語句
5.3 for語句
5.4 循環(huán)結構的嵌套
5.5 循環(huán)結構的中斷與轉移
5.6 循環(huán)結構應用舉例
習題5
6 數組
6.1 數組的概念
6.2 數組的定義與引用
6.3 數組的存儲結構和初始化
6.4 數組應用舉例
6.5 字符串處理
習題6
7 函數
7.1 函數的概念
7.2 函數的定義
7.3 函數的調用
7.4 函數的嵌套與遞歸
7.5 變量的作用域
7.6 變量的存儲類別
7.7 有參數宏與函數的區(qū)別
習題7
8 指針
8.1 指針的概念
8.2 指針與數組
8.3 指針與函數
8.4 指針與字符串
8.5 多級指針
8.6 指針類型小結
習題8
9 結構與其他自定義類型
9.1 結構類型的認識
9.2 結構類型的定義
9.3 結構類型的應用
9.4 動態(tài)數據結構“鏈表
9.5 共用體類型
9.6 枚舉類型
9.7 類型自定義
習題9
10 文件
10.1 文件類型和文件指針
10.2 文件的打開與關閉
10.3 文件的讀寫
10.4 文件的定位
10.5 文件的檢測與出錯處理
習題10
第二篇 實驗篇
1 實驗基礎
1.1 VisualC++6.O實驗環(huán)境
1.2 TurboC2.0實驗環(huán)境
2 實驗操作
實驗一 C程序設計入門
實驗二 設計并運行簡單的C程序
實驗三 輸入與輸出
實驗四 選擇結構程序設計
實驗五 循環(huán)結構程序設計
實驗六 數組
實驗七 函數
實驗八 指針
實驗九 結構
實驗十 文件
附錄
附錄A C語言主要關鍵字及其用途
附錄B 運算符優(yōu)先級和結合性
附錄C 常用字符與ASCII編碼對照表
附錄D 常用庫函數
附錄E 常用關鍵字和術語的中英文對照表
附錄F 習題參考答案
附錄G 實驗參考解答
附錄H 初學者編程中常犯的錯誤
C語言的形成起源于系統(tǒng)軟件的發(fā)展要求。眾所周知,早期的系統(tǒng)軟件(例如操作系統(tǒng)),都是使用匯編語言開發(fā)的。這主要是由于匯編語言能夠體現計算機硬件指令的特性,由匯編語言程序形成的代碼有較高的質量。但是,匯編語言依賴于計算機硬件和指令系統(tǒng),不僅編程的工作強度大,而且程序的可讀性差,無通用性。因而,人們期盼能夠找到一種具有足夠表達能力、并接近于自然語言表達方式的高級語言來進行系統(tǒng)軟件的開發(fā)。
1960年1月,圖靈獎獲得者艾倫·佩利(Alan J.Perlis)首先發(fā)明了ALGOL60語言,它是世界上最早誕生的用于程序設計的高級語言(簡稱A語言)。ALGOL60的主要特點是描述算法方便,但它離開計算機硬件系統(tǒng)較遠,不宜編寫系統(tǒng)程序。
1967年英國劍橋大學的馬丁·理查德教授以ALGOL60語言為基礎、對其進行了簡化,并增加了處理硬件的能力,推出了“BCPL(基本復合程序設計語言)”語言。1970年美國貝爾實驗室的肯·湯普遜對BCPL語言進行了進一步的簡化,更突出了硬件的處理能力,并取“BCPL"的第一個字母“B”作為新語言的名稱,B語言由此誕生,并同時用于UNIx操作系統(tǒng)程序的編寫。