評論(0

C語言必須知道的300個問題

標籤: 暫無標籤

1 C語言必須知道的300個問題 -作者:明日科技

圖書詳細信息:

  ISBN:9787302276678

C語言必須知道的300個問題

定價:49.8元

  印次:1-1

  裝幀:平裝

  印刷日期:2011-12-28
圖書簡介:

  本書以基礎知識為框架,介紹了C語言各部分知識所對應的常見開發疑難問題,並作了透徹地解析。本書內容包括初識C語言,一個簡單的C程序,演算法入門,常用數據類型,運算符與表達式,輸入/輸出函數,選擇、分支結構程序設計,循環結構,數組,函數編程基礎,指針解析,常用數據結構,位運算操作符,存儲管理,預處理和函數類型,文件的讀寫操作和圖形圖像處理。

  書中列出的300個疑難問題,都是一線開發人員在實際項目中經常會遇到的。針對這些問題,本書給出了詳盡的解決方案,並作了技術上的解析。通過對本書的學習,讀者能夠迅速提高解決實際問題的能力。

  本書提供了源程序、素材,提供了相關的模塊庫、案例庫、素材庫、題庫等多種形式的輔助學習資料,還提供迅速及時的微博、QQ、論壇等技術支持。

  本書涉及內容豐富經典,講解細緻,適合各種水平的C語言學習者進行學習查閱,還可以作為軟體開發人員的參考資料。

前言:

  學會站在巨人的肩膀上!

  程序員在求職時,經常會被問到有關開發經驗的問題。例如,「從事了多少年的開發?」、「參與了哪些大型項目?」……為何面試官對項目經驗豐富的求職者青睞有加?究其根源,是由於程序開發是一門實踐性非常強的學科。正所謂「紙上得來終覺淺,絕知此事要躬行」。編程經驗是程序開發者在長期的實踐中逐步積累的寶貴的技術資源庫,其中包含各種習慣用法、知識理論、代碼片段和應用技巧等。要想成為經驗豐富的編程高手,除了勤學苦練,也要學會站在前人的肩膀上,通過分析別人的代碼而有所領悟,或者借鑒他人的經驗技巧形成自己的技能,在認識錯誤與解決問題中不斷進步。這也是每個編程者的必由之路。

  本書彙集了300個一線開發人員常見的疑難問題,每個問題都給出了詳細的解答與點評,圖文並茂、難易並舉,通過對本書的學習,讀者可以盡享前人的開發經驗,迅速提升個人的開發能力。

  本書內容

  本書以基礎知識為框架,介紹了C語言各部分知識所對應的常見開發疑難問題,並作了透徹地解析。全書共分為17章,主要內容包括初識C語言,一個簡單的C程序,演算法入門,常用數據類型,運算符與表達式,輸入/輸出函數,選擇、分支結構程序設計,循環結構,數組,函數編程基礎,指針解析,常用數據結構,位運算操作符,存儲管理,預處理和函數類型,文件的讀寫操作和圖形圖像處理。

  為了更清晰地闡述問題並給出詳盡的解決方案,本書設置了以下欄目。

  ? 問題闡述

  對問題進行詳細闡述,對複雜問題給出問題產生的條件,並對問題中需要解決的部分作出說明。

  ? 專家解答

  根據問題進行具體分析,給出相應的解題思路及正確答案,並提供該問題涉及的技術知識。

  ? 專家點評

  對問題及解答進行總結,為以後的問題解決提供思路;此外,還會列出一些有關此問題應該注意的事項,以及對該問題的一些拓展。

  本書特色

  ? 貼近應用

  本書精選的疑難問題都是在實際項目開發中經常會遇到的,主要目的就是為讀者答疑解惑。

  ? 橫向鏈接

  本書知識框架與《C語言開發入門及項目實戰》一書相對應,可以在使用《C語言開發入門及項目實戰》一書進行基礎學習之後,使用本書豐富並提高技能。

  ? 解析透徹

  本書對每個問題的相關知識都作了細緻地講解,並進行知識拓展,使讀者不僅知其然而且知其所以然。

  ? 授人以漁

  本書在講解技術的同時,還注重對讀者能力的培養,使讀者真正掌握分析問題與解決問題的能力。

  本書配套資源

  本書提供了內容豐富的配套資源,包括源程序、素材,以及模塊庫、案例庫、題庫、素材庫等多項輔助內容,讀者可以通過如下方式獲取。

  第1種方式:

  (1)登錄清華大學出版社的網站,在網頁右上角的搜索文本框中輸入本書書名(注意區分大小寫和留出空格),或者輸入本書關鍵字,或者輸入本書ISBN號(注意去掉ISBN號間隔線「-」),單擊「搜索」按鈕。

  (2)找到本書後單擊超鏈接,在該書的網頁下側單擊「網路資源」超鏈接,即可下載。

  第2種方式:

  訪問本書的新浪微博:C語言圖書,找到配套資源的鏈接地址進行下載。

  讀者人群

  本書非常適合以下人員閱讀:

  ? 從事C語言編程的開發人員

  ? 有一定語言基礎,想進一步提高技能的人員

  ? 大中專院校的老師和學生

  ? 即將走上相關工作崗位的大學畢業生

  ? 相關培訓機構的老師和學員

  ? C語言編程愛好者

目錄:

  第1章 初識C語言 1

  問題1 C語言是如何發展起來的? 2

  問題2 什麼是ANSI標準? 2

  問題3 C語言編寫程序的優點有哪些? 3

  問題4 如何規避C語言的不足之處? 4

  問題5 C語言的應用領域有哪些? 5

  問題6 什麼是C99標準?與C89標準

  相比,C99標準有哪些

  新特性? 6

  問題7 C語言是C++的子集嗎? 10

  問題8 C語言程序的開發過程是

  怎樣的? 11

  問題9 什麼是編譯程序和解釋程序? 12

  問題10 ANSI C的編譯限制有哪些? 13

  第2章 一個簡單的C程序 14

  問題11 C語言的入口函數是什麼? 15

  問題12 C語言程序由哪些部分組成? 16

  問題13 如何在Turbo C 2.0中輸入一個

  程序? 16

  問題14 如何在Visual C++ 6.0中運行

  一個C程序? 18

  問題15 如何在Visual C++ 2008中運行

  一個C程序? 22

  問題16 如何提高程序的可讀性? 26

  問題17 什麼是關鍵字?C語言的關鍵

  字有哪些? 27

  問題18 什麼是標識符?使用標識符的

  注意事項是什麼? 29

  問題19 void關鍵字都有哪些用途? 30

  問題20 什麼是匈牙利命名約定?它是否

  是好的約定? 31

  第3章 演算法入門 33

  問題21 為什麼說演算法是程序設計的

  靈魂? 34

  問題22 演算法的特性有哪些? 34

  問題23 如何評價一個演算法的好壞? 35

  問題24 演算法的表示方法都有哪些? 36

  問題25 演算法的基本結構是什麼? 40

  問題26 演算法有哪幾類? 42

  問題27 演算法的效率度量方法有哪些? 42

  問題28 什麼是演算法的時間複雜度? 43

  問題29 什麼是演算法的空間複雜度? 44

  問題30 什麼是分治法演算法思想? 45

  第4章 常用數據類型 46

  問題31 聲明變數和定義變數的區別

  是什麼? 47

  問題32 在開發時如何決定使用哪種

  數據類型? 48

  問題33 什麼是常量?如何區分常量

  和變數? 48

  問題34 各種數據類型所佔的內存是

  多少? 49

  問題35 字元與字元串的差別有

  哪些? 50

  問題36 變數是否必須初始化? 51

  問題37 為什麼會發生數據溢出?如何

  避免數據溢出? 52

  問題38 局部變數和全局變數能否

  重名? 53

  問題39 全局變數可不可以定義在可被

  多個.C文件包含的頭文件中?

  為什麼? 53

  問題40 如何引用一個已經定義過的

  外部變數? 54

  問題41 全局變數和局部變數的存儲

  方式有什麼區別? 55

  問題42 整型常量的存儲形式是

  怎樣的? 55

  問題43 整型常量的表示形式有

  哪幾種? 56

  問題44 使用了沒定義的變數會有什麼

  現象? 56

  問題45 static關鍵字有什麼作用? 57

  問題46 const關鍵字有什麼作用? 59

  問題47 const與#define相比有何

  優點? 60

  問題48 sizeof不是函數嗎? 61

  問題49 float類型數如何與0值

  比較? 63

  問題50 靜態變數與自動變數的區別

  有哪些? 64

  第5章 運算符與表達式 66

  問題51 運算符的優先順序和結合性是

  怎樣的? 67

  問題52 如何區分「,」是運算符還是

  分隔符? 68

  問題53 C語言如何解釋x=a+=b+c? 69

  問題54 x=x+1,x+=1,x++,哪個效率

  最高? 70

  問題55 什麼是運算符的目?怎樣進行

  區分? 70

  問題56 使用「++」和「--」運算符需要

  注意些什麼? 71

  問題57 如何理解i+++j? 71

  問題58 賦值表達式中什麼是左值和右值?數組名作為左右值時又具有怎樣的意義? 72

  問題59 如何確定條件表達式的結果的

  數據類型? 73

  問題60 「%」運算符是否可以對小數

  進行運算? 74

  問題61 「/」運算符得到的結果一定為

  整數嗎? 75

  問題62 在進行多種數據類型混合運算

  的時候,數據類型自動轉換有

  哪些規則? 76

  問題63 C語言中有哪些簡化的運算

  表達式? 77

  問題64 使用邏輯表達式需要注意哪

  幾點問題? 77

  問題65 i++*i++這樣的表達式為什麼

  不能得到預期的結果? 78

  問題66 a[i]=i++;這樣的代碼正確嗎? 79

  問題67 編寫表達式時需要注意

  什麼? 79

  問題68 如何理解c=a,b;? 80

  問題69 為無符號類型變數賦值時,數據

  類型應怎樣轉換? 81

  問題70 C語言表達式的求值順序總是

  按照運算符的結合性保證

  「自左至右」或者「自右

  至左」嗎? 81

  第6章 輸入/輸出函數 83

  問題71 函數printf()的基本格式

  是什麼? 84

  問題72 如何認識printf()函數的格式

  字元? 85

  問題73 函數printf()的標誌有幾種?

  如何使用? 91

  問題74 如何控制輸出最小寬度? 91

  問題75 如何控制輸出精度? 92

  問題76 如何控制輸出長度? 93

  問題77 如何動態設置輸出寬度和

  精度? 94

  問題78 printf()函數的返回值是

  什麼? 95

  問題79 如何理解輸出列表? 96

  問題80 函數scanf()的基本格式是

  什麼? 96

  問題81 scanf()函數的格式字元是

  什麼? 97

  問題82 使用scanf()函數應注意的問題

  是什麼? 100

  問題83 scanf()函數的返回值是

  什麼? 101

  問題84 如何使用getchar()函數? 102

  問題85 getch()函數如何使用? 104

  問題86 如何應用gets()函數? 104

  問題87 如何應用putch()函數? 105

  問題88 puts()函數該如何應用? 106

  問題89 如何控制多數值的輸入? 107

  問題90 如何輸入字元數組? 108

  第7章 選擇、分支結構程序設計 110

  問題91 5>4>3為什麼不成立——談談

  關係表達式的值 111

  問題92 =和==如何區分? 112

  問題93 什麼叫邏輯短路? 113

  問題94 if語句的基本形式有哪些?

  如何應用? 114

  問題95 浮點數的相等比較是否可以

  用==? 116

  問題96 關係運算符和數學不等號有

  什麼區別? 117

  問題97 if語句後面一定不能寫

  分號嗎? 118

  問題98 這個程序為什麼多執行了好多

  語句? 119

  問題99 不用關係表達式和邏輯表達式

  做條件 120

  問題100 怎樣理解複合語句中的

  變數? 122

  問題101 如何進行if語句的嵌套? 123

  問題102 條件運算符「? :」怎樣

  應用? 124

  問題103 switch語句的基本格式是

  什麼? 125

  問題104 if語句與switch語句的優缺

  點是什麼? 127

  問題105 switch語句中的default關鍵字

  是否必須? 128

  問題106 break關鍵字在switch語句中

  應注意什麼? 128

  問題107 如何正確判斷if和else的

  匹配? 130

  問題108 switch和case后的表達式值的

  類型是否可以是浮點型? 132

  問題109 區段劃分型條件有什麼

  技巧? 133

  問題110 default必須寫在所有case

  之後嗎? 134

  第8章 循環結構 136

  問題111 循環結構的基本概念是

  什麼? 137

  問題112 while語句的基本格式是

  什麼? 138

  問題113 while循環應注意什麼

  問題? 139

  問題114 for循環語句的基本格式

  是什麼? 140

  問題115 for語句的三個表達式都是

  必須的嗎? 142

  問題116 do…while語句的基本格式

  是什麼? 144

  問題117 分號在循環體中的作用? 146

  問題118 while與do…while的

  區別? 148

  問題119 什麼是循環嵌套? 149

  問題120 循環嵌套的結構是

  怎樣的? 151

  問題121 如何正確使用循環嵌套? 153

  問題122 死循環是怎樣產生的? 154

  問題123 怎樣提高循環語句的

  效率? 156

  問題124 continue語句的基本作用

  是什麼? 158

  問題125 break語句的基本作用是

  什麼? 159

  問題126 goto語句的基本格式是什麼?

  如何使用? 161

  問題127 goto語句的缺陷是什麼? 163

  問題128 如何選擇循環語句? 165

  問題129 如何判定循環結束和提前

  結束? 165

  問題130 如何避免循環中的初值錯誤

  問題? 167

  第9章 數組 170

  問題131 什麼是數組?其存儲有何

  特點? 171

  問題132 數組的維數該如何理解? 171

  問題133 一維數組是怎樣定義的? 172

  問題134 如何引用一維數組元素? 173

  問題135 如何初始化一維數組? 174

  問題136 如何設計數組的排序

  演算法? 175

  問題137 如何定義二維數組? 176

  問題138 如何引用二維數組元素? 178

  問題139 如何初始化二維數組? 179

  問題140 如何定義字元數組? 180

  問題141 如何初始化字元數組? 180

  問題142 如何引用字元數組? 181

  問題143 如何進行字元數組的

  複製? 182

  問題144 如何進行字元數組的

  連接? 183

  問題145 如何進行字元串的比較? 185

  問題146 如何測定字元串的長度? 187

  問題147 如何進行字元串大小寫的

  相互轉換? 188

  問題148 如何計算字元串中有多少個

  單詞? 190

  問題149 gets()函數和scanf()函數在輸入

  字元串時有何區別? 191

  問題150 puts()函數和printf()函數在輸出

  字元串時有何區別? 192

  問題151 數組與指針的區別是什麼? 193

  問題152 為什麼作為函數形參的數組和

  指針可以互換? 195

  問題153 為什麼數組名作參數傳遞給子

  函數時,子函數可以改變主

  函數中數組的值? 196

  問題154 C語言中有動態數組嗎? 197

  問題155 如何實現動態二維數組? 199

  問題156 strcpy()函數可以複製字元串的

  一部分嗎? 201

  問題157 字元串和字元數組有什麼

  區別? 202

  問題158 『\0』和「\0」有什麼區別? 203

  問題159 字元數組佔用內存

  怎樣算? 204

  問題160 用字元數組和指針兩種方式

  定義的字元串有什麼

  不同? 204

  第10章 函數編程基礎 206

  問題161 什麼是函數?如何分類? 207

  問題162 如何定義無參函數? 209

  問題163 如何定義有參函數? 210

  問題164 什麼是空函數?作用是

  什麼? 210

  問題165 什麼是形參和實參?如何

  使用? 211

  問題166 如何從函數返回? 213

  問題167 函數返回值你了解多少? 214

  問題168 如何進行函數的一般

  調用? 215

  問題169 函數調用的基本方式有幾種?

  各是什麼? 216

  問題170 函數調用應具備哪些

  條件? 216

  問題171 如何進行函數的嵌套

  調用? 218

  問題172 什麼是遞歸調用?如何

  實現? 219

  問題173 函數如何將數組元素作為

  實參? 222

  問題174 如何將數組名作為函數

  參數? 224

  問題175 如何將多維數組名作為函數

  參數? 227

  問題176 什麼是局部變數? 228

  問題177 什麼是全局變數?如何

  應用? 229

  問題178 存儲方式有哪幾種?分別

  是什麼? 232

  問題179 如何使用auto關鍵字? 233

  問題180 什麼是靜態變數?如何

  實現? 236

  問題181 什麼是寄存器變數?如何

  實現? 238

  問題182 如何聲明外部變數? 239

  問題183 如何調用編譯后的函數? 240

  問題184 如何限定外部變數的使用

  範圍? 241

  問題185 如何使用函數調用實現對字

  符串的統計? 242

  問題186 main()函數有什麼作用? 243

  問題187 什麼是內部函數? 243

  問題188 什麼是外部函數?

  怎麼用? 244

  問題189 static()函數與普通函數有什麼

  區別? 245

  問題190 形參和實參有什麼區別? 246

  第11章 指針解析 248

  問題191 什麼是指針?什麼是指針

  變數? 249

  問題192 如何創建指針? 250

  問題193 如何初始化指針? 251

  問題194 如何使用指針? 252

  問題195 函數中如何傳遞指針? 254

  問題196 指針、數組和地址之間的關係

  是什麼? 255

  問題197 如何進行指針運算? 256

  問題198 如何使用指針操作數組? 258

  問題199 如何用指針表示多維

  數組? 260

  問題200 如何使用指針操作多維

  數組? 261

  問題201 如何用指針為函數傳遞

  數組? 263

  問題202 如何用指針表示字元串? 264

  問題203 如何使用字元串指針作為函數

  參數? 265

  問題204 字元數組和字元指針的區別

  是什麼? 266

  問題205 什麼是指針數組? 267

  問題206 如何使用指針數組處理

  字元串? 268

  問題207 如何將指針數組作為函數的

  參數? 269

  問題208 什麼是指向指針的指針? 270

  問題209 二級指針如何應用於一維

  數組? 271

  問題210 如何實現二級指針對二維數組

  的操作? 272

  問題211 二級指針如何操作字元串數組

  (指針數組)? 273

  問題212 如何理解返回指針的

  函數? 275

  問題213 什麼是指向函數的指針? 277

  問題214 如何用const控制指針? 278

  問題215 什麼是「野指針」? 279

  問題216 main()函數的指針數組形參

  是怎麼回事? 279

  問題217 void指針就是空指針嗎?它

  有什麼作用? 281

  問題218 指針是一種特殊的變數,只能

  用來保存地址。這句話

  對嗎? 282

  問題219 字元指針、浮點數指針以及

  函數指針這三種類型的變數

  哪個佔用的內存最大?

  為什麼? 282

  問題220 一個32位的機器,該機器的

  指針是多少位? 283

  第12章 常用數據結構 284

  問題221 空結構體所佔的內存是

  多少? 285

  問題222 在C語言中,一個結構體可以

  包含指向自己的指針嗎? 286

  問題223 struct person{...};person a;

  為什麼編譯出錯? 287

  問題224 怎樣從/向數據文件讀/寫

  結構? 289

  問題225 枚舉與#define宏的區別有

  哪些? 290

  問題226 如何看待枚舉類型,枚舉類型

  的優點是什麼? 291

  問題227 關鍵字typedef的功能是

  什麼? 292

  問題228 類型定義是否允許嵌套? 294

  問題229 typedef與#define宏的相似之處

  與不同之處是什麼? 295

  問題230 什麼是散列法? 296

  問題231 大小端模式對union類型數據

  有什麼影響? 297

  問題232 如何為聯合體變數賦

  初值? 298

  問題233 如何證明聯合體變數的所有成員是共享一個內存單元的? 300

  問題234 堆和棧的區別是什麼? 301

  問題235 舉例說明,什麼是靜態鏈表?

  什麼是動態鏈表? 302

  問題236 單向鏈表、雙向鏈表和循環鏈

  表有什麼區別? 304

  問題237 如何在鏈表中的指定位置插入

  結點? 305

  問題238 如何刪除鏈表中指定位置的

  結點? 306

  問題239 如何創建一個動態鏈表? 308

  問題240 指向結構體數組的指針如何

  應用? 310

  第13章 位運算操作符 312

  問題241 什麼是位運算?位運算符包括

  哪些? 313

  問題242 移位運算中如何補位? 314

  問題243 移位運算符與加減運算符的

  優先順序哪個較高? 315

  問題244 什麼是循環移位? 316

  問題245 什麼是位段?其優點是

  什麼? 317

  問題246 如何正確使用位段? 318

  問題247 數據在計算機中的存儲單位有

  哪些?有幾種存儲形式? 320

  第14章 存儲管理 322

  問題248 與內存息息相關的重要概念

  有哪些? 323

  問題249 指針指向不合法引起了哪些

  內存問題? 324

  問題250 內存分配與釋放引起的常見

  問題有哪些? 325

  問題251 什麼是內存越界?什麼是內存

  泄露?二者是如何產生的? 326

  問題252 C語言提供了哪些動態內存

  分配函數? 327

  問題253 malloc()函數與calloc()函數有

  什麼區別? 328

  問題254 內存耗盡怎麼辦? 328

  問題255 動態內存會被自動釋

  放嗎? 330

  問題256 高位優先與低位優先的不同

  之處是什麼? 330

  問題257 free()和delete()怎樣處理

  指針? 331

  問題258 怎樣利用好敏感的內存

  資源? 333

  第15章 預處理和函數類型 335

  問題259 在頭文件中#if、_STDC_等字元

  起什麼作用? 336

  問題260 如何書寫多條語句宏? 337

  問題261 預處理中#和##運算符是什麼

  意思? 338

  問題262 一個頭文件可以包含另一個頭

  文件嗎? 339

  問題263 #include<>和#include「」有什麼

  區別? 340

  問題264 什麼是無參宏定義? 341

  問題265 什麼是帶參宏定義? 342

  問題266 怎樣寫參數個數可變

  的宏? 343

  問題267 #pragma預處理的作用

  是什麼? 345

  問題268 條件編譯的表達形式有

  哪些? 346

  問題269 如何應用內部函數? 347

  問題270 如何應用外部函數? 348

  第16章 文件的讀寫操作 351

  問題271 各個讀寫操作的區別是

  什麼? 352

  問題272 C語言文件有哪幾類? 354

  問題273 怎樣寫數據文件,使之可以在

  不同字大小、位元組順序或浮點

  格式的機器上讀入? 355

  問題274 能否使用fflush()函數清除多餘

  的輸入? 356

  問題275 fopen()函數打開文件失敗的

  原因是什麼? 357

  問題276 為什麼打開文件后要及時

  關閉? 358

  問題277 文件的打開方式有哪些? 358

  問題278 如何正確使用putchar()函數和getchar()函數? 360

  問題279 getchar()函數、getch()函數和getche()函數的區別是

  什麼? 361

  問題280 使用printf()函數和scanf()函數

  需要注意什麼? 362

  問題281 printf()函數有哪些參數? 363

  問題282 scanf()函數的格式控制包括

  哪些? 364

  問題283 printf()函數和scanf()函數格式

  符的修飾符「*」有什麼

  作用? 366

  問題284 fscanf()函數、fprintf()函數與scanf()函數和printf()函數有什麼

  不同? 367

  問題285 如何判斷文件的結束? 368

  第17章 圖形圖像處理 371

  問題286 為什麼在使用圖形函數時要

  首先初始化圖形模式? 372

  問題287 怎樣初始化圖形模式? 372

  問題288 初始化時提示「BGI Error: Graphics not initialized

  (use 'initgraph')」怎麼辦? 374

  問題289 怎樣利用C語言建立獨立的

  圖形運行程序? 375

  問題290 TC中有幾個畫線函數?怎麼

  使用? 376

  問題291 TC中有幾個畫矩形函數?怎麼

  使用? 377

  問題292 TC中有幾個畫圓函數?怎麼

  使用? 379

  問題293 如何使用C語言填充封閉

  圖形? 380

  問題294 TC中有幾個和游標有關的

  函數?怎樣使用? 382

  問題295 如何在圖形模式下輸出

  文本? 383

  問題296 背景色、線條顏色和填充顏色

  有什麼區別?何時使用? 386

  問題297 怎樣記住那麼多的顏色? 387

  問題298 線條樣式和填充樣式都有

  哪些?怎樣設置? 388

  問題299 怎樣複製圖形? 392

  問題300 怎樣在C語言中製作

  動畫? 394

相關評論

同義詞:暫無同義詞