C語言作為一種簡潔、高效的語言,目前是絕大多數高校本科生學習程序設計的入門語言。
《C語言程序設計(第2版)/高等學校計算機基礎教育教材精選》所有作者均來自教學第一線,具有多年教學經驗,本書概念清晰,注重實用,運用大量的例題和精選的習題,有助于學生快速掌握C語言程序設計的基本方法。
《C語言程序設計(第2版)/高等學校計算機基礎教育教材精選》共10章,內容包括程序設計概述、基本數據類型、順序結構程序設計、選擇結構程序設計、循環(huán)結構程序設計、函數、數組、指針、結構體、聯(lián)合體和枚舉、文件。
本書可以作為高等學校非計算機專業(yè)學生的教材,也可以作為本科新生或C語言愛好者的自學教材。本書還配有輔助教材《C語言習題及實驗指導》(第2版)。
《C語言程序設計(第2版)/高等學校計算機基礎教育教材精選》主要是面向大學非計算機專業(yè)本科新生而寫,作者全部來自于教學一線,具有多年的C語言程序設計教學實際經歷。
教材內容不拘泥于語法,采用豐富的案例描述C語言的應用,輔以精挑細選的常用考試題型的習題幫助讀者檢驗學習效果。因而特別適合作為大學新生學習C語言程序設計的教材或參考書,也可作為高職計算機專業(yè)的學生學習C語言程序設計的教材或參考書。
第2版前言
C語言程序設計(第2版)本教材第1版自出版以來,已經過3次印刷,盡管在后兩次印刷時對個別內容進行了修訂,但使用中仍發(fā)現有些內容達不到一些專業(yè)的教學要求。第2版主要進行了如下的修訂:
。1) 增加了3.5節(jié)“位運算符”。
(2) 增加了9.6節(jié)“聯(lián)合體”和9.7節(jié)“枚舉類型”。
教學大綱中沒有以上內容的專業(yè)在教學中可跳過以上內容。
(3) 對各章后的習題進行了補充。
目前與本教材配套的網絡教學平臺——北京信息科技大學計算中心網絡教學平臺(http://cms.bistu.edu.cn)已經開通,選擇本教材進行C語言程序設計教學的各學校主講教師可以享受在本平臺免費開課及資源共享,有意開課的老師請給作者發(fā)送郵件申請具體開課事宜。作者郵箱:wenjie_li@126.com或者wenjie_li@bistu.edu.cn。
由于作者水平和精力所限,本次修訂后仍可能有錯誤。如果發(fā)現錯誤,請給作者的郵箱發(fā)信,在此對大家的支持表示衷心感謝!
作者
2014年3月30日
第1版前言
C語言程序設計(第2版)大家對計算機都不陌生,但是會用計算機的人是否都懂得計算機是如何完成我們交給它的任務的,相信會有很多人不明白。這也是目前各高校無論對于計算機專業(yè)還是非計算機專業(yè),甚至文科專業(yè),都要開設程序設計這類課程的原因之一。C語言作為一種簡潔高效并且支持結構化編程的程序設計語言,在講究效率的時代,對于幫助學習者掌握程序設計的基本思想和方法,進而更好地理解計算機的工作,會有極大的幫助。
本書雖然像傳統(tǒng)的教材那樣,按照知識學習的規(guī)律,順序介紹C語言的語法和用C語言解決實際問題的方法,但并不是一本C語言的語法書。本書完全是從應用的角度出發(fā),對C語言的語法進行展開的,所以不要把本書作為語法大全。
本書的讀者對象是大學本科新生,尤其是非計算機專業(yè)的同學,他們希望通過學習C語言程序設計來理解計算機的工作,盡管他們可能今后并不會成為程序員,但他們希望知道計算機能做什么以及如何做,以便當他們在今后的工作中,需要向程序員提出他們的軟件需求時,能夠很好地與軟件開發(fā)人員進行溝通,這是非計算機專業(yè)本科生必備的能力。
程序設計是一項工作,程序就是這項工作的產品。如果我們要制造產品,必須有好的原材料,這些原材料對于程序來說就是程序設計語言的語法知識,以及各種問題的解決方法和步驟。所以本書在介紹C語言語法的同時,介紹了各種常見問題的解決方法和思路(算法),讀者通過這些內容的積累,等到創(chuàng)造自己的作品(程序)時就會得心應手。所以讀者一定要盡可能多地積累算法,真正做到熟能生巧。
本書第1章和第8章由李文杰編寫,第2章和第9章由徐英慧編寫,第3章由賈艷萍編寫,第4章由張良編寫,第5章由崇美英編寫,第6章由黃宏博編寫,第7章由李穎編寫,第10章由方煒煒編寫。全書由李文杰負責統(tǒng)稿,北京信息科技大學計算中心主任周長勝副教授主審。在書稿規(guī)劃和撰寫的各個階段,劉梅彥和劉亞輝老師多次提出了建設性的意見,清華大學出版社的白立軍編輯自始至終都毫無怨言地為作者提供各種方便,使本書得以及時出版。
本書的所有例程都是在Visual C++ 6.0集成開發(fā)環(huán)境調試的,所給出的程序運行情況也是在Windows XP+Visual C++ 6.0環(huán)境下得到的。本書配套的教學資源包括多媒體教學課件和所有范例程序的源代碼,可以從清華大學出版社網站獲取。因作者水平所限,書中難免會出現某些錯誤。歡迎讀者就書中內容與作者進行交流。
作者
2010年5月于北京信息科技大學計算中心
第1章 程序設計概述
1.1 程序和程序設計
1.1.1 程序的概念
1.1.2 程序設計
1.1.3 程序設計語言
1.2 C語言概述
1.2.1 C語言簡介
1.2.2 C語言程序示例
1.2.3 為何要學C語言
1.3 算法及其描述
1.3.1 算法的概念
1.3.2 算法的特性
1.3.3 算法的描述
1.3.4 結構化程序設計
1.4 C語言程序開發(fā)過程
1.4.1 使用計算機解題的過程
1.4.2 常用的C語言開發(fā)環(huán)境
習題1
第2章 基本數據類型
2.1 數據類型概述
2.2 標識符、常量和變量
2.2.1 標識符
2.2.2 常量
2.2.3 變量
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.6 數據的輸入與輸出
2.6.1 字符數據的輸入和輸出
2.6.2 格式化輸入輸出
習題2
第3章 順序結構程序設計
3.1 算術運算和算術表達式
3.1.1 整數算術運算
3.1.2 實數算術運算
3.1.3 混合算術運算
3.1.4 算術表達式
3.1.5 算術表達式的計算規(guī)則
3.2 賦值運算和賦值表達式
3.2.1 賦值運算符
3.2.2 賦值表達式
3.3 自增自減運算
3.4 優(yōu)先級和類型轉換
3.4.1 優(yōu)先級
3.4.2 類型轉換
3.5 位運算符
3.5.1 “按位與”運算符&
3.5.2 “按位或”運算符|
3.5.3 “按位異或”運算符^
3.5.4 “按位取反”運算符
3.5.5 “按位左移”運算符<<
3.5.6 “按位右移”運算符>>
3.5.7 位運算賦值運算符
……
第4章 選擇結構程序設計
第5章 循環(huán)結構程序設計
第6章 模塊化程序設計——函數
第7章 數組
第8章 指針
第9章 結構體、聯(lián)合體和枚舉
第10章 文件