“C語言程序設計”是計算機及非計算機專業(yè)學生的計算機基礎課。通過對本課程的學習,學生可以了解程序設計語言的基本知識,掌握結(jié)構(gòu)化程序設計的基本方法與思路、C語言的基本編程方法和常用算法、程序調(diào)試的基本技能,使學生具有初步的應用軟件開發(fā)基礎,并為學習計算機后續(xù)課程打下良好的 基礎。
本書以程序設計為主線,以編程應用為驅(qū)動,通過相關的語法知識點來重點講解程序設計的思想和方法。本書全面介紹C語言的基本概念、基本語法和基本數(shù)據(jù)結(jié)構(gòu),注重學習的連續(xù)性和漸進性,章節(jié)之間的實例具有關聯(lián)性,實例后又提出拓展功能和程序改造的思路,在每一章的提高篇中給出一些相對難度較高的開發(fā)實例,并且增加綜合實例小節(jié),通過一個大型的例子來說明算法基本原理、程序設計分析、源程序及說明、運行結(jié)果分析等內(nèi)容。
本書既可以作為高等院校各專業(yè)C語言程序設計課程的教材,也可作為工程技術(shù)人員和計算機愛好者的參考書。
1.以編程應用為驅(qū)動。在總結(jié)與提高篇中給出開發(fā)實例,并且通過綜合實例說明算法基本原理、程序設計分析、源程序及說明、運行結(jié)果分析等內(nèi)容。
2.強化“計算思維”的訓練,側(cè)重程序設計能力的培養(yǎng)。在附錄部分配有近幾年一些知名企業(yè)的招聘試題,給讀者提供更寬泛的知識與應用點。
3.強調(diào)易讀、易學和易教。語言通俗易懂,將抽象、枯燥的語法知識直觀、形象的傳授給學生。配有設計精美、內(nèi)容豐富的電子教案和素材供授課教師使用,方便教師授課。
第1章概述
1.1程序設計語言
1.1.1計算機語言
1.1.2程序設計語言的發(fā)展
1.2C語言程序設計
1.2.1C語言的發(fā)展歷史
1.2.2C語言的標準與版本
1.2.3C語言的特點
1.3C語言的基本語法成分
1.3.1字符集
1.3.2標識符
1.3.3運算符
1.4C語言程序的組成
1.4.1簡單的C語言程序介紹
1.4.2C語言程序的結(jié)構(gòu)第1章概述
1.1程序設計語言
1.1.1計算機語言
1.1.2程序設計語言的發(fā)展
1.2C語言程序設計
1.2.1C語言的發(fā)展歷史
1.2.2C語言的標準與版本
1.2.3C語言的特點
1.3C語言的基本語法成分
1.3.1字符集
1.3.2標識符
1.3.3運算符
1.4C語言程序的組成
1.4.1簡單的C語言程序介紹
1.4.2C語言程序的結(jié)構(gòu)
1.4.3C語言程序的書寫
1.5程序設計的一般過程
1.5.1問題分析
1.5.2算法設計
1.5.3編寫程序
1.5.4調(diào)試與測試
1.5.5整理文檔
習題1第2章基本數(shù)據(jù)類型、運算符及表達式
2.1C語言的基本數(shù)據(jù)類型
2.1.1數(shù)據(jù)類型
2.1.2C語言數(shù)據(jù)類型簡介
2.2常量
2.2.1整型常量
2.2.2實型常量
2.2.3符號常量
2.2.4字符型常量
2.3變量
2.3.1變量名
2.3.2變量類型
2.3.3變量值
2.4運算符及表達式
2.4.1C語言運算符簡介
2.4.2算術(shù)運算符與算術(shù)表達式
2.4.3賦值運算符與賦值表達式
2.4.4關系運算符與關系表達式
2.4.5邏輯運算符與邏輯表達式
2.4.6條件運算符與條件表達式
2.4.7逗號運算符與逗號表達式
2.4.8不同類型數(shù)據(jù)間的混合運算與類型轉(zhuǎn)換
2.5提高篇
2.5.1重點與難點
2.5.2典型題例
習題2第3章簡單的C語言程序設計
3.1算法
3.1.1算法的概念
3.1.2算法的評價標準
3.1.3算法的表示
3.2結(jié)構(gòu)化程序設計的方法
3.3程序的基本結(jié)構(gòu)
3.3.1順序結(jié)構(gòu)
3.3.2選擇結(jié)構(gòu)
3.3.3循環(huán)結(jié)構(gòu)
3.4順序結(jié)構(gòu)程序設計
3.5數(shù)據(jù)的輸入與輸出
3.5.1C語言中數(shù)據(jù)的輸入與輸出
3.5.2字符數(shù)據(jù)的輸入與輸出
3.5.3格式的輸入與輸出
3.6提高篇
3.6.1計算思維
3.6.2C語言程序的上機步驟及基本調(diào)試技術(shù)
習題3第4章選擇分支結(jié)構(gòu)程序設計
4.1二路分支——if語句
4.1.1if語句的一般形式
4.1.2if語句的嵌套
4.2多路分支——switch語句
4.2.1switch語句的一般形式
4.2.2switch語句的嵌套
4.3選擇分支結(jié)構(gòu)程序舉例
4.4提高篇
4.4.1重點與難點
4.4.2典型題例
習題4第5章循環(huán)結(jié)構(gòu)程序設計
5.1while語句
5.2do-while語句
5.3for語句
5.4goto語句
5.5循環(huán)的嵌套
5.6循環(huán)結(jié)束語句
5.6.1continue語句
5.6.2break語句
5.7提高篇
5.7.1重點與難點
5.7.2典型題例
習題5第6章指針基礎
6.1地址和指針的概念
6.1.1變量的內(nèi)容和變量的地址
6.1.2直接訪問和間接訪問
6.1.3指針的概念
6.2指針變量
6.2.1指針運算符
6.2.2指針變量的定義
6.2.3指針變量的引用
習題6第7章數(shù)組
7.1一維數(shù)組
7.1.1一維數(shù)組的定義和初始化
7.1.2一維數(shù)組元素的引用
7.1.3一維數(shù)組應用舉例
7.2二維數(shù)組
7.2.1二維數(shù)組的定義和初始化
7.2.2二維數(shù)組元素的引用
7.2.3二維數(shù)組應用舉例
7.3字符數(shù)組
7.3.1一維字符數(shù)組的定義和引用
7.3.2字符數(shù)組的輸入與輸出
7.3.3字符串處理函數(shù)
7.3.4二維字符數(shù)組
7.3.5字符數(shù)組應用舉例
7.4指針與數(shù)組
7.4.1指向數(shù)組元素的指針
7.4.2字符指針、字符數(shù)組和字符串
7.4.3地址越界問題
7.4.4指針數(shù)組
7.4.5多維數(shù)組和指向分數(shù)組的指針
7.4.6動態(tài)數(shù)組
7.5提高篇
7.6綜合實例
習題7第8章函數(shù)
8.1概述
8.1.1C語言程序的基本結(jié)構(gòu)
8.1.2函數(shù)的分類
8.2函數(shù)的定義
8.3函數(shù)的調(diào)用與返回值
8.3.1函數(shù)調(diào)用的一般形式
8.3.2函數(shù)調(diào)用的方式
8.3.3函數(shù)的返回值
8.4函數(shù)的參數(shù)
8.4.1形參和實參
8.4.2數(shù)組作為函數(shù)參數(shù)
8.4.3引用傳遞
8.5函數(shù)聲明和函數(shù)原型
8.6函數(shù)的嵌套調(diào)用
8.7函數(shù)的遞歸調(diào)用
8.8變量的作用域
8.8.1局部變量
8.8.2全局變量
8.9變量的存儲類型
8.9.1靜態(tài)存儲方式和動態(tài)存儲方式
8.9.2靜態(tài)局部變量
8.9.3自動變量
8.9.4寄存器變量
8.9.5靜態(tài)全局變量和非靜態(tài)全局變量
8.9.6存儲類型小結(jié)
8.10內(nèi)部函數(shù)和外部函數(shù)
8.10.1內(nèi)部函數(shù)
8.10.2外部函數(shù)
8.11指針與函數(shù)
8.11.1返回指針值的函數(shù)
8.11.2指向函數(shù)的指針變量
8.11.3指向函數(shù)的指針變量作為函數(shù)參數(shù)
8.12多文件程序的運行
8.13綜合實例
8.14提高篇
8.14.1重點與難點
8.14.2數(shù)組或指針變量作函數(shù)參數(shù)
8.14.3典型題例
習題8第9章結(jié)構(gòu)體與共用體
9.1結(jié)構(gòu)體類型的定義
9.2結(jié)構(gòu)體變量
9.2.1結(jié)構(gòu)體變量的定義
9.2.2結(jié)構(gòu)體變量的使用
9.3結(jié)構(gòu)體數(shù)組
9.3.1結(jié)構(gòu)體數(shù)組的定義
9.3.2結(jié)構(gòu)體數(shù)組元素的使用
9.4結(jié)構(gòu)體和函數(shù)
9.4.1結(jié)構(gòu)體作函數(shù)參數(shù)
9.4.2返回值為結(jié)構(gòu)體類型的函數(shù)
9.5共用體
9.5.1共用體類型的定義
9.5.2共用體變量
9.5.3共用體應用舉例
9.6枚舉類型
9.7typedef語句
9.8指針與結(jié)構(gòu)體
9.8.1指向結(jié)構(gòu)體的指針變量
9.8.2用指向結(jié)構(gòu)體的指針作為函數(shù)參數(shù)
9.9提高篇
習題9第10章指針與鏈表
10.1存儲空間的分配和釋放
10.2鏈式存儲結(jié)構(gòu)——鏈表
10.2.1靜態(tài)鏈表
10.2.2動態(tài)鏈表
10.3單鏈表
10.3.1單鏈表的建立
10.3.2單鏈表的遍歷
10.3.3單鏈表的插入
10.3.4單鏈表的刪除
10.4循環(huán)鏈表
10.5雙向鏈表
10.6提高篇
10.6.1重點與難點
10.6.2典型例題
10.7綜合實例
10.7.1需求分析
10.7.2系統(tǒng)設計
10.7.3功能設計
10.7.4小結(jié)
習題10第11章編譯預處理、位運算及混合編程
11.1文件包含處理——#include
11.2宏定義——#define
11.2.1不帶參數(shù)的宏定義
11.2.2帶參數(shù)的宏定義
11.3條件編譯
11.4位運算符和位運算
11.5位段
11.6位運算舉例
11.7C語言與匯編語言的混合編程
11.7.1內(nèi)嵌匯編代碼
11.7.2模塊化連接方法
習題11第12章文件
12.1文件概述
12.1.1數(shù)據(jù)流
12.1.2文件
12.1.3文件的操作流程
12.1.4文件和內(nèi)存的交互處理
12.2文件類型的指針
12.3標準輸入/輸出函數(shù)
12.3.1打開文件
12.3.2關閉文件
12.3.3獲取文件的屬性
12.3.4文件的順序讀寫
12.3.5文件的隨機讀寫
12.3.6出錯檢查
12.4系統(tǒng)輸入/輸出函數(shù)
12.5提高篇
12.5.1重點與難點
12.5.2典型題例
12.6綜合實例
習題12第13章C語言圖形程序設計
13.1圖形顯示的坐標和像素
13.1.1圖形顯示的坐標
13.1.2像素
13.2Turbo C支持的圖形適配器和圖形模式
13.3圖形模式的初始化
13.3.1圖形系統(tǒng)的初始化函數(shù)
13.3.2圖形系統(tǒng)的自動檢測函數(shù)
13.3.3關閉圖形模式函數(shù)
13.3.4屏幕顏色的設置
13.3.5清屏函數(shù)
13.4基本繪畫
13.4.1畫點函數(shù)
13.4.2畫直線函數(shù)
13.4.3畫矩形和多邊形函數(shù)
13.4.4畫圓和橢圓函數(shù)
13.4.5設定線型函數(shù)
13.5圖形填充
13.5.1畫填充圖函數(shù)
13.5.2設定填充方式函數(shù)
13.5.3可對任意封閉圖形填充的函數(shù)
13.6圖形模式下的文本輸出
13.6.1文本輸出函數(shù)
13.6.2文本字體格式和輸出方式的設置
13.7視口和視口函數(shù)
13.8屏幕操作
13.8.1設置顯示頁函數(shù)
13.8.2屏幕圖像處理存儲和顯示函數(shù)
13.8.3鍵盤對屏幕的控制操作
13.9提高篇
13.10綜合實例
習題13第14章C++面向?qū)ο蟪绦蛟O計
14.1面向?qū)ο蟪绦蛟O計
14.1.1面向?qū)ο蟪绦蛟O計的產(chǎn)生背景
14.1.2類和對象
14.1.3構(gòu)造函數(shù)和析構(gòu)函數(shù)
14.1.4繼承
14.1.5多態(tài)性
14.2C++語言
14.2.1C++語言的特點
14.2.2輸出流、輸入流
14.2.3函數(shù)內(nèi)聯(lián)
14.2.4函數(shù)重載
14.2.5引用
14.2.6C++增加的運算符、數(shù)據(jù)類型和注釋
14.2.7C++程序的集成開發(fā)環(huán)境
14.3C#語言
14.3.1C#簡介
14.3.2C#的特點
14.4基于MFC庫的用戶界面編程基礎
14.5提高篇
14.5.1重點與難點
14.5.2典型題例
習題14
附錄
附錄Ⅰ常用字符與ASCⅡ碼對照表
附錄ⅡC語言中的關鍵字表
附錄ⅢC語言中運算符的優(yōu)先級與結(jié)合性一覽表
附錄ⅣC庫函數(shù)
附錄ⅤVisual C++ 6.0菜單介紹
附錄ⅥVisual C++ 6.0編譯錯誤信息介紹
主要參考文獻