C語言是國內(nèi)外廣泛使用的計算機(jī)高級語言,譚浩強(qiáng)教授所著的《C程序設(shè)計》(清華大學(xué)出版社出版)一書已累計發(fā)行了1600多萬冊,創(chuàng)計算機(jī)書籍國內(nèi)外發(fā)行最高紀(jì)錄,被公認(rèn)為是學(xué)習(xí)C語言程序設(shè)計的經(jīng)典教材。根據(jù)廣大高職高專院校師生的要求,清華大學(xué)出版社特邀請譚浩強(qiáng)教授在其C系列教材的基礎(chǔ)上針對高職高專的特點組織著寫了本書,作為高職高專院校學(xué)習(xí)程序設(shè)計的教材。
本書系統(tǒng)而通俗地介紹了怎樣使用C語言進(jìn)行程序設(shè)計,使學(xué)生學(xué)習(xí)到程序設(shè)計的方法和有關(guān)算法的基本知識、C語言的基本內(nèi)容與使用方法,了解并初步掌握用計算機(jī)解題的全過程。
著者善于用通俗易懂的方法和語言闡明復(fù)雜的概念。本書定位準(zhǔn)確、概念清晰、分析透徹、內(nèi)容充實、取舍合理、例題豐富、通俗易懂。著者采用提出問題解決問題歸納分析的方式,符合初學(xué)者的認(rèn)知規(guī)律,學(xué)習(xí)本書的讀者很容易入門。
本書根據(jù)C99(ISO/IEC 9899:1999)新標(biāo)準(zhǔn)介紹程序設(shè)計,體現(xiàn)教材的先進(jìn)性和規(guī)范性。著者同時著寫了《C語言程序設(shè)計教程學(xué)習(xí)輔導(dǎo)》(ISBN 9787302556176)作為本書的配套用書,由清華大學(xué)出版社出版發(fā)行。另外,本書還有配套的慕課(MOOC)視頻可以幫助學(xué)生學(xué)習(xí)。
本書可作為高職高專院校各專業(yè)學(xué)習(xí)C語言程序設(shè)計的適用教材,還可作為計算機(jī)培訓(xùn)班的教材,同時也是一本不可多得的優(yōu)秀的自學(xué)教材,零基礎(chǔ)的讀者都能看懂本書的內(nèi)容。
本書作者有多年的企業(yè)從業(yè)實際工作經(jīng)驗,教材定位準(zhǔn),內(nèi)容實用,有大量的實用案例,適合學(xué)生和從業(yè)者學(xué)習(xí)。編輯QQ 1102528884
本書是專為高職高專學(xué)生編寫的,介紹怎樣使用C語言進(jìn)行程序設(shè)計的教材。
近十多年,我國職業(yè)教育從層次走向類型,從政府主體走向多元參與,從規(guī)模擴(kuò)張走向內(nèi)涵發(fā)展,建成了全世界規(guī)模最大的職業(yè)教育體系。
優(yōu)化類型定位,努力培養(yǎng)高素質(zhì)、高水平的應(yīng)用型人才,是國家和社會的迫切需要。教材建設(shè)也應(yīng)當(dāng)服務(wù)于這個目標(biāo)。
程序設(shè)計是計算機(jī)工作者的一項基本功。C語言是在國內(nèi)外被廣泛學(xué)習(xí)和使用的一種計算機(jī)語言,受到廣大計算機(jī)愛好者的喜愛。我國幾乎所有的理工科大學(xué)都開設(shè)了C語言程序設(shè)計課程。
為了使C語言程序設(shè)計課程教學(xué)取得更好的效果,需要弄清楚以下幾個問題。
一、 為什么要學(xué)習(xí)程序設(shè)計
計算機(jī)的本質(zhì)是程序的機(jī)器,程序和指令的思想是計算機(jī)系統(tǒng)中最基本的概念。只有懂得程序設(shè)計,懂得計算機(jī)是怎樣工作的,才能較深入地理解和應(yīng)用計算機(jī),才能較好地懂得怎樣使計算機(jī)按照人們的意圖進(jìn)行工作。學(xué)習(xí)程序設(shè)計,能學(xué)習(xí)到計算機(jī)處理問題的方法,培養(yǎng)計算思維,培養(yǎng)分析問題和解決問題的能力。
通過學(xué)習(xí)程序設(shè)計,使學(xué)生具有程序設(shè)計的初步知識,具有編寫程序的初步能力,知道軟件開發(fā)的過程和特點,有利于在各專業(yè)領(lǐng)域的工作者在今后工作中,能夠與程序開發(fā)人員溝通合作進(jìn)行應(yīng)用軟件的開發(fā)工作。因此,高職高專學(xué)生學(xué)習(xí)程序設(shè)計是很有好處的。
具體地說,學(xué)習(xí)程序設(shè)計的目的有兩個方面: ①學(xué)習(xí)用計算機(jī)解決問題的思路和方法; ②學(xué)習(xí)怎樣用計算機(jī)工具去實現(xiàn)算法,即利用計算機(jī)去完成任務(wù)。
二、 C語言是基礎(chǔ)而實用的語言
進(jìn)行程序設(shè)計,必須用計算機(jī)語言作為工具,否則只是紙上談兵?晒┻x擇計算機(jī)的語言有很多種且各有特點。C語言既是程序設(shè)計的基礎(chǔ),又非常實用。并不是每一種計算機(jī)語言都具有此特點,有的計算機(jī)語言實用,但不能作為基礎(chǔ)語言(如FORTRAN);有的計算機(jī)語言可以作為基礎(chǔ)語言,但實際應(yīng)用不多(如Pascal)。C語言功能豐富、表達(dá)能力強(qiáng)、使用靈活方便、應(yīng)用面廣、目標(biāo)程序效率高、可移植性好,既具有高級語言的優(yōu)點,又具有低級語言的許多特點;既適合編寫系統(tǒng)軟件,又能方便地用來編寫應(yīng)用軟件,是多年來在國內(nèi)外使用較廣泛的一種計算機(jī)語言。
國內(nèi)外許多專家認(rèn)為,C語言是通用語言,有了C語言的基礎(chǔ)后,以后過渡到任何一種語言(如C 、C#、Java)都不會困難。C語言被認(rèn)為是計算機(jī)專業(yè)人員的基本功。
三、 怎樣學(xué)習(xí)C語言程序設(shè)計
1. 準(zhǔn)確掌握本課程的特點與定位
C語言程序設(shè)計不是一門理論課程,它有很強(qiáng)的應(yīng)用性,要根據(jù)應(yīng)用的需要來設(shè)計課程體系和取舍內(nèi)容。學(xué)習(xí)好壞的標(biāo)準(zhǔn)不是知道什么,而是會做什么,應(yīng)當(dāng)強(qiáng)調(diào)培養(yǎng)應(yīng)用能力。但是它又不同于高職高專一些技能性或工藝性的課程,C語言學(xué)習(xí)的過程不是簡單的重復(fù)和模仿,熟能生巧,而是需要領(lǐng)會精神,掌握規(guī)律,開動腦筋,認(rèn)真思考,有所創(chuàng)造,是充滿思想活力的過程。學(xué)習(xí)的方法不是簡單的動手干,而是要動腦思考,動手實踐,實踐包括編程和上機(jī)。學(xué)生領(lǐng)到開發(fā)任務(wù)后,首先要認(rèn)真思考解題思路,設(shè)計最優(yōu)算法,然后編寫出高質(zhì)量的程序,這是有創(chuàng)造性的智力勞動,是學(xué)習(xí)和培養(yǎng)科學(xué)思維的過程。
本書介紹了許多例題,并不是要求學(xué)生只是看懂和重復(fù)這些例題,而是要求學(xué)生學(xué)習(xí)解決問題的思路,從而能舉一反三,能獨立解決其他問題。
2. 正確處理好算法和語法的關(guān)系
程序設(shè)計有四個要素: ①算法是程序的靈魂; ②數(shù)據(jù)結(jié)構(gòu)是加工的對象; ③語言是編程工具(算法要通過語言實現(xiàn)); ④要采用合適的程序設(shè)計方法。程序設(shè)計教學(xué)是否成功取決于能否將以上四個要素(尤其是算法與語言)緊密結(jié)合。
本書自始至終把四個要素自然而有機(jī)地結(jié)合,尤其是能正確處理好算法和語法的關(guān)系。算法和語法這二者都重要,不掌握算法就如同無頭蒼蠅,無從編程;不掌握語法就編不出能用的程序。學(xué)習(xí)程序設(shè)計應(yīng)當(dāng)把主要精力放在算法上,算法是活的,語法是死的。基本的語法規(guī)則是需要了解和掌握的,但是沒有必要去死記那些煩瑣的語法細(xì)節(jié),用到時查一下就可以。程序看多了、編多了,自然就會正確使用語法規(guī)則。學(xué)習(xí)C語言程序設(shè)計,不要把重點放在死記語法規(guī)則上。
本書不是介紹語法的書籍,不是以語法為主線構(gòu)建課程體系,也不是系統(tǒng)介紹算法的教材,而是從應(yīng)用的角度出發(fā), 以編程為目的和主線,由淺入深地介紹怎樣用C語言處理問題。通過精心安排順序,細(xì)心選擇例子,由易而難選擇算法,與此同時引入相應(yīng)的語法規(guī)則,把算法和語法緊密結(jié)合,同步展開,步步深入,使學(xué)生易于學(xué)習(xí)。
具體的做法是: 每一章先舉幾個比較簡單的例子,引入新的問題,接著介紹怎樣利用C語言去解決比較簡單的問題,然后循序漸進(jìn)地介紹較深入的算法和程序,使學(xué)生在富有創(chuàng)意、引人入勝的編程中學(xué)會了算法,掌握了語法,領(lǐng)悟了程序設(shè)計的思想和方法。把枯燥無味的語法規(guī)則變成生動活潑的編程應(yīng)用。
建議教師在講授本書內(nèi)容時,以程序為中心展開,著重講清解題思路以及怎樣用程序去實現(xiàn)它,不要孤立地介紹語法規(guī)則?梢栽谥v解程序時扼要地介紹有關(guān)的語法規(guī)則,請學(xué)生課后自己閱讀,并通過上機(jī)實踐掌握它。
3. 采取新的教學(xué)思路和方法
以往的課程教學(xué)采取的方法是 提出概念解釋概念舉例說明的方式,著者在多年前根據(jù)課程特點提出了提出問題解決問題歸納分析這種新方式,不是先抽象后具體,先理論后實際,先一般后個別,而是由具體到抽象,由實際到理論,由個別到一般,由零散到完整。實踐證明這種方法對廣大計算機(jī)的初學(xué)者是成功的,可以收到事半功倍的效果。根據(jù)這個原則,我們創(chuàng)建了新的教學(xué)和教材體系,已在實踐中證明效果很好。
在介紹每一個程序時,我們的做法是: 先提出任務(wù)目標(biāo),然后分析問題,探討解題思路,構(gòu)造算法,接下來才是根據(jù)算法編寫程序,而不是先列出一個程序再解釋程序。對每一個問題都按照任務(wù)要求解題思路編寫程序運行結(jié)果程序分析等步驟展開。對每個求解的問題不僅給出程序,而且給出運行結(jié)果,使學(xué)生看到結(jié)果,便于學(xué)生對照分析。有些程序還包括對改進(jìn)程序的討論,這樣學(xué)生在學(xué)習(xí)過程中就不會覺得抽象,而會覺得算法具體有趣,看得見,摸得著。
本書的敘述充滿啟發(fā)性,在程序分析中不斷提出問題讓學(xué)生思考,如這是為什么?為什么要這樣做?為什么這個方法是錯的?還有什么更好的方法嗎?等,啟發(fā)學(xué)生自己思考求解,培養(yǎng)他們獨立思考的能力。對于需要學(xué)生注意的內(nèi)容用說明、注意、提示、思考等標(biāo)題以醒目的字體標(biāo)注,從而引起注意,使學(xué)生的思路更加清晰,更容易接受和理解。
在各章中由淺入深地結(jié)合例題介紹各種典型的算法。對窮舉、遞推、迭代、遞歸、排序(包括比較交換法、選擇法、起泡法)、矩陣運算、字符處理應(yīng)用等算法做了詳細(xì)的介紹,對難度較大的算法還做了清晰且詳盡的分析。引導(dǎo)學(xué)生在拿到程序設(shè)計題目后,先考慮算法再編程,而不是坐下來就寫程序,著力培養(yǎng)學(xué)生的科學(xué)思維能力及良好的編程習(xí)慣。
4. 對有效地學(xué)習(xí)C語言程序設(shè)計的建議
(1) 在學(xué)習(xí)開始時不要在語法細(xì)節(jié)上死記死摳。請記住: 重要的是學(xué)會編程序,而不是死記語法。一開始就要學(xué)會看懂程序,編寫簡單的程序,然后逐步深入。有一些語法細(xì)節(jié)需要通過長期的實踐才能熟練地掌握。初學(xué)時,切忌過早地濫用C語言的某些容易引起歧義的細(xì)節(jié)(如不適當(dāng)?shù)厥褂? 和--,就會出現(xiàn)一些副作用)。
(2) 不能設(shè)想今后一輩子只使用在學(xué)校里學(xué)過的某一種計算機(jī)語言。但是無論使用哪一種計算機(jī)語言進(jìn)行程序設(shè)計,其基本思路和方法都是一樣的,在大學(xué)里學(xué)哪一種計算機(jī)語言并不是一個很重要的原則問題。學(xué)會了一種計算機(jī)語言,可以很快地學(xué)會另一種計算機(jī)語言。因此,在學(xué)習(xí)時一定要學(xué)活用活,舉一反三,掌握規(guī)律,學(xué)會算法,在以后需要時能很快地掌握其他的計算機(jī)語言來進(jìn)行工作。
(3) 在學(xué)校學(xué)習(xí)階段主要是學(xué)習(xí)程序設(shè)計的方法,進(jìn)行程序設(shè)計的基本訓(xùn)練,打好將來進(jìn)一步學(xué)習(xí)和應(yīng)用的基礎(chǔ)。學(xué)習(xí)程序設(shè)計課程時,應(yīng)該把精力放在最基本、最常用的內(nèi)容上,學(xué)好基本功。如果對學(xué)生有較高的程序設(shè)計要求,應(yīng)當(dāng)在學(xué)習(xí)完本課程后安排一次集中的課程設(shè)計環(huán)節(jié),完成有一定規(guī)模的程序設(shè)計。
(4) 程序設(shè)計是一門實踐性很強(qiáng)的課程,既要掌握概念,又要動手編程,還要上機(jī)調(diào)試運行,希望學(xué)生一定要重視實踐環(huán)節(jié),包括編程和上機(jī),要既會編寫程序,又會調(diào)試程序。對學(xué)生考核的方法不能采用標(biāo)準(zhǔn)題(是非題或選擇題),而應(yīng)當(dāng)把重點放在編制程序和調(diào)試程序上。
(5) 使用哪一種編譯系統(tǒng)并不是原則問題。程序編好以后,用哪一種編譯系統(tǒng)進(jìn)行編譯都可以。如果有條件,可以了解和使用不同的編譯環(huán)境。不同的編譯系統(tǒng),其功能和使用方法有些不同,編譯時給出的信息也不完全相同,但基本方法大同小異。要在使用中積累經(jīng)驗,舉一反三。
四、 本書的特點1. 本書的主要特點是概念清晰、通俗易懂(1) 概念清晰。本書對所有重要的概念都做了明確、清晰和透徹的闡述與分析,每引出一個概念,都明確講清楚三點: ①它是什么?②它有什么用?③怎么用它去處理和解決問題。所有的概念都能從本書找到明確的說明。
(2) 通俗易懂。著者善于用通俗易懂的方法和語言闡明復(fù)雜的概念,而盡量少用深奧難懂的專業(yè)術(shù)語。不把簡單的問題復(fù)雜化,而是使復(fù)雜的問題簡單化。例如,指針是C語言的一個難點,許多人感到難以理解,但在本書中著者對指針的概念做了科學(xué)而通俗的說明,使人更容易理解,一看即懂。
2. 本書內(nèi)容是根據(jù)高職高專的特點與要求確定的,適用于高職高專院校
在內(nèi)容選取時,本書沒有包括C語言中一些不常用的內(nèi)容(如較復(fù)雜的輸入/輸出格式控制、指針較深入的部分、共用體類型、枚舉類型、隨機(jī)文件等。著者把它們作為提高的內(nèi)容放入與本書的學(xué)習(xí)輔導(dǎo)一書中供學(xué)生選學(xué)),但是仍然保持了本書內(nèi)容的系統(tǒng)性和完整性。由于本書通俗易懂,易于理解,因此,學(xué)生能夠在有限的學(xué)時內(nèi)學(xué)到更多的內(nèi)容,達(dá)到更高的要求。著者認(rèn)為應(yīng)當(dāng)保證高職教學(xué)的質(zhì)量,不宜過分降低對高職學(xué)生學(xué)習(xí)的要求,否則他們掌握不了基本的編程方法。
3. 本書從有效學(xué)習(xí)程序設(shè)計的角度出發(fā)來構(gòu)建教材體系
本書不以理論知識來構(gòu)建教材體系,也不以C語言的語法規(guī)則來構(gòu)建教材體系,而是從怎樣有效學(xué)習(xí)程序設(shè)計的角度出發(fā)來設(shè)計教材的內(nèi)容,使學(xué)生從易到難、從簡到繁、循序漸進(jìn)地學(xué)會編程。著者在多年教學(xué)實踐中對學(xué)生的情況有深入了解和研究,充分考慮學(xué)生的認(rèn)知規(guī)律,構(gòu)建了一個既科學(xué)又易學(xué)的教材體系,并精心設(shè)計教材體系,以程序設(shè)計為主導(dǎo),降低門檻,分散難點,使每一章每一節(jié)的臺階都不大,很容易循序漸進(jìn),逐步深入。
4. 怎樣使用本書
(1) 本書中的內(nèi)容是基本的要求,希望學(xué)生能掌握。在每章的最后有本章小結(jié),歸納本章的要點,盡量起到提綱挈領(lǐng)、畫龍點睛的作用,以加深學(xué)生的學(xué)習(xí)印象。
本書內(nèi)容較多,希望能安排足夠的學(xué)時。前面幾章難度較小,后面幾章難度稍大,希望教學(xué)時能合理安排,統(tǒng)籌兼顧,防止前松后緊。尤其對指針部分要多花些時間和精力,使學(xué)生能真正理解并掌握。如果有少數(shù)學(xué)校學(xué)時實在不夠,可以對第8章和第9章的內(nèi)容做簡單介紹,以使學(xué)生有一個初步了解,但不要跳過不學(xué),這樣在以后需要時再深入學(xué)習(xí)就不會感到困難。
(2) 本書便于自學(xué)。具有高中以上文化水平的人,即使沒有教師講解,也能基本上看懂本書的大部分內(nèi)容,這樣就有可能做到: 教師少講,指定部分自學(xué),保證上機(jī)實踐。
(3) 為了滿足學(xué)習(xí)能力較好的學(xué)生進(jìn)一步提高的要求,我們另外出版了《C語言程序設(shè)計教程學(xué)習(xí)輔導(dǎo)》(ISBN 9787302556176)一書,其中的第二部分提供了學(xué)習(xí)本書各章時應(yīng)進(jìn)一步提高的內(nèi)容,可供師生在教學(xué)中參考。
(4) 在本書每一章的最后都有習(xí)題,教師可從中選擇一部分要求學(xué)生練習(xí)并完成。習(xí)題包括兩類: 一類是程度適中,大多數(shù)學(xué)生是可以獨立完成的;另一類是有一定難度,水平較高的學(xué)生可以完成其中一部分。如果學(xué)生感到無從下手,可以參考《C語言程序設(shè)計教程學(xué)習(xí)輔導(dǎo)》的第一部分各章習(xí)題參考解答。在該部分中提供了近100個問題的解答,實際上是提供了100個補(bǔ)充例題供師生參考。教師可以從中選一些作為補(bǔ)充例題在課堂上講授,或指定學(xué)生自學(xué),這樣可以進(jìn)一步提高教學(xué)水平。
希望大家善于利用《C語言程序設(shè)計教程學(xué)習(xí)輔導(dǎo)》中的習(xí)題解答和提高部分這兩類資源。實際上我們提供的是一個多層面的教學(xué)體系,教師可以根據(jù)不同學(xué)校的教學(xué)要求、學(xué)生基礎(chǔ)、學(xué)時情況等因素,把教材的基本內(nèi)容、習(xí)題解答、提高部分、上機(jī)調(diào)試四者合理選用、有機(jī)組合,組成適合不同人群的教學(xué)方案,以取得更好的效果。
(5) 學(xué)習(xí)程序設(shè)計必須重視實踐環(huán)節(jié),至少保證上機(jī)實踐的時間不少于課堂講授的1/2,能增多一點時間更好?梢园颜n后指定要完成的作業(yè)與上機(jī)調(diào)試程序統(tǒng)一起來,完成作業(yè)后即上機(jī)調(diào)試程序!禖語言程序設(shè)計教程學(xué)習(xí)輔導(dǎo)》的第三部分上機(jī)實踐指南可供上機(jī)實踐時參考。
(6) 為了幫助更多的人學(xué)好C語言程序設(shè)計,本書著者之一、南京大學(xué)計算機(jī)基礎(chǔ)教學(xué)部主任金瑩教授以譚浩強(qiáng)所著的《C程序設(shè)計》一書為教材制作了慕課(MOOC),在愛課平臺可以收看!禖程序設(shè)計》與本書的思路、體系和內(nèi)容都是一致的,只是《C程序設(shè)計》的內(nèi)容更多一些。本書的讀者可以選擇該慕課學(xué)習(xí)。
本書主要由譚浩強(qiáng)執(zhí)筆,參加者有還有金瑩教授和具有IT行業(yè)豐富實踐經(jīng)驗的企業(yè)高級工程師。在本書編寫過程中還征詢了部分IT行業(yè)專家的意見。本書的編寫和出版得到全國高校計算機(jī)基礎(chǔ)教育研究會高職高專專業(yè)委員會和清華大學(xué)出版社的大力支持,得以在短時間內(nèi)順利出版,在此特向所有支持我們的朋友們表示由衷的謝意。
本書可能仍有缺點和不足,熱切期望得到專家和讀者的批評指正。
譚浩強(qiáng)
2025年1月1日于清華園
譚浩強(qiáng),男,教授,現(xiàn)擔(dān)任全國高等院校計算機(jī)基礎(chǔ)教育研究會會長、全國計算機(jī)應(yīng)用技術(shù)證書(NIT)考試委員會主任委員,知名計算機(jī)教育專家。
第1章程序設(shè)計和C語言1
1.1計算機(jī)程序和計算機(jī)語言1
1.2C語言的發(fā)展過程2
1.3從最簡單的C語言程序開始3
1.4C語言程序的結(jié)構(gòu)7
1.5運行C語言程序的步驟與方法8
1.6算法是程序的靈魂10
1.6.1什么是算法10
1.6.2算法 數(shù)據(jù)結(jié)構(gòu)=程序11
1.6.3怎樣表示一個算法12
1.7結(jié)構(gòu)化程序設(shè)計方法18
本章小結(jié)20
習(xí)題21
第2章C語言程序設(shè)計初步22
2.1順序程序設(shè)計舉例22
2.2數(shù)據(jù)的類型和表現(xiàn)形式26
2.2.1C語言的數(shù)據(jù)類型26
2.2.2數(shù)據(jù)表現(xiàn)形式常量和變量27
2.3在計算機(jī)中存儲數(shù)據(jù)28
2.3.1數(shù)據(jù)在計算機(jī)中以二進(jìn)制形式存儲28
2.3.2位、字節(jié)和地址29
2.4整型數(shù)據(jù)的屬性與運算30
2.4.1整型數(shù)據(jù)的分類30
2.4.2整型數(shù)據(jù)在內(nèi)存中的存儲方式31
2.4.3整型數(shù)據(jù)運算程序舉例32
2.5實型數(shù)據(jù)的屬性與運算33
2.5.1實型數(shù)據(jù)的分類33
2.5.2實型常量的表示形式342.5.3實型數(shù)據(jù)的存儲形式34
2.6字符型數(shù)據(jù)的屬性與運算35
2.6.1字符型數(shù)據(jù)運算的簡單例子35
2.6.2字符常量和字符變量35
2.6.3字符型數(shù)據(jù)的存儲方式36
2.6.4字符型數(shù)據(jù)與整型數(shù)據(jù)在一定條件下可以通用37
2.6.5字符串常量39
2.7運算符與表達(dá)式40
2.7.1算術(shù)運算符40
2.7.2算術(shù)表達(dá)式41
2.8C語言的語句綜述43
2.9賦值表達(dá)式和賦值語句44
2.9.1賦值表達(dá)式44
2.9.2賦值語句46
2.10數(shù)據(jù)的輸入/輸出47
2.10.1數(shù)據(jù)輸入/輸出的概念47
2.10.2字符數(shù)據(jù)的輸入/輸出48
2.10.3格式的輸入/輸出52
本章小結(jié)59
習(xí)題61
第3章選擇結(jié)構(gòu)程序設(shè)計63
3.1簡單的選擇結(jié)構(gòu)程序63
3.2選擇結(jié)構(gòu)中的關(guān)系運算65
3.2.1關(guān)系運算符及其優(yōu)先次序65
3.2.2關(guān)系表達(dá)式65
3.3選擇結(jié)構(gòu)中的邏輯運算66
3.3.1邏輯運算符及其優(yōu)先次序67
3.3.2邏輯表達(dá)式68
3.4用if語句實現(xiàn)選擇結(jié)構(gòu)69
3.4.1if語句的形式69
3.4.2if語句的嵌套71
3.5利用switch語句實現(xiàn)多分支選擇結(jié)構(gòu)72
3.6選擇結(jié)構(gòu)程序綜合舉例75
本章小結(jié)80
習(xí)題80
第4章循環(huán)結(jié)構(gòu)程序設(shè)計82
4.1程序中需要用循環(huán)結(jié)構(gòu)82
4.2用while語句和do...while語句實現(xiàn)循環(huán)82
4.2.1用while語句實現(xiàn)循環(huán)82
4.2.2用do...while語句實現(xiàn)循環(huán)84
4.3用for 語句實現(xiàn)循環(huán)87
4.3.1for語句的一般形式和執(zhí)行過程87
4.3.2for循環(huán)程序舉例88
4.4循環(huán)的嵌套91
4.5提前結(jié)束循環(huán)92
4.5.1用break語句提前退出循環(huán)92
4.5.2用continue語句提前結(jié)束本次循環(huán)93
4.6幾種循環(huán)的比較95
4.7循環(huán)程序綜合舉例96
本章小結(jié)101
習(xí)題101
第5章利用數(shù)組處理批量數(shù)據(jù)103
5.1為什么要用數(shù)組103
5.2怎樣定義和引用一維數(shù)組103
5.2.1怎樣定義一維數(shù)組104
5.2.2怎樣引用一維數(shù)組的元素104
5.2.3一維數(shù)組的初始化105
5.2.4一維數(shù)組程序舉例106
5.3怎樣定義和引用二維數(shù)組109
5.3.1怎樣定義二維數(shù)組109
5.3.2怎樣引用二維數(shù)組的元素110
5.3.3二維數(shù)組的初始化111
5.3.4二維數(shù)組程序舉例112
5.4字符數(shù)組115
5.4.1怎樣定義字符數(shù)組及對其初始化115
5.4.2怎樣引用字符數(shù)組116
5.4.3字符串和字符串結(jié)束標(biāo)志117
5.4.4怎樣進(jìn)行字符數(shù)組的輸入/輸出119
5.4.5字符串處理函數(shù)121
5.4.6字符數(shù)組應(yīng)用舉例122
本章小結(jié)125
習(xí)題126
第6章用函數(shù)實現(xiàn)模塊化程序設(shè)計128
6.1函數(shù)是什么128
6.2函數(shù)的定義和調(diào)用130
6.2.1為什么要定義函數(shù)130
6.2.2怎樣定義函數(shù)131
6.2.3怎樣調(diào)用函數(shù)132
6.2.4對被調(diào)用函數(shù)的聲明和函數(shù)原型135
6.3函數(shù)的嵌套調(diào)用137
6.4函數(shù)的遞歸調(diào)用139
6.5數(shù)組作為函數(shù)參數(shù)145
6.5.1用數(shù)組元素作函數(shù)實參145
6.5.2用數(shù)組名作函數(shù)參數(shù)147
6.6變量的作用域局部變量和全局變量153
6.6.1什么是局部變量153
6.6.2什么是全局變量153
本章小結(jié)156
習(xí)題157
第7章善于使用指針158
7.1什么是指針158
7.2指針變量160
7.2.1使用指針變量訪問變量160
7.2.2怎樣定義指針變量161
7.2.3怎樣引用指針變量162
7.2.4指針變量作為函數(shù)參數(shù)164
7.3通過指針引用數(shù)組170
7.3.1數(shù)組元素的指針170
7.3.2通過指針引用數(shù)組元素170
7.3.3指針的運算172
7.3.4用數(shù)組名作函數(shù)參數(shù)174
7.4通過指針引用字符串180
7.4.1字符串的表示形式180
7.4.2用字符指針作函數(shù)參數(shù)184
7.4.3字符指針變量和字符數(shù)組的區(qū)別186
本章小結(jié)188
習(xí)題190
第8章根據(jù)需要創(chuàng)建數(shù)據(jù)類型192
8.1定義和引用結(jié)構(gòu)體變量192
8.1.1怎樣創(chuàng)建結(jié)構(gòu)體類型192
8.1.2怎樣定義結(jié)構(gòu)體類型變量194
8.1.3怎樣引用結(jié)構(gòu)體變量195
8.2使用結(jié)構(gòu)體數(shù)組198
8.2.1定義結(jié)構(gòu)體數(shù)組198
8.2.2結(jié)構(gòu)體數(shù)組應(yīng)用舉例200
8.3結(jié)構(gòu)體指針201
8.3.1指向結(jié)構(gòu)體變量的指針201
8.3.2指向結(jié)構(gòu)體數(shù)組的指針203
本章小結(jié)205
習(xí)題206
第9章利用文件保存數(shù)據(jù) 207
9.1C語言文件的有關(guān)概念207
9.1.1什么是文件207
9.1.2文件名208
9.1.3文件的分類208
9.1.4文件緩沖區(qū)209
9.1.5文件類型指針209
9.2文件的打開與關(guān)閉210
9.2.1用fopen()函數(shù)打開文件210
9.2.2用fclose()函數(shù)關(guān)閉文件212
9.3文件的順序讀/寫212
9.3.1向文件讀/寫字符212
9.3.2向文件讀/寫一個字符串216
9.3.3文件的格式化讀/寫219
9.3.4用二進(jìn)制方式讀/寫文件220
本章小結(jié)224
習(xí)題225
附錄A常用字符與ASCII代碼對照表227
附錄BC語言中的關(guān)鍵字229
附錄C運算符和結(jié)合性230
附錄DC語言常用語法提要232
附錄EC語言庫函數(shù)236
參考文獻(xiàn)242