本書是在前三版的基礎上進行修訂和改編的結果,全書分三篇: *篇為基礎篇,主要介紹C語言的基礎知識和思想,內(nèi)容包括編程思想、C語言基礎、C程序設計基礎和C程序組織基礎; 第二篇為提高篇,以講述開發(fā)實例為主,在設計過程中介紹程序語言,內(nèi)容包括數(shù)據(jù)組織、編程模塊化思想、指針、文件; 第三篇為設計篇,內(nèi)容包括綜合設計、實用編程技巧舉例。 本書知識覆蓋面廣,例題豐富,每章均配有多種題型的習題,內(nèi)容少而精、結構清晰、層次分明、文字通俗易懂,講解循序漸進,通過大量與C語言知識點緊密結合的例題,讓讀者更好地掌握程序設計方法,強調(diào)在實踐中學習,每章均配有上機實踐訓練。 本書可以作為高等院校計算機專業(yè)本科、專科低年級學生學習計算機語言的入門教材,還可以作為科技人員自學C語言的參考書。
本書是在前幾版的基礎上,經(jīng)過多年的積累,結合近年來的上機考試系統(tǒng)的一些內(nèi)容,又參考一些優(yōu)秀的C語言教程后修訂的C程序設計教材。目前,各高;景凑崭髯詫W校學生的特點編寫C程序設計教材,絕大多數(shù)教材都是為了適應早期的教學模式和教學方法而編寫的。如今隨著計算機語言教學的改革深入,根據(jù)全國計算機基礎教學指導委員會的白皮書的精神,高校的計算機教學中,又提出許多新的概念。因此,適用于教學的教材編寫風格也必須改革。2008年我們編寫的《C程序設計基礎》已經(jīng)取得了一些成功的經(jīng)驗, 并獲得大連市科學著作三等獎。2010年又進行了第二版的修訂,2014年推出了第三版,而本書在上幾次寫作的基礎上,結合我校四年制和五年制兩種教學模式以及上機考試的特點進行了有針對性的改進。全書分三篇: 第一篇為基礎篇,主要介紹C語言的基礎知識和思想; 第二篇為提高篇,以開發(fā)實例為主來講述在設計過程中學習語言的特點; 第三篇為設計篇,介紹設計實例。全書以設計為核心,適合高校、高職以及自學人員作為教材使用。
計算機素質(zhì)教育對于當今大學生來說是必備的基本技能,而C語言程序設計在國內(nèi)高校中往往是作為大學生學習計算機程序設計的入門課程來設定的,C語言的開設大都是在20世紀90年代中期開始的,在開設之初,一直沿用一種傳統(tǒng)的理論研究式的教學模式,過度注重計算機語言的語法、語句格式的講解,沒有把計算機語言的目標是編程的邏輯思想放在主體地位上; 對學生的編程思想的建立和編程能力訓練不夠,這樣給后續(xù)課程的學習和研究留下了隱患。很多學生在學習這門課時感到枯燥難學,學過之后又不能用來解決實際問題。
我們作為從事計算機基礎教學多年的教學團隊,通過一線教學工作者長期的教學研究和經(jīng)驗總結,通過參加有關計算機基礎教學研究會議,和其他高校從事計算機基礎教學的同行們交流,感到應該用新的教學理念和方法培養(yǎng)新時代人才。目前,對C語言程序設計課程的建設工作,學校給予高度重視。我們通過反思和學習研究清華大學等院校的改革經(jīng)驗,在課程建設中,開始研究對C語言程序設計課程的教學模式改革,以強調(diào)動手實踐上機編程為切入點,通過實例講授程序設計的基本概念和基本方法,把重點放在學習編程思路上。要求學生養(yǎng)成良好的編程習慣; 在教學過程中注重培養(yǎng)學生的計算機語言的思維能力和編程動手能力,鼓勵學生探索、研究和創(chuàng)新。在指導思想上,強調(diào)轉變觀念,以學生為中心,將學生視為教學的主體,安排教學首先要考慮培養(yǎng)目標、學生的認知規(guī)律和學習特點。具體的教學改革措施主要考慮以下兩點: 教學模式和方法的改革; 學生學習評價體系的改革。
對教學模式的改革: 主要是從軟的環(huán)境上進行,包括教學方法、思路、手段的改革,轉變觀念,把強化實踐提到一定的高度并予以重視。
對學生評價體系的改革: 考試是檢驗學生學習成果的重要環(huán)節(jié)?荚囎鳛橹笓]棒,對教學目標和教學過程都有重大影響。對于C語言課程建設來說,考試改革是調(diào)動和激發(fā)學生學習積極性和創(chuàng)造性的重要環(huán)節(jié)。如今我校采用的考核方式是采取上機考核,這對學生學習方法的影響是很大的,也是積極的。作為計算機語言課的學習,只有動手、動腦去實踐,才能學到真本事。這樣就要求從硬件的環(huán)境以及軟件的配置上,都要加大投入。因此,C語言程序設計課程建設不是一朝一夕的事情,它是一個系統(tǒng)工程,需要逐步地完成。
本書由大連交通大學的李瑞、戚海英和劉月凡主要負責編寫,第一、第二篇由李瑞主要負責編寫,其中第7章、第8章由劉月凡主要負責編寫,第三篇由戚海英主要負責編寫,全書由李瑞統(tǒng)稿和審定,另外,陳鑫影、趙鴻博、孫經(jīng)緯、趙秀利、李書航、王澤旭、孫志強、孫鵬和張磊等同志對本書編寫做了不少輔助工作。在此表示感謝。
由于作者水平有限,書中難免有紕漏,歡迎廣大讀者多提寶貴意見。
作者2019年6月
第一篇基礎篇
第1章編程思想
1.1程序設計思想
1.1.1程序設計的基本步驟
1.1.2程序設計的學習方法
1.2算法
1.2.1算法概念
1.2.2算法的特性
1.2.3算法的表示
1.2.4算法的復雜度
1.2.5結構化程序設計方法
1.2.6算法舉例
1.3上機編程準備
1.3.1Turbo C編程開發(fā)環(huán)境
1.3.2VC 編程開發(fā)環(huán)境
1.3.3實例運行過程
1.4上機實踐
第2章C語言基礎
2.1程序的基本結構
2.2標識符、常量和變量
2.2.1標識符
2.2.2常量和變量
2.3數(shù)據(jù)類型
2.3.1整型數(shù)據(jù)
2.3.2實型數(shù)據(jù)
2.3.3字符型數(shù)據(jù)
2.3.4變量賦初值
2.4賦值運算符和賦值表達式
2.4.1賦值運算符和賦值表達式
2.4.2運算符的優(yōu)先級和結合性
2.5算術運算符和算術表達式
2.5.1算術運算符
2.5.2算術表達式
2.5.3算術運算符優(yōu)先級和結合性
2.5.4算術運算中的類型轉換
2.6位運算符、逗號運算符和求字節(jié)運算符
2.6.1位運算符
2.6.2逗號運算符
2.6.3求字節(jié)運算符
2.7上機實踐
2.8習題
第3章C程序設計基礎
3.1順序結構程序設計
3.1.1賦值語句
3.1.2順序結構程序特點
3.1.3基本輸入輸出函數(shù)
3.1.4數(shù)據(jù)的輸入和輸出
3.2選擇結構程序設計
3.2.1關系運算符和關系表達式
3.2.2邏輯運算符和邏輯表達式
3.2.3語句和復合語句
3.2.4選擇結構
3.2.5條件運算符
3.3循環(huán)結構程序設計
3.3.1循環(huán)結構
3.3.2循環(huán)的應用
3.3.3循環(huán)語句的嵌套
3.3.4break語句和continue語句
3.4編譯預處理
3.4.1宏定義
3.4.2文件包含
3.4.3條件編譯
3.5上機實踐
3.6習題
第4章C程序組織基礎
4.1數(shù)組的概念
4.2結構體的概念
4.3函數(shù)的概念
4.4指針的概念
4.4.1指針
4.4.2指針變量的引用
4.5上機實踐
4.6習題
綜合習題一
第二篇提高篇
第5章數(shù)據(jù)組織
5.1數(shù)組
5.1.1一維數(shù)組
5.1.2二維數(shù)組
5.1.3字符數(shù)組和字符串
5.2結構體
5.2.1結構體變量
5.2.2結構體數(shù)組
5.3共用體和枚舉類型
5.3.1共用體類型定義
5.3.2共用體變量的定義和引用
5.3.3枚舉類型定義
5.3.4枚舉變量與枚舉元素
5.4typedef自定義類型
5.5上機實踐
5.6習題
第6章編程模塊化思想
6.1概述
6.2函數(shù)
6.2.1函數(shù)的定義
6.2.2函數(shù)的調(diào)用和參數(shù)
6.2.3函數(shù)的參數(shù)傳遞
6.2.4函數(shù)的嵌套調(diào)用和遞歸調(diào)用
6.3局部變量和全局變量
6.3.1局部變量
6.3.2全局變量
6.4變量的存儲類別
6.4.1局部變量的存儲
6.4.2全局變量的存儲
6.5內(nèi)部函數(shù)和外部函數(shù)
6.5.1內(nèi)部函數(shù)
6.5.2外部函數(shù)
6.5.3多文件編譯
6.6上機實踐
6.7習題
第7章指針
7.1指針變量的應用
7.2數(shù)組與指針
7.2.1指向數(shù)組元素的指針
7.2.2通過指針引用數(shù)組元素
7.2.3用數(shù)組名作函數(shù)參數(shù)
7.2.4二維數(shù)組與指針
7.3字符串與指針
7.3.1字符串的表示形式
7.3.2字符指針作函數(shù)參數(shù)
7.4函數(shù)與指針
7.4.1用函數(shù)指針變量調(diào)用函數(shù)
7.4.2用指向函數(shù)的指針作函數(shù)參數(shù)值
7.4.3返回指針值的函數(shù)
7.5指針數(shù)組與二級指針
7.5.1指針數(shù)組的概念
7.5.2二級指針
7.5.3主函數(shù)與命令行參數(shù)
7.6結構體與指針
7.6.1指向結構體變量的指針
7.6.2指向結構體數(shù)組的指針
7.6.3用指向結構體的指針作函數(shù)參數(shù)
7.7鏈表
7.7.1動態(tài)分配和釋放空間的函數(shù)
7.7.2建立和輸出鏈表
7.7.3鏈表的基本操作
7.8上機實踐
7.9習題
第8章文件
8.1文件的概念
8.2文件的使用方法
8.2.1文件的打開和關閉
8.2.2文件的讀寫
8.2.3文件的定位
8.3上機實踐
8.4習題
綜合習題二
第三篇設計篇
第9章綜合設計
9.1學生成績管理系統(tǒng)
9.2系統(tǒng)需求分析
9.3系統(tǒng)總體設計
9.4系統(tǒng)詳細設計與實現(xiàn)
9.5系統(tǒng)參考程序
第10章實用編程技巧舉例
10.1模塊化程序編程技巧
10.2使用通用函數(shù)的編程技巧
10.3數(shù)值分析的計算機編程技巧
10.4讀取設計手冊上的文本數(shù)據(jù)的方法和技巧
附錄A常用字符與ASCII代碼對照表
附錄B運算符的優(yōu)先級和結合性
附錄C庫函數(shù)
附錄D2013年3月全國計算機等級考試二級C試題及參考答案
附錄E習題參考答案
附錄FC語言上機考試模擬試卷
48學時上機考試模擬五套試卷
64學時上機考試模擬六套試卷
參考文獻