高等院!笆濉焙诵恼n程輔導叢書:C語言答疑解惑與典型題解
定 價:35 元
- 作者:吳婷 ,等 著
- 出版時間:2010/5/1
- ISBN:9787563522897
- 出 版 社:北京郵電大學出版社
- 中圖法分類:TP312C
- 頁碼:277
- 紙張:膠版紙
- 版次:1
- 開本:16開
《C語言答疑解惑與典型題解》深入淺出、系統(tǒng)地全面地介紹了C語言的核心內(nèi)容。全書共分16章,內(nèi)容包括C語言基礎(chǔ)、算法和結(jié)構(gòu)化程序設(shè)計、數(shù)據(jù)類型、運算符與表達式、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組、字符串、函數(shù)、指針、結(jié)構(gòu)體和共同體、預處理命令、位運算和文件操作等。
《C語言答疑解惑與典型題解》以“答疑解惑+典型題解”為主線組織編寫,每一章都列舉了大量的題目(其中也包括各大高校的考研真題),并對其進行了詳細分析評注,以便于幫助讀者掌握本章的重點及迅速回憶本章的內(nèi)容。《C語言答疑解惑與典型題解》結(jié)構(gòu)清晰、易教易學、實例豐富、學以致用、注重能力,對易混淆和歷年考題中較為關(guān)注的內(nèi)容進行了重點提示和講解。
《C語言答疑解惑與典型題解》既可以作為學習C語言的輔導書,可也以作為復習考研、計算機等級考試的參考書,更可以作為各類培訓班的培訓教程。此外,《C語言答疑解惑與典型題解》也非常適于教師的C語言教學以及各種編程自學人員閱讀參考。
《C語言答疑解惑與典型題解》特點 (1)結(jié)構(gòu)清晰、模式合理,《C語言答疑解惑與典型題解》基本按照正規(guī)教學課本(主流教材)的順序安排,不是對所有知識點詳細鋪陳,而是對核心知識點和?碱}型做重點講解。每章設(shè)計了兩個板塊,分別是:答疑解惑與典型題解。 各內(nèi)容安排為: 答疑解惑:突出核心知識,對重點、難點、易混淆的知識點進行剖析與解釋,讓學生掌握問題的本質(zhì)。包括對重要定理、定義和公式的剖析。 典型題解:精選出常考題型與考研真題進行解析,增強學生的解題能力、《C語言答疑解惑與典型題解》每一章都列舉了大量的題目,并對其進行了詳細分析評注,以便于幫助讀者掌握本章的重點及迅速回憶本章的內(nèi)容。(題目來源:一是主流教材課后難題,二是課程考試試題,三是經(jīng)典好題,四是考研真題。) (2)針對性強,實用性強!禖語言答疑解惑與典型題解》不是按照傳統(tǒng)輔導書那種“內(nèi)容簡介-例題分析-習題”的模式編寫,而是在聽取大量一線教師和學生們建議的基礎(chǔ)上,以突出針對性與實用性來安排內(nèi)容的。學生們最需要的是解決他們學習過程中的“疑惑”以及掌握解題方法!禖語言答疑解惑與典型題解》正是以“答疑解惑與典型題解”為中心,因而具有很強的針對性與實用性。 (3)《C語言答疑解惑與典型題解》重點定位在疑難解惑與解題方法上,開拓解題思路,提高分析問題的能力,不僅授人以“魚”,更在于授人以“漁”。 (4)《C語言答疑解惑與典型題解》聘請執(zhí)教多年且有較高學術(shù)造詣的名師編寫,質(zhì)量高,內(nèi)容清晰。
本書是為讀者學習C語言而編寫的教學輔導書,可幫助讀者復習課程的基本內(nèi)容,檢驗各種算法的掌握程度,培養(yǎng)和提高用C語言解決實際問題的能力,力爭使讀者在學完本書之后,在編程和解決實際問題方面都達到一個新的高度。
1.本書閱讀指南
本書對c語言知識點的常見問題進行了講解,同時分析了近幾年的考研題目,并給出了詳實的參考答案,讀者可以充分地了解各個學?佳蓄}目的難度,查缺補漏,有針對性地提高自己的水平。本書共分16章。
第1章主要講解C語言的基本概念和入門。
第2章主要講解C語言的算法和結(jié)構(gòu)化程序設(shè)計。
第3章主要講解C語言的數(shù)據(jù)類型。
第4章主要講解C語言的運算符和表達式。
第5章主要講解C語言順序結(jié)構(gòu)方面的知識。
第6章主要講解C語言選擇結(jié)構(gòu)方面的知識。
第7章主要講解C語言循環(huán)結(jié)構(gòu)方面的知識。
第8章主要講解C語言數(shù)組方面的知識。
第9章主要講解C語言字符串方面的知識。
第10章主要講解C語言的函數(shù),函數(shù)是C語言的核心所在,本章對函數(shù)的定義用法等進行了詳細講解。
第11章主要講解C語言指針方面的知識。
第12章主要講解C語言的結(jié)構(gòu)體和共同體。
第13章主要講解C語言的預處理命令。
第14章主要講解C語言位運算方面的知識。
第15章主要講解C語言的文件操作。
第16章提供了一套測試題和一套考研真題,為讀者提供一個自我分析解決問題的過程。
2.本書的特色與優(yōu)點
(1)結(jié)構(gòu)清晰,知識完整。本書系統(tǒng)性強,依據(jù)高校教學大綱組織內(nèi)容,同時覆蓋最新版本的所有知識點,并將實際經(jīng)驗融人基本理論之中。
(2)內(nèi)容詳實,解答完整。本書涵蓋近幾年各大高校的大量題目,示例眾多,步驟明確,講解細致,讀者不但可以利用題海戰(zhàn)術(shù)完善自己的弱項,更可以有針對性地了解某些重點院校的近年考研題目及解題思路。
(3)學以致用,注重能力。一些例題后面有與其相聯(lián)系的知識點詳解,使讀者在解答問題的同時,對基礎(chǔ)理論得到更深刻的理解。
(4)重點突出,實用性強。突出核心知識,對重點、難點、易混淆知識點進行剖析與解釋,通過對試題的分析提高讀者解決實際問題的能力。
第1章 C語育基礎(chǔ)
1.1 答疑解惑
1.1.1 C語言是如何構(gòu)成的?
1.1.2 C程序是如何執(zhí)行的?
1.1.3 C程序是如何編譯連接的?
1.1.4 C程序中如何使用注釋?
1.2 典型題解
題型1C程序構(gòu)成
題型2C程序編譯連接
題型3注釋
第2章 算法和結(jié)構(gòu)化程序設(shè)計
2.1 答疑解惑
2.1.1 什么是程序?
2.1.2 什么是算法?
2.1.3 如何評價、選擇算法?
2.1.4 如何設(shè)計算法?
2.1.5 什么是結(jié)構(gòu)化程序設(shè)計?
2.1.6 如何用圖形描述算法?
2.2 典型題解
題型1算法的特征
題型2結(jié)構(gòu)化程序設(shè)計
題型3算法的圖形化描述
第3章 數(shù)據(jù)類型
3.1 答疑解惑
3.1.1 C語言中有哪些數(shù)據(jù)類型?
3.1.2 什么是常量?什么是變量?
3.1.3 什么是標識符?C語言中有哪些標識符?
3.1.4 如何定義自己的標識符?
3.1.5 如何命名出“見名識意”的標識符?
3.1.6 整型數(shù)據(jù)可以表示哪些數(shù)?
3.1.7 數(shù)489L.和489有何不同?
3.1.8 數(shù)123、0123和0X123有何不同?
3.1.9 實型數(shù)據(jù)可以表示哪些數(shù)?
3.1.10 數(shù)123.4 、12.3 4E1和O.1 234e3有何不同?
3.1.11 為什么下面程序中y的值沒有增加?
3.1.12 為什么下面程序的輸出不是678997
3.1.13 字符型變量中存放了什么?
3.1.14 字符型數(shù)據(jù)與整型數(shù)據(jù)有什么聯(lián)系?
3.1.15 ‘a(chǎn)’和“a”有何不同?
3.2 典型題解
題型1標識符定義
題型2數(shù)據(jù)類型基本概念
題型3變量和常量基本概念
題型4整型數(shù)據(jù)
題型5整型數(shù)據(jù)的各進制表示及
轉(zhuǎn)換
題型6實型數(shù)據(jù)
題型7字符型數(shù)據(jù)
第4章 運算符與表達式
4.1 答疑解惑
4.1.1 C語言中有哪些運算符?
4.1.2 1/2和1/2.0的計算結(jié)果一樣嗎?
4.1.3 -10%3和10%-3的計算結(jié)果一樣嗎?可以4.5%2嗎?
4.1.4 表達式x=x中,兩個x的含義是否相同?
4.1.5 x+一2和x=x+2意義相同嗎?
4.1.6 z一(x一16)*(y一4)如何執(zhí)行?
4.1.7 b-a++與b一++a有何不同?
4.1.8 為什么2++,(a+b)一一都是不合法的?
4.1.9 b——a++如何執(zhí)行?
4.1.1 0若inta-10,執(zhí)行b-(3*5,a+4)后,a、b的值分別為多少?
4.1.1 15+3.1 4-5.1 23456*‘a(chǎn)’-‘b’的計算結(jié)果是什么類型的數(shù)據(jù)?
4.1.1 2為什么下面程序的運行結(jié)果是1而非0?
4.1.1 3a+++b如何計算?
4.2 典型題解
題型1算術(shù)運算
題型2賦值運算
題型3左值的概念
題型4自增、自減運算
題型5逗號運算
題型6類型轉(zhuǎn)換
題型7運算符優(yōu)先級和結(jié)合性
第5章 頗序結(jié)構(gòu)
5.1 答疑解惑
5.1.1 c=‘a(chǎn)’和c-‘a(chǎn)’;有什么區(qū)別?
5.1.2 inta;是語句嗎?
5.1.3 空語句什么也不做,為什么還要使用?
5.1.4 為什么下面程序的輸出是1而不是127
5.1.5 能否按照自己的要求輸出數(shù)據(jù)?
5.1.6 為什么下面的程序無法執(zhí)行?
5.1.7 按照下面的程序能否輸入“2a”?
5.2 典型題解
題型1語句基本概念
題型2字符輸入/輸出
題型3格式化輸入
題型4格式化輸出
題型5綜合應(yīng)用
第6章 選擇結(jié)構(gòu)
6.1 答疑解惑
6.1.1 什么是“真”,什么是“假”?
6.1.2 為什么下列程序輸出的是“一一”而不是“!一”?
6.1.3 浮點數(shù)之間的比較可靠嗎?
6.1.4 C語言中有哪些邏輯運算符?運算規(guī)則是什么?
6.1.5 表達式ab)?a,b后max的值是多少?
6.1.8 if與else如何配對?
6.1.9 if語句和switch語句該如何選擇?
6.1.1 0為什么下面程序的輸出不是3?
6.1.1 1switch語句中一定要使用default語句嗎?
6.2 典型題解
題型1關(guān)系運算
題型2邏輯運算
題型3條件運算
題型4if語句
題型5SWItch語句
第7章 循環(huán)結(jié)構(gòu)
7.1 答疑解惑
7.1.1 下面的程序為什么錯誤?
7.1.2 為什么下面兩個程序的執(zhí)行結(jié)果不同?
7.1.3 為什么下列程序的運行結(jié)果不是67
7.1.4 for語句中的表達式能否省略?
7.1.5 該選擇while循環(huán)還是for循環(huán)?
7.1.6 循環(huán)中能否包含循環(huán)?
7.1.7 break語句和continue語句的區(qū)別是什么?
7.2 典型題解
題型1for循環(huán)語句
題型2dowhile、while循環(huán)語句
題型3break、continue語句
題型4綜合應(yīng)用
第8章 數(shù)組
8.1 答疑解惑
8.1.1 什么是數(shù)組?數(shù)組在內(nèi)存中如何存儲?
8.1.2 inta[10];a++;是否正確?
8.1.3 以下對數(shù)組的聲明是否正確?
8.1.4 下面的程序在編譯時是否會報錯?
8.1.5 以下對二維數(shù)組的聲明是否正確?
8.2 典型題解
題型1一維數(shù)組的定義和初始化
題型2一維數(shù)組的引用
題型3一維數(shù)組元素的移動
題型4一維數(shù)組的排序
題型5數(shù)組元素的查找和刪除
題型6多維數(shù)組的定義和初始化
題型7多維數(shù)組的引用
題型8二維數(shù)組的排序
題型9將二維數(shù)組轉(zhuǎn)化為一維數(shù)組
第9章 字符串
9.1 答疑解惑
9.1.1 C語言中如何存儲字符串?
9.1.2 定義char’s[]-"well"-chart口={‘w’,‘e’,‘l’,‘l’};中,s與t相同嗎?
9.1.3 如何從鍵盤輸入“。HelloWorld"并賦值給字符數(shù)組.應(yīng)調(diào)用什么函數(shù)?
9.1.4 strlen與sizeof有什么區(qū)別?
9.1.5 如何使用strcpy函數(shù)?
9.1.6 如何比較兩個字符串?if(strl==str2)的寫法是否正確?
9.1.7 如何使用strcat函數(shù)?
9.2 典型題解
題型1字符串的初始化
題型2字符串的長度
題型3字符串的輸入
題型4特定字符的大小寫轉(zhuǎn)換
題型5字符串與整數(shù)的轉(zhuǎn)換
題型6指定字符的查找和刪除
題型7字符串的比較
題型8字符串的排序
題型9字符子串查找
題型10字符子串的移動
題型11字符串的復制
題型12字符串的連接
第10章 函數(shù)
10.1 答疑解惑
10.1.1 為什么需要函數(shù)?
10.1.2 如何定義和使用函數(shù)?
10.1.3 為什么要進行函數(shù)的聲明?
10.1.4 函數(shù)調(diào)用時,數(shù)據(jù)如何傳遞?
10.1.5 return語句和exit()函數(shù)調(diào)用有什么區(qū)別?
10.1.6 函數(shù)的嵌套調(diào)用是如何進行的?
10.1.7 什么時候使用遞歸?
10.1.8 函數(shù)的遞歸調(diào)用是如何進行的?
10.1.9 什么是全局變量和局部變量?
10.1.1 0C語言中的局部變量有哪些存儲類別?
10.1.1 1不同類型的變量存儲方式是否相同?
10.1.1 2C語言中的函數(shù)有哪些存儲類別?
10.2 典型題解
題型1函數(shù)的基本概念
題型2形參和實參
題型3函數(shù)返回值
題型4函數(shù)的基本調(diào)用
題型5數(shù)組作為函數(shù)參數(shù)
題型6函數(shù)的嵌套調(diào)用
題型7函數(shù)的遞歸調(diào)用
題型8全局變量和局部變量
題型9變量的存儲類別及生命周期
第11章 指針
11.1 答疑解惑
11.1.1 什么是內(nèi)存單元地址?什么是內(nèi)存單元內(nèi)容?
11.1.2 指針的地址和指針中存放的地址有什么區(qū)別?
11.1.3 指針可以指向指針嗎?
11.1.4 指向不同類型的指針,在內(nèi)存中所占空間相同嗎?
11.1.5 指針一定要初始化嗎?
11.1.6 如何對指針進行初始化?
11.1.7 指針可以做運算嗎?
11.1.8 為什么要動態(tài)分配內(nèi)存空間?如何分配?
11.1.9 如何通過指針引用一維數(shù)組元素?
11.1.1 0指針和字符數(shù)組都可以操作字符串,兩者有什么區(qū)別?
11.1.1 1如何通過指針引用二維數(shù)組元素?
11.1.1 2函數(shù)指針和指針函數(shù)有什么區(qū)別?
11.1.1 3指針數(shù)組和數(shù)組指針有什么區(qū)別?
11.2 典型題解
題型1指針的基本概念
題型2指針的運算
題型3指針作為函數(shù)參數(shù)
題型4指向函數(shù)的指針
題型5指向一維數(shù)組的指針
題型6字符串與指針
題型7指向二維數(shù)組的指針
題型8指針數(shù)組
題型9命令行參數(shù)
題型10指向指針的指針
題型11指向結(jié)構(gòu)體、共同體變量
的指針
題型12綜合應(yīng)用
第12章 結(jié)構(gòu)體和共同體
12.1 答疑解惑
12.1.1 為什么要使用typedef?它定義了新類型嗎?
12.1.2 typedef與define有什么區(qū)別?
12.1.3 為什么要使用結(jié)構(gòu)體?
12.1.4 為什么下面的程序在編譯時會報錯?
12.1.5 如何引用結(jié)構(gòu)體的成員?
12.1.6 如何用結(jié)構(gòu)體生成鏈表?
12.1.7 如何用在鏈表中插入節(jié)點?
12.1.8 如何用在鏈表中刪除節(jié)點?
12.1.9 為什么要使用共同體?它有
什么特點?
12.2 典型題解
題型1用戶自定義類型
題型2結(jié)構(gòu)體的定義和元素引用
題型3結(jié)構(gòu)體數(shù)組
題型4鏈表基本概念
題型5鏈表的插入
題型6鏈表中的數(shù)據(jù)查找和修改
題型7鏈表的刪除
題型8鏈表的排序
題型9共同體
題型10結(jié)構(gòu)體與共同體綜合運用
第13章 預處理命令
13.1 答疑解惑
13.1.1 什么是預處理?
13.1.2 什么是宏定義?
13.1.3 宏定義有哪些特點?
13.1.4 下面程序的輸出是什么?
13.1.5 帶參數(shù)的宏和函數(shù)有什么區(qū)別?
13.1.6 為什么要使用頭文件,如何寫自己的頭文件?
13.1.7 如何包含文件?
13.1.8 可以包含多個文件嗎?
13.1.9 如何避免文件的重復包含?
13.2 典型題解
題型1預處理基本概念
題型2宏替換基本概念
題型3帶參數(shù)的宏替換
題型4文件包含
題型5條件編譯
第14章 位運算
14.1 答疑解惑
14.1.1 位(bit)、字節(jié)(byte)和字(word)有什么區(qū)別?
14.1.2 數(shù)在計算機中是如何存儲的?
14.1.3 C語言中有哪些位運算符?
14.1.4 六種位運算符的運算規(guī)則分別是什么?
14.1.5 運算符&和運算符&&有什么區(qū)別?
14.1.6 如何實現(xiàn)將字符a的“高4位清0,低4位保留”?
14.1.7 如何實現(xiàn)將字符a的“高4位置1,低4位保留”?
14.1.8 如何實現(xiàn)將字符a的“高4位翻轉(zhuǎn),低4位保留”?
14.1.9 如何交換兩個數(shù),但不使用臨時變量?
14.1.1 0左移右移運算與乘除運算有什么關(guān)系?
14.1.1 1位運算符的優(yōu)先級和結(jié)合性是怎樣的?
14.1.1 2兩個長度不同的數(shù)如何進行位運算?
14.2 典型題解
題型1按邏輯運算
題型2按位移動運算
第15章 文件操作
15.1 答疑解惑
15.1 I1數(shù)據(jù)在文件中如何存儲?
15.1.2 什么是文件指針?什么是文件位置指針?
15.1.3 stdin、stout、stderr是什么?
15.1.4 如何訪問文件?
15.1.5 使用文件的一般操作步驟是怎樣的?
15.1.6 如何打開文件?
15.1.7 為什么下面的操作無法打開文件?
15.1.8 文件使用完畢后為什么必須關(guān)閉文件?
15.1.9 如何將單個字符存人文件中?
15.1.1 0如何將字符串存入文件中?
15.1.1 1如何將結(jié)構(gòu)體存人文件中?
15.1.1 2scanf和fscanf、printf和fprointf有何區(qū)別?
15.1.1 3為什么要進行文件定位?如何進行文件定位?
15.1.1 4標識符EOF能否作為二進制文件的結(jié)束標志?
15.2 典型題解
題型1文件基本概念
題型2文件的打開和關(guān)閉
題型3文件檢測
題型4文件字符輸入/輸出
題型5文件字符串輸入/輸出
題型6文件格式化輸入/輸出
題型7文件的數(shù)據(jù)塊輸入/輸出
題型8文件的定位操作
題型9綜合應(yīng)用
第16章 課程測試與考研真題
16.1 課程測試
16.2 考研真題
16.3 課程測試解析
16.4 考研真題解析
10.1.10C語言中的局部變量有哪些存儲類別?
按照生命周期的不同,局部變量可以分為4種:自動型(auto),靜態(tài)型(static),寄存器型(register),外部型(extern)。
(1)自動型(auto)
由關(guān)鍵字auto聲明的變量稱為自動變量。在定義局部變量時,如果沒有指定存儲類,系統(tǒng)將默認為auto類。它在定義時被分配內(nèi)存,當函數(shù)調(diào)用結(jié)束時,系統(tǒng)回收變量所占內(nèi)存。所以,auto型變量的作用域是從定義的位置起,到函數(shù)體結(jié)束處止。
(2)靜態(tài)型(static)
用關(guān)鍵字static聲明的變量稱為靜態(tài)變量,它的生存期是從程序開始執(zhí)行到程序運行結(jié)束。如果函數(shù)中的局部變量被聲明為static類,函數(shù)調(diào)用結(jié)束后變量將保留原值,而不是消失(因為占用的內(nèi)存單元并未被釋放),在下一次函數(shù)調(diào)用時該變量的值仍為存儲單元中的值。如果沒有被顯式地賦初值,系統(tǒng)將自動在編譯時為static變量賦O值。
(3)寄存器型(register)
用關(guān)鍵字register聲明的變量稱為寄存器變量,此類變量的值將被存放在CPU寄存器中,而不是內(nèi)存中。程序運行時,訪問寄存器的速度要遠遠高于訪問內(nèi)存的速度。因此,當程序運行效率要求較高時,可以將頻繁使用的變量聲明為寄存器類型。
注意,只有局部atuo變量和函數(shù)的形參可以被聲明為寄存器變量。并且無論寄存器變量是否真的放在寄存器中,都不能對其進行求地址運算。
(4)外部型(extern)
上文提到,全局變量的作用域是從變量定義到程序結(jié)束。因此,當全局變量定義在后,函數(shù)引用在前時,需要在函數(shù)中用extern對該變量進行聲明,這樣才能夠引用該變量。因此,extern聲明實質(zhì)上是擴展了全局變量的作用域。