C語言程序設(shè)計

出版時間:2009-7  出版社:機(jī)械工業(yè)出版社  作者:張寶森  頁數(shù):283  

前言

  “有3個蘋果放在桌子上,找出最大的一個,怎么找呢?”一些學(xué)生會不以為然?!叭绻惺畮讉€蘋果,并蒙上眼睛,找出其中最大的一個,又怎么找呢?”學(xué)生們會感到茫然。“如果編寫程序讓計算機(jī)完成這項任務(wù),程序怎樣編寫呢?”學(xué)生們會不知所措?! ∩鲜龅?個問題,反映了人對人與計算機(jī)在處理問題方法的認(rèn)識上存在的模糊性,人“一眼”就能看出最大的,而計算機(jī)要兩兩比較。似乎人與計算機(jī)處理問題的方法存在差異。實際上,人“一眼看出”是飛快地進(jìn)行了兩兩比較,這種“飛快”的程度已經(jīng)讓人感覺不出或意識不到所用的方法了。  第2個問題,反映了人處理問題的方法是否有條理性。尤其是“當(dāng)把眼睛蒙上”時,更需要有一個條理化的方法。有了條理化的方法,人和計算機(jī)處理問題就沒有什么不同了。所以程序設(shè)計在于找到解決問題的辦法(算法),而編程能力在于把這個算法條理化,描述成適合計算機(jī)的操作方式?! 〉?個問題,反映了解決問題的編程方法——用計算機(jī)語言來表述解決問題的步驟。  因此筆者認(rèn)為,計算機(jī)程序設(shè)計課程的最終任務(wù)是在借鑒大量編程經(jīng)驗的基礎(chǔ)上,引導(dǎo)學(xué)生構(gòu)建對問題的解決方案,并用程序設(shè)計語言表述出來。雖然人們會認(rèn)為該課程的另一個任務(wù)是涉及程序語言本身的知識,但是筆者認(rèn)為,程序語言本身的知識也是為設(shè)計程序服務(wù)的,完全可以通過實際的應(yīng)用而體現(xiàn)出來?! ”局鲜鲞@樣的指導(dǎo)思想,本書從實際問題的應(yīng)用出發(fā),先構(gòu)思解題的方案,再給出程序。書中例題都是經(jīng)過精選的,一方面介紹典型的編程經(jīng)驗,另一方面引導(dǎo)學(xué)生構(gòu)思解決方案?! ∪珪卜譃?章,第1~3章介紹程序設(shè)計基本概念、過程和c語言的基本語句與實際應(yīng)用。第4~6章圍繞算法的設(shè)計與實現(xiàn),展開函數(shù)、數(shù)組與指針的內(nèi)容講解。第7~9章針對客觀事物的描述(表示)、存儲與處理,述及了鏈表、文件和開發(fā)程序所用的程序結(jié)構(gòu)?! 」P者認(rèn)為,程序設(shè)計語言對開發(fā)程序來說,它是一個整體,不應(yīng)當(dāng)將各部分割裂開來;學(xué)習(xí)的過程是一個漸進(jìn)積累的過程,要反復(fù)實踐才能熟練。因此本書打破按知識體系組織教材的做法,將結(jié)構(gòu)體、指針概念等以問題的實際要求方式提到各章中,意圖是從應(yīng)用中學(xué),先用起來,有感性認(rèn)識,再給出系統(tǒng)的知識介紹,達(dá)到反復(fù)學(xué)習(xí)與實踐的目的。教師在備課時,應(yīng)當(dāng)注意到這點,并建議補(bǔ)充相關(guān)的習(xí)題或?qū)嶒?。  本書?、4章由李智編寫,第2章由尉林明編寫,第3、5、6、7章由張寶森編寫,第8、9章由周海燕編寫,全書由張寶森統(tǒng)稿。此外,上述每位老師對全書各章均參與了討論、修改和校對,尤其是周海燕副教授通審了全稿,提出了大量的寶貴建議。  雖然作者竭力將十幾年的教學(xué)經(jīng)驗融匯于本書,但由于水平有限,書中難免出現(xiàn)不足之處,希望讀者能夠不吝時間與精力,給予批評和指正,在此先表示衷心感謝。

內(nèi)容概要

  作為普通高等院校的程序設(shè)計基礎(chǔ)教材,《C語言程序設(shè)計》針對學(xué)生的特點和認(rèn)知規(guī)律,按照“從問題到方法,再到程序”的編寫思路,打破按語法知識體系結(jié)構(gòu)組織教材內(nèi)容的傳統(tǒng)方法,由淺入深,循序漸進(jìn),全面、系統(tǒng)地介紹了C語言程序設(shè)計及其應(yīng)用知識。全書主要涉及了程序設(shè)計基礎(chǔ),順序、分支和循環(huán)結(jié)構(gòu)的程序設(shè)計,函數(shù),數(shù)組,指針,結(jié)構(gòu)體、文件與編譯預(yù)處理命令等,并在相應(yīng)的章節(jié)論述了程序運(yùn)行模式,邏輯意圖的表達(dá),迭代與窮舉的基本算法,復(fù)雜問題、任務(wù)的分解,現(xiàn)實問題描述與處理,數(shù)據(jù)的保存和重建等基本和必要的程序設(shè)計技術(shù),尤其對指針的概念進(jìn)行了深入本質(zhì)的論述?!  禖語言程序設(shè)計》通過100多個例題,介紹了設(shè)計程序所經(jīng)歷的過程,注重對學(xué)生思維的訓(xùn)練和編程經(jīng)驗的積累,培養(yǎng)其應(yīng)用能力?!禖語言程序設(shè)計》各章都配有習(xí)題,附錄中提供了常用的資料?!  禖語言程序設(shè)計》可作為大學(xué)本科或?qū)?朴嬎銠C(jī)和與非計算機(jī)相關(guān)專業(yè)的“C語言程序設(shè)計”教材,也可作為計算機(jī)軟件開發(fā)者的入門書籍。

書籍目錄

出版說明前言第1章 簡單的C語言程序1.1 程序設(shè)計和程序設(shè)計語言1.1.1 程序設(shè)計的基本概念1.1.2 可執(zhí)行程序的形成與程序運(yùn)行過程1.1.3 算法1.1.4 結(jié)構(gòu)化程序設(shè)計及N-S流程圖的應(yīng)用1.2 簡單的C語言程序1.2.1 文字輸出與順序結(jié)構(gòu)1.2.2 帶數(shù)值的文字輸出1.2.3 程序結(jié)構(gòu)與函數(shù)1.3 C語言的基本語法規(guī)則1.3.1 關(guān)鍵字和標(biāo)識符1.3.2 常用基本數(shù)據(jù)類型、常量和變量1.4 算術(shù)運(yùn)算表達(dá)式1.4.1 基本算術(shù)運(yùn)算符1.4.2 算術(shù)運(yùn)算符的優(yōu)先級、結(jié)合性和算術(shù)表達(dá)式1.5 不同數(shù)據(jù)類型之問的混合運(yùn)算1.5.1 自動類型轉(zhuǎn)換1.5.2 強(qiáng)制類型轉(zhuǎn)換1.6 賦值運(yùn)算、逗號運(yùn)算和自加、自減運(yùn)算1.6.1 賦值運(yùn)算符和表達(dá)式1.6.2 自加、自減運(yùn)算符和表達(dá)式1.6.3 逗號運(yùn)算符和表達(dá)式1.7 程序的順序結(jié)構(gòu)1.7.1 程序的順序結(jié)構(gòu)與語句分類1.7.2 賦值語句1.7.3 數(shù)據(jù)的輸出與輸入1.7.4 順序結(jié)構(gòu)程序設(shè)計舉例1.7.5 復(fù)合語句和空語句1.8 習(xí)題第2章 程序的分支結(jié)構(gòu)2.1 分支結(jié)構(gòu)概述2.2 關(guān)系表達(dá)式與邏輯表達(dá)式2.2.1 關(guān)系運(yùn)算、邏輯運(yùn)算及其表達(dá)式2.2.2 應(yīng)用實例2.2.3 相同的邏輯與相反的邏輯2.2.4 關(guān)系運(yùn)算和邏輯運(yùn)算的優(yōu)先級2.3 分支結(jié)構(gòu)與if語句2.3.1 實現(xiàn)單分支結(jié)構(gòu)的if語句2.3.2 實現(xiàn)雙分支結(jié)構(gòu)的if語句2.4 用嵌套的if語句實現(xiàn)復(fù)雜的邏輯2.5 多分支結(jié)構(gòu)與switch語句2.5.1 用switch語句實現(xiàn)多分支的程序結(jié)構(gòu)2.5.2 switch語句的執(zhí)行邏輯與break語句的作用2.6 條件表達(dá)式及其分支結(jié)構(gòu)2.7 分支結(jié)構(gòu)的應(yīng)用實例2.8 本章小結(jié)2.9 習(xí)題第3章 循環(huán)結(jié)構(gòu)3.1 循環(huán)的概念3.1.1 循環(huán)的機(jī)制和3個要素3.1.2 while、for循環(huán)語句及其流程圖3.2 設(shè)計循環(huán)條件和循環(huán)體3.2.1 累加、階乘的循環(huán)及其變化3.2.2 多項式計算3.3 dowhile循環(huán)及其實例3.3.1 dowhile循環(huán)3.3.2 dowhile循環(huán)的應(yīng)用3.3.3 各種循環(huán)語句的特點3.4 用if語句和goto語句組合形成循環(huán)3.4.1 語句標(biāo)號3.4.2 goto語句3.5 循環(huán)體內(nèi)使用if語句實現(xiàn)數(shù)據(jù)處理3.6 循環(huán)過程的控制3.6.1 用if與break組合中止循環(huán)3.6.2 用if與continue組合“繼續(xù)”循環(huán)3.7 多重循環(huán)3.7.1 二重循環(huán)的概念與運(yùn)行機(jī)制3.7.2 雙重循環(huán)的應(yīng)用3.8 簡單的結(jié)構(gòu)體類型3.8.1 結(jié)構(gòu)體類型定義3.8.2 結(jié)構(gòu)體類型變量的定義和成員的引用3.9 枚舉類型3.9.1 枚舉類型的定義3.9.2 枚舉類型和變量的定義及其運(yùn)算3.10 本章小結(jié)3.11 習(xí)題第4章 算法與函數(shù)4.1 算法在程序設(shè)計中的應(yīng)用4.2 算法舉例4.2.1 迭代4.2.2 窮舉4.3 函數(shù)的概念與用函數(shù)實現(xiàn)算法4.3.1 函數(shù)的定義4.3.2 函數(shù)的調(diào)用4.4 函數(shù)的遞歸調(diào)用4.4.1 遞歸4.4.2 遞歸調(diào)用舉例4.5 函數(shù)的指針形參4.5.1 對函數(shù)的困惑4.5.2 再論形參與實參4.6 本章小結(jié)4.7 習(xí)題第5章 數(shù)組5.1 一維數(shù)組5.1.1 一維數(shù)組的定義、元素引用與初值5.1.2 數(shù)組的輸入與輸出5.2 在函數(shù)間傳遞一維數(shù)組5.2.1 數(shù)組存儲結(jié)構(gòu)與指針5.2.2 利用指針形參接收數(shù)組名5.3 一維數(shù)組的常用算法5.4 字符數(shù)組與字符串5.4.1 字符數(shù)組與字符串的概念5.4.2 字符串操作的庫函數(shù)與常用算法5.5 二維數(shù)組5.5.1 二維數(shù)組的概念與初值問題5.5.2 二維數(shù)組在函數(shù)間的傳遞與應(yīng)用5.6 數(shù)組與文件5.6.1 數(shù)據(jù)保存到文件——fprintf()的應(yīng)用5.6.2 讀取文本文件內(nèi)的數(shù)據(jù)——fscanf()的應(yīng)用5.7 數(shù)組的應(yīng)用5.8 本章小結(jié)5.9 習(xí)題第6章 指針6.1 指針概述6.1.1 直接存取與間接存取6.1.2 變量在內(nèi)存的存儲6.1.3 指針變量與指向6.1.4 地址與指針的異同6.2 變量、數(shù)組與指針變量6.2.1 取得變量的指針與給指針變量賦值6.2.2 用指針存取數(shù)據(jù)6.2.3 使用指針的風(fēng)險與安全措施6.3 指針運(yùn)算6.3.1 指針運(yùn)算的種類6.3.2 指針自身變化6.3.3 指針與整型類數(shù)據(jù)的表達(dá)式6.3.4 再論數(shù)組與指針的關(guān)系6.4 內(nèi)存的動態(tài)分配6.4.1 內(nèi)存動態(tài)分配的函數(shù)與應(yīng)用6.4.2 無名變量與無名數(shù)組6.4.3 函數(shù)返回指針6.4.4 指針的指針與指針數(shù)組6.5 二維數(shù)組與指針6.5.1 字符串?dāng)?shù)組6.5.2 行指針及其二維數(shù)組元素尋址6.6 指針與結(jié)構(gòu)體6.6.1 結(jié)構(gòu)體類型的指針6.6.2 結(jié)構(gòu)體數(shù)組與指針6.7 指向函數(shù)的指針6.8 本章小結(jié)6.9 習(xí)題第7章 數(shù)據(jù)結(jié)構(gòu)及其常用算法7.1 數(shù)據(jù)類型與客觀事物的描述7.1.1 數(shù)據(jù)類型7.1.2 客觀事物的描述7.1.3 信息描述7.1.4 位段類型7.1.5 typedef定義類型別名7.2 數(shù)據(jù)組織的基本方式……第8章 文件第9章 C程序的結(jié)構(gòu)

章節(jié)摘錄

  第1章 簡單的C語言程序  程序設(shè)計是計算機(jī)軟件開發(fā)的基礎(chǔ)。掌握程序設(shè)計可以深入了解計算機(jī)的工作過程,可以更高效、可靠、安全地直接指揮計算機(jī)工作。C語言是高級程序設(shè)計語言之一,它概念豐富,功能強(qiáng)大,應(yīng)用廣泛。C語言程序設(shè)計涵蓋了大量計算機(jī)工作原理性的知識,是任何有志從事軟件開發(fā)人員的必修課?! ∷闹R點  1)程序設(shè)計和程序語言的基本知識?! ?)算法的基本概念?! ?)簡單的C語言程序結(jié)構(gòu)?! ?)C語言的基本語法規(guī)則?! ?)順序結(jié)構(gòu)的特點?! ?)字符串的輸出?! ?.1 程序設(shè)計和程序設(shè)計語言  1.1.1 程序設(shè)計的基本概念  在生活中,“程序”即所需完成的工作,按時間先后安排的工作步驟?! ≡谌藗兊纳钪刑幪幨率露茧x不開“程序”。例如,一般情況下,每個人的日常活動總是遵循著這樣一個步驟:  1)早上起床,洗漱,吃早飯,然后進(jìn)行上午時間段的各項活動。  2)中午吃午飯,休息片刻,進(jìn)行下午時間段的各項活動?! ?)晚上吃晚飯,進(jìn)行一些晚間的活動,晚間活動后睡覺。  這些步驟就是人們?nèi)粘I畹摹俺绦颉?。實際上,做什么事情都有一定的程序,大家可以舉出很多類似的例子。人們對熟悉的事情可能在不經(jīng)意的過程中就一步一步地完成了,但是有些不熟悉的事情,像航天器的發(fā)射、奧運(yùn)會舉辦過程的細(xì)節(jié),卻需要人們事先制訂計劃,研究方案,進(jìn)行詳細(xì)的設(shè)計,才能很好地完成?! ≡谟嬎銠C(jī)里,“程序”兩字的含義就是為了讓計算機(jī)能夠自動完成各項任務(wù),而事先準(zhǔn)備的指令序列。  計算機(jī)的一個程序要完成某個計算任務(wù),必須對這個任務(wù)進(jìn)行描述。描述應(yīng)包括兩方面的內(nèi)容,一個是對客觀“對象”的描述,稱為“數(shù)據(jù)結(jié)構(gòu)”;另一個是對“對象”施加的“操作”的描述,稱為“算法”。

圖書封面

評論、評分、閱讀與下載


    C語言程序設(shè)計 PDF格式下載


用戶評論 (總計0條)

 
 

 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7