出版時間:2011-11 出版社:清華大學(xué)出版社 作者:孫燮華 編著
前言
C語言的編譯環(huán)境已從傳統(tǒng)的Turbo C 2.0變?yōu)閂isual C++ 6.0。由于Turbo C 2.0中進(jìn)行圖形編程的Graphics.h與Visual C++ 6.0不相容,這一改變使大部分C語言教材沒有圖形編程一章,即使有C語言圖形編程內(nèi)容的教材,其編程環(huán)境仍然回到Turbo C 2.0中。這表明C語言編譯環(huán)境不完全適應(yīng)圖形編程。另一方面,計算機(jī)的可視化,即圖形化是當(dāng)前的主流,Windows窗體化已經(jīng)在計算機(jī)領(lǐng)域取得了統(tǒng)治地位。由于這些原因,作者在本書中引入了屬于Windows編程的API,稍微向Windows跨出一步。對于不熟悉Windows編程的讀者,只要輸入本書的Windows.c程序,引用這個文件后,即可如通常編寫C程序一樣編寫C圖形圖像程序了?! ∨c目前出版的所有C語言教材相比,本書獨具的三大特色是: (1) 適應(yīng)在Visual C++ 6.0環(huán)境中進(jìn)行圖形圖像編程。本書引入了一個屬于Windows編程的Windows.c程序,只要將這個程序輸入或略作修改,就可以用通常的方法進(jìn)行圖形圖像編程?! 。?) 除專設(shè)第10章算法設(shè)計與分析外,有關(guān)算法和編程的內(nèi)容貫穿全書,并結(jié)合高等數(shù)學(xué)的方法進(jìn)行分析,以培養(yǎng)學(xué)生應(yīng)用數(shù)學(xué)方法設(shè)計算法和編程的能力?! 。?) 為擴(kuò)大讀者的知識面和提高學(xué)習(xí)C語言的興趣,也為后續(xù)學(xué)習(xí)課程,如計算機(jī)圖形學(xué)、圖像處理、密碼學(xué)、通信編碼和游戲動畫等作基礎(chǔ)準(zhǔn)備,本書提供了動態(tài)Bezier曲線、顯示PGM圖像、序列加/解密、通信GCD算法和動畫小球碰撞等應(yīng)用的實例?! ”緯诔蓵^程中得到了周永霞博士、姚伏天博士和吳永剛等老師的幫助,特此表示感謝。對本書引用的參考書的作者們表示感謝?! ”緯赏醯铝指苯淌谧珜懙?~8章,由孫燮華撰寫第9~12章,全書由孫燮華定稿。由于作者的能力和水平有限,雖然經(jīng)過了極大的努力,書中仍然難免還有一些錯誤,希望讀者和同行專家批評指正?! ∽髡摺 ?011年5月
內(nèi)容概要
本書除了介紹c語言基礎(chǔ)、基本數(shù)據(jù)類型、各種運算符與表達(dá)式、控制結(jié)構(gòu)與語句、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體、文件等基本內(nèi)容外,加強(qiáng)了算法的設(shè)計和編程能力的培養(yǎng),還特別介紹c圖形程序在visual
c++
6.0環(huán)境中的編譯和運行。本書注意培養(yǎng)學(xué)生的編程和創(chuàng)新能力,尤其注重可視化的圖形編程和算法設(shè)計能力的培養(yǎng),為后續(xù)學(xué)習(xí)面向?qū)ο缶幊毯蛨D形學(xué)與圖像處理等課程作基礎(chǔ)準(zhǔn)備。為提高讀者對學(xué)習(xí)c語言的興趣,本書還提供了c語言應(yīng)用于圖形圖像處理、計算機(jī)密碼學(xué)、通信、數(shù)據(jù)壓縮、智能算法和動畫等領(lǐng)域的應(yīng)用實例。
本書可作為高等學(xué)校理工科各專業(yè)c語言程序設(shè)計教材,也可作為計算機(jī)等級考試教學(xué)和自學(xué)用書。
書籍目錄
第1章 概論
1.1 c語言的發(fā)展與特點
1.1.1 c語言發(fā)展簡史
1.1.2 c語言的特點
1.2 第一個c程序
1.2.1 第一個c程序及其編譯與運行
1.2.2 關(guān)于c程序的編寫
1.2.3 c程序的結(jié)構(gòu)
1.3 本書提供的c語言應(yīng)用實例介紹
1.3.1 概述
1.3.2 本書部分應(yīng)用舉例
習(xí)題
第2章 c語言基礎(chǔ)
2.1 字符集、標(biāo)識符與關(guān)鍵詞
2.1.1 字符集
2.1.2 標(biāo)識符
2.1.3 關(guān)鍵詞
2.2 數(shù)據(jù)類型
2.2.1 基本數(shù)據(jù)類型
2.2.2 其他數(shù)據(jù)類型
2.3 常量與變量
2.3.1 常量
2.3.2 變量
2.4 運算符與表達(dá)式
2.4.1 賦值運算符與表達(dá)式
2.4.2 算術(shù)運算符與表達(dá)式
2.4.3 關(guān)系運算符與表達(dá)式
2.4.4 邏輯運算符與表達(dá)式
4.5 逗號運算符與表達(dá)式
2.4.6 復(fù)合運算與表達(dá)式
2.4.7 運算符優(yōu)先級
2.5 數(shù)據(jù)輸入/輸出函數(shù)與常用函數(shù)
2.5.1 數(shù)據(jù)輸入/輸出函數(shù)
2.5.2 字符輸入/輸出函數(shù)
2.5.3 常用函數(shù)
習(xí)題
第3章 程序控制流與程序算法設(shè)計
3.1 順序結(jié)構(gòu)
3.1.1 順序結(jié)構(gòu)的基本語句
3.1.2 順序結(jié)構(gòu)應(yīng)用舉例
3.2 選擇結(jié)構(gòu)
3.2.1 if語句
3.2.2 條件表達(dá)式
3.2.3 switch語句
3.3 循環(huán)結(jié)構(gòu)
3.3.1 while循環(huán)
3.3.2 do-while循環(huán)
3.3.3 for循環(huán)
3.3.4 循環(huán)語句的嵌套
3.3.5 break語句和continue語句
3.3.6 goto語句
3.4 算法
3.4.1 算法概述
3.4.2 算法描述方法
3.5 程序設(shè)計方法
3.5.1 程序設(shè)計的一般步驟
3.5.2 結(jié)構(gòu)化程序設(shè)計方法
習(xí)題
第4章 函數(shù)
4.1 函數(shù)聲明與定義
4.1.1 概述
4.1.2 函數(shù)聲明
4.1.3 函數(shù)定義
4.2 函數(shù)調(diào)用
4.2.1 傳值調(diào)用的特點
4.2.2 函數(shù)調(diào)用方式
4.2.3 函數(shù)嵌套調(diào)用
4.2.4 函數(shù)遞歸和遞推調(diào)用
4.3 函數(shù)與變量
4.3.1 全局變量和局部變量
4.3.2 變量的生命期與存儲類別
習(xí)題4
第5章 數(shù)組與字符串
5.1 一維數(shù)組
5.1.1 一維數(shù)組定義
5.1.2 一維數(shù)組引用
5.1.3 數(shù)組元素的排序與查找
5.2 二維數(shù)組
5.2.1 二維數(shù)組定義
5.2.2 二維數(shù)組引用
5.2.3 二維數(shù)組程序舉例
5.3 字符串
5.3.1 字符串的存儲
5.3.2 字符串的輸入與輸出
5.3.3 常用字符串函數(shù)
5.4 數(shù)組與函數(shù)
5.4.1 數(shù)組元素作為函數(shù)參數(shù)
5.4.2 數(shù)組名作為函數(shù)參數(shù)
習(xí)題5
第6章 指針與動態(tài)內(nèi)存分配
6.1 指針基礎(chǔ)
6.1.1 指針變量定義
6.1.2 指針變量初始化
6.1.3 指針的間接引用
6.1.4 指針基本運算
6.2 指針與數(shù)組
6.2.1 指向數(shù)組元素的指針
6.2.2 通過指針引用數(shù)組元素
6.2.3 數(shù)組名作函數(shù)參數(shù)
6.2.4 指針數(shù)組
6.2.5 指向指針的指針
6.2.6 指針數(shù)組與二級指針的等價性
6.3 指針與字符串
6.3.1 字符串的表示形式
6.3.2 字符串指針作函數(shù)參數(shù)
6.3.3 常用字符串函數(shù)
6.4 指針與函數(shù)
6.4.1 指針作函數(shù)的參數(shù)
6.4.2 指針作函數(shù)返回值
6.4.3 指向函數(shù)的指針
6.4.4 函數(shù)指針作函數(shù)的參數(shù)
6.5 const指針
6.5.1 指向常量的指針
6.5.2 指針常量
6.5.3 指向常量的指針常量
6.6 動態(tài)內(nèi)存分配
6.6.1 用malloc()分配內(nèi)存空間
6.6.2 動態(tài)數(shù)組的實現(xiàn)
習(xí)題6
第7章 結(jié)構(gòu)體、共用體和枚舉類型
7.1 結(jié)構(gòu)體類型
7.1.1 結(jié)構(gòu)體類型及其變量的定義
7.1.2 結(jié)構(gòu)體變量的使用
7.1.3 結(jié)構(gòu)體變量的初始化
7.2 結(jié)構(gòu)體數(shù)組
7.2.1 結(jié)構(gòu)體數(shù)組的定義
7.2.2 結(jié)構(gòu)體數(shù)組的初始化
7.3 結(jié)構(gòu)體指針變量
7.3.1 指向結(jié)構(gòu)體的指針
7.3.2 指向結(jié)構(gòu)體數(shù)組的指針
7.3.3 結(jié)構(gòu)體變量和結(jié)構(gòu)體指針變量作函數(shù)參數(shù)
7.4 鏈表
7.4.1 鏈表概述
7.4.2 鏈表的基本操作
7.5 共用體
7.5.1 共用體類型的定義
7.5.2 共用體類型變量的定義
7.5.3 共用體變量的使用
7.6 枚舉類型
習(xí)題7
第8章 輸入/輸出與文件
8.1 概述
8.1.1 c語言文件的概念
8.1.2 文本文件和二進(jìn)制文件
8.1.3 文件類型指針
8.2 文件打開與關(guān)閉
8.2.1 打開文件
8.2.2 關(guān)閉文件
8.2.3 文件緩沖區(qū)的控制
8.2.4 文件狀態(tài)檢測
8.3 文本文件讀/寫
8.3.1 按字符讀/寫
8.3.2 按字符串讀/寫
8.3.3 格式化讀/寫
8.4 二進(jìn)制文件讀/寫
8.4.1 寫入二進(jìn)制文件
8.4.2 讀出二進(jìn)制文件
8.5 文件定位與隨機(jī)存取
8.5.1 文件定位
8.5.2 隨機(jī)讀/寫
習(xí)題8
第9章 位運算及其應(yīng)用
9.1 概述
9.1.1 位與字節(jié)
9.1.2 位序列的輸出
9.2 位運算符及其使用方法
9.2.1 按位取反運算
9.2.2 按位左移運算
9.2.3 按位右移運算
9.2.4 按位與運算
9.2.5 按位或運算
9.2.6 按位異或運算
9.2.7 復(fù)合位運算符
9.3 位運算應(yīng)用舉例
9.3.1 位運算用于分離ip地址
9.3.2 均勻二分查找
9.3.3 二進(jìn)制gcd算法
9.3.4 在計算機(jī)密碼學(xué)中的應(yīng)用
9.3.5 在數(shù)據(jù)壓縮中的應(yīng)用
習(xí)題9
第10章 算法設(shè)計與分析
10.1 窮舉法
10.1.1 百錢百雞問題
10.1.2 提高窮舉效率
10.1.3 局部窮舉
10.2 分治法
10.2.1 二分法求解方程
10.2.2 快速排序法
10.3 回溯法
10.3.1 遞歸回溯法
10.3.2 非遞歸回溯法
10.4 貪心算法
10.4.1 旅行商問題
10.4.2 刪數(shù)問題
10.5 再論遞歸與遞推算法
10.5.1 遞歸和遞推的效率
10.5.2 遞歸算法非遞歸化
10.6 大整數(shù)相加算法
10.6.1 大整數(shù)相加算法設(shè)計與實現(xiàn)
10.6.2 大fibonacci數(shù)的計算
習(xí)題10
第11章 圖形與圖像編程
11.1 概述
11.1.1 win32 api簡介
11.1.2 windows應(yīng)用程序的數(shù)據(jù)類型
11.2 windows應(yīng)用程序結(jié)構(gòu)
11.2.1 winmain函數(shù)
11.2.2 wndproc窗口函數(shù)
11.3 圖形編程
11.3.1 創(chuàng)建圖形編程空工程
11.3.2 編寫窗口程序
11.3.3 編寫圖形程序
11.3.4 常用圖形函數(shù)介紹
11.3.5 圖形編程實例
11.3.6 圖形動畫
11.4 圖像編程
11.4.1 raw圖像數(shù)據(jù)及其顯示
11.4.2 pgm和ppm圖像顯示和存儲
習(xí)題11
第12章 編譯預(yù)處理與程序調(diào)試
12.1 編譯預(yù)處理概述
12.1.1 預(yù)處理指令
12.1.2 文件包含
12.2 宏定義與宏替換
12.2.1 對象式宏
12.2.2 函數(shù)式宏
12.3 條件編譯
12.3.1 條件指令#if、#else、#elif、#endif的使用
12.3.2 條件指令#ifdef、#ifndef的使用
12.4 調(diào)試語法錯誤
12.4.1 常見語法錯誤與警告的英文解釋
12.4.2 常見語法錯誤
12.5 調(diào)試連接錯誤
12.6 調(diào)試邏輯算法錯誤
12.6.1 調(diào)試方法
12.6.2 常見邏輯錯誤
12.6.3 調(diào)試方法總結(jié)
12.7 運行錯誤
習(xí)題12
附錄a ascii字符代碼
附錄b c語言常用庫函數(shù)
參考文獻(xiàn)
圖書封面
評論、評分、閱讀與下載