關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
C程序設(shè)計(jì)
本書(shū)由淺入深地介紹什么是程序, 怎樣編寫(xiě)程序, 怎樣調(diào)試和運(yùn)行程序。以程序設(shè)計(jì)貫穿始終, 使學(xué)生掌握程序設(shè)計(jì)的基本知識(shí)和方法。本書(shū)將算法與C語(yǔ)言的語(yǔ)法緊密結(jié)合, 而不是孤立地介紹語(yǔ)法。作者精心考慮怎樣將算法與語(yǔ)法緊密而巧妙地結(jié)合起來(lái)。按照“算法是程序的靈魂, 語(yǔ)言是編程的工具”的思路組織全書(shū)。
本書(shū)為“十二五”普通高等教育本科國(guó)家級(jí)規(guī)劃教材、北京市高等教育精品教材立項(xiàng)項(xiàng)目,獲全國(guó)高校出版社*暢銷(xiāo)書(shū)特等獎(jiǎng)、原電子工業(yè)部*教材一等獎(jiǎng)、全國(guó)高等院校計(jì)算機(jī)基礎(chǔ)教育研究會(huì)*教材一等獎(jiǎng)等多項(xiàng)獎(jiǎng)項(xiàng)。
《C程序設(shè)計(jì)》累計(jì)發(fā)行逾1400萬(wàn)冊(cè),不僅創(chuàng)同類(lèi)書(shū)的全國(guó)紀(jì)錄,在世界上也是罕見(jiàn)的,堪稱(chēng)出版界的奇跡。《C程序設(shè)計(jì)》是一本公認(rèn)的學(xué)習(xí)C語(yǔ)言程序設(shè)計(jì)的經(jīng)典教材。根據(jù)C語(yǔ)言的發(fā)展和計(jì)算機(jī)教學(xué)的需要,作者在《C程序設(shè)計(jì)(第四版)》的基礎(chǔ)上進(jìn)行了修訂,使內(nèi)容更加完善,更易于理解,更加切合教學(xué)需要。本書(shū)按照C語(yǔ)言的新標(biāo)準(zhǔn)C 99進(jìn)行介紹,所有程序都符合C 99的規(guī)定,使編寫(xiě)程序更加規(guī)范;采用Visual C++ 6.0編譯系統(tǒng);對(duì)C語(yǔ)言和程序設(shè)計(jì)的基本概念和要點(diǎn)講解透徹、全面而深入;按照作者提出的“提出問(wèn)題—解決問(wèn)題—?dú)w納分析”三部曲進(jìn)行教學(xué)和組織教材;本書(shū)的每個(gè)例題都按以下幾個(gè)步驟展開(kāi):提出任務(wù)—解題思路—編寫(xiě)程序—運(yùn)行程序—程序分析—有關(guān)說(shuō)明。符合讀者認(rèn)知規(guī)律,容易入門(mén)與提高。
本書(shū)是初學(xué)者學(xué)習(xí)C程序設(shè)計(jì)的理想教材,可作為高等學(xué)校各專(zhuān)業(yè)的正式教材,也是一本自學(xué)的好教材。本書(shū)配有輔助教材《C程序設(shè)計(jì)(第五版)學(xué)習(xí)輔導(dǎo)》(ISBN: 9787302480877)。本書(shū)的PPT電子教案和主輔教材的源代碼,可到清華大學(xué)出版社官網(wǎng)下載,與本書(shū)配合使用的數(shù)字資源也將陸續(xù)推出,供各高校教學(xué)使用。
譚浩強(qiáng)教授,我國(guó)著名計(jì)算機(jī)教育專(zhuān)家。1958年畢業(yè)于清華大學(xué)自動(dòng)控制系。青年時(shí)期曾擔(dān)任清華大學(xué)學(xué)生會(huì)主席、北京市學(xué)聯(lián)副主席、北京市人民代表、全國(guó)文教戰(zhàn)線(xiàn)先進(jìn)分子。他是我國(guó)計(jì)算機(jī)普及和高校計(jì)算機(jī)基礎(chǔ)教育的開(kāi)拓者之一,F(xiàn)任全國(guó)高等院校計(jì)算機(jī)基礎(chǔ)教育研究會(huì)榮譽(yù)會(huì)長(zhǎng)、教育部全國(guó)計(jì)算機(jī)應(yīng)用技術(shù)證書(shū)考試委員會(huì)主任委員,享受?chē)?guó)務(wù)院政府特殊津貼。曾獲國(guó)家科技進(jìn)步獎(jiǎng)、國(guó)家教學(xué)成果獎(jiǎng),被原國(guó)家科學(xué)技術(shù)委員會(huì)和中國(guó)科學(xué)技術(shù)協(xié)會(huì)表彰為“全國(guó)先進(jìn)科普工作者”,被北京市人民政府評(píng)為“北京市有突出貢獻(xiàn)的專(zhuān)家”。
譚浩強(qiáng)教授創(chuàng)造了三個(gè)世界紀(jì)錄:(1)30年來(lái)他(以及和他人合作)共編著出版了160多本計(jì)算機(jī)著作,主編了400多本計(jì)算機(jī)書(shū)籍,是出版科技著作數(shù)量*多的人。(2)他編著和主編的書(shū)發(fā)行量超過(guò)6000萬(wàn)冊(cè),是讀者*多的科技作家。我國(guó)平均每21人、知識(shí)分子每1.2人就擁有一本譚浩強(qiáng)的書(shū)。(3)他和他人合著的《BASIC語(yǔ)言》發(fā)行1250多萬(wàn)冊(cè),他所著的《C程序設(shè)計(jì)》發(fā)行1400多萬(wàn)冊(cè),雙雙創(chuàng)造科技書(shū)籍發(fā)行量的*高紀(jì)錄。他曾在中央電視臺(tái)主講了BASIC,F(xiàn)ORTRAN,COBOL,Pascal,QBASIC,C,Visual Basic七種計(jì)算機(jī)語(yǔ)言,觀(guān)眾超過(guò)500萬(wàn)人。
譚浩強(qiáng)教授善于用讀者容易理解的方法和語(yǔ)言說(shuō)明復(fù)雜的概念。許多人認(rèn)為他開(kāi)創(chuàng)了計(jì)算機(jī)書(shū)籍貼近大眾的新風(fēng),為我國(guó)的計(jì)算機(jī)普及事業(yè)作出重要的貢獻(xiàn)。21世紀(jì)初,被《計(jì)算機(jī)世界》報(bào)組織的“世紀(jì)評(píng)選”評(píng)為“我國(guó)20世紀(jì)*有影響的十個(gè)IT人物”,被《電腦報(bào)》評(píng)為“我國(guó)十大IT人物”,他的功績(jī)是把千百萬(wàn)群眾帶入計(jì)算機(jī)的大門(mén)。
第1章程序設(shè)計(jì)和C語(yǔ)言11.1什么是計(jì)算機(jī)程序1
1.2什么是計(jì)算機(jī)語(yǔ)言1
1.3C語(yǔ)言的發(fā)展及其特點(diǎn)3
1.4最簡(jiǎn)單的C語(yǔ)言程序5
1.4.1最簡(jiǎn)單的C語(yǔ)言程序舉例5
1.4.2C語(yǔ)言程序的結(jié)構(gòu)9
1.5運(yùn)行C程序的步驟與方法11
1.6程序設(shè)計(jì)的任務(wù)13
習(xí)題14
第2章算法——程序的靈魂15
2.1程序=算法+數(shù)據(jù)結(jié)構(gòu)15
2.2什么是算法16
2.3簡(jiǎn)單的算法舉例17
2.4算法的特性20
2.5怎樣表示一個(gè)算法21
2.5.1用自然語(yǔ)言表示算法21
2.5.2用流程圖表示算法21
2.5.3三種基本結(jié)構(gòu)和改進(jìn)的流程圖25
2.5.4用NS流程圖表示算法28
2.5.5用偽代碼表示算法31
2.5.6用計(jì)算機(jī)語(yǔ)言表示算法32
2.6結(jié)構(gòu)化程序設(shè)計(jì)方法33
習(xí)題35
第3章最簡(jiǎn)單的C程序設(shè)計(jì)——順序程序設(shè)計(jì)37
3.1順序程序設(shè)計(jì)舉例37
3.2數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算39
3.2.1常量和變量39
3.2.2數(shù)據(jù)類(lèi)型42
3.2.3整型數(shù)據(jù)44
3.2.4字符型數(shù)據(jù)47
3.2.5浮點(diǎn)型數(shù)據(jù)49
3.2.6怎樣確定常量的類(lèi)型50
3.3運(yùn)算符和表達(dá)式51
3.3.1C運(yùn)算符52
3.3.2基本的算術(shù)運(yùn)算符52
3.3.3自增(++)、自減(--)運(yùn)算符53
3.3.4算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性53
3.3.5不同類(lèi)型數(shù)據(jù)間的混合運(yùn)算54
3.3.6強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符55
3.4C語(yǔ)句56
3.4.1C語(yǔ)句的作用和分類(lèi)56
3.4.2最基本的語(yǔ)句——賦值語(yǔ)句58
3.5數(shù)據(jù)的輸入輸出64
3.5.1輸入輸出舉例64
3.5.2有關(guān)數(shù)據(jù)輸入輸出的概念65
3.5.3用printf函數(shù)輸出數(shù)據(jù)67
3.5.4用scanf函數(shù)輸入數(shù)據(jù)74
3.5.5字符輸入輸出函數(shù)76
習(xí)題80
第4章選擇結(jié)構(gòu)程序設(shè)計(jì)83
4.1選擇結(jié)構(gòu)和條件判斷83
4.2用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)85
4.2.1用if語(yǔ)句處理選擇結(jié)構(gòu)舉例85
4.2.2if語(yǔ)句的一般形式 87
4.3關(guān)系運(yùn)算符和關(guān)系表達(dá)式89
4.3.1關(guān)系運(yùn)算符及其優(yōu)先次序90
4.3.2關(guān)系表達(dá)式90
4.4邏輯運(yùn)算符和邏輯表達(dá)式90
4.4.1邏輯運(yùn)算符及其優(yōu)先次序91
4.4.2邏輯表達(dá)式92
4.5條件運(yùn)算符和條件表達(dá)式94
4.6選擇結(jié)構(gòu)的嵌套96
4.7用switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)99
4.8選擇結(jié)構(gòu)程序綜合舉例102
習(xí)題107
第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)110
5.1為什么需要循環(huán)控制110
5.2用while語(yǔ)句實(shí)現(xiàn)循環(huán)111
5.3用do…while語(yǔ)句實(shí)現(xiàn)循環(huán)113
5.4用for 語(yǔ)句實(shí)現(xiàn)循環(huán)116
5.5循環(huán)的嵌套120
5.6幾種循環(huán)的比較121
5.7改變循環(huán)執(zhí)行的狀態(tài)121
5.7.1用break語(yǔ)句提前終止循環(huán)122
5.7.2用continue語(yǔ)句提前結(jié)束本次循環(huán)123
5.7.3break語(yǔ)句和continue語(yǔ)句的區(qū)別124
5.8循環(huán)程序舉例127
習(xí)題137
第6章利用數(shù)組處理批量數(shù)據(jù)139
6.1怎樣定義和引用一維數(shù)組139
6.1.1怎樣定義一維數(shù)組140
6.1.2怎樣引用一維數(shù)組元素140
6.1.3一維數(shù)組的初始化142
6.1.4一維數(shù)組程序舉例142
6.2怎樣定義和引用二維數(shù)組145
6.2.1怎樣定義二維數(shù)組146
6.2.2怎樣引用二維數(shù)組的元素147
6.2.3二維數(shù)組的初始化148
6.2.4二維數(shù)組程序舉例149
6.3字符數(shù)組151
6.3.1怎樣定義字符數(shù)組151
6.3.2字符數(shù)組的初始化152
6.3.3怎樣引用字符數(shù)組中的元素152
6.3.4字符串和字符串結(jié)束標(biāo)志153
6.3.5字符數(shù)組的輸入輸出156
6.3.6使用字符串處理函數(shù)157
6.3.7字符數(shù)組應(yīng)用舉例162
習(xí)題165
第7章用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)167
7.1為什么要用函數(shù)167
7.2怎樣定義函數(shù)169
7.2.1為什么要定義函數(shù)169
7.2.2定義函數(shù)的方法170
7.3調(diào)用函數(shù)171
7.3.1函數(shù)調(diào)用的形式171
7.3.2函數(shù)調(diào)用時(shí)的數(shù)據(jù)傳遞172
7.3.3函數(shù)調(diào)用的過(guò)程174
7.3.4函數(shù)的返回值174
7.4對(duì)被調(diào)用函數(shù)的聲明和函數(shù)原型176
7.5函數(shù)的嵌套調(diào)用179
7.6函數(shù)的遞歸調(diào)用181
7.7數(shù)組作為函數(shù)參數(shù)189
7.7.1數(shù)組元素作函數(shù)實(shí)參189
7.7.2一維數(shù)組名作函數(shù)參數(shù)191
7.7.3多維數(shù)組名作函數(shù)參數(shù)194
7.8局部變量和全局變量196
7.8.1局部變量196
7.8.2全局變量197
7.9變量的存儲(chǔ)方式和生存期201
7.9.1動(dòng)態(tài)存儲(chǔ)方式與靜態(tài)存儲(chǔ)方式201
7.9.2局部變量的存儲(chǔ)類(lèi)別202
7.9.3全局變量的存儲(chǔ)類(lèi)別205
7.9.4存儲(chǔ)類(lèi)別小結(jié)209
7.10關(guān)于變量的聲明和定義211
7.11內(nèi)部函數(shù)和外部函數(shù)212
7.11.1內(nèi)部函數(shù)212
7.11.2外部函數(shù)213
習(xí)題215
第8章善于利用指針217
8.1指針是什么217
8.2指針變量219
8.2.1使用指針變量的例子219
8.2.2怎樣定義指針變量220
8.2.3怎樣引用指針變量222
8.2.4指針變量作為函數(shù)參數(shù)224
8.3通過(guò)指針引用數(shù)組229
8.3.1數(shù)組元素的指針229
8.3.2在引用數(shù)組元素時(shí)指針的運(yùn)算229
8.3.3通過(guò)指針引用數(shù)組元素231
8.3.4用數(shù)組名作函數(shù)參數(shù)236
8.3.5通過(guò)指針引用多維數(shù)組243
8.4通過(guò)指針引用字符串254
8.4.1字符串的引用方式 254
8.4.2字符指針作函數(shù)參數(shù)258
8.4.3使用字符指針變量和字符數(shù)組的比較262
8.5指向函數(shù)的指針265
8.5.1什么是函數(shù)的指針265
8.5.2用函數(shù)指針變量調(diào)用函數(shù)265
8.5.3怎樣定義和使用指向函數(shù)的指針變量267
8.5.4用指向函數(shù)的指針作函數(shù)參數(shù)269
8.6返回指針值的函數(shù)273
8.7指針數(shù)組和多重指針276
8.7.1什么是指針數(shù)組 276
8.7.2指向指針數(shù)據(jù)的指針變量279
8.7.3指針數(shù)組作main函數(shù)的形參281
8.8動(dòng)態(tài)內(nèi)存分配與指向它的指針變量284
8.8.1什么是內(nèi)存的動(dòng)態(tài)分配284
8.8.2怎樣建立內(nèi)存的動(dòng)態(tài)分配284
8.8.3void指針類(lèi)型 286
8.9有關(guān)指針的小結(jié)288
習(xí)題291
第9章用戶(hù)自己建立數(shù)據(jù)類(lèi)型293
9.1定義和使用結(jié)構(gòu)體變量293
9.1.1自己建立結(jié)構(gòu)體類(lèi)型293
9.1.2定義結(jié)構(gòu)體類(lèi)型變量 295
9.1.3結(jié)構(gòu)體變量的初始化和引用296
9.2使用結(jié)構(gòu)體數(shù)組300
9.2.1定義結(jié)構(gòu)體數(shù)組300
9.2.2結(jié)構(gòu)體數(shù)組的應(yīng)用舉例301
9.3結(jié)構(gòu)體指針303
9.3.1指向結(jié)構(gòu)體變量的指針303
9.3.2指向結(jié)構(gòu)體數(shù)組的指針304
9.3.3用結(jié)構(gòu)體變量和結(jié)構(gòu)體變量的指針作函數(shù)參數(shù)306
9.4用指針處理鏈表309
9.4.1什么是鏈表 309
9.4.2建立簡(jiǎn)單的靜態(tài)鏈表310
9.4.3建立動(dòng)態(tài)鏈表311
9.4.4輸出鏈表315
9.5共用體類(lèi)型317
9.5.1什么是共用體類(lèi)型317
9.5.2引用共用體變量的方式318
9.5.3共用體類(lèi)型數(shù)據(jù)的特點(diǎn)319
9.6使用枚舉類(lèi)型322
9.7用typedef聲明新類(lèi)型名326
習(xí)題330
第10章對(duì)文件的輸入輸出331
10.1C文件的有關(guān)基本知識(shí)331
10.1.1什么是文件331
10.1.2文件名332
10.1.3文件的分類(lèi)332
10.1.4文件緩沖區(qū)333
10.1.5文件類(lèi)型指針333
10.2打開(kāi)與關(guān)閉文件334
10.2.1用fopen函數(shù)打開(kāi)數(shù)據(jù)文件335
10.2.2用fclose函數(shù)關(guān)閉數(shù)據(jù)文件337
10.3順序讀寫(xiě)數(shù)據(jù)文件338
10.3.1怎樣向文件讀寫(xiě)字符338
10.3.2怎樣向文件讀寫(xiě)一個(gè)字符串341
10.3.3用格式化的方式讀寫(xiě)文本文件345
10.3.4用二進(jìn)制方式向文件讀寫(xiě)一組數(shù)據(jù)345
10.4隨機(jī)讀寫(xiě)數(shù)據(jù)文件350
10.4.1文件位置標(biāo)記及其定位350
10.4.2隨機(jī)讀寫(xiě) 353
10.5文件讀寫(xiě)的出錯(cuò)檢測(cè)355
習(xí)題355
附錄357
附錄A常用字符與ASCII代碼對(duì)照表357
附錄BC語(yǔ)言中的關(guān)鍵字358
附錄C運(yùn)算符和結(jié)合性359
附錄DC語(yǔ)言常用語(yǔ)法提要361
附錄EC庫(kù)函數(shù)365
參考文獻(xiàn)371
第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)〖1〗5.1為什么需要循環(huán)控制前面介紹了程序中常用到的順序結(jié)構(gòu)和選擇結(jié)構(gòu),但是只有這兩種結(jié)構(gòu)是不夠的,還需要用到循環(huán)結(jié)構(gòu)(或稱(chēng)重復(fù)結(jié)構(gòu))。因?yàn)樵谌粘I钪谢蚴窃诔绦蛩幚淼膯?wèn)題中常常遇到需要重復(fù)處理的問(wèn)題。例如:
要向計(jì)算機(jī)輸入全班50個(gè)學(xué)生的成績(jī);(重復(fù)50次相同的輸入操作)
分別統(tǒng)計(jì)全班50個(gè)學(xué)生的平均成績(jī);(重復(fù)50次相同的計(jì)算操作)
求30個(gè)整數(shù)之和;(重復(fù)30次相同的加法操作)
檢查30個(gè)學(xué)生的成績(jī)是否及格。 (重復(fù)30次相同的判別操作)
要處理以上問(wèn)題,最原始的方法是分別編寫(xiě)若干個(gè)相同或相似的語(yǔ)句或程序段進(jìn)行處理。例如為了統(tǒng)計(jì)全班50個(gè)學(xué)生的平均成績(jī),可以先編寫(xiě)求一個(gè)學(xué)生平均成績(jī)的程序段: scanf(″%f,%f,%f,%f,%f″,&score1,&score2,&score3,&score4,&score5);//輸入一個(gè)學(xué)生5門(mén)課的成績(jī)
aver=(score1+score2+score3+score4+score5)/5;//求該學(xué)生平均成績(jī)
printf(″aver=%7.2f″,aver);//輸出該學(xué)生平均成績(jī)?nèi)缓笤僦貜?fù)寫(xiě)49個(gè)同樣的程序段。這種方法雖然可以實(shí)現(xiàn)要求,但是顯然是不可取的,因?yàn)楣ぷ髁看,程序冗長(zhǎng)、重復(fù),難以閱讀和維護(hù)。相信每一位讀者都會(huì)認(rèn)為這是最笨的辦法。實(shí)際上,幾乎每一種計(jì)算機(jī)高級(jí)語(yǔ)言都提供了循環(huán)控制,用來(lái)處理需要進(jìn)行的重復(fù)操作。
在C語(yǔ)言中,可以用循環(huán)語(yǔ)句來(lái)處理上面的問(wèn)題: i=1;//設(shè)整型變量i初值為1
while(i<=50) //當(dāng)i的值小于或等于50時(shí)執(zhí)行花括號(hào)內(nèi)的語(yǔ)句
{scanf(″%f,%f,%f,%f,%f″,&score1,&score2,&score3,&score4,&score5);
//輸入一個(gè)學(xué)生5門(mén)課的成績(jī)
aver=(score1+score2+score3+score4+score5)/5; //求該學(xué)生平均成績(jī)
printf(″aver=%7.2f″,aver);//輸出該學(xué)生平均成績(jī)
i++;//每執(zhí)行完一次循環(huán)使i的值加1
} 可以看到: 用一個(gè)循環(huán)語(yǔ)句(while語(yǔ)句),就把需要重復(fù)執(zhí)行50次程序段的問(wèn)題解決了。一個(gè)while語(yǔ)句實(shí)現(xiàn)了一個(gè)循環(huán)結(jié)構(gòu)。請(qǐng)讀者先閱讀這個(gè)程序段,理解循環(huán)結(jié)構(gòu)的執(zhí)行過(guò)程,在下一節(jié)將對(duì)其執(zhí)行過(guò)程作必要的說(shuō)明。
大多數(shù)的應(yīng)用程序都會(huì)包含循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)和順序結(jié)構(gòu)、選擇結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu),它們是各種復(fù)雜程序的基本構(gòu)成單元。因此熟練掌握選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的概念及使用是進(jìn)行程序設(shè)計(jì)最基本的要求。
5.2用while語(yǔ)句實(shí)現(xiàn)循環(huán)
在5.1節(jié)中已看到了在C程序中可以用while語(yǔ)句來(lái)實(shí)現(xiàn)循環(huán)結(jié)構(gòu)。上面的while循環(huán)結(jié)構(gòu)就是一個(gè)while語(yǔ)句,它的執(zhí)行過(guò)程是: 開(kāi)始時(shí)變量i的值為1,while語(yǔ)句首先檢查變量i的值是否小于或等于50,如果是,則執(zhí)行while后面的語(yǔ)句(稱(chēng)為循環(huán)體,在本例中是花括號(hào)內(nèi)的復(fù)合語(yǔ)句)。在循環(huán)體中先輸入第1個(gè)學(xué)生5門(mén)課的成績(jī),然后求出該學(xué)生的平均成績(jī)aver,并輸出此平均成績(jī)。請(qǐng)思考最后一行“i++;”的作用。圖5.1
它使i的值加1,i的原值為1,現(xiàn)在變成2了。然后流程返回到while語(yǔ)句的開(kāi)頭,再檢查i的值是否小于或等于50,由于i的值2小于50,因此又執(zhí)行循環(huán)體,輸入第2個(gè)學(xué)生5門(mén)課的成績(jī),然后求出第2個(gè)學(xué)生的平均成績(jī)并輸出此平均成績(jī)。i++又使變量i的值變?yōu)?,處理第3個(gè)學(xué)生的數(shù)據(jù)……直到處理完第50個(gè)學(xué)生的數(shù)據(jù)后,i的值變?yōu)?1。由于它大于50,因此不再執(zhí)行循環(huán)體。流程圖見(jiàn)圖5.1,其中,虛線(xiàn)框內(nèi)為while循環(huán)結(jié)構(gòu)。
while語(yǔ)句的一般形式如下:
while (表達(dá)式) 語(yǔ)句
其中的“語(yǔ)句”就是循環(huán)體。循環(huán)體只能是一個(gè)語(yǔ)句,可以是一個(gè)簡(jiǎn)單的語(yǔ)句,還可以是復(fù)合語(yǔ)句(用花括號(hào)括起來(lái)的若干語(yǔ)句)。執(zhí)行循環(huán)體的次數(shù)是由循環(huán)條件控制的,這個(gè)循環(huán)條件就是上面一般形式中的“表達(dá)式”,它也稱(chēng)為循環(huán)條件表達(dá)式。當(dāng)此表達(dá)式的值為“真” (以非0值表示)時(shí),就執(zhí)行循環(huán)體語(yǔ)句;為“假” (以0表示)時(shí),就不執(zhí)行循環(huán)體語(yǔ)句。例如“i<=50”是一個(gè)循環(huán)條件表達(dá)式,它是一個(gè)關(guān)系表達(dá)式。它的值只能是“真”或“假”。在執(zhí)行while語(yǔ)句時(shí),先檢查循環(huán)條件表達(dá)式的值,當(dāng)為非0值(真)時(shí),就執(zhí)行while語(yǔ)句中的循環(huán)體語(yǔ)句;當(dāng)表達(dá)式為0(假)時(shí),不執(zhí)行循環(huán)體語(yǔ)句。其流程圖見(jiàn)圖5.2。
while語(yǔ)句可簡(jiǎn)單地記為: 只要當(dāng)循環(huán)條件表達(dá)式為真(即給定的條件成立),就執(zhí)行循環(huán)體語(yǔ)句。
注意: while循環(huán)的特點(diǎn)是先判斷條件表達(dá)式,后執(zhí)行循環(huán)體語(yǔ)句。
通過(guò)下面的例子,可以學(xué)習(xí)到怎樣利用while語(yǔ)句進(jìn)行循環(huán)程序設(shè)計(jì)。
【例5.1】求1+2+3+…+100,即∑100n=1n。
解題思路: 在處理這個(gè)問(wèn)題時(shí),先分析此題的特點(diǎn):
(1) 這是一個(gè)累加的問(wèn)題,需要先后將100個(gè)數(shù)相加。要重復(fù)進(jìn)行100次加法運(yùn)算,顯然可以用循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn)。重復(fù)執(zhí)行循環(huán)體100次,每次加一個(gè)數(shù)。
(2) 分析每次所加的數(shù)有無(wú)規(guī)律。發(fā)現(xiàn)每次累加的數(shù)是有規(guī)律的,后一個(gè)數(shù)是前一個(gè)數(shù)加1。因此不需要每次用scanf語(yǔ)句從鍵盤(pán)臨時(shí)輸入數(shù)據(jù),只須在加完上一個(gè)數(shù)i后,使i加1就可得到下一個(gè)數(shù)。
……
你還可能感興趣
我要評(píng)論
|