C語言是在當今軟件開發(fā)領域中應用十分廣泛的一種語言。本書全面介紹C語的基本概念、數(shù)據(jù)類型、語句及結(jié)構(gòu)特點,系統(tǒng)地講述C語言程序設計的基本思想和方法。為配合C語言上機操作學習,書后附錄中提供各章節(jié)的實驗內(nèi)容,并提供VC 2010編程環(huán)境的上機使用圖例,同時還在出版社的網(wǎng)站上提供電子版教學資料。全書選材先進,內(nèi)容豐富,講述力求理論聯(lián)系實際、深入淺出、循序漸進,注重培養(yǎng)讀者的程序設計能力及良好的程序設計風格與習慣。
前 言<br/>C語言概念簡潔,數(shù)據(jù)類型豐富,表達能力強,運算符多而靈活,程序結(jié)構(gòu)性和可讀性好,有利于培養(yǎng)良好的編程風格,易于體現(xiàn)結(jié)構(gòu)化程序設計思想。C語言既具有高級語言程序設計的特點,又具有匯編語言的功能;既能有效地進行算法描述,又能對硬件直接進行操作;既適合于編寫應用程序,又適合于開發(fā)系統(tǒng)軟件,是當今世界上應用最廣泛、最具影響力的程序設計語言之一。C語言本身還具有整個語言緊湊整齊、設計精巧、編輯方便、編譯與目標代碼運行效率高、操作簡便、使用靈活等許多鮮明的特點,其擴充的圖形、彩色、窗口等功能及高效的集成開發(fā)環(huán)境尤其贏得了廣大用戶的喜愛,得到了廣泛應用。<br/>本書全面介紹C語言的概念、特性和結(jié)構(gòu)化程序設計方法。全書共分13章。第1章介紹C語言程序設計的基本知識;第2章介紹C語言的基本數(shù)據(jù)類型、常量和變量;第3章介紹C語言的運算符與表達式;第4章、第5章、第6章介紹使用C語言進行結(jié)構(gòu)化程序設計的基本方法,包括順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)及其設計方法;第7章、第8章介紹C語言中數(shù)組和函數(shù)的使用;第9章、第10章介紹編譯預處理、指針;第11章詳細介紹結(jié)構(gòu)體、共用體;第12章介紹C語言的文件操作;第13章介紹位運算。附錄A提供10個實驗內(nèi)容及VC 2010版C語言編程環(huán)境的使用方法(全國計算機等級考試使用該環(huán)境,方便考生參加計算機等級考試);附錄B介紹全國計算機二級考試公共基礎知識要點;附錄C介紹C語言庫函數(shù);附錄D介紹字符的ASCII碼表。<br/>需要說明的是,由于C語言課程的學時較少,書中加星號的章節(jié),請讀者自學。<br/>本書是作者根據(jù)多年來從事C語言及計算機專業(yè)相關課程的教學實踐,在多次編寫講義、教材的基礎上編寫而成的,內(nèi)容充實,循序漸進,選材上注重系統(tǒng)性、先進性、實用性。全書精選大量例題,且都用漢字注釋,所有例題均已上機通過,可直接引用;書中的例題提供了非常直觀的操作和運行結(jié)果,為C語言上機操作提供方便。<br/>本書由吉林建筑大學電氣與計算機學院郭秀娟、于全通擔任主編,王抵修擔任副主編。在本書的寫作過程中,得到了多位一線授課教師的大力支持和幫助,在此表示衷心感謝。<br/>由于作者水平有限,加之時間倉促,書中錯誤和不當之處在所難免,敬請讀者批評指正。<br/><br/><br/>編者 <br/>2019年3月 <br/>
郭秀娟,女,吉林建筑大學教授,本科畢業(yè)于長春地質(zhì)學院應用地球物理系,博士畢業(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 本章小結(jié)7<br/>習題8<br/>第2章 C語言數(shù)據(jù)類型9<br/>2.1 數(shù)據(jù)類型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 本章小結(jié)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)先級及結(jié)合性23<br/>3.2 算術運算24<br/>3.2.1 算術運算符24<br/>3.2.2 自增、自減運算符25<br/>3.3 不同類型數(shù)據(jù)間的混合運算與類型轉(zhuǎn)換27<br/>3.4 賦值運算符和賦值表達式29<br/>3.5 逗號運算符和逗號表達式31<br/>3.6 本章小結(jié)31<br/>習題32<br/>第4章 順序結(jié)構(gòu)程序設計33<br/>4.1 C程序中的語句33<br/>4.2 賦值語句35<br/>4.3 數(shù)據(jù)的輸入/輸出36<br/>4.3.1 字符數(shù)據(jù)的輸入/輸出36<br/>4.3.2 格式輸出函數(shù)38<br/>4.3.3 格式輸入函數(shù)41<br/>4.4 程序舉例46<br/>4.5 本章小結(jié)48<br/>習題48<br/>第5章 分支結(jié)構(gòu)程序設計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 本章小結(jié)64<br/>習題64<br/>第6章 循環(huán)結(jié)構(gòu)程序設計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 本章小結(jié)78<br/>習題78<br/>第7章 數(shù)組82<br/>7.1 一維數(shù)組82<br/>7.1.1 一維數(shù)組的定義及初始化83<br/>7.1.2 一維數(shù)組元素的引用85<br/>7.1.3 一維數(shù)組程序舉例86<br/>7.2 二維數(shù)組88<br/>7.2.1 二維數(shù)組的定義及初始化88<br/>7.2.2 二維數(shù)組元素的引用90<br/>7.2.3 二維數(shù)組程序舉例90<br/>7.3 字符數(shù)組91<br/>7.3.1 字符數(shù)組的定義及初始化91<br/>7.3.2 字符數(shù)組的引用92<br/>7.3.3 字符串和字符串結(jié)束標志92<br/>7.3.4 字符數(shù)組的輸入/輸出93<br/>7.3.5 字符串處理函數(shù)94<br/>7.4 程序舉例97<br/>7.5 本章小結(jié)102<br/>習題102<br/>第8章 函數(shù)104<br/>8.1 概述104<br/>8.2 函數(shù)定義的一般形式105<br/>8.3 函數(shù)參數(shù)與函數(shù)值107<br/>8.3.1 形參變量和實際參數(shù)107<br/>8.3.2 函數(shù)的返回值108<br/>8.4 函數(shù)的調(diào)用109<br/>8.4.1 函數(shù)調(diào)用的一般形式109<br/>8.4.2 函數(shù)調(diào)用的方式109<br/>8.4.3 函數(shù)調(diào)用的聲明110<br/>8.4.4 函數(shù)的嵌套調(diào)用111<br/>8.4.5 函數(shù)的遞歸調(diào)用113<br/>8.5 數(shù)組作為函數(shù)參數(shù)*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 內(nèi)部函數(shù)與外部函數(shù)*126<br/>8.9 本章小結(jié)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 本章小結(jié)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 指針與函數(shù)148<br/>10.2.1 指針作為函數(shù)參數(shù)148<br/>10.2.2 指針函數(shù)151<br/>10.2.3 指向函數(shù)的指針152<br/>10.3 指針與數(shù)組155<br/>10.3.1 指向一維數(shù)組的指針156<br/>10.3.2 二維數(shù)組與多維數(shù)組的指針表示法159<br/>10.4 指針與字符串164<br/>10.4.1 字符串的指針表示法164<br/>10.4.2 字符串數(shù)組167<br/>10.5 指針數(shù)組與命令行參數(shù)167<br/>10.5.1 指針數(shù)組167<br/>10.5.2 指針數(shù)組與命令行參數(shù)169<br/>10.6 程序舉例171<br/>10.7 本章小結(jié)175<br/>習題176<br/>第11章 結(jié)構(gòu)體與共用體*178<br/>11.1 定義一個結(jié)構(gòu)的一般形式178<br/>11.2 結(jié)構(gòu)類型變量的說明178<br/>11.3 結(jié)構(gòu)變量成員的表示方法181<br/>11.4 結(jié)構(gòu)變量的賦值181<br/>11.5 結(jié)構(gòu)變量的初始化182<br/>11.6 結(jié)構(gòu)數(shù)組的定義182<br/>11.7 結(jié)構(gòu)指針變量的說明和使用185<br/>11.7.1 指向結(jié)構(gòu)變量的指針185<br/>11.7.2 指向結(jié)構(gòu)數(shù)組的指針187<br/>11.7.3 結(jié)構(gòu)指針變量作為函數(shù)參數(shù)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 本章小結(jié)196<br/>習題197<br/>第12章 文件*199<br/>12.1 C文件概述199<br/>12.2 文件指針199<br/>12.3 文件的打開與關閉200<br/>12.3.1 文件的打開(fopen函數(shù))200<br/>12.3.2 文件關閉函數(shù)(fclose函數(shù))202<br/>12.4 文件的讀寫202<br/>12.4.1 字符讀寫函數(shù)fgetc和fputc202<br/>12.4.2 字符串讀寫函數(shù)fgets和fputs205<br/>12.4.3 數(shù)據(jù)塊讀寫函數(shù)fread和fwtrite207<br/>12.4.4 格式化讀寫函數(shù)fscanf和fprintf208<br/>12.5 文件的隨機讀寫209<br/>12.5.1 文件定位210<br/>12.5.2 文件的隨機讀寫210<br/>12.6 文件檢測函數(shù)211<br/>12.6.1 文件結(jié)束檢測函數(shù)feof211<br/>12.6.2 讀寫文件出錯檢測函數(shù)ferror211<br/>12.6.3 文件出錯標志和文件結(jié)束標志置0函數(shù)clearerr211<br/>12.7 本章小結(jié)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 本章小結(jié)219<br/>習題219<br/>附錄A C語言上機實驗及作業(yè)220<br/>附錄B 全國計算機二級考試公共基礎知識要點259<br/>附錄C C語言庫函數(shù)287<br/>附錄D 字符的ASCII碼表292<br/>參考文獻293<br/><br/><br/>