出版時間:2011-11 出版社:清華大學出版社 作者:孫燮華 編著
前言
C語言的編譯環(huán)境已從傳統(tǒng)的Turbo C 2.0變?yōu)閂isual C++ 6.0。由于Turbo C 2.0中進行圖形編程的Graphics.h與Visual C++ 6.0不相容,這一改變使大部分C語言教材沒有圖形編程一章,即使有C語言圖形編程內容的教材,其編程環(huán)境仍然回到Turbo C 2.0中。這表明C語言編譯環(huán)境不完全適應圖形編程。另一方面,計算機的可視化,即圖形化是當前的主流,Windows窗體化已經(jīng)在計算機領域取得了統(tǒng)治地位。由于這些原因,作者在本書中引入了屬于Windows編程的API,稍微向Windows跨出一步。對于不熟悉Windows編程的讀者,只要輸入本書的Windows.c程序,引用這個文件后,即可如通常編寫C程序一樣編寫C圖形圖像程序了?! ∨c目前出版的所有C語言教材相比,本書獨具的三大特色是: ?。?) 適應在Visual C++ 6.0環(huán)境中進行圖形圖像編程。本書引入了一個屬于Windows編程的Windows.c程序,只要將這個程序輸入或略作修改,就可以用通常的方法進行圖形圖像編程?! 。?) 除專設第10章算法設計與分析外,有關算法和編程的內容貫穿全書,并結合高等數(shù)學的方法進行分析,以培養(yǎng)學生應用數(shù)學方法設計算法和編程的能力?! 。?) 為擴大讀者的知識面和提高學習C語言的興趣,也為后續(xù)學習課程,如計算機圖形學、圖像處理、密碼學、通信編碼和游戲動畫等作基礎準備,本書提供了動態(tài)Bezier曲線、顯示PGM圖像、序列加/解密、通信GCD算法和動畫小球碰撞等應用的實例。 本書在成書過程中得到了周永霞博士、姚伏天博士和吳永剛等老師的幫助,特此表示感謝。對本書引用的參考書的作者們表示感謝?! ”緯赏醯铝指苯淌谧珜懙?~8章,由孫燮華撰寫第9~12章,全書由孫燮華定稿。由于作者的能力和水平有限,雖然經(jīng)過了極大的努力,書中仍然難免還有一些錯誤,希望讀者和同行專家批評指正?! ∽髡摺 ?011年5月
內容概要
本書除了介紹c語言基礎、基本數(shù)據(jù)類型、各種運算符與表達式、控制結構與語句、數(shù)組、函數(shù)、指針、結構體、文件等基本內容外,加強了算法的設計和編程能力的培養(yǎng),還特別介紹c圖形程序在visual
c++
6.0環(huán)境中的編譯和運行。本書注意培養(yǎng)學生的編程和創(chuàng)新能力,尤其注重可視化的圖形編程和算法設計能力的培養(yǎng),為后續(xù)學習面向對象編程和圖形學與圖像處理等課程作基礎準備。為提高讀者對學習c語言的興趣,本書還提供了c語言應用于圖形圖像處理、計算機密碼學、通信、數(shù)據(jù)壓縮、智能算法和動畫等領域的應用實例。
本書可作為高等學校理工科各專業(yè)c語言程序設計教材,也可作為計算機等級考試教學和自學用書。
書籍目錄
第1章 概論
1.1 c語言的發(fā)展與特點
1.1.1 c語言發(fā)展簡史
1.1.2 c語言的特點
1.2 第一個c程序
1.2.1 第一個c程序及其編譯與運行
1.2.2 關于c程序的編寫
1.2.3 c程序的結構
1.3 本書提供的c語言應用實例介紹
1.3.1 概述
1.3.2 本書部分應用舉例
習題
第2章 c語言基礎
2.1 字符集、標識符與關鍵詞
2.1.1 字符集
2.1.2 標識符
2.1.3 關鍵詞
2.2 數(shù)據(jù)類型
2.2.1 基本數(shù)據(jù)類型
2.2.2 其他數(shù)據(jù)類型
2.3 常量與變量
2.3.1 常量
2.3.2 變量
2.4 運算符與表達式
2.4.1 賦值運算符與表達式
2.4.2 算術運算符與表達式
2.4.3 關系運算符與表達式
2.4.4 邏輯運算符與表達式
4.5 逗號運算符與表達式
2.4.6 復合運算與表達式
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ù)
習題
第3章 程序控制流與程序算法設計
3.1 順序結構
3.1.1 順序結構的基本語句
3.1.2 順序結構應用舉例
3.2 選擇結構
3.2.1 if語句
3.2.2 條件表達式
3.2.3 switch語句
3.3 循環(huán)結構
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 程序設計方法
3.5.1 程序設計的一般步驟
3.5.2 結構化程序設計方法
習題
第4章 函數(shù)
4.1 函數(shù)聲明與定義
4.1.1 概述
4.1.2 函數(shù)聲明
4.1.3 函數(shù)定義
4.2 函數(shù)調用
4.2.1 傳值調用的特點
4.2.2 函數(shù)調用方式
4.2.3 函數(shù)嵌套調用
4.2.4 函數(shù)遞歸和遞推調用
4.3 函數(shù)與變量
4.3.1 全局變量和局部變量
4.3.2 變量的生命期與存儲類別
習題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ù)
習題5
第6章 指針與動態(tài)內存分配
6.1 指針基礎
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)內存分配
6.6.1 用malloc()分配內存空間
6.6.2 動態(tài)數(shù)組的實現(xiàn)
習題6
第7章 結構體、共用體和枚舉類型
7.1 結構體類型
7.1.1 結構體類型及其變量的定義
7.1.2 結構體變量的使用
7.1.3 結構體變量的初始化
7.2 結構體數(shù)組
7.2.1 結構體數(shù)組的定義
7.2.2 結構體數(shù)組的初始化
7.3 結構體指針變量
7.3.1 指向結構體的指針
7.3.2 指向結構體數(shù)組的指針
7.3.3 結構體變量和結構體指針變量作函數(shù)參數(shù)
7.4 鏈表
7.4.1 鏈表概述
7.4.2 鏈表的基本操作
7.5 共用體
7.5.1 共用體類型的定義
7.5.2 共用體類型變量的定義
7.5.3 共用體變量的使用
7.6 枚舉類型
習題7
第8章 輸入/輸出與文件
8.1 概述
8.1.1 c語言文件的概念
8.1.2 文本文件和二進制文件
8.1.3 文件類型指針
8.2 文件打開與關閉
8.2.1 打開文件
8.2.2 關閉文件
8.2.3 文件緩沖區(qū)的控制
8.2.4 文件狀態(tài)檢測
8.3 文本文件讀/寫
8.3.1 按字符讀/寫
8.3.2 按字符串讀/寫
8.3.3 格式化讀/寫
8.4 二進制文件讀/寫
8.4.1 寫入二進制文件
8.4.2 讀出二進制文件
8.5 文件定位與隨機存取
8.5.1 文件定位
8.5.2 隨機讀/寫
習題8
第9章 位運算及其應用
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 復合位運算符
9.3 位運算應用舉例
9.3.1 位運算用于分離ip地址
9.3.2 均勻二分查找
9.3.3 二進制gcd算法
9.3.4 在計算機密碼學中的應用
9.3.5 在數(shù)據(jù)壓縮中的應用
習題9
第10章 算法設計與分析
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ù)相加算法設計與實現(xiàn)
10.6.2 大fibonacci數(shù)的計算
習題10
第11章 圖形與圖像編程
11.1 概述
11.1.1 win32 api簡介
11.1.2 windows應用程序的數(shù)據(jù)類型
11.2 windows應用程序結構
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圖像顯示和存儲
習題11
第12章 編譯預處理與程序調試
12.1 編譯預處理概述
12.1.1 預處理指令
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 調試語法錯誤
12.4.1 常見語法錯誤與警告的英文解釋
12.4.2 常見語法錯誤
12.5 調試連接錯誤
12.6 調試邏輯算法錯誤
12.6.1 調試方法
12.6.2 常見邏輯錯誤
12.6.3 調試方法總結
12.7 運行錯誤
習題12
附錄a ascii字符代碼
附錄b c語言常用庫函數(shù)
參考文獻
圖書封面
評論、評分、閱讀與下載