《C語言程序設(shè)計與計算思維》通過系統(tǒng)地介紹C語言語法和程序設(shè)計方法,培養(yǎng)學(xué)生計算思維能力。
《C語言程序設(shè)計與計算思維》有以下特點:一是講清楚基于馮·諾依曼結(jié)構(gòu)問題的解決過程,并以此為基礎(chǔ)討論計算機語言的組成與特點;二是詳細描述C語言的組成和語法;三是給出描述計算機解決問題的方法步驟,即算法設(shè)計方法;四是給出用C語言描述算法的方法,即程序設(shè)計方法;五是總結(jié)出程序設(shè)計過程中所涵蓋的計算思維;六是對于每一個知識點都有幫助讀者理解該知識點的大量實例。
本書以通俗易懂、循序漸進的方式敘述C語言語法和程序設(shè)計方法,并通過大量的例子來加深讀者對C語言語法和程序設(shè)計方法的理解,是一本理想的大學(xué)本科“C語言程序設(shè)計”課程教材,對于想要了解C語言本質(zhì)、掌握C語言程序設(shè)計方法的軟件人員,也是一本非常好的C語言入門書籍。
語言程序設(shè)計”作為一門大學(xué)基礎(chǔ)課程,主要教學(xué)目標(biāo)如下: 一是讓學(xué)生在“計算機基礎(chǔ)”課程的基礎(chǔ)上進一步理解計算機實現(xiàn)計算的過程,了解計算機語言的作用及計算機語言的發(fā)展過程;二是讓學(xué)生了解計算機語言的發(fā)展脈絡(luò),理解如此設(shè)計C語言語句、語法的必要性;三是結(jié)合計算機工作原理,讓學(xué)生理解C語言語句功能的本質(zhì)和實現(xiàn)過程;四是讓學(xué)生掌握計算機解決實際問題的流程,即“問題→數(shù)學(xué)模型→算法→程序設(shè)計”;五是總結(jié)出C語言語句功能設(shè)計、C語言程序結(jié)構(gòu)設(shè)計、C語言數(shù)組和鏈表等數(shù)據(jù)結(jié)構(gòu)實現(xiàn)過程中的一些普遍性方法,培養(yǎng)學(xué)生將這些方法應(yīng)用到其他專業(yè)問題解決過程中的能力。因此,“C語言程序設(shè)計”不是一門C語言語法注釋課程,不是通過羅列各種范例讓學(xué)生模仿語句使用方法的課程。
基于上述教學(xué)目標(biāo),一本好的討論C語言程序設(shè)計的教材應(yīng)該具有以下要素: 一是C語言的發(fā)展背景,清楚回答“為什么計算機語言是這種形式?”、“為什么用計算機語言編寫解決問題的程序的過程是這樣的?”等問題;二是C語言的組成和語法,由于C語言是一門集高級語言和低級語言特點于一身的計算機語言,因此,清楚闡述數(shù)據(jù)的二進制表示方式、各種數(shù)據(jù)類型在存儲器中的組織方式、指針的本質(zhì)含義等對讀者深入了解C語言的組成和語法十分重要;三是C語言解決問題的過程,這個過程涉及算法設(shè)計和程序設(shè)計,算法設(shè)計給出解決問題的步驟,程序設(shè)計完成用C語言描述解決問題的步驟的過程;四是總結(jié)出程序設(shè)計過程中所涵蓋的計算思維,清楚回答“計算機能夠做什么?”、 “如何做?”、“計算機不能做什么?”、“C語言程序設(shè)計方法能給人們什么啟示?”等問題。
目前,學(xué)生學(xué)習(xí)C語言無法深入的主要原因在于: 一是缺乏計算機背景知識,不了解計算機解決問題的方法,因而無法理解C語言語法和組成;二是只是通過羅列各種程序設(shè)計實例讓學(xué)生模仿程序設(shè)計過程,沒有講清楚語句的本質(zhì)含義和實現(xiàn)過程,學(xué)生只能知其然,而無法知其所以然;三是只是簡單介紹C語言語句功能,沒有討論C語言設(shè)置這些語句的必要性,也沒有對相似語句功能進行比較分析,無法讓學(xué)生完整、系統(tǒng)地掌握C語言語句功能,因此無法在程序設(shè)計中靈活地運用語句;四是不對C語言程序設(shè)計方法進行總結(jié),不能讓學(xué)生舉一反三、觸類旁通。
本教材與以往C語言教材相比有以下特點: 一是講清楚基于馮·諾依曼結(jié)構(gòu)問題的解決過程,并以此為基礎(chǔ)討論計算機語言的組成與特點;二是詳細描述C語言的組成和語法,講清楚語句功能的本質(zhì)含義和實現(xiàn)過程;三是給出描述計算機解決問題步驟的方法,[1]〖3〗C語言程序設(shè)計與計算思維前言〖3〗[3]即算法設(shè)計方法;四是給出用C語言描述算法的方法,即程序設(shè)計方法;五是總結(jié)出程序設(shè)計過程中所涵蓋的計算思維;六是對于每一個知識點都有幫助讀者理解該知識點的大量實例。因此,本書是一本理想的大學(xué)本科“C語言程序設(shè)計”課程教材,對于想要了解C語言本質(zhì)、掌握C語言程序設(shè)計方法的軟件人員,也是一本非常好的C語言入門書籍。
本教材的全部例子都在Visual C++ 6.0集成開發(fā)環(huán)境下調(diào)試通過,附錄A給出了在Visual C++ 6.0集成開發(fā)環(huán)境下編輯、編譯、連接、運行和調(diào)試程序的方法和過程。
作為一本無論在內(nèi)容組織、敘述方法還是在教學(xué)目標(biāo)上都和傳統(tǒng)C語言程序設(shè)計教材有一定區(qū)別的新教材,本教材錯誤和不足之處在所難免,殷切地希望使用本教材的老師和學(xué)生批評指正,也殷切地希望讀者能夠?qū)滩膬?nèi)容和敘述方式提出寶貴的建議和意見,以便進一步完善本教材內(nèi)容。
作者2014年10月于南京
第1章 概述
1.1計算機運算過程
1.1.1馮·諾依曼結(jié)構(gòu)
1.1.2核心部件功能和指令執(zhí)行過程
1.2計算機語言與程序設(shè)計
1.2.1機器語言與程序設(shè)計
1.2.2匯編語言與程序設(shè)計
1.2.3高級語言與程序設(shè)計
1.3 C語言的特點與發(fā)展過程
1.3.1 C語言的特點
1.3.2 C語言的發(fā)展過程
1.4 C語言的學(xué)習(xí)內(nèi)容
1.4.1 了解C語言的背景知識
1.4.2掌握C語言語句
1.4.3掌握算法設(shè)計過程
1.4.4掌握程序設(shè)計過程
1.4.5培養(yǎng)計算思維能力
1.5 C語言程序的開發(fā)過程
1.5.1編輯
1.5.2編譯
1.5.3連接
1.5.4運行
1.5.5集成開發(fā)環(huán)境
本章小結(jié)
習(xí)題l
第2章 變量與表達式
2.1數(shù)值編碼
2.1.1整型數(shù)
2.1.2實數(shù)
2.1.3對c語言數(shù)值表示的幾點說明
2.2字符編碼
2.2.1 ASCIl
2.2.2 C語言中字符的表示方式
2.3變量的含義及類型
2.3.1變量的含義
2.3.2標(biāo)識符
2.3.3變量的類型
2.3.4對變量的幾點說明
2.4運算符和表達式
2.4.1算術(shù)運算符和算術(shù)表達式
2.4.2賦值運算符和賦值表達式
2.4.3逗號運算符和逗號表達式
2.4.4位運算符和位運算表達式
2.5語句和程序
2.5.1語句
2.5.2程序
2.5.3輸入/輸出函數(shù)
2.6變量與表達式的啟示
本章 小結(jié)
習(xí)題2
第3章 選擇和循環(huán)結(jié)構(gòu)
3.1控制語句的作用
3.1.1實現(xiàn)選擇結(jié)構(gòu)控制語句的功能
3.1.2實現(xiàn)循環(huán)結(jié)構(gòu)控制語句的功能
3.2條件和表示條件的表達式
3.2.1關(guān)系運算符和關(guān)系表達式
3.2.2邏輯運算符和邏輯表達式
3.3 if語句
3.3.1 if語句的3種形式
3.3.2 if語句的嵌套
3.3.3條件運算符
3.4 switch語句
3.4.1 switch語句的格式
3.4.2完整程序舉例
……
第4章 函數(shù)
第5章 數(shù)組
第6章 指針
第7章 結(jié)構(gòu)體與共用體
第8章 預(yù)處理命令
第9章 文件
附錄A Visual C 6.0使用教程
附錄B C語言中的關(guān)鍵字
附錄C 運算符的優(yōu)先級和結(jié)合性
附錄D 數(shù)學(xué)函數(shù)
參考文獻