本書是引領初學者由淺入深、循序漸進學習高級語言程序設計的教材。全書介紹了C語言中的基本數(shù)據(jù)類型、程序的控制結構、模塊化程序設計、數(shù)組、指針、自定義數(shù)據(jù)類型、文件等知識,并提供了一個完整的綜合應用實例。本書緊緊圍繞新工科人才培養(yǎng)的目標,重點講解了C程序設計的思想與方法,并結合豐富的案例,逐步培養(yǎng)初學者的算法意識、模塊化的程序設計思想、自主學習能力,以及綜合運用所學知識分析問題、解決問題的能力。本節(jié)配有多媒體課件、例題源代碼、部分習題源代碼、慕課平臺等立體化教學資源。本書既可作為高等院校和計算機等級考試的教學用書,也可作為對高級語言程序設計感興趣的讀者的自學讀物。
趙少卡,副教授,畢業(yè)于武漢大學軟件工程專業(yè),清華大學訪問學者,中國計算機學會專業(yè)會員,入選“龍江學者”青年英才獎勵計劃。曾獲得福建省“五一勞動獎章”、省首批“金牌工人”稱號,并獲高校青年教師教學競賽國家級三等獎1項、省級特等獎1項、二等獎1項等,出版教材多部。
第1章 程序設計ABC
1.1 歷史沿革:程序語言的發(fā)展階段
1.2 回望過去:C語言的發(fā)展史
1.3 小試身手:幾個簡單的C程序
1.4 平臺出場:C語言的編程環(huán)境
1.5 本章小結
1.6 本章習題
第2章 基本數(shù)據(jù)類型
2.1 一探究竟:數(shù)據(jù)的機內表示
2.1.1 數(shù)值數(shù)據(jù)的表示
2.1.2 西文字符的編碼
2.2 異彩紛呈:數(shù)據(jù)的表現(xiàn)形式
2.2.1 常量和變量
2.2.2 整型數(shù)據(jù)
2.2.3 浮點型數(shù)據(jù)
2.2.4 字符型數(shù)據(jù)
2.3 運算出場:最基本的運算符和表達式
2.3.1 算術運算符和算術表達式
2.3.2 賦值運算符和賦值表達式
2.3.3 逗號運算符與逗號表達式
2.4 有始有終:數(shù)據(jù)的控制臺輸入與輸出
2.4.1 格式化輸出函數(shù)
2.4.2 格式化輸入函數(shù)
2.4.3 字符輸入與輸出函數(shù)
2.5 本章小結
2.6 本章常見的編程錯誤
2.7 本章習題
第3章 程序的控制結構
3.1 程序靈魂:算法
3.1.1 算法的特性
3.1.2 算法的表示
3.2 流水作業(yè):順序結構
3.3 擇優(yōu)錄取:選擇結構
3.3.1 關系運算符和關系表達式
3.3.2 邏輯運算符和邏輯表達式
3.3.3 條件語句(if語句)
3.3.4 開關語句(switch語句)
3.3.5 程序設計舉例
3.4 周而復始:循環(huán)結構
3.4.1 while循環(huán)
3.4.2 do-while循環(huán)
3.4.3 for循環(huán)
3.4.4 循環(huán)的嵌套
3.4.5 循環(huán)的跳轉
3.4.6 知識拓展:窮舉與迭代
3.5 本章小結
3.6 本章常見的編程錯誤
3.7 本章習題
第4章 模塊化程序設計
4.1 功能封裝:函數(shù)
4.1.1 函數(shù)的含義
4.1.2 函數(shù)的定義和調用
4.1.3 函數(shù)的功能
4.1.4 函數(shù)原型
4.1.5 棧內存的分配和使用
4.1.6 函數(shù)的嵌套調用
4.1.7 函數(shù)的遞歸調用
4.1.8 程序舉例
4.2 捉摸不定:變量的性質
4.2.1 變量的作用域
4.2.2 變量的生命期
4.2.3 外部函數(shù)和內部函數(shù)
4.3 磨刀不誤:編譯預處理
4.3.1 宏定義和宏替換
4.3.2 文件包含
4.3.3 條件編譯
4.4 本章小結
4.5 本章常見的編程錯誤
4.6 本章習題
第5章 數(shù)組
5.1 批量處理:一維數(shù)組的定義和使用
5.1.1 一維數(shù)組的定義方式
5.1.2 一維數(shù)組的初始化
5.1.3 一維數(shù)組元素的引用
5.1.4 一維數(shù)組程序舉例
5.2 完美矩形:二維數(shù)組的定義和使用
5.2.1 二維數(shù)組的定義
5.2.2 二維數(shù)組的初始化
5.2.3 二維數(shù)組元素的引用
5.2.4 二維數(shù)組程序舉例
5.3 戴帽成串:字符數(shù)組和字符串
5.3.1 字符數(shù)組與字符串的關系
5.3.2 字符數(shù)組的定義
5.3.3 字符數(shù)組的初始化
5.3.4 字符數(shù)組的引用
5.3.5 字符數(shù)組的輸入/輸出
5.3.6 字符串處理函數(shù)
5.3.7 字符串的輸入/輸出
5.3.8 程序舉例
5.4 思維訓練:幾種重要的算法
5.4.1 排序算法
5.4.2 查找算法
5.5 知識拓展:向函數(shù)傳遞數(shù)組
5.6 本章小結
5.7 本章常見的編程錯誤
5.8 本章習題
第6章 指針
6.1 尋覓芳蹤:初識指針
6.1.1 內存地址和指針
6.1.2 指針變量的定義、初始化與引用
6.1.3 指針變量的移動和比較
6.2 強強聯(lián)合:指針和函數(shù)
6.2.1 指針變量作為函數(shù)參數(shù)
6.2.2 返回指針值的函數(shù)
6.2.3 函數(shù)指針
6.3 靈活高效:指針和數(shù)組
6.3.1 指針和一維數(shù)組
6.3.2 函數(shù)參數(shù)的多樣性
6.3.3 指針和字符串
6.3.4 指針和二維數(shù)組
6.3.5 指針數(shù)組
6.3.6 二級指針
6.3.7 內存的動態(tài)分配和動態(tài)數(shù)組的建立
6.4 本章小結
6.5 本章常見的編程錯誤
6.6 本章習題
第7章 自定義數(shù)據(jù)類型
7.1 求同存異:結構體類型
7.1.1 結構體類型的引入
7.1.2 結構體變量的定義、初始化和引用
7.1.3 結構體數(shù)組
7.1.4 結構體與指針
7.1.5 結構體與函數(shù)
7.2 伙伴牽手:鏈表
7.2.1 鏈表的概念
7.2.2 鏈表的基本操作
7.3 你中有我:共用體類型
7.3.1 共用體類型的定義
7.3.2 共用體變量的定義
7.3.3 共用體變量的初始化和引用
7.4 心中有數(shù):枚舉類型
7.5 別名當?shù)溃簍ypedef類型
7.6 本章小結
7.7 本章常見的編程錯誤
7.8 本章習題
第8章 文件
8.1 揭示本質:文件的概念與分類
8.2 暫時歇腳:緩沖文件系統(tǒng)
8.3 有開有關:文件的打開與關閉
8.3.1 文件的打開(fopen()函數(shù))
8.3.2 文件的關閉(fclose()函數(shù))
8.4 有條不紊:文件的順序讀寫
8.4.1 fgetc()函數(shù)和fputc()函數(shù)
8.4.2 fgets()函數(shù)和fputs()函數(shù)
8.4.3 fread()函數(shù)和fwrite()函數(shù)
8.5 隨時來訪:文件的隨機讀寫
8.6 實時診斷:文件的狀態(tài)
8.7 本章小結
8.8 本章常見的編程錯誤
8.9 本章習題
第9章 綜合應用實例——課程表管理系統(tǒng)
9.1 項目背景
9.2 設計目的
9.3 系統(tǒng)分析與功能描述
9.4 總體設計
9.4.1 功能模塊設計
9.4.2 數(shù)據(jù)結構設計
9.4.3 函數(shù)功能描述
9.5 程序實現(xiàn)
9.5.1 源碼分析
9.5.2 運行結果
9.6 本章小結
9.7 本章習題
附錄A ASCII碼表及其中各控制字符的含義
附錄B C語言關鍵字
附錄C C語言運算符的優(yōu)先級與結合性
附錄D 常用的標準庫函數(shù)
附錄E Visual C++ 6.0上機指南
附錄F Visual C++ 6.0常見編譯錯誤
參考文獻