C語言程序設計(第三版)
-
【作 者】主編 任正云 李素若 賴玲
【I S B N 】978-7-5170-4355-3
【責任編輯】李炎
【適用讀者群】本專通用
【出版時間】2016-06-28
【開 本】16開
【裝幀信息】壓紋(啞膜)
【版 次】第3版第1次印刷
【頁 數】372
【千字數】576
【印 張】23.25
【定 價】¥46
【叢 書】應用技術型高等教育“十三五”規劃教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書結合作者多年教學和科研實踐的經驗和體會,全面系統、深入淺出地闡述了C語言的基本概念、語法和語義,以及用C語言進行程序設計的基本方法和技巧。在保留第二版的描述風格、編排體系和選例的基礎之上,關注了C99標準,在介紹C99標準時注意與C89標準比較,并根據學生的認知規律和知識體系的需要,將第二版的指針分解成兩章,其中地址和指針提到數組之前,指針的應用放置在數組之后。
改版后的主要內容包括數據類型和表達式、流程控制、算法分析、函數與程序結構等。概念準確、結構合理、層次清晰、實例豐富,選材精心,語言通俗易懂。本次再版以Visual C++ 6.0環境為基礎進行修訂,內容更豐富,敘述更詳細,描述更準確。每章末都配有習題,可供不同層次的讀者練習。
本書十分注重知識的應用,重點章節都給出了應用舉例。本書的一個亮點是給出了學生成績管理系統、大獎賽評分系統和萬年歷的程序,雖然所給出的程序代碼不一定最優,但可以引導讀者分析,給讀者以啟發。
本書是一本準確而又較全面反映標準C語言的教材,配有《C語言程序設計上機指導與習題解答》(第三版)一書。既可供高等院校計算機和非計算機專業本、專科或培訓班教學使用,又是廣大科技工作者和編程愛好者的一本很好的參考書。
本書結合作者多年教學和科研實踐的經驗和體會,全面系統、深入淺出地闡述了C語言的基本概念、語法和語義,以及用C語言進行程序設計的基本方法和技巧。在保留第二版的描述風格、編排體系和選例的基礎之上,關注了C99標準,在介紹C99標準時注意與C89標準比較,并根據學生的認知規律和知識體系的需要,將第二版的指針分解成兩章,其中地址和指針提到數組之前,指針的應用放置在數組之后。
改版后的主要內容包括數據類型和表達式、流程控制、算法分析、函數與程序結構等。概念準確、結構合理、層次清晰、實例豐富,選材精心,語言通俗易懂。本次再版以Visual C++ 6.0環境為基礎進行修訂,內容更豐富,敘述更詳細,描述更準確。每章末都配有習題,可供不同層次的讀者練習。
本書十分注重知識的應用,重點章節都給出了應用舉例。本書的一個亮點是給出了學生成績管理系統、大獎賽評分系統和萬年歷的程序,雖然所給出的程序代碼不一定最優,但可以引導讀者分析,給讀者以啟發。
本書是一本準確而又較全面反映標準C語言的教材,配有《C語言程序設計上機指導與習題解答》(第三版)一書。既可供高等院校計算機和非計算機專業本、專科或培訓班教學使用,又是廣大科技工作者和編程愛好者的一本很好的參考書。
本書出版以來,經過多年的使用,得到了廣大教師和讀者的肯定,特別是2010年被教育部高等學校高職高專計算機類專業教學指導委員會評為優秀教材,第二版榮獲湖北省第七屆教學成果獎。根據教育部高等學校計算機基礎課程教學指導委員會制定的《高等學校計算機基礎核心課程教學實施方案》的要求,針對應用型人才培養的目標,應大多數教師和讀者的要求,結合廣大讀者的寶貴意見和C語言版本的更新,在第二版的基礎之上進行了如下幾個方面的改進。
(1)介紹了C99標準,注意和C89標準相比較,補充了C99的最新特性,使知識體系更加適應現代風格。
(2)將上機環境改為Visual C++ 6.0。基本數據類型等內容做相應的修改和調整。
(3)語法講解更注意通俗易懂,知識的體系結構更符合認知規律。在涉及語法的講解過程中,除了給出語法知識的講解外,每個知識點都給出了例題和案例,突出應用特性,把程序設計中最基本、最新、最有價值的思想和方法滲透到經典的C語言中,其目的就是使讀者在學習C語言之后,今后無論使用什么語言編程,都能使用這些方法和思想。
(4)力求暴露程序設計的思維過程,用最簡明的語言,選用最經典的實例,采用類比的方法來挖掘程序設計的精髓,給讀者帶來全新的學習體驗,領悟C語言之妙。
(5)適當增加了一些例題和習題。
(6)本書的配套教材《C語言程序設計上機指導與習題解答(第三版)》做了全面的改版,編譯環境只介紹了Visual C++ 6.0,增加了計算機等級考試中的相關內容和上機題例,選編了一些例題和習題,每個例題和習題都給出了詳細的解答,盡管不是最佳方法,但給讀者學習C語言一定會有不小的幫助。
(7)以本書為主講教材的視頻文件放置在http://61.136.197.232/shzdccxsj上,該視頻2014年被評定為湖北省精品視頻公開課,準確、精煉、詳細地再現了C語言的相關知識,可以滿足學生自主學習的需要。
總之,通過這次修訂,使本書內容更加豐富,敘述更加詳細,描述更加準確,更加有利于讀者的學習。
本書此次改版由任正云、李素若、賴玲擔任主編,琚輝、胡玉榮、張牧、肖衡擔任副主編,全書的第1、2、3、4、5、6、7章由任正云編寫,第8、9、10、11章由賴玲編寫,胡玉榮參與了第4、6章的修訂,琚輝參與了第7章的修訂,李素若參與了第8章的修訂,張牧參與了第10、11章的修訂,肖衡參與了第6章的修訂,全書由任正云統稿,賴玲負責全書的校對,所有的程序由王婭紛、王曉雨、嚴永松、琚輝和陳萬華負責調試,在編寫過程中得到了主審田原教授和相關專家的指導,荊楚理工學院對本書的出版給予了極大的支持,在此一并表示衷心的感謝。
由于作者水平有限,書中難免還會存在不足之處,再次懇請廣大讀者批評指正。
編 者
2016年2月
第1章 C語言程序設計基礎 1
1.1 程序設計及程序設計語言 1
1.1.1 程序設計語言的發展 1
1.1.2 C語言的發展過程 3
1.2 C語言的特點 4
1.3 C程序結構 5
1.3.1 簡單的C程序介紹 5
1.3.2 C程序結構 7
1.4 源程序的編輯、編譯、鏈接與運行 8
習題 10
第2章 C語言的數據類型與基本操作 13
2.1 常量與變量 13
2.1.1 常量 13
2.1.2 變量 17
2.2 標識符和關鍵字 20
2.3 整型數在計算機中的存儲方式 21
2.4 有符號的數據類型和無符號的數據類型 23
2.5 運算符和表達式 24
2.5.1 賦值運算符和賦值表達式 25
2.5.2 算術運算符和算術表達式 27
2.5.3 長度測試運算符sizeof 28
2.5.4 關系運算符和關系表達式 29
2.5.5 邏輯運算符與邏輯表達式 30
2.5.6 條件運算符與條件運算表達式 33
2.5.7 逗號運算符與逗號表達式 35
2.5.8 位運算 36
2.6 不同類型數據間的轉換 39
習題 41
第3章 順序結構程序設計 48
3.1 算法 48
3.1.1 算法的組成要素 48
3.1.2 算法的表示方法 49
3.1.3 自頂向下、逐步細化的設計過程 52
3.2 C語句概述 55
3.2.1 控制語句 55
3.2.2 表達式語句 55
3.2.3 復合語句 56
3.3 數據的輸入和輸出 57
3.3.1 數據的輸出函數 57
3.3.2 刷新輸出 63
3.3.3 scanf函數 63
3.4 getchar函數與putchar函數 67
3.4.1 字符輸出函數putchar() 67
3.4.2 字符輸入函數getchar() 68
習題 69
第4章 選擇結構程序設計 75
4.1 if語句 75
4.1.1 if語句的形式 75
4.1.2 if語句的嵌套 81
4.1.3 良好結構的程序 84
4.2 switch語句 85
4.3 程序舉例 87
習題 93
第5章 循環結構程序設計 100
5.1 while語句 100
5.2 do-while語句 107
5.3 for語句 109
5.4 三種循環語句的比較 113
5.5 循環的嵌套 114
5.6 break語句和continue語句 119
5.6.1 break語句 120
5.6.2 continue語句 121
5.7 綜合實例 121
5.7.1 列舉算法 121
5.7.2 試探算法 123
5.7.3 密碼問題 125
習題 126
第6章 函數 135
6.1 函數概述 135
6.1.1 模塊化程序設計方法 135
6.1.2 函數的概念 136
6.2 函數的定義與聲明 138
6.2.1 函數定義 139
6.2.2 函數的參數和返回值 140
6.2.3 函數的聲明 141
6.3 函數的調用 141
6.3.1 函數調用的一般形式 141
6.3.2 函數參數的傳遞方式 142
6.3.3 函數的嵌套調用 145
6.3.4 函數的遞歸調用 146
6.4 局部變量和全局變量 150
6.4.1 局部變量 150
6.4.2 全局變量 152
6.5 變量的存儲屬性 155
6.5.1 自動變量(auto) 156
6.5.2 寄存器變量(register) 157
6.5.3 靜態變量(static) 158
6.5.4 外部變量 159
6.6 編譯預處理 161
6.6.1 宏定義 161
6.6.2 文件包含 167
6.6.3 條件編譯 169
6.7 應用舉例 170
習題 179
第7章 地址和指針 188
7.1 地址和指針的概念 188
7.2 指針變量 190
7.2.1 指針變量的定義 190
7.2.2 指針變量的引用 190
7.2.3 指針變量作為函數的參數 192
7.3 指向指針的指針 195
習題 196
第8章 數組 200
8.1 一維數組 200
8.1.1 一維數組的定義 200
8.1.2 一維數組的初始化 201
8.1.3 一維數組元素的引用 202
8.1.4 一維數組的使用 202
8.2 二維數組和多維數組 208
8.2.1 二維數組和多維數組的概念及其
定義 208
8.2.2 二維數組的初始化 210
8.2.3 二維數組和多維數組的引用 212
8.2.4 二維數組的經典實例 213
8.3 字符數組 216
8.3.1 字符數組的定義 217
8.3.2 字符數組的輸入輸出 218
8.3.3 常用字符串函數 219
8.3.4 字符數組的使用 222
8.3.5 常數數組 223
8.3.6 C99標準中的變長數組 224
8.4 數組應用實例 224
8.4.1 排序 224
8.4.2 二分查找 228
8.4.3 選擇排序 230
8.4.4 撲克游戲的發牌 231
習題 233
第9章 指針的應用 239
9.1 一維數組與指針 239
9.1.1 數組名的特殊意義及其在訪問數組
元素中的作用 239
9.1.2 數組元素的指針 240
9.1.3 指針變量的運算 241
9.2 指針與二維數組 250
9.3 字符串與指針 255
9.3.1 字符串的表示形式 255
9.3.2 字符指針作為函數的參數 258
9.4 指針數組 261
9.4.1 指針數組的概念 261
9.4.2 指針數組與指向指針的指針變量 263
9.5 函數的指針 266
9.5.1 函數的指針和指向函數的指針變量 266
9.5.2 函數的指針作為函數參數 267
9.5.3 函數指針的應用 268
9.6 返回指針的函數 271
9.7 main()函數的返回值和參數 272
9.7.1 main()函數的返回值 273
9.7.2 main()函數的參數 273
習題 274
第10章 結構體和共用體 281
10.1 概述 281
10.2 結構體與結構體類型變量 281
10.2.1 結構體類型的定義 281
10.2.2 結構體類型變量的定義 282
10.2.3 結構體變量的引用 284
10.2.4 結構體變量的初始化 285
10.3 結構體數組 287
10.4 指向結構體類型數據的指針 290
10.4.1 指向結構體變量的指針 290
10.4.2 指向結構體數組的指針 291
10.4.3 結構體指針變量作為函數的參數 292
10.4.4 結構體與函數的類型 295
10.5 動態存儲分配與鏈表 297
10.5.1 鏈表的概念 297
10.5.2 動態存儲分配 298
10.5.3 建立和輸出鏈表 300
10.5.4 鏈表的基本操作 300
10.6 共用體 309
10.6.1 共用體的概念和定義 309
10.6.2 共用體變量的引用 311
10.7 枚舉類型 313
10.7.1 枚舉的定義與說明 314
10.7.2 枚舉類型變量的賦值與引用 314
10.8 用Typedef定義類型 315
10.9 應用實例——學生成績管理系統 316
習題 327
第11章 文件 332
11.1 文件的概念 332
11.1.1 文件的類型 332
11.1.2 C語言對文件的處理方法 333
11.1.3 文件的訪問方式 333
11.2 格式化數據文件操作 334
11.2.1 打開文件函數fopen() 334
11.2.2 關閉文件函數fclose() 336
11.2.3 從文件中格式化輸入數據fscanf() 336
11.2.4 向文件中格式化輸出函數fprintf() 337
11.2.5 文件建立 337
11.2.6 文件訪問 338
11.2.7 文件修改 339
11.3 字符數據文件操作 340
11.3.1 fgetc()函數——從指定文件中讀取
一個字符 340
11.3.2 fputc()函數——指向文件輸出一個
字符 341
11.3.3 fgets()函數——從文件中讀一個
字符串 342
11.3.4 fputs()函數——向指定文件輸出
一個字符串 342
11.3.5 feof()函數——文件操作是否到
文件尾的檢測函數 343
11.4 fread()與fwrite()函數 343
11.5 文件位置定位與錯誤處理函數 345
11.5.1 rewind()函數——將文件讀寫指針
定位于文件頭 345
11.5.2 fseek()函數——重新定位文件位
置指針 346
11.5.3 ftell()函數——測試當前讀寫指針
位置 346
11.5.4 ferror()函數——檢測文件流操作
中的錯誤 346
11.5.5 clearerr()函數——清除出錯標志 346
11.6 應用實例——大獎賽評分系統 346
習題 352
附錄A ASCII字符編碼一覽表 356
附錄B C語言的關鍵字和運算符 357
附錄C C語言庫函數 359
參考文獻 366
- C程序設計實踐教程 [劉衛國]
- C程序設計(慕課版) [劉衛國]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- SwiftUI完全開發 [李智威 著]
- MySQL數據庫項目式教程 [陳亞峰]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]
- C語言程序設計(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現實應用開發實踐 [主 編 劉龍]
- Python程序設計 [主編 姜春磊 陳虹潔]
- C語言程序設計實踐教程(活頁式) [主編 鄭茵 陳巍 滕泓虬]
- 面向對象程序設計 [主編 張勇 張平華 趙小龍]
- Python程序設計基礎及實戰 [主編 劉健]
- C語言程序設計 [姜雪]
- Python程序設計實踐教程 [王鶴琴 蔡正保]
- C++程序設計實踐教程(第三版) [主編 劉衛國 曹岳輝]
- C++程序設計(第三版) [主編 曹岳輝 劉衛國]
- C語言程序設計項目化教程(活頁式) [主編 張利華 潘曉利]
- 機器人流程自動化(RPA)實戰——基于UiPath [主編 金鑫]
- Python 語言程序設計實踐指導 [主編 張雙獅]
- Python程序設計案例教程 [主編 毛錦庚 鐘肖英 周賢來 ]
- 基于.NET Core框架的分布式系統架構設計 [湯佳 著]
- Python語言程序設計教程 [郭其標 房宜汕]
- C語言同步案例習題精解 [主編 肖朝暉]
- Python程序設計 [李國燕 王新強 劉佳 等編著]
- Python程序設計項目化教程(活頁式) [主編 盧鳳偉]
- Java編程基礎案例式教程 [主編 陳艷華 唐春蘭]
- Python語言同步案例習題精解 [主編 肖朝暉]
- Unity應用開發與實戰(微課版) [主 編 程永恒]
- PHP程序設計項目化教程 [主 編 杜海穎]