C語言是在當今軟件開發(fā)領域中應用十分廣泛的一種語言。本書全面介紹C語的基本概念、數據類型、語句及結構特點,系統(tǒng)地講述C語言程序設計的基本思想和方法。為配合C語言上機操作學習,書后附錄中提供各章節(jié)的實驗內容,并提供VC 2010編程環(huán)境的上機使用圖例,同時還在出版社的網站上提供電子版教學資料。全書選材先進,內容豐富,講述力求理論聯(lián)系實際、深入淺出、循序漸進,注重培養(yǎng)讀者的程序設計能力及良好的程序設計風格與習慣。
前 言<br/>C語言概念簡潔,數據類型豐富,表達能力強,運算符多而靈活,程序結構性和可讀性好,有利于培養(yǎng)良好的編程風格,易于體現結構化程序設計思想。C語言既具有高級語言程序設計的特點,又具有匯編語言的功能;既能有效地進行算法描述,又能對硬件直接進行操作;既適合于編寫應用程序,又適合于開發(fā)系統(tǒng)軟件,是當今世界上應用最廣泛、最具影響力的程序設計語言之一。C語言本身還具有整個語言緊湊整齊、設計精巧、編輯方便、編譯與目標代碼運行效率高、操作簡便、使用靈活等許多鮮明的特點,其擴充的圖形、彩色、窗口等功能及高效的集成開發(fā)環(huán)境尤其贏得了廣大用戶的喜愛,得到了廣泛應用。<br/>本書全面介紹C語言的概念、特性和結構化程序設計方法。全書共分13章。第1章介紹C語言程序設計的基本知識;第2章介紹C語言的基本數據類型、常量和變量;第3章介紹C語言的運算符與表達式;第4章、第5章、第6章介紹使用C語言進行結構化程序設計的基本方法,包括順序結構、分支結構、循環(huán)結構及其設計方法;第7章、第8章介紹C語言中數組和函數的使用;第9章、第10章介紹編譯預處理、指針;第11章詳細介紹結構體、共用體;第12章介紹C語言的文件操作;第13章介紹位運算。附錄A提供10個實驗內容及VC 2010版C語言編程環(huán)境的使用方法(全國計算機等級考試使用該環(huán)境,方便考生參加計算機等級考試);附錄B介紹全國計算機二級考試公共基礎知識要點;附錄C介紹C語言庫函數;附錄D介紹字符的ASCII碼表。<br/>需要說明的是,由于C語言課程的學時較少,書中加星號的章節(jié),請讀者自學。<br/>本書是作者根據多年來從事C語言及計算機專業(yè)相關課程的教學實踐,在多次編寫講義、教材的基礎上編寫而成的,內容充實,循序漸進,選材上注重系統(tǒng)性、先進性、實用性。全書精選大量例題,且都用漢字注釋,所有例題均已上機通過,可直接引用;書中的例題提供了非常直觀的操作和運行結果,為C語言上機操作提供方便。<br/>本書由吉林建筑大學電氣與計算機學院郭秀娟、于全通擔任主編,王抵修擔任副主編。在本書的寫作過程中,得到了多位一線授課教師的大力支持和幫助,在此表示衷心感謝。<br/>由于作者水平有限,加之時間倉促,書中錯誤和不當之處在所難免,敬請讀者批評指正。<br/><br/><br/>編者 <br/>2019年3月 <br/>
郭秀娟,女,吉林建筑大學教授,本科畢業(yè)于長春地質學院應用地球物理系,博士畢業(yè)于吉林大學地球探測與信息技術學院,長期從事計算機專業(yè)的教學與研究工作。
目 錄<br/>第1章 C語言概述1<br/>1.1 C語言的發(fā)展與特點1<br/>1.1.1 C語言的發(fā)展1<br/>1.1.2 C語言的特點2<br/>1.2 C語言的字符集與標識符3<br/>1.3 程序舉例4<br/>1.4 本章小結7<br/>習題8<br/>第2章 C語言數據類型9<br/>2.1 數據類型9<br/>2.2 常量9<br/>2.2.1 整型常量9<br/>2.2.2 實型常量10<br/>2.2.3 字符常量11<br/>2.2.4 字符串常量12<br/>2.2.5 符號常量13<br/>2.3 變量13<br/>2.3.1 整型變量14<br/>2.3.2 實型變量17<br/>2.3.3 字符變量18<br/>2.3.4 變量賦初值20<br/>2.4 本章小結20<br/>習題21<br/>第3章 C語言的運算符與表達式22<br/>3.1 C運算符簡介22<br/>3.1.1 C運算符的種類22<br/>3.1.2 C語言運算符的優(yōu)先級及結合性23<br/>3.2 算術運算24<br/>3.2.1 算術運算符24<br/>3.2.2 自增、自減運算符25<br/>3.3 不同類型數據間的混合運算與類型轉換27<br/>3.4 賦值運算符和賦值表達式29<br/>3.5 逗號運算符和逗號表達式31<br/>3.6 本章小結31<br/>習題32<br/>第4章 順序結構程序設計33<br/>4.1 C程序中的語句33<br/>4.2 賦值語句35<br/>4.3 數據的輸入/輸出36<br/>4.3.1 字符數據的輸入/輸出36<br/>4.3.2 格式輸出函數38<br/>4.3.3 格式輸入函數41<br/>4.4 程序舉例46<br/>4.5 本章小結48<br/>習題48<br/>第5章 分支結構程序設計50<br/>5.1 關系運算符和表達式50<br/>5.1.1 關系運算符及其優(yōu)先次序50<br/>5.1.2 關系表達式50<br/>5.2 邏輯運算符和表達式51<br/>5.2.1 邏輯運算符及其優(yōu)先次序51<br/>5.2.2 邏輯運算的值52<br/>5.2.3 邏輯表達式52<br/>5.3 if語句53<br/>5.3.1 if語句的三種基本形式53<br/>5.3.2 if語句的嵌套57<br/>5.3.3 條件運算符和條件表達式59<br/>5.4 switch語句60<br/>5.5 程序舉例62<br/>5.6 本章小結64<br/>習題64<br/>第6章 循環(huán)結構程序設計66<br/>6.1 while語句66<br/>6.2 do-while語句68<br/>6.3 for語句70<br/>6.4 循環(huán)的嵌套72<br/>6.5 break和continue語句74<br/>6.5.1 break語句74<br/>6.5.2 continue語句74<br/>6.6 程序舉例76<br/>6.7 本章小結78<br/>習題78<br/>第7章 數組82<br/>7.1 一維數組82<br/>7.1.1 一維數組的定義及初始化83<br/>7.1.2 一維數組元素的引用85<br/>7.1.3 一維數組程序舉例86<br/>7.2 二維數組88<br/>7.2.1 二維數組的定義及初始化88<br/>7.2.2 二維數組元素的引用90<br/>7.2.3 二維數組程序舉例90<br/>7.3 字符數組91<br/>7.3.1 字符數組的定義及初始化91<br/>7.3.2 字符數組的引用92<br/>7.3.3 字符串和字符串結束標志92<br/>7.3.4 字符數組的輸入/輸出93<br/>7.3.5 字符串處理函數94<br/>7.4 程序舉例97<br/>7.5 本章小結102<br/>習題102<br/>第8章 函數104<br/>8.1 概述104<br/>8.2 函數定義的一般形式105<br/>8.3 函數參數與函數值107<br/>8.3.1 形參變量和實際參數107<br/>8.3.2 函數的返回值108<br/>8.4 函數的調用109<br/>8.4.1 函數調用的一般形式109<br/>8.4.2 函數調用的方式109<br/>8.4.3 函數調用的聲明110<br/>8.4.4 函數的嵌套調用111<br/>8.4.5 函數的遞歸調用113<br/>8.5 數組作為函數參數*114<br/>8.6 變量的作用域119<br/>8.6.1 局部變量119<br/>8.6.2 全局變量121<br/>8.7 變量的存儲類型*122<br/>8.7.1 變量的靜態(tài)和動態(tài)存儲方式122<br/>8.7.2 局部變量的存儲類型123<br/>8.7.3 全局變量的存儲類型124<br/>8.8 內部函數與外部函數*126<br/>8.9 本章小結126<br/>習題127<br/>第9章 預處理命令*129<br/>9.1 概述129<br/>9.2 宏定義129<br/>9.2.1 無參宏定義129<br/>9.2.2 帶參宏定義132<br/>9.3 文件包含134<br/>9.4 條件編譯135<br/>9.5 本章小結137<br/>習題137<br/>第10章 指針*140<br/>10.1 地址和指針的基本概念140<br/>10.1.1 指針變量的定義與初始化141<br/>10.1.2 指針運算143<br/>10.1.3 多級指針147<br/>10.2 指針與函數148<br/>10.2.1 指針作為函數參數148<br/>10.2.2 指針函數151<br/>10.2.3 指向函數的指針152<br/>10.3 指針與數組155<br/>10.3.1 指向一維數組的指針156<br/>10.3.2 二維數組與多維數組的指針表示法159<br/>10.4 指針與字符串164<br/>10.4.1 字符串的指針表示法164<br/>10.4.2 字符串數組167<br/>10.5 指針數組與命令行參數167<br/>10.5.1 指針數組167<br/>10.5.2 指針數組與命令行參數169<br/>10.6 程序舉例171<br/>10.7 本章小結175<br/>習題176<br/>第11章 結構體與共用體*178<br/>11.1 定義一個結構的一般形式178<br/>11.2 結構類型變量的說明178<br/>11.3 結構變量成員的表示方法181<br/>11.4 結構變量的賦值181<br/>11.5 結構變量的初始化182<br/>11.6 結構數組的定義182<br/>11.7 結構指針變量的說明和使用185<br/>11.7.1 指向結構變量的指針185<br/>11.7.2 指向結構數組的指針187<br/>11.7.3 結構指針變量作為函數參數188<br/>11.8 動態(tài)存儲分配189<br/>11.9 鏈表的概念191<br/>11.10 枚舉類型193<br/>11.10.1 枚舉類型的定義和枚舉變量的說明193<br/>11.10.2 枚舉類型變量的賦值和使用194<br/>11.11 類型定義符typedef195<br/>11.12 本章小結196<br/>習題197<br/>第12章 文件*199<br/>12.1 C文件概述199<br/>12.2 文件指針199<br/>12.3 文件的打開與關閉200<br/>12.3.1 文件的打開(fopen函數)200<br/>12.3.2 文件關閉函數(fclose函數)202<br/>12.4 文件的讀寫202<br/>12.4.1 字符讀寫函數fgetc和fputc202<br/>12.4.2 字符串讀寫函數fgets和fputs205<br/>12.4.3 數據塊讀寫函數fread和fwtrite207<br/>12.4.4 格式化讀寫函數fscanf和fprintf208<br/>12.5 文件的隨機讀寫209<br/>12.5.1 文件定位210<br/>12.5.2 文件的隨機讀寫210<br/>12.6 文件檢測函數211<br/>12.6.1 文件結束檢測函數feof211<br/>12.6.2 讀寫文件出錯檢測函數ferror211<br/>12.6.3 文件出錯標志和文件結束標志置0函數clearerr211<br/>12.7 本章小結212<br/>習題212<br/>第13章 位運算*213<br/>13.1 位運算符213<br/>13.1.1 按位與運算213<br/>13.1.2 按位或運算214<br/>13.1.3 按位異或運算214<br/>13.1.4 按位取反運算215<br/>13.1.5 左移運算215<br/>13.1.6 右移運算215<br/>13.2 位域(位段)216<br/>13.3 本章小結219<br/>習題219<br/>附錄A C語言上機實驗及作業(yè)220<br/>附錄B 全國計算機二級考試公共基礎知識要點259<br/>附錄C C語言庫函數287<br/>附錄D 字符的ASCII碼表292<br/>參考文獻293<br/><br/><br/>