計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)
定 價(jià):45 元
- 作者:?jiǎn)塘志幹?/span>
- 出版時(shí)間:2018/1/1
- ISBN:9787040477665
- 出 版 社:高等教育出版社
- 中圖法分類(lèi):TP312
- 頁(yè)碼:302
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16K
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程是高等學(xué)校計(jì)算機(jī)基礎(chǔ)課程中的核心課程,具有大學(xué)基礎(chǔ)課的性質(zhì)。本書(shū)以C語(yǔ)言程序設(shè)計(jì)為基礎(chǔ),注重講解程序設(shè)計(jì)與軟件開(kāi)發(fā)的概念、方法和思路,培養(yǎng)讀者的基本編程能力、邏輯思維與抽象思維能力。 本書(shū)內(nèi)容包括:程序設(shè)計(jì)的基本概念、C語(yǔ)言的基本語(yǔ)法元素、程序控制結(jié)構(gòu)、函數(shù)、算法、結(jié)構(gòu)化與模塊化程序設(shè)計(jì)的基本概念、程序組織與庫(kù)的設(shè)計(jì)、數(shù)組、字符串、結(jié)構(gòu)體與指針等復(fù)合數(shù)據(jù)類(lèi)型、文件與數(shù)據(jù)存儲(chǔ)、程序抽象等。希望通過(guò)強(qiáng)調(diào)那些在程序設(shè)計(jì)與軟件開(kāi)發(fā)過(guò)程中起重要作用的思想與技術(shù),使讀者體會(huì)并初步掌握較大型或?qū)嵱贸绦虻木帉?xiě)與設(shè)計(jì)能力。 本書(shū)行文嚴(yán)謹(jǐn)流暢,語(yǔ)言風(fēng)趣幽默,示例豐富生動(dòng),習(xí)題難度適中。本書(shū)可供高等院校計(jì)算機(jī)及理工類(lèi)各專(zhuān)業(yè)、成人教育院校作為程序設(shè)計(jì)課程的教材,也可供計(jì)算機(jī)應(yīng)用開(kāi)發(fā)人員及相關(guān)人員自學(xué)。
本書(shū)寫(xiě)作目標(biāo)可用8個(gè)字概括:開(kāi)卷有益,開(kāi)卷有趣。
一、本書(shū)旨趣
六年來(lái)的教學(xué)經(jīng)驗(yàn)表明,學(xué)生在學(xué)習(xí)程序設(shè)計(jì)類(lèi)課程時(shí)最難的地方不是掌握某種程序設(shè)計(jì)語(yǔ)言的語(yǔ)法規(guī)范,而是掌握程序設(shè)計(jì)的基本方法。
程序設(shè)計(jì)語(yǔ)言的語(yǔ)法規(guī)范是死的,并且與任何一種自然語(yǔ)言相比,程序設(shè)計(jì)語(yǔ)言的語(yǔ)法規(guī)范更為簡(jiǎn)單。因此,對(duì)于任何學(xué)生而言,只要花費(fèi)一定量的時(shí)間(并且這個(gè)時(shí)間并不長(zhǎng)),通過(guò)記憶并輔以上機(jī)驗(yàn)證,完全可以掌握甚至精通其語(yǔ)法規(guī)范。
然而,問(wèn)題在于,在學(xué)生已經(jīng)預(yù)習(xí)課程并認(rèn)真聽(tīng)講,自認(rèn)為已掌握了程序設(shè)計(jì)方法后,卻發(fā)現(xiàn)在解決實(shí)際問(wèn)題時(shí)經(jīng)常是毫無(wú)頭緒,一籌莫展。這種心理落差與由此造成的心理恐慌對(duì)學(xué)生的學(xué)習(xí)熱情來(lái)說(shuō)是致命的——這事實(shí)上是課程教學(xué)無(wú)法獲得應(yīng)有成果的主要原因。因此,本書(shū)力圖在學(xué)習(xí)語(yǔ)法規(guī)范與培養(yǎng)實(shí)際動(dòng)手能力之間架設(shè)一座溝通的橋梁,以解決程序設(shè)計(jì)教學(xué)中理論與實(shí)踐脫節(jié)的問(wèn)題。
對(duì)于程序員而言,抽象貫穿程序設(shè)計(jì)與開(kāi)發(fā)活動(dòng)的始終,是應(yīng)著重強(qiáng)調(diào)的最核心概念。事實(shí)上,如果讓筆者僅使用一個(gè)詞來(lái)表達(dá)本書(shū)旨趣,那只能是抽象。程序員對(duì)抽象的理解與把握左右著程序的質(zhì)量與效率。所以,抽象正是本書(shū)所要架設(shè)的橋梁。
坦率地說(shuō),抽象思維能力的培養(yǎng)不是一本教材、一門(mén)課程所能夠涵蓋和闡釋清楚的。但作為一種有益的嘗試,本書(shū)希望能夠通過(guò)一種有趣的、面目可親的方式向讀者說(shuō)明抽象在程序設(shè)計(jì)中所能夠和應(yīng)該起到的作用,以及抽象思維能力對(duì)讀者未來(lái)學(xué)習(xí)、工作的重要意義。
Vinoski有云:“Finding the right balance between abstraction and pragmatism requires Knowledge,experience,and above all,thought.”翻譯成漢語(yǔ)就是“于抽象與具象間尋覓正道需要知識(shí)、經(jīng)驗(yàn),更需要思想!毕Mx者能夠記住這句話(huà)。
二、篇章結(jié)構(gòu)
本書(shū)的篇章結(jié)構(gòu)與傳統(tǒng)C語(yǔ)言教材不同。本書(shū)如此編排知識(shí)點(diǎn)的根本出發(fā)點(diǎn)在于,筆者希望能夠以培養(yǎng)讀者解決實(shí)際問(wèn)題能力和抽象思維能力為主線(xiàn),而不是以語(yǔ)言語(yǔ)法知識(shí)點(diǎn)為主線(xiàn)。這么做的好處是,讀者不會(huì)在一開(kāi)始就接觸到過(guò)多的C語(yǔ)言語(yǔ)法規(guī)范的細(xì)節(jié),避免在實(shí)際編程時(shí)受到“學(xué)習(xí)知識(shí)過(guò)多”所造成的干擾,從而能夠?qū)⒆⒁饬械浇鉀Q實(shí)際問(wèn)題中去。
本書(shū)共分10章,具體組織方式如下。
第0章簡(jiǎn)單回顧C(jī)語(yǔ)言的歷史,介紹C語(yǔ)言與程序設(shè)計(jì)的一些基本概念,然后通過(guò)兩個(gè)小例子說(shuō)明了C語(yǔ)言編程的基本流程。
第1章與第2章介紹C語(yǔ)言的基礎(chǔ)知識(shí),這些知識(shí)包括數(shù)據(jù)與數(shù)據(jù)類(lèi)型、表達(dá)式與語(yǔ)句、運(yùn)算、基本輸入輸出功能、枚舉類(lèi)型與布爾類(lèi)型等用戶(hù)自定義類(lèi)型、典型的分支與循環(huán)結(jié)構(gòu)等,它們是程序員構(gòu)建C程序宏偉大廈的一磚一瓦。此外,第1章還專(zhuān)辟一節(jié)討論程序設(shè)計(jì)風(fēng)格問(wèn)題,良好的程序設(shè)計(jì)風(fēng)格是編寫(xiě)優(yōu)秀代碼的要件之一。作為后續(xù)章節(jié)的先導(dǎo),第2.7節(jié)討論問(wèn)題求解與結(jié)構(gòu)化程序設(shè)計(jì)的基本方法,以使讀者大概了解結(jié)構(gòu)化程序設(shè)計(jì)的思路。
第3章與第4章著重研究函數(shù)與算法,包括函數(shù)聲明與調(diào)用、函數(shù)定義、函數(shù)調(diào)用規(guī)范、程序的結(jié)構(gòu)化與模塊化、程序測(cè)試與代碼優(yōu)化、算法的概念與特征、算法的描述方法、算法設(shè)計(jì)與實(shí)現(xiàn)、遞歸算法、容錯(cuò)、算法復(fù)雜度等內(nèi)容。這些知識(shí)同樣是基本的。
第5章討論程序組織與軟件工程,主要研究庫(kù)與接口的概念、作用域與生存期、宏與條件編譯等知識(shí)。通過(guò)兩個(gè)具體的實(shí)例——如何設(shè)計(jì)隨機(jī)數(shù)庫(kù)以及如何使用隨機(jī)數(shù)庫(kù)設(shè)計(jì)一個(gè)猜測(cè)價(jià)格的游戲程序說(shuō)明程序開(kāi)發(fā)的基本流程以及在進(jìn)行程序開(kāi)發(fā)時(shí)要著力關(guān)注的問(wèn)題。
第6章研究C語(yǔ)言提供的復(fù)合數(shù)據(jù)類(lèi)型,主要涵蓋字符與字符串、數(shù)組、結(jié)構(gòu)體三方面知識(shí)。這些知識(shí)其實(shí)并不復(fù)雜,在本書(shū)力圖淡化細(xì)節(jié)的主旨下尤其如此。此外,本章還討論簡(jiǎn)單數(shù)據(jù)集上的簡(jiǎn)單查找與排序操作。
第7章研究指針。C語(yǔ)言的指針?lè)浅l`活,事實(shí)上它與其他語(yǔ)法要件(例如函數(shù)、數(shù)組、字符串、結(jié)構(gòu)體等)有著千絲萬(wàn)縷的聯(lián)系。專(zhuān)列一章討論指針是非常有必要的,它起到了承前啟后的作用。
喬林,博士,清華大學(xué)計(jì)算機(jī)系副教授,美國(guó)加州大學(xué)圣迭戈分校訪(fǎng)問(wèn)學(xué)者。2001年畢業(yè)于清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系,獲工學(xué)博士學(xué)位。主要研究興趣有多核處理器系統(tǒng)結(jié)構(gòu)、片上網(wǎng)絡(luò)、物聯(lián)網(wǎng)、MOOC課程與知識(shí)挖掘等,主持或參與國(guó)家自然科學(xué)基金、核高基、973、863項(xiàng)目或子項(xiàng)目多項(xiàng)。主講:計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)、基于Linux的C++、操作系統(tǒng)等課程,出版教材多部,開(kāi)設(shè)清華大學(xué)MOOC課程“基于Linux的C++”。
第0章 C語(yǔ)言概述
0.1 C語(yǔ)言簡(jiǎn)介
0.1.1 C語(yǔ)言簡(jiǎn)史
0.1.2 C語(yǔ)言特點(diǎn)
0.2 程序設(shè)計(jì)的基本概念
0.2.1 程序
0.2.2 程序設(shè)計(jì)與程序設(shè)計(jì)語(yǔ)言
0.2.3 算法
0.2.4 數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)
0.3 簡(jiǎn)單C程序介紹
0.3.1 c程序?qū)嵗?/span>
0.3.2 程序設(shè)計(jì)思維
0.3.3 C程序結(jié)構(gòu)特點(diǎn)
0.4 程序設(shè)計(jì)的基本流程
0.4.1 源文件和頭文件的編輯
0.4.2 源文件和頭文件的編譯
0.4.3 目標(biāo)文件的連接
0.4.4 測(cè)試運(yùn)行
本章小結(jié)
習(xí)題0
第l章 C語(yǔ)言基本語(yǔ)法元素
1.1 數(shù)據(jù)類(lèi)型
1.1.1 整數(shù)類(lèi)型
1.1.2 浮點(diǎn)數(shù)類(lèi)型
1.1.3 字符串類(lèi)型
1.2 量與表達(dá)式
1.2.1 表達(dá)式
1.2.2 變量
1.2.3 文字
1.2.4 常量
1.2.5 賦值與初始化
1.2.6 操作符與操作數(shù)
1.2.7 混合運(yùn)算與類(lèi)型轉(zhuǎn)換
1.3 語(yǔ)句
1.3.1 簡(jiǎn)單語(yǔ)句
1.3.2 復(fù)合語(yǔ)句
1.3.3 空語(yǔ)句
1.4 基本輸入輸出函數(shù)
1.4.1 格式化輸出函數(shù)
1.4.2 格式化輸入函數(shù)
1.5 程序設(shè)計(jì)風(fēng)格
1.5.1 注釋
1.5.2 命名規(guī)范
1.5.3 宏與常量
1.5.4 賦值語(yǔ)句的簡(jiǎn)寫(xiě)形式
1.5.5 源程序排版
本章小結(jié)
習(xí)題1
第2章 程序流程控制
2.1 結(jié)構(gòu)化程序設(shè)計(jì)基礎(chǔ)
2.1.1 基本控制結(jié)構(gòu)
2.1.2 順序結(jié)構(gòu)示例
2.2 布爾數(shù)據(jù)
2.2.1 枚舉類(lèi)型
第3章 函數(shù)
第4章 算法
第5章 程序組織與軟件工程
第6章 復(fù)合數(shù)據(jù)類(lèi)型
第7章 指針
第8章 文件與數(shù)據(jù)存儲(chǔ)
第9章 程序抽象