開本:16開 紙張:膠版紙 包裝:平裝-膠訂 是否套裝:否 國際標準書號ISBN:9787302567561 叢書名:21世紀高等學校計算機類專業核心課程繫列教材 作者:楊進纔,瀋顯君 出版社:清華大學出版社 出版時間:2022年01月 
"編輯推薦 本書適合高等院校信息類專業的學生使用,也可作為C 培訓教材、理工科學生的公共課教材以及全國計算機等級考試教材。與本書配套的《C 語言程序設計教程(第4版)習題解答與實驗指導》由清華大學出版社出版,提供了Visual C 、CodeBlocks、Linux C 上機實驗指導。 內容簡介 C 語言是目前***的程序設計語言之一,它既支持面向過程的結構化程序設計,也支持基於對像的面向對像程序設計。本書依據ANSI C 標準,從面向過程的編程到面向對像的編程方法展開,形成一條自然流暢的主線,同時兩個部分又自成體繫,以滿足不同基礎與需求的學習者。 作者簡介 瀋顯君,博士,華中師範大學計算機學院教授,碩士生導師。2000年畢業於華中師範大學計算機科學繫,獲計算機應用技術工學碩士學位,同年畢業留校任教。2004年~2007年在武漢大學軟件工程國家重點實驗室攻讀博士學位,獲計算機軟件與理論工學博士學位。發表論文40多篇,其中被SCI/EI檢索30餘篇。 目錄 1章面向對像程序設計與C 1.1面向對像程序設計 1.1.1面向對像的基本概念 1.1.2面向對像的基本特征 1.1.3面向對像的程序設計 1.1.4面向對像的軟件開發 1.2C 語言程序設計
1章面向對像程序設計與C
1.1面向對像程序設計
1.1.1面向對像的基本概念
1.1.2面向對像的基本特征
1.1.3面向對像的程序設計
1.1.4面向對像的軟件開發
1.2C 語言程序設計
1.2.1C 語言的產生
1.2.2C 語言的特點
1.2.3C 語言的發展
1.2.4C 語言的應用
1.3C 程序開發過程
1.4C 程序實例
1.4.1簡單的C 程序
1.4.2使用名字空間
1.4.3輸入/輸出簡介
本章小結
習題1
2章C 語言基礎
2.1C 數據類型
2.1.1C 字符集
2.1.2C 基本數據類型
2.1.3數值
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.1判斷
2.4.2循環
2.4.3轉移
2.5函數
2.5.1函數的定義
2.5.2函數原型的聲明
2.5.3函數的調用
2.5.4內聯函數
2.5.5函數的重載
2.5.6常用的C 繫統函數
本章小結
習題2
3章構造數據類型
3.1枚舉類型
3.1.1枚舉類型的定義
3.1.2枚舉類型的使用
3.2數組
3.2.1一維數組的定義與使用
3.2.2二維數組的定義與使用
3.2.3多維數組
3.2.4數組與函數
3.2.5字符數組與字符串
3.3指針
3.3.1指針的定義與使用
3.3.2指針與字符串
3.3.3指針與數組
3.3.4多重指針
3.3.5動態內存分配
3.3.6指針與函數
3.3.7指針常量與常量指針
3.4引用
3.4.1引用的定義
3.4.2引用與函數
3.4.3常引用
3.5結構與聯合
3.5.1結構
3.5.2聯合
本章小結
習題3
4章C 程序的結構
4.1變量的類型
4.1.1全局變量與局部變量
4.1.2變量的存儲類型
4.1.3變量在內存中的存儲
4.2標識符的作用域與可見性
4.2.1函數原型作用域
4.2.2塊作用域
4.2.3文件作用域
4.2.4可見性
4.3程序的文件結構與編譯預處理命令
4.3.1文件包含命令#include
4.3.2不帶參數的宏定義
4.3.3帶參數的宏定義
4.3.4條件編譯
4.4名字空間
本章小結
習題4
5章類與對像
5.1類與對像的概念
5.1.1從面向過程到面向對像
5.1.2類的定義
5.1.3對像的建立與使用
5.1.4成員的存取控制
5.2構造函數與析構函數
5.2.1構造函數
5.2.2析構函數
5.2.3拷貝構造函數
5.2.4淺拷貝與深拷貝
5.3對像的使用
5.3.1對像指針
5.3.2對像引用
5.3.3對像數組
5.3.4動態對像
5.3.5this指針
5.3.6組合對像
5.4靜態成員
5.4.1靜態數據成員
5.4.2靜態成員函數
5
5.5函數
5.5類
5.6常成員與常對像
5.6.1函數實參的保護
5.6.2常對像
5.6.3常數據成員
5.6.4常成員函數
5.7對像的內存分布
5.7.1對像的內存空間的分配
5.7.2對像的內存空間的釋放
本章小結
習題5
6章繼承與派生
6.1繼承與派生的概念
6.1.1繼承的概念
6.1.2派生類的實現
6.1.3繼承與組合
6.2繼承的方式
6.2.1公有繼承
6.2.2私有繼承
6.2.3保護繼承
6.3派生類的構造與析構
6.3.1派生類構造函數的定義
6.3.2單繼承的構造與析構
6.4類型兼容
6.5多繼承
6.5.1多繼承的構造與析構
6.5.2二義性問題
6.6虛基類
6.6.1虛基類的定義
6.6.2虛基類的構造與析構
本章小結
習題6
7章多態性
7.1多態性概述
7.2運算符重載
7.2.1運算符重載機制
7.2.2運算符重載規則
7.2.3重載為函數
7.2.4重載為類的成員函數
7.2.5典型運算符重載
7.3虛函數
7.3.1靜態聯編與動態聯編
7.3.2虛函數的定義與使用
7.3.3虛析構函數
7.4抽像類
7.4.1純虛函數
7.4.2抽像類與具體類
7.4.3對像指針數組
本章小結
習題7
8章模板
8.1模板簡介
8.2函數模板
8.3類模板
8.3.1類模板的定義
8.3.2類模板的實例化
8.3.3默認模板參數
8.4模板編程
8.4.1棧類模板
8.4.2鏈表類模板
本章小結
習題8
9章STL編程
9.1STL編程思想
9.2STL容器
9.2.1順序容器
9.2.2關聯容器
9.3STL算法
9.4STL函數對像
本章小結
習題9
10章輸入/輸出流與文件繫統
10.1輸入/輸出流的概念
10.2輸出流
10.3流的格式控制
10.3.1格式控制標志
10.3.2格式縱符
10.3.3格式控制成員函數
10.4輸入流
10.5數據流的錯誤偵測
前言 一、 再版背景 自2006年本書的第1版出版發行以來,經過了2010年第2版、2015年第3版兩次改版。每次改版,都采納了廣大師生在教學與學習中反饋的建議,努力使教材趨於完善。由此,得到了廣大讀者的肯定,取得了驕人的銷量。 時光飛逝,轉眼間進入了21世紀20年代,在這十五年的時間內,遵從計算機科學與技術發展的規律與特點,程序設計語言也發生了巨大的變化,例如Python語言在TIOBE世界編程語言排行榜中,從2006年的第七、八名的位置,前進到現在的第三位。在這十幾年中,C 一直處於前四位的位置,這表明C 在程序設計語言中的地位難以撼動。然而,C 語言本身的標準在不斷地更新,從C 98、C 03到現在的C 20。C 編譯器也在隨語言標準的更新而更新,並不斷有新的編程工具產生。 進入中國出版網(www.chinapub.com),以C 為關鍵字搜索書名,竟然可以搜索出2000多種圖書; 從清華大學出版社網站(www.tup.tsinghua.edu.cn)也能搜索出700種以上的C 書籍。這一方面說明C 作為一種程序設計語言,以它“是一種更好的C語言”與“支持面向對像”的特點,深受廣大編程者的喜愛; 另一方面說明沒有哪一種或少數幾種C 書籍能夠滿足所有學習者的需要。一、 再版背景 自2006年本書的第1版出版發行以來,經過了2010年第2版、2015年第3版兩次改版。每次改版,都采納了廣大師生在教學與學習中反饋的建議,努力使教材趨於完善。由此,得到了廣大讀者的肯定,取得了驕人的銷量。 時光飛逝,轉眼間進入了21世紀20年代,在這十五年的時間內,遵從計算機科學與技術發展的規律與特點,程序設計語言也發生了巨大的變化,例如Python語言在TIOBE世界編程語言排行榜中,從2006年的第七、八名的位置,前進到現在的第三位。在這十幾年中,C 一直處於前四位的位置,這表明C 在程序設計語言中的地位難以撼動。然而,C 語言本身的標準在不斷地更新,從C 98、C 03到現在的C 20。C 編譯器也在隨語言標準的更新而更新,並不斷有新的編程工具產生。 進入中國出版網(www.chinapub.com),以C 為關鍵字搜索書名,竟然可以搜索出2000多種圖書; 從清華大學出版社網站(www.tup.tsinghua.edu.cn)也能搜索出700種以上的C 書籍。這一方面說明C 作為一種程序設計語言,以它“是一種更好的C語言”與“支持面向對像”的特點,深受廣大編程者的喜愛; 另一方面說明沒有哪一種或少數幾種C 書籍能夠滿足所有學習者的需要。 C 書籍從使用方面可分為兩大類: 使用手冊類與教材類。使用手冊類以介紹具體的編譯器的使用與編程為內容,如Visual C Windows編程、Borland C Builder 編程等,供學習與使用具體編譯器的編程者使用。教材則供課堂教學或初學者使用。目前國內各種C 教材可以分為兩大類: 翻譯教材與自編教材。翻譯教材的原教材一般有很好的背景,有的是國外名牌大學的教材,有的是國外名家撰寫的暢銷教材。這些教材從內容上引入了C 語言的標準,在知識點的敘述上準確深入,各書的舉例有自己的特色。但它們的一個共同的突出問題就是篇幅太長,不適合學生在有限的課堂教學學時的情況下學習。有的書翻譯不通順甚至個別地方有翻譯錯誤,還會給讀者帶來額外的理解困難。 國內的教材一般以國外的翻譯教材為母本,有內容緊湊、語言通順的優點。但許多國內教材是國外教材的簡單拼湊,連例子也從國外教材照搬,很少有自己的深入理解和創造。這些教材突出的缺點是對C 語言規則沒有進行深入的分析,對示例程序缺乏相應的解釋,學生學習時不容易從實質上掌握語言。很多作者自己很少或根本沒有使用C 進行編程開發,對在編程中經常使用的方法以及易犯的錯誤沒有突出講解。相反,對不常用的方法與隻有在考題中出現的錯誤反復講述,學生學完後感覺很好,可一旦動手編程,有時竟連一個學生成績管理和單向鏈表的應用程序都寫得錯誤百出。 編寫本書的初衷是吸收國內外教材兩方面的優點,彌補其不足。本次的改版吸收了前版使用者反饋的意見,結合自身的教學實踐,融入C 語素,使新版教材更趨完善。 二、 新版的特色 新版的特色體現在以下三個方面。 1. 合理的體繫結構 C 不是一個純粹的面向對像的編程語言,使用者不是一定要使用其面向對像的特性。因此,全書總體結構分為兩大部分: 面向過程的程序設計和面向對像的程序設計,兩部分內容相對獨立。第1~4章完整介紹結構化的面向過程的程序設計,讀者學完1~4章再加上第10章的部分內容後,完全可以編寫各種功能的程序。 各章的組織結構以引言開頭,導出一章的內容,然後指出學習目標; 進入一章主體時先介紹概念、語法,然後舉例,對常犯的錯誤進行強調指出; 一章的內容講述完成後,用精練的語言總結一章的知識要點; 在習題部分提供了多種題型的習題,除供學生課堂練習以及課後鞏固所學知識外,也為教師出考題提供素材,為學生備考提供模擬題目。 2. 強調內存的概念 學習C ,不僅在於學習語言本身的語法規則,更在於掌握計算機如何工作,程序在計算機中如何運行等知識,特別要了解C 語言程序如何通過編譯後調入內存、在內存中如何分配各種數據、程序在運行時如何對內存進行控制等內容。本書從常量和變量在內存中的存放、變量的賦值、函數的調用以及參數的傳遞、指針與數組的內存映像,到對像在內存中的存放,始終貫穿著內存的概念。 3. 重視基本概念 C 中的語法規則基於基本概念,對基本概念的理解有助於把握知識點的本質,進行靈活運用、避免錯誤。本書對基本概念的敘述力求準確,講解簡明,深入淺出。除了在章節的開頭對概念進行敘述外,在每章小結中對概念進行了強調。全書的程序舉例盡量采用現實世界有意義的問題,有助於讀者對概念的理解、記憶、運用。在全書中繪制了大量的圖表,對知識點進行了直觀描述。 4. 配套資源豐富 為便於教學,本書提供豐富的配套資源,包括教學大綱、教學課件、電子教案、程序源碼、在線作業和教學進度表。
資源下載提示 課件等資源: 掃描封底的“課件下載”二維碼,在公眾號“書圈”下載。 素材(源碼)等資源: 掃描目錄上方的二維碼下載。 在線作業: 掃描封底作業繫統二維碼,登錄網站在線做題及查看答案。
三、 教學安排 本書可以供不同基礎與需求的學習者使用,參考學時如表1所示。
表1參考學時表
各章內容無C語言基礎, 面向過程編程/學時無C語言基礎, 全面學習/學時有C語言基礎/學時
第1章面向對像程序設計與C 222 第2章C 語言基礎26242 第3章構造數據類型16164 第4章C 程序的結構441 第5章類與對像〖3〗1210 第6章繼承與派生〖3〗1210 第7章多態性〖3〗1010 第8章模板〖3〗22 第9章STL編程〖3〗44 第10章輸入/輸出流與文件繫統664 第11章string類字符串處理〖3〗22 第12章異常處理〖3〗22 第13章C 語言新標準簡介〖3〗22 總學時549854
四、 第4版所做的改進 新版在以下幾個方面進行了改進。 1. 內容的調整 在新版中,調整了面向過程程序設計部分的內容,在保證這部分的語法知識完整的前提下,對語法講解、舉例、習題進行了精簡; 對全書涉及文本界面的輸入輸出內容進行了精簡; 刪除了第3版中的第13章“綜合應用實例”。 2. 對C 語言新標準的介紹 C 是具有國際標準的編程語言,自從1998年C 標準委員會成立,頒布了個C 語言的國際標準ISO/IEC 1488-1998後,每5年視實際需要更新一次標準。C 的編譯器幾乎與新標準同步,以對新標準提供支持。在新版中,增加了一章對C 2011標準的介紹,對該標準中常用素進行了講解。在實驗指導部分,更新了對支持新標準的編譯器的使用介紹。 五、 致謝 本版書由楊進纔教授負責改版,主要編寫了第3~5、10~13章,瀋顯君教授主要編寫了第1、6~9章,張勇副教授參加編寫了第2~5章。全書楊進纔教授統稿,瀋顯君教授審核。 特別感謝在第1版的編寫中提供了寶貴支持的劉蓉副教授。感謝王敬華副教授、魏開平副教授,他們對全書的風格、內容提供了無私的指導,對格式的編排等細節方面也提出了寶貴的意見。感謝徐函秋、徐歡、溫柳英、李芳等同學在第1版的編寫和教學實踐中提供了許多改進的意見。多年來,各位專家、同行和廣大讀者在使用前三版的過程中提出了諸多有益建議,在此一並表示感謝。由於作者水平有限,書中難免存在錯誤、疏漏、不妥之處,懇請提出批評和修改意見,我們將不勝感激。
編者2021年8月於武昌南湖
|