內(nèi) 容 簡 介
本書以Visual C++ 6.0為開發(fā)平臺,全面介紹了C語言的基礎(chǔ)知識、程序結(jié)構(gòu)及程序編寫技巧。全書共分為12章,包括引言、C語言基礎(chǔ)知識、順序結(jié)構(gòu)程序設(shè)計、選擇結(jié)構(gòu)程序設(shè)計、循環(huán)結(jié)構(gòu)程序設(shè)計、函數(shù)、預(yù)處理、數(shù)組、指針、結(jié)構(gòu)體與共用體、文件、位運算。
本書內(nèi)容豐富、結(jié)構(gòu)合理、思路清晰、語言簡練流暢、示例翔實,在準(zhǔn)確講解概念的基礎(chǔ)上力求通俗易懂,大量引入實例,分析程序設(shè)計思路,旨在培養(yǎng)學(xué)生的實踐動手能力。每章均配有豐富的例題和習(xí)題,并附有參考答案。
本書既可作為普通高校非計算機專業(yè)計算機公共課的教材,也可作為學(xué)習(xí)C語言程序設(shè)計的自學(xué)用書。
前 言
“C語言程序設(shè)計”是高校計算機專業(yè)和理工科專業(yè)重要的公共基礎(chǔ)課程之一。C語言的功能強大,使用靈活方便,移植性強,兼有高級語言和低級語言的特點,利用C語言可以編寫系統(tǒng)軟件和應(yīng)用軟件。
作者根據(jù)多年的教學(xué)經(jīng)驗,結(jié)合高校非計算機專業(yè)計算機基礎(chǔ)教學(xué)的最新大綱,在分析國內(nèi)外多種同類教材的基礎(chǔ)上,編寫了本書。本書力求通過理論聯(lián)系實際,采用計算思維的方法,引導(dǎo)和啟發(fā)學(xué)生掌握思考和解決問題的方法,達到舉一反三的目的。
本書共分12章,主要內(nèi)容如下:
第1章主要介紹C語言的發(fā)展過程及特點、C語言的結(jié)構(gòu)特點、C語言程序的執(zhí)行過程。
第2章主要介紹C語言的數(shù)據(jù)類型、標(biāo)識符、常量和變量、運算符和表達式等內(nèi)容。
第3章主要介紹算法的基本概念、C語言的基本語句、數(shù)據(jù)的輸入和輸出等內(nèi)容。
第4章主要介紹if結(jié)構(gòu)、if…else結(jié)構(gòu)、if語句的嵌套、switch語句。
第5章主要介紹while語句、do…while語句、for語句、循環(huán)的嵌套、break和continue語句在循環(huán)結(jié)構(gòu)中的應(yīng)用等內(nèi)容。
第6章主要介紹函數(shù)的基本概念、變量的作用域和存儲類型、內(nèi)部函數(shù)和外部函數(shù)、函數(shù)的遞歸調(diào)用等內(nèi)容。
第7章主要介紹宏定義、文件包含、條件編譯等內(nèi)容。
第8章主要介紹數(shù)組概述、一維數(shù)組、二維數(shù)組、字符數(shù)組與字符串等內(nèi)容。
第9章主要介紹指針概述、指針變量與簡單變量的關(guān)系、指針與數(shù)組、指針作為函數(shù)的參數(shù)、函數(shù)的返回值為指針、指向指針的指針等內(nèi)容。
第10章主要介紹結(jié)構(gòu)體類型、結(jié)構(gòu)體數(shù)組、結(jié)構(gòu)體變量與函數(shù)、共用體數(shù)據(jù)類、枚舉數(shù)據(jù)類型、鏈表的概念等內(nèi)容。
第11章主要介紹C文件的基本概念和分類、文件的基本操作、文件的定位、出錯的檢測等內(nèi)容。
第12章主要介紹位的取反運算、左移運算、右移運算、與運算、或運算、異運算、復(fù)合位運算等內(nèi)容。此章為選講章節(jié)。
本書內(nèi)容豐富、結(jié)構(gòu)合理、思路清晰、語言簡練流暢,書中所有示例都已在Visual C++ 6.0 環(huán)境下調(diào)試并運行通過。為了幫助讀者更好地掌握C語言,每章末尾都安排了類型豐富的習(xí)題,并且隨書提供了自主開發(fā)的“C語言輔導(dǎo)學(xué)習(xí)系統(tǒng)”軟件。輔導(dǎo)學(xué)習(xí)系統(tǒng)中有“學(xué)習(xí)指導(dǎo)”、“單元練習(xí)”、“綜合練習(xí)”以及“經(jīng)典算法”等模塊,緊密結(jié)合教學(xué)內(nèi)容,已應(yīng)用于教學(xué)實踐多年,深受師生好評。讀者依據(jù)本書循序漸進地學(xué)習(xí),可以鞏固基本知識、培養(yǎng)實踐能力、增強對基本概念的理解和解決實際問題的能力,能夠比較容易地掌握C語言的主要用法。
本書獲內(nèi)蒙古科技大學(xué)教材建設(shè)項目資助,由內(nèi)蒙古科技大學(xué)計算機教學(xué)基地的教師編寫,由黃迎久、龐潤芳任主編,徐揚、賈茹、趙軍富、胡曉燕任副主編。第1章和第2章由黃迎久編寫;第3章、第4章和前言由徐揚編寫;第5章和第11章由龐潤芳編寫;第6章、第7章和第12章由賈茹編寫;第8章和附錄由趙軍富編寫;第9章和第10章由胡曉燕編寫。全書由黃迎久負(fù)責(zé)統(tǒng)稿。
由于作者水平有限,書中的疏漏和瑕疵在所難免,歡迎廣大讀者批評指正。
編 者
目 錄第1章 引言 11.1 C語言的發(fā)展過程及特點 21.1.1 C語言的發(fā)展過程 21.1.2 C語言的特點 21.2 簡單的C語言程序 31.3 C語言程序的結(jié)構(gòu) 51.4 C語言程序的執(zhí)行 61.4.1 編譯源程序 61.4.2 鏈接目標(biāo)程序 61.4.3 C語言開發(fā)工具簡介 7本章小結(jié) 12習(xí)題 13第2章 C語言基礎(chǔ)知識 152.1 C語言的數(shù)據(jù)類型 162.1.1 整型數(shù)據(jù) 162.1.2 浮點型數(shù)據(jù) 182.1.3 字符型數(shù)據(jù) 192.2 標(biāo)識符、常量和變量 202.2.1 標(biāo)識符 202.2.2 常量 212.2.3 變量 232.3 運算符與表達式 242.3.1 概述 242.3.2 算術(shù)運算符及算術(shù)表達式 252.3.3 賦值運算符及賦值表達式 262.3.4 自增、自減運算符 272.3.5 關(guān)系運算符及關(guān)系表達式 282.3.6 邏輯運算符及邏輯表達式 292.3.7 位運算符及位運算 302.3.8 條件運算符及條件表達式 312.3.9 逗號運算符及逗號表達式 322.3.10 數(shù)據(jù)類型的轉(zhuǎn)換 322.4 小型實訓(xùn)案例 33本章小結(jié) 34習(xí)題 34第3章 順序結(jié)構(gòu)程序設(shè)計 373.1 算法 383.1.1 算法的概念 383.1.2 算法的表示 393.2 結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu) 403.3 C語言的基本語句 403.4 數(shù)據(jù)的輸入/輸出 423.4.1 格式輸出函數(shù)printf( ) 423.4.2 格式輸入函數(shù)scanf( ) 433.4.3 格式字符 443.4.4 字符輸入/輸出函數(shù) 473.5 程序應(yīng)用實例 483.6 小型實訓(xùn)案例 50本章小結(jié) 51習(xí)題 51第4章 選擇結(jié)構(gòu)程序設(shè)計 554.1 if結(jié)構(gòu) 564.1.1 if語句 564.1.2 if…else語句 574.1.3 if語句的嵌套 584.2 switch語句 604.2.1 switch語句的一般格式 604.2.2 break語句在switch語句中的應(yīng)用 624.3 程序應(yīng)用實例 634.4 小型實訓(xùn)案例 65本章小結(jié) 66習(xí)題 66第5章 循環(huán)結(jié)構(gòu)程序設(shè)計 715.1 概述 725.2 while語句 725.3 do…while語句 765.4 for語句 775.5 循環(huán)的嵌套 795.6 break語句與continue語句 805.6.1 break語句 805.6.2 continue語句 815.6.3 break語句與continue的比較 835.7 幾種循環(huán)的比較 835.8 程序應(yīng)用實例 835.9 小型實訓(xùn)案例 89本章小結(jié) 90習(xí)題 90第6章 函數(shù) 956.1 函數(shù)概述 966.1.1 函數(shù)的定義 976.1.2 函數(shù)的聲明和調(diào)用 1006.1.3 函數(shù)的參數(shù)傳遞 1056.2 變量的作用域和存儲類型 1076.2.1 變量的作用域 1086.2.2 變量的存儲類型 1106.3 內(nèi)部函數(shù)與外部函數(shù) 1146.4 函數(shù)的遞歸調(diào)用 1166.5 程序應(yīng)用實例 1176.6 小型實訓(xùn)案例 119本章小結(jié) 120習(xí)題 121第7章 預(yù)處理 1277.1 宏定義 1287.2 文件包含 1307.3 條件編譯 131本章小結(jié) 133習(xí)題 133第8章 數(shù)組 1378.1 概述 1388.2 一維數(shù)組 1398.2.1 一維數(shù)組的定義 1398.2.2 一維數(shù)組的初始化 1408.2.3 一維數(shù)組元素的引用 1408.2.4 一維數(shù)組的應(yīng)用 1428.3 二維數(shù)組 1478.3.1 二維數(shù)組的定義 1478.3.2 二維數(shù)組的初始化 1488.3.3 二維數(shù)組的引用 1498.3.4 二維數(shù)組的應(yīng)用 1498.4 字符數(shù)組與字符串 1528.4.1 字符數(shù)組 1528.4.2 字符串 1538.4.3 字符串處理函數(shù) 1558.4.4 字符數(shù)組的應(yīng)用 1598.5 數(shù)組作函數(shù)參數(shù) 1608.5.1 數(shù)組元素作函數(shù)實參 1608.5.2 數(shù)組名作函數(shù)實參 1618.6 小型實訓(xùn)案例 162本章小結(jié) 163習(xí)題 164第9章 指針 1719.1 指針概述 1729.1.1 指針變量的定義 1729.1.2 指針變量的初始化 1739.1.3 指針變量的引用 1749.1.4 指針的運算 1749.2 指針變量與簡單變量的關(guān)系 1759.3 指針與數(shù)組 1779.3.1 指向一維數(shù)組的指針 1779.3.2 指向多維數(shù)組的指針 1789.3.3 字符指針 1829.3.4 指針數(shù)組 1859.4 指針作為函數(shù)的參數(shù) 1869.5 函數(shù)的返回值為指針 1889.6 指向函數(shù)的指針 1899.6.1 指向函數(shù)的指針變量定義 1899.6.2 函數(shù)指針變量的使用 1909.7 指向指針的指針 1919.8 程序應(yīng)用實例 1929.9 小型實訓(xùn)案例 194本章小結(jié) 195習(xí)題 196第10章 結(jié)構(gòu)體與共用體 20110.1 結(jié)構(gòu)體類型 20210.1.1 結(jié)構(gòu)體的概念 20210.1.2 結(jié)構(gòu)體類型的定義 20210.1.3 結(jié)構(gòu)體變量的定義 20410.1.4 結(jié)構(gòu)體變量的初始化 20510.1.5 結(jié)構(gòu)體變量成員的引用 20610.2 結(jié)構(gòu)體數(shù)組 20810.2.1 結(jié)構(gòu)體數(shù)組的定義 20810.2.2 結(jié)構(gòu)體數(shù)組的初始化 20810.2.3 結(jié)構(gòu)體數(shù)組的引用 20910.3 結(jié)構(gòu)體變量與函數(shù) 21010.4 共用體數(shù)據(jù)類型 21210.4.1 共用體類型的聲明 21210.4.2 共用體變量的定義、初始化及引用 21310.5 枚舉數(shù)據(jù)類型 21510.5.1 枚舉類型的定義 21510.5.2 枚舉變量的定義 21510.5.3 有關(guān)枚舉型數(shù)據(jù)的操作 21610.6 鏈表的概念 21610.6.1 動態(tài)分配內(nèi)存 21710.6.2 單鏈表的建立 21810.6.3 從單鏈表中刪除節(jié)點 22010.6.4 向鏈表中插入節(jié)點 22010.7 小型實訓(xùn)案例 222本章小結(jié) 223習(xí)題 223第11章 文件 22911.1 C語言文件的基本概念與分類 23011.1.1 文件的基本概念 23011.1.2 文件的分類 23011.2 文件的基本操作 23111.2.1 文件類型指針 23111.2.2 打開文件函數(shù)fopen( ) 23211.2.3 關(guān)閉文件函數(shù)fclose( ) 23311.3 文件的讀寫 23311.3.1 字符讀/寫函數(shù) 23411.3.2 字符串讀/寫函數(shù) 23711.3.3 數(shù)據(jù)塊讀/寫函數(shù) 23711.3.4 格式化讀/寫函數(shù) 23811.4 文件的定位 23911.4.1 rewind()函數(shù) 23911.4.2 fseek()函數(shù) 23911.4.3 ftell()函數(shù) 24011.5 出錯的檢測 24111.6 小型實訓(xùn)案例 242本章小結(jié) 243習(xí)題 243第12章 位運算 24712.1 按位取反運算 24812.2 按位左移運算 24912.3 按位右移運算 24912.4 按位與運算 25012.5 按位或運算 25112.6 按位異或運算 25212.7 復(fù)合位運算符 253本章小結(jié) 254習(xí)題 254附錄A C語言的關(guān)鍵字 257附錄B ASCII碼表 259附錄C 常用庫函數(shù) 260附錄D C運算符的優(yōu)先級與結(jié)合性 267