目錄
第一篇計算機程序設計基礎
第1章 計算機程序設計概述3
1 1計算機系統的工作原理3
1 1 1計算機系統的組成3
1 1 2計算機硬件系統3
1 1 3計算機軟件系統4
1 1 4計算機系統的工作過程5
1 2計算機問題求解6
1 2 1分析問題8
1 2 2設計算法8
1 2 3編寫代碼13
1 2 4調試運行13
1 3計算機程序需要設計15
1 3 1如何設計計算機程序15
1 3 2程序設計語言的選擇15
1 3 3程序設計方法學17
1 4初識C語言17
1 4 1為什麼選擇C語言17
1 4 2C語言的發展歷程18
1 4 3程序開發環境19
1 4 4程序的開發與運行19
本章 小結23
習題23
第2章 程序設計基礎25
2 1計算機程序的基本結構25
2 1 1程序的結構形式252 1 2源程序文件的結構26
2 1 3函數的結構28
2 2程序的基本組成元素32
2 2 1標識符32
2 2 2常量、變量32
2 2 3運算符34
2 2 4表達式38
2 2 5語句39
2 2 6注釋39
2 3計算機程序設計的基本方法與技術41
2 3 1計算機程序設計方法41
2 3 2程序設計基本技術42
2 4程序設計的原則與風格51
本章 小結57
習題58
第3章 程序設計的數據基礎60
3 1什麼是數據類型60
3 1 1數據類型的概念60
3 1 2數據類型與程序的可移植性61
3 1 3數據類型的實質61
3 2C語言的數據類型62
3 3C語言中數據的組織與處理基礎64
3 3 1基礎類型數據的組織與處理64
3 3 2組合類型數據的組織與處理75
本章 小結82
習題82
〖3〗計算機程序設計: 從理論到實踐(微課版)
目錄〖3〗第二篇計算機程序設計方法
第4章 結構化程序設計874 1結構化程序設計方法87
4 1 1結構化程序設計的基本思想88
4 1 2結構化程序的基本控制結構90
4 1 3結構化程序的控制語句90
4 2順序結構程序設計92
4 2 1順序結構的特點及應用92
4 2 2順序結構程序的設計92
4 2 3順序結構程序設計舉例93
4 3選擇結構程序設計94
4 3 1選擇結構的特點及應用94
4 3 2選擇結構程序的設計95
4 3 3選擇結構程序的形式97
4 3 4選擇結構程序設計舉例99
4 4循環結構程序設計100
4 4 1循環結構的特點及應用101
4 4 2循環結構程序的設計101
4 4 3循環結構程序的形式101
4 4 4循環結構程序的嵌套105
4 4 5循環結構程序設計舉例105
本章 小結110
習題110
第5章 模塊化程序設計113
5 1模塊化程序設計的概念113
5 2模塊化程序設計過程114
5 2 1程序模塊的功能分解115
5 2 2程序模塊間語句的劃分116
5 2 3程序模塊間的通信方式118
5 3基於C語言的模塊化程序設計119
5 3 1函數的定義與聲明120
5 3 2函數調用與返回值機制124
5 3 3變量的作用域與生存期133
5 4模塊化程序設計舉例142
本章 小結146
習題147
第三篇數據組織與處理技術
第6章 批量數據組織與處理1536 1批量數據類型的概念153
6 2再識數組154
6 3數組的定義與初始化156
6 3 1數組定義156
6 3 2數組的初始化159
6 4利用數組進行數據處理160
6 5批量數據組織與處理舉例166
本章 小結172
習題172
第7章 混合數據組織與處理176
7 1混合數據類型的概念176
7 2結構體類型和結構體變量177
7 2 1結構體類型的創建177
7 2 2結構體變量的定義和初始化178
7 2 3結構體類型數據的引用181
7 3共用體類型和共用體變量187
7 3 1共用體類型創建、變量定義及引用187
7 3 2共用體類型與結構體類型的比較188
7 4枚舉類型和枚舉變量190
7 4 1枚舉類型創建及變量定義190
7 4 2枚舉類型數據的特點191
7 5混合數據組織與處理舉例193
本章 小結196
習題196
第8章 對數據的間接訪問202
8 1對數據的訪問方式202
8 2指針變量的定義、初始化及引用204
8 2 1指針變量的定義204
8 2 2指針變量的初始化204
8 2 3指針的引用205
8 2 4指針的基本操作207
8 2 5多級指針209
8 3使用指針訪問批量類型數據210
8 3 1使用指針訪問一維數組210
8 3 2使用指針訪問二維數組213
8 3 3使用指針處理字符類型數據217
8 4使用指針訪問混合類型數據218
8 4 1結構體指針變量的定義及初始化218
8 4 2結構體指針變量的引用219
8 5使用指針訪問函數220
8 5 1返回指針值的函數220
8 5 2通過函數指針調用函數222
8 5 3指針作為main()函數的形參224
本章 小結226
習題227
第9章 動態數據組織與處理231
9 1動態數據概述231
9 2動態內存管理232
9 2 1內存分區模型232
9 2 2C語言的動態內存分配函數233
9 3利用鏈表實現動態數據組織與處理237
9 3 1單向鏈表237
9 3 2雙向鏈表240
9 3 3環形鏈表241
9 4利用棧實現動態數據組織與處理242
9 5利用隊列實現動態數據組織與處理247
本章 小結250
習題251
第10章 磁盤數據組織與處理254
10 1磁盤數據概述254
10 2C語言中的磁盤數據管理256
10 2 1文件的打開和關閉257
10 2 2文件的順序讀寫259
10 2 3文件的隨機讀寫261
10 2 4文件的狀態檢查263
10 3文件程序設計舉例265
本章 小結269
習題270
參考文獻275
前言/序言
“計算機程序設計”是大學各專業普遍開設的一門重要的核心基礎課程,其主要內容包括程序設計的理論、方法與技術。
程序設計過程是一項融合閱讀判斷、邏輯思維、抽象表達、工具利用等多項技能綜合應用的創造性思維(程序思維)活動。程序思維是使編程者站在計算機的角度思考問題,在頭腦中運用計算機運行的基本機制,模仿其操作方式,來分析和解決問題的思考過程及方法。程序思維關注的不是問題有沒有解,而是如何去求解。因此,它跳出了具體的語言環境,探索對所有編程語言行之有效的過程及方法,是一種基礎性思維。程序思維是各專業大學生必須具備的一項最基本的核心素養,包括掌握編程語言的語法知識,以及分析解決問題能力、代碼優化能力、持續學習適應新技術能力、團隊協作和溝通能力等多方面。
基於以上思考,本書以大學生的程序設計能力培養為導向,以學生已有的知識和技能為起點,以問題驅動,基於實際問題情景設計教學方案,將程序思維訓練貫穿于教學全過程,採用項目式、探究式教學,支持學生開展自主性、研究型學習。
本書有以下三個特色。
(1) 內容先進,注重實踐和應用。本書覆蓋了計算機程序設計的各個環節 和階段,採用”基礎知識→核心技術→實踐演練”的結構進行全書內容的組織。
每章 開始設置了內容簡介、學習目的和要求、重要知識點,使學生在學習本章 之前就知曉擬學習的主題、主要內容和學習目標。每章 最後扼要總結了本章 的重要概念、理論與方法,並設有形式豐富的習題供讀者課後練習。各章 內容相對獨立,教師可以根據課程計劃學時和專業需要自由選擇和組合相關內容,以保持課程體系結構的完整性。書中還引入了一些能夠被本科生理解且具有一定複雜度的應用實例,並設置了很多課程思政教學元素,循序漸進地引導學生掌握正確認識問題、分析問題和解決問題的高階思維能力和創新能力。
(2)精心編排,便於學習和教學。敘述脈絡上,本書採用了”深入淺出,化繁為簡,以簡馭繁”的模式,首先介紹計算機程序設計的相關基礎知識,然後引入程序設計的核心技術,最後輔以具體的案例進行實踐演練。講解方法上,本書以計算機問題為驅動,通過案例深入,對複雜問題通過分析予以簡化,幫助讀者清晰地理解問題,在案例分析的基礎上引導讀者厘清思路,形成對問題的總體觀點,逐步加深對算法的理解。編排邏輯上,本書注重對算法的過程描述,促進讀者深刻地認知,並將實際問題分解轉換為算法形成的能力,運用結構化、模塊化設計思想以簡捷的方式處理繁雜的問題,由淺入深,將簡單問題提升到思維層次,最終達到問題求解,如下圖所示。
圖能力導向、問題驅動的程序設計教學模式
(3)可讀性好,配套資源豐富。本書寫作過程中,力求將程序設計的相關理論、方法、技術與文學藝術、人們的日常生活、人類思維方法等相結合,使學生能切身感受到與程序設計相關的人文情懷,提高學習的興趣和主動性。本書體現了作者過去數十年的教學經驗積累,力爭在將理論與實踐相結合、課內課外融合、反映學科發展前沿,以及適應時代發展對大學生培養的新趨勢和新要求等方面取得好的效果。除本書外,編者還開發了配套的教學大綱、考試大綱、教學日曆、多媒體課件、教學視頻、習題庫、課程思政案例及視頻、實踐輔導書、源代碼等配套的立體化教學資源,供感興趣的讀者選用。
本書將圍繞計算機程序設計所涉及的基礎知識、基本方法和基本技術等相關內容展開,包括計算機程序設計所需要具備的基礎知識、程序設計過程所用的方法與技術、如何針對不同類型的數據進行組織與處理等。案例環節,按照”分析問題→設計算法→編寫代碼→調試運行→編寫文檔”的順序,揭示計算機問題求解的整個過程。
全書共分為三篇。
第一篇: 計算機程序設計基礎。
第一篇包括第1~3章 。第1章 主要介紹計算機系統的工作原理,利用計算機進行問題求解的過程,指出程序設計的目的和意義,並簡要介紹本書的依託環境——C語言的起源、發展情況,C環境下開發與運行程序的過程。第2章 剖析了計算機程序的基本結構,介紹結構化程序的構成要素,歸納了程序設計的基本方法與技術、程序設計的原則與風格。第3章 在介紹數據類型含義的基礎上,簡要介紹計算機程序設計中不同數據類型的組織與處理方法。
第二篇: 計算機程序設計方法。
第二篇包括第4、5章 。第4章 為結構化程序設計方法,系統地介紹順序、選擇和循環三種基本結構化程序的設計方法及技術。第5章 為模塊化程序設計方法,深入剖析模塊化程序設計的思想,詳細介紹模塊化程序設計的方法與技術。
第三篇: 數據組織與處理技術。
第三篇包括第6~10章 。第6章 介紹批量數據組織與處理方法,第7章 介紹混合數據組織與處理方法,第8章 介紹對數據的間接訪問方法,第9章 介紹動態數據組織與處理方法,第10章 介紹磁盤數據組織與處理方法。
本書的寫作,得益于很多同事、同行的幫助、討論以及在具體事務上的支持。在此謹向他們表示衷心的感謝!
在編寫過程中,作者參考和借鑒了大量的國內外優秀教材、文獻以及網絡上有價值的資料。鑒於許多資料存在大量未曾標明出處的相互轉載,因時間、精力所限,作者不能逐一查考其原作者。為此,謹向有關的作者、編者、譯者和網站表示衷心的感謝!
由於作者水平有限,書中難免存在錯誤和不妥之處,懇請廣大讀者批評指正。
“願將黃鶴翅,一借飛雲空。”程序設計沒有一蹴而就的捷徑,希望讀者能借本書這個臺階,切實提升自己的計算機程序