共找到75條詞條名為c語言程序設計的結果 展開

c語言程序設計

第3版

《C語言程序設計(第3版)》是一本張磊編製,由清華大學出版社在2013-1-21出版的書籍。

圖書簡介


本書面向程序設計初學者編寫,以“注重基礎、注重方法、注重編程、注重應用”為指導思想,靈活運用案例教學、任務驅動、啟髮式教學等多種教學方法,對C語言程序設計的語言知識和程序設計的方法過程進行了系統介紹,特別適合將“C語言程序設計”作為第一門程序設計課程的高校學生。全書共有9章,分別為程序設計概述、簡單程序設計、分支結構程序設計、循環結構程序設計、數組程序設計、函數程序設計、指針程序設計、結構體程序設計和文件程序設計。每章之後均設有實驗指導,其內容與教學內容密切銜接、相輔相成。本書配有教學課件、程序源碼和試題庫等豐富資源。
本書面向程序設計初學者,全書以程序設計為主線,突出主幹知識教學,突出C語言課程的應用性、實踐性特點,注重能力培養。
本書適合作為高等院校C語言程序設計等相關課程的教材,也可用作程序設計人員及程序設計愛好者的自學參考書。

圖書前言


本書面向程序設計初學者,全書以程序設計為主線,突出主幹知識教學,突出C語言課程的應用性、實踐性特點,注重能力培養。
本書主要具有以下特點。
(1) 加強演演算法設計的教學。在多年的教學實踐中我們體會到,學生在學習程序設計時遇到的困難大部分發生在演演算法設計環節,尤其是初學者,面對實際問題往往無所適從,難以設計用程序解決問題的演演算法。本書從兩個方面努力加強演演算法設計的教學,以提高學生的程序設計能力:一是注重程序執行過程的分析和說明,加強與計算機的溝通,提高讀者的程序閱讀能力,進而達到演演算法學習的目的;二是通過應用實例,加強問題分析和演演算法設計的教學。
(2) 本書的實例選擇力求做到“科學性、趣味性、應用性和易學性”的統一,並按照不同的學習功能進行分類設置。一類是簡單明了的演示性例題,重點說明C語言的語法知識,實現基本概念、基本語法的即時應用;另一類是培養程序設計能力的設計性例題,通過問題分析與演演算法設計、程序實現、程序討論和說明等內容重點介紹程序設計方法,突出演演算法設計和程序編寫、調試的教學,以加強程序設計的能力訓練。
(3) 突出案例教學。書中凡是適合以程序案例開始的新知識,均通過程序示例和程序說明予以引導,首先建立感性認識,然後展開相關內容,進行知識的系統介紹。
(4) 本書的程序設計舉例在相關章節保持了連續性,前後銜接,逐步擴展,既便於教師講解,又便於學生學習理解。例如,學生成績問題自第1章引入,一直貫穿到建立和使用學生成績文件,相關舉例在第2~5章、第8章、第9章都有介紹。
(5) 本書通過設置“問題思考”、“觀察與思考”、“拓展知識”等欄目,靈活運用啟髮式教學方法,有針對性地引導讀者進一步討論和思考問題。當提示讀者從邏輯思維的角度對某些問題做進一步思考時,通過“問題思考”欄目進行啟發;當提示讀者根據程序運行情況對程序做進一步改進、完善時,通過“觀察與思考”欄目進行啟發;當需要進一步延伸某些教學內容時,通過“拓展知識”欄目進行適當介紹。
(6) 主教材與實驗指導合二為一,在每章之後設置實驗及指導內容,不再單獨配套實驗指導教材,既方便學生實驗課學習,也降低教材成本。
(7) 理論教學與實驗教學有機結合。本書的實驗指導分為基礎實驗和綜合實驗兩部分。基礎實驗內容緊密結合課程中的例題程序設置,以“理解→驗證→完善→擴充→提高”為實驗教學線索,重在鞏固課堂教學知識,提高調試程序及完善程序的能力;綜合實驗以演演算法設計和程序實現為重點,訓練運用所學知識解決實際問題的能力。這樣徹底解決了實驗教學內容與主教材教學內容并行設置、孤立設置的問題,避免出現主教材與實驗教材顧此失彼的情況。
本書編者秉承“建設精品教材,培養優秀人才”的教育理念,廣泛吸收、借鑒其他優秀教材的長處,在前期教材建設的基礎上,融入多年的教學實踐經驗和教學研究成果,編寫完成了本書,力求深入淺出、循序漸進、語言流暢、通俗易懂、便於講解和學習。但由於編者水平所限,書中難免存在不足之處,敬請讀者批評指正。
參加本書編寫工作的還有馮偉昌、黃忠義、魏建國、張元國、王桂東、王金才、李竹健、張文、高永存、王濤、薛瑩、徐英娟、馬明祥、滕秀榮、彭玉忠等。計算機程序設計愛好者潘振昌、張濛、徐思傑等為調試本書中的程序做了大量工作,在此一併表示感謝。
編 者2012年7月

圖書目錄


第1章 程序設計概述1
1.2 演演算法2
1.2.1 演演算法概念與演演算法描述3
1.2.2 演演算法的邏輯結構4
1.2.3 演演算法的特性7
1.2.4 演演算法評價7
1.3 程序設計與實現7
1.3.1 程序設計的基本過程7
1.3.2 使用Visual C++ 6.0實現C語言程序8
1.3.3 程序設計示例10
1.4 C語言程序的基本結構13
1.4.1 程序的函數化結構13
1.4.2 程序中的常量和變數15
1.4.3 程序中的基本語句16
1.4.4 標識符與保留字16
1.4.5 程序風格17
小結18
習題118
實驗1 編輯運行C語言程序20
第2章 簡單程序設計23
2.1 用printf()函數輸出數據23
2.1.1 固定數值的加法程序24
2.1.2 printf()函數25
2.2 用scanf()函數輸入數據29
2.2.1 任意數值的加法程序29
2.2.2 scanf()函數30
2.3 輸入輸出字元數據34
2.3.1 getchar()函數和putchar()函數35
2.3.2 字元輸入輸出應用舉例35
2.4 語言知識補遺36
2.4.1 數據類型36
2.4.2 常量詳解36
2.4.3 簡單變數詳解38
2.4.4 算術運算 41
2.4.5 賦值運算42
2.4.6 宏命令43
2.5 程序設計舉例49
2.5.1 計算三角形面積 49
2.5.2 字母轉換50
2.5.3 雞兔同籠問題51
??2.6 表達式中數據類型的自動轉換52
??2.7 用typedef命名數據類型53
??2.8 使用C++命令輸入輸出數據54
2.8.1 簡單的C++程序54
2.8.2 C++的輸入和輸出55
小結57
習題258
實驗2 簡單程序設計62
第3章 分支結構程序設計64
3.1 簡單條件的分支程序64
3.1.1 判斷優等生程序64
3.1.2 關係表達式65
3.1.3 if語句66
3.2 複合條件的分支程序74
3.2.1 使用新標準的優等生程序74
3.2.2 邏輯表達式75
3.3 用switch語句實現分支控制77
3.4 goto語句80
3.5 條件運算81
3.6 分支結構應用舉例83
3.6.1 閏年問題83
3.6.2 判斷等邊三角形84
3.6.3 求解一元二次方程85
3.6.4 學生成績分等顯示86
小結88
習題388
實驗3 分支結構程序設計91
第4章 循環結構程序設計96
4.1 while循環結構程序96
4.1.1 while循環程序示例96
4.1.2 while語句97
4.1.3 自增、自減運算99
4.2 do-while循環結構程序101
4.2.1 do-while循環程序示例101
4.2.2 do-while語句102
4.3 for循環結構程序102
4.3.1 for循環程序示例102
4.3.2 for語句103
4.3.3 逗號表達式105
4.4 循環體中的控制命令105
4.4.1 break命令106
4.4.2 continue命令107
4.5 多重循環程序108
4.5.1 多重循環程序示例108
4.5.2 多重循環的一般結構109
4.6 循環結構應用舉例110
4.6.1 字元統計110
4.6.2 比賽評分111
4.6.3 學生成績分等統計113
4.6.4 求最大公約數115
4.6.5 Fibonacci數列116
4.6.6 乘法表117
4.6.7 搬磚問題118
4.6.8 找素數120
4.6.9 哥德巴赫猜想121
小結122
習題4123
實驗4 循環結構程序設計128
第5章 數組程序設計131
5.1 一維數組程序設計131
5.1.1 逆序輸出數據程序131
5.1.2 一維數組的定義132
5.1.3 數值型一維數組的輸入和輸出133
5.1.4 數值型一維數組的初始化135
5.1.5 字元型一維數組的初始化137
5.1.6 一維數組的存儲138
5.2 字元串操作138
5.2.1 字元串的輸入輸出138
5.2.2 多字元串操作函數143
5.2.3 其他字元串操作函數145
5.3 二維數組程序設計145
5.3.1 矩陣求和程序146
5.3.2 二維數組的定義146
5.3.3 二維數組的輸入和輸出147
5.3.4 二維數組的初始化148
5.3.5 二維數組的存儲150
5.4 數組應用151
5.4.1 排序151
5.4.2 查找153
5.4.3 單詞統計155
5.4.4 矩陣運算156
5.4.5 成績處理161
5.4.6 楊輝三角形164
小結165
習題5166
實驗5 數組程序設計168
第6章 函數程序設計171
6.1 函數概述171
6.2 自定義函數示例172
6.3 函數定義及調用173
6.3.1 函數定義173
6.3.2 函數值和return命令175
6.3.3 函數調用176
6.4 函數嵌套和遞歸函數181
6.4.1 函數嵌套182
6.4.2 遞歸函數183
6.5 數組作為函數的參數187
6.5.1 數組元素作為函數參數187
6.5.2 一維數組名作為函數參數189
6.5.3 用一維數組求解二維數組問題191
6.6 函數應用舉例192
6.6.1 計算長方體的面積192
6.6.2 利用遞歸函數計算Fibonacci數列193
6.6.3 排序函數的設計與應用194
6.7 變數的作用域和存儲類型196
6.7.1 變數的作用域196
6.7.2 變數的存儲類型198
小結200
習題6200
實驗6 使用自定義函數的程序設計205
第7章 指針程序設計208
7.1 指針概述208
7.1.1 指針變數208
7.1.2 變數的直接訪問和間接訪問209
7.2 指針變數的定義和使用209
7.2.1 指針變數程序示例209
7.2.2 定義指針變數210
7.2.3 使用指針變數210
7.3 指針與數組213
7.3.1 指針與一維數組213
7.3.2 指針與二維數組216
7.3.3 指針與字元串219
7.3.4 指針數組221
7.4 指針作為函數的參數222
7.4.1 簡單指針變數作函數參數222
7.4.2 指向數組的指針作函數的參數224
7.4.3 字元串指針作函數的參數225
7.4.4 指針數組作函數的參數226
??7.4.5 使用帶參數的main()函數228
7.5 指針函數和指向函數的指針變數229
7.5.1 指針函數229
??7.5.2 指向函數的指針變數230
7.6 指針應用舉例231
小結237
習題7237
實驗7 指針程序設計242
第8章 結構體程序設計245
8.1 結構體數據概述245
8.2 結構體類型和結構體變數246
8.2.1 使用結構體變數存儲學生信息246
8.2.2 定義結構體數據類型247
8.2.3 結構體變數的定義及使用248
8.3 結構體數組252
8.3.1 結構體數組概述252
8.3.2 結構體數組的初始化253
8.3.3 利用結構體數組管理學生信息253
8.4 結構體指針變數255
8.4.1 結構體指針變數的定義及使用255
8.4.2 結構體指針作函數的參數257
8.5 使用鏈表動態存儲數據258
8.5.1 使用鏈表存儲學生信息258
8.5.2 鏈表的特點259
8.5.3 動態內存管理函數260
8.5.4 定義鏈表結構261
8.6 鏈表的基本操作262
8.6.1 鏈表結點的插入262
8.6.2 鏈表結點的刪除266
8.6.3 鏈表結點的查找268
8.7 結構體應用舉例271
8.7.1 字元串加密271
8.7.2 學生成績排序273
8.7.3 Josephus問題276
小結279
習題8279
實驗8 結構體程序設計284
第9章 文件程序設計288
9.1 文件概述288
9.1.1 文件的概念288
9.1.2 文件的分類289
9.1.3 文件的一般操作過程290
9.1.4 文件的指針291
9.2 文件的基本操作291
9.2.1 打開和關閉文件292
9.2.2 最基本的文件讀寫函數293
9.3 文件的數據塊讀寫操作296
9.3.1 fwrite()函數296
9.3.2 fread()函數298
9.4 文件的其他操作299
9.4.1 文件的格式化讀寫300
9.4.2 文件的隨機讀寫301
9.4.3 文件的字元串操作304
9.5 文件應用舉例305
9.5.1 文件複製305
9.5.2 存儲在文件中的學生成績排序306
小結308
習題9308
實驗9 文件程序設計311
附錄A C語言的運算符316
附錄B C語言的保留關鍵字318
附錄C 常用ASCII碼字元對照表319
參考文獻320