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