出版時(shí)間:2009-11 出版社:華中科技大學(xué)出版社 作者:鞠劍平 編 頁(yè)數(shù):406
前言
計(jì)算機(jī)誕生至今不過幾十年的時(shí)間,但人們的學(xué)習(xí)、工作、生活、娛樂的方方面面都已經(jīng)離不開計(jì)算機(jī)和計(jì)算機(jī)技術(shù)了。在計(jì)算機(jī)技術(shù)的各個(gè)組成部分中,軟件設(shè)計(jì)占有重要的地位?! 〕绦蛟O(shè)計(jì)是學(xué)習(xí)軟件設(shè)計(jì)的入門課程,是進(jìn)一步學(xué)習(xí)“面向?qū)ο蟪绦蛟O(shè)計(jì)”、“數(shù)據(jù)結(jié)構(gòu)”、“算法設(shè)計(jì)與分析”等課程的基礎(chǔ)。程序設(shè)計(jì)是以編程語(yǔ)言為平臺(tái),介紹程序設(shè)計(jì)的思想和方法。通過“c語(yǔ)言程序設(shè)計(jì)”課程的學(xué)習(xí),學(xué)生不僅要掌握高級(jí)程序設(shè)計(jì)語(yǔ)言的知識(shí),更重要的是,要在實(shí)踐中逐步掌握程序設(shè)計(jì)的基本思想和方法。 c語(yǔ)言是一種歷史悠久的程序設(shè)計(jì)語(yǔ)言。今天的c++、Java、PHP,以及.NET中的c#和visual Basic.NET等,都是以c語(yǔ)言為基礎(chǔ)的。c語(yǔ)言具有表達(dá)能力強(qiáng)、功能豐富、目標(biāo)程序質(zhì)量高、可移植性好、使用靈活等特點(diǎn)。c語(yǔ)言既具有高級(jí)語(yǔ)言的優(yōu)點(diǎn),又具有低級(jí)語(yǔ)言的某些特性,特別適合于編寫系統(tǒng)軟件和嵌入式軟件。c語(yǔ)言的上述特點(diǎn)使得我國(guó)絕大部分高等院校都把c語(yǔ)言作為計(jì)算機(jī)和非計(jì)算機(jī)專業(yè)的第一門程序設(shè)計(jì)語(yǔ)言課程。全國(guó)計(jì)算機(jī)等級(jí)考試、全國(guó)計(jì)算機(jī)應(yīng)用技術(shù)證書考試也都將c語(yǔ)言列入考試范圍。 目前國(guó)內(nèi)外的c語(yǔ)言教材很多,但很多教材重理論輕實(shí)踐,大講c語(yǔ)言的相關(guān)語(yǔ)法和一些編程技巧,而對(duì)如何編寫高質(zhì)量的應(yīng)用程序涉及甚少。本書編寫的初衷就是要給c語(yǔ)言的學(xué)習(xí)者提供更多的動(dòng)手機(jī)會(huì),加強(qiáng)學(xué)習(xí)者對(duì)程序設(shè)計(jì)和c語(yǔ)言概念、原理和規(guī)則的理解,培養(yǎng)學(xué)習(xí)者形成良好的編程風(fēng)格和工程紀(jì)律,為學(xué)習(xí)者進(jìn)一步學(xué)習(xí)其他程序設(shè)計(jì)語(yǔ)言打下基礎(chǔ)?! ”緯卜?1章。其中第1章、第9章、第10章由鞠劍平編寫,第2章由吳思華編寫,第3章由黎曦編寫,第4章由吳慰編寫,第5章由徐鵬編寫,第6章由方潔編寫,第7章、第8章由韓桂華編寫,第11章由丁崧編寫,陳海洲、陳次球負(fù)責(zé)部分章節(jié)的編寫。全書由鞠劍平負(fù)責(zé)統(tǒng)稿工作?! 『笔「叩冉逃龑W(xué)會(huì)高校計(jì)算機(jī)教學(xué)專業(yè)委員會(huì)主任孫俊逸教授審閱了全書,并提出了寶貴的修改意見。在本書編寫過程中,湖北工業(yè)大學(xué)商貿(mào)學(xué)院電子信息工程系主任張勝利教授對(duì)編者給予了極大的支持和鼓勵(lì),程貴卿副教授、陳小常副教授和金國(guó)芳副教授給予了無(wú)私的幫助,武漢大學(xué)東湖分校的領(lǐng)導(dǎo)和老師也給予了很大的支持并提出了許多有益的意見,使本書增色不少。在此,對(duì)他們一并表示衷心感謝! 由于時(shí)間緊迫,編者水平有限,書中錯(cuò)誤及疏漏之處在所難免,敬請(qǐng)讀者批評(píng)指正。
內(nèi)容概要
本書共分11章,前10章介紹了C語(yǔ)言的概念、數(shù)據(jù)類型、控制結(jié)構(gòu)、數(shù)組、函數(shù)、編譯預(yù)處理、指針、結(jié)構(gòu)體和共用體、位運(yùn)算和文件等相關(guān)知識(shí)。第11章是綜合程序設(shè)計(jì):設(shè)計(jì)了一個(gè)學(xué)生成績(jī)管理系統(tǒng)(給出了完整的源代碼,并做了必要的注釋),并介紹了軟件開發(fā)中的基本思路和方法。 本書適用于計(jì)算機(jī)和非計(jì)算機(jī)專業(yè)的程序設(shè)計(jì)初學(xué)者,同時(shí)也可作為編程人員和C語(yǔ)言自學(xué)者的參考用書。
書籍目錄
第1章 C語(yǔ)言程序設(shè)計(jì)基礎(chǔ) 1.1 程序與程序設(shè)計(jì)語(yǔ)言 1.2 算法與結(jié)構(gòu)化程序設(shè)計(jì) 1.3 C語(yǔ)言概述 1.4 C語(yǔ)言程序的結(jié)構(gòu) 1.5 C語(yǔ)言程序的實(shí)現(xiàn) 1.6 程序的編輯、編譯、調(diào)試和運(yùn)行實(shí)訓(xùn) 習(xí)題1.1 習(xí)題1.2第2章 數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 2.1 C語(yǔ)言的數(shù)據(jù)類型 2.2 常量與變量 2.3 變量賦初值 2.4 各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算 2.5 C語(yǔ)言的運(yùn)算符和表達(dá)式 2.6 數(shù)據(jù)類型與運(yùn)算符實(shí)訓(xùn) 習(xí)題2.1 習(xí)題2.2第3章 C語(yǔ)言控制結(jié)構(gòu) 3.1 順序程序設(shè)計(jì) 3.2 分支結(jié)構(gòu)程序 3.3 循環(huán)控制 3.4 控制結(jié)構(gòu)實(shí)訓(xùn) 習(xí)題3.1 習(xí)題3.2第4章 數(shù)組 4.1 概述 4.2 一維數(shù)組 4.3 二維數(shù)組 4.4 字符數(shù)組與字符串 4.5 數(shù)組綜合實(shí)例 4.6 數(shù)組與數(shù)據(jù)的排序?qū)嵱?xùn) 習(xí)題4.1 習(xí)題42第5章 函數(shù) 5.1 函數(shù)概述 5.2 函數(shù)的定義 5.3 函數(shù)的調(diào)用 5.4 函數(shù)的嵌套與遞歸調(diào)用 5.5 變量的作用域和存儲(chǔ)域 5.6 函數(shù)間的數(shù)據(jù)傳遞 5.7 main()函數(shù)的參數(shù)和返回值 5.8 文件包含與條件編譯 5.9 函數(shù)應(yīng)用綜合實(shí)例 5.10 函數(shù)應(yīng)用實(shí)訓(xùn) 習(xí)題5.1 習(xí)題5.2第6章 指針 6.1 地址和指針的概念 6.2 變量的指針和指向變量的指針變量 6.3 數(shù)組的指針和指向數(shù)組的指針變量 6.4 字符串與指針 6.5 指向函數(shù)的指針 6.6 返回指針值的函數(shù) 6.7 指針數(shù)組和指向指針的指針 6.8 指針與數(shù)組實(shí)訓(xùn) 6.9 指針與字符串實(shí)訓(xùn) 習(xí)題6.1 習(xí)題6.2第7章 預(yù)處理命令 7.1 宏定義 7.2 文件包含 7.3 條件編譯 7.4 編譯預(yù)處理實(shí)訓(xùn) 習(xí)題7.1 習(xí)題7.2第8章 結(jié)構(gòu)體與共用體第9章 位運(yùn)算第10章 文件第11章 綜合程序設(shè)計(jì)習(xí)題參考答案參考文獻(xiàn)
章節(jié)摘錄
1.2.4 結(jié)構(gòu)化程序設(shè)計(jì) 前面介紹的三種基本結(jié)構(gòu)組成的算法,可以解決任何復(fù)雜的問題。由基本結(jié)構(gòu)所構(gòu)成的算法屬于“結(jié)構(gòu)化”的算法,它不存在無(wú)規(guī)律的轉(zhuǎn)向,只在其基本結(jié)構(gòu)內(nèi)才允許存在分支和向前或向后的跳轉(zhuǎn)。一個(gè)結(jié)構(gòu)化程序就是用高級(jí)語(yǔ)言表示的結(jié)構(gòu)化算法。用三種基本結(jié)構(gòu)組成的程序必然是結(jié)構(gòu)化的程序,這種程序便于編寫、閱讀、修改和維護(hù)?! 〗Y(jié)構(gòu)化程序設(shè)計(jì)強(qiáng)調(diào)程序設(shè)計(jì)風(fēng)格和程序結(jié)構(gòu)的規(guī)范化,提倡清晰的結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計(jì)方法的基本思路是:把一個(gè)復(fù)雜問題的求解過程分階段進(jìn)行,每個(gè)階段處理的問題都控制在人們?nèi)菀桌斫夂吞幚淼姆秶鷥?nèi)?! 】梢圆扇∫韵路椒▉?lái)得到結(jié)構(gòu)化的程序:自頂向下;逐步細(xì)化;模塊化設(shè)計(jì);結(jié)構(gòu)化編碼。 在接受一個(gè)任務(wù)后,通常有兩種不同的方法來(lái)解決問題:一種是自頂向下,逐步細(xì)化;另一種是自下而上,逐步積累。結(jié)構(gòu)化程序設(shè)計(jì)采用的是自頂向下的方法,按照這種方法,開始的時(shí)候不要一下子就力圖觸及問題解法的細(xì)節(jié),而應(yīng)當(dāng)從問題的全局出發(fā),給出高度概括、抽象的算法,通常是把這些問題的求解分成可以獨(dú)立求解的若干子問題;接著對(duì)每一個(gè)子問題再進(jìn)行分解;……;最后對(duì)不可再分的子問題分別設(shè)計(jì)算法,而且設(shè)計(jì)的過程也是從概括到逐步細(xì)化。一般來(lái)說(shuō),上層解決的是“做什么”的過程,逐步細(xì)化解決的是“怎么做”的過程。 在用偽代碼描述算法時(shí),隨著逐步細(xì)化,最終可以用程序設(shè)計(jì)語(yǔ)言代替算法中的偽代碼。等到全部偽代碼都用某種程序設(shè)計(jì)語(yǔ)言描述了,程序設(shè)計(jì)也就基本完成了?! ∮眠@種方法逐步分解,直到編寫者認(rèn)為可以直接將各小段表達(dá)為文字語(yǔ)句為止。這種方法就叫做“自頂向下,逐步細(xì)化”。 自頂向下,逐步細(xì)化方法的優(yōu)點(diǎn)非常明顯:考慮周全,結(jié)構(gòu)清晰,層次分明,編寫者容易寫,閱讀者容易讀。如果發(fā)現(xiàn)某一部分中有一段內(nèi)容不妥,需要修改,只需找出該部分后修改有關(guān)段落即可,而與其他部分無(wú)關(guān)?! ∧K化設(shè)計(jì)的思想實(shí)際上是一種“分而治之”的思想,即把一個(gè)大任務(wù)分為若干個(gè)子任務(wù),每一個(gè)子任務(wù)就相對(duì)簡(jiǎn)單了。這種子任務(wù)稱為模塊,模塊可以是一條語(yǔ)句(statement)、一段程序或一個(gè)函數(shù)(子程序)等。將復(fù)雜程序劃分為若干個(gè)相互獨(dú)立的模塊,如果這些模塊的規(guī)模還嫌大,還可以再劃分為更小的模塊。這個(gè)過程采用自頂向下的方法來(lái)實(shí)現(xiàn)。子模塊一般不超過50行。劃分子模塊時(shí)應(yīng)注意模塊的獨(dú)立性,即:使一個(gè)模塊完成一項(xiàng)功能,耦合性愈少愈好。
圖書封面
評(píng)論、評(píng)分、閱讀與下載
C語(yǔ)言程序設(shè)計(jì)教程 PDF格式下載