![C++程序設(shè)計(jì)第1章_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/31057285-b5f1-49bf-a053-cfe2c1c9dc6b/31057285-b5f1-49bf-a053-cfe2c1c9dc6b1.gif)
![C++程序設(shè)計(jì)第1章_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/31057285-b5f1-49bf-a053-cfe2c1c9dc6b/31057285-b5f1-49bf-a053-cfe2c1c9dc6b2.gif)
![C++程序設(shè)計(jì)第1章_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/31057285-b5f1-49bf-a053-cfe2c1c9dc6b/31057285-b5f1-49bf-a053-cfe2c1c9dc6b3.gif)
![C++程序設(shè)計(jì)第1章_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/31057285-b5f1-49bf-a053-cfe2c1c9dc6b/31057285-b5f1-49bf-a053-cfe2c1c9dc6b4.gif)
![C++程序設(shè)計(jì)第1章_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/31057285-b5f1-49bf-a053-cfe2c1c9dc6b/31057285-b5f1-49bf-a053-cfe2c1c9dc6b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)1第 1 章 概 述清華大學(xué)出版社清華大學(xué)出版社張樹粹張樹粹 等編著等編著C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)2第第 1 章章 主要內(nèi)容主要內(nèi)容n1.1 程序設(shè)計(jì)與高級(jí)語言程序設(shè)計(jì)與高級(jí)語言n1.2 算法算法n1.3 C/C+的發(fā)展史與特點(diǎn)的發(fā)展史與特點(diǎn)n1.4 C程序結(jié)構(gòu)及書寫規(guī)則程序結(jié)構(gòu)及書寫規(guī)則n1.5 C的基本詞法的基本詞法n1.6 C的基本語句的基本語句n1.7 標(biāo)準(zhǔn)輸入標(biāo)準(zhǔn)輸入/輸出函數(shù)輸出函數(shù)n1.8 程序的編輯、編譯、連接和執(zhí)行程序的編輯、編譯、連接和執(zhí)行n1.9 Visual C+的上
2、機(jī)環(huán)境介紹的上機(jī)環(huán)境介紹C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)3導(dǎo)入語導(dǎo)入語n計(jì)算機(jī)語言計(jì)算機(jī)語言計(jì)算機(jī)語言(計(jì)算機(jī)語言(Computer Language)指用于人)指用于人與計(jì)算機(jī)之間通訊的語言。計(jì)算機(jī)語言是人與計(jì)與計(jì)算機(jī)之間通訊的語言。計(jì)算機(jī)語言是人與計(jì)算機(jī)之間傳遞信息的媒介算機(jī)之間傳遞信息的媒介 。程序是為了實(shí)現(xiàn)特定目標(biāo)或解決特定問題而用計(jì)程序是為了實(shí)現(xiàn)特定目標(biāo)或解決特定問題而用計(jì)算機(jī)語言編寫的命令序列的集合。算機(jī)語言編寫的命令序列的集合。 n程序程序 計(jì)算機(jī)每做的一次動(dòng)作,一個(gè)步驟,都是按照已經(jīng)用計(jì)算機(jī)語言計(jì)算機(jī)每做的一次動(dòng)作,一個(gè)步驟,都是按照已經(jīng)用計(jì)算機(jī)
3、語言編好的程序來執(zhí)行。編好的程序來執(zhí)行。n程序設(shè)計(jì)程序設(shè)計(jì) C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)4計(jì)算機(jī)語言的種類計(jì)算機(jī)語言的種類n總的來說可以分成機(jī)器語言,匯編語言總的來說可以分成機(jī)器語言,匯編語言和高級(jí)語言三大類。和高級(jí)語言三大類。 C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)5機(jī)器語言n機(jī)器語言:機(jī)器語言:是用二進(jìn)制代碼表示的計(jì)算機(jī)是用二進(jìn)制代碼表示的計(jì)算機(jī)能直接識(shí)別和執(zhí)行的一種機(jī)器指令的集合。能直接識(shí)別和執(zhí)行的一種機(jī)器指令的集合。n指令的基本格式如:操作碼字段指令的基本格式如:操作碼字段+地址碼字地址碼字段。其中操作碼指明了指令的操作性質(zhì)
4、及功段。其中操作碼指明了指令的操作性質(zhì)及功能,地址碼則給出了操作數(shù)或操作數(shù)的地址。能,地址碼則給出了操作數(shù)或操作數(shù)的地址。它是計(jì)算機(jī)的設(shè)計(jì)者通過計(jì)算機(jī)的硬件結(jié)構(gòu)它是計(jì)算機(jī)的設(shè)計(jì)者通過計(jì)算機(jī)的硬件結(jié)構(gòu)賦予計(jì)算機(jī)的操作功能。是第一代計(jì)算機(jī)語賦予計(jì)算機(jī)的操作功能。是第一代計(jì)算機(jī)語言。言。C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)6機(jī)器語言指令示例n某機(jī)器語言指令某機(jī)器語言指令n某某W65C816S單片機(jī)中機(jī)器代碼單片機(jī)中機(jī)器代碼C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)7匯編語言n匯編語言:匯編語言:面向機(jī)器的程序設(shè)計(jì)語言。在匯編面向機(jī)器的程序設(shè)計(jì)語言。在
5、匯編語合中,用助記符語合中,用助記符(Memoni)代替操作碼,用代替操作碼,用地址符號(hào)地址符號(hào)(Symbol)或標(biāo)號(hào)或標(biāo)號(hào)(Label)代替地址碼。代替地址碼。這樣用符號(hào)代替機(jī)器語言的二進(jìn)制碼,就把機(jī)這樣用符號(hào)代替機(jī)器語言的二進(jìn)制碼,就把機(jī)器語言變成了匯編語言。于是匯編語言亦稱為器語言變成了匯編語言。于是匯編語言亦稱為符號(hào)語言。符號(hào)語言。C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)8匯編語言指令示例nMotorola 68008-bit微處理器中的匯編語言微處理器中的匯編語言指令指令nPentium 系統(tǒng)匯編語言與機(jī)器語言指令對(duì)照系統(tǒng)匯編語言與機(jī)器語言指令對(duì)照C/C+C/
6、C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)9高級(jí)語言n高級(jí)語言又稱“面向人類的語言”,是一種接近于人們使用習(xí)慣的程序設(shè)計(jì)語言。n它屏蔽了機(jī)器的細(xì)節(jié),提高了語言的抽象層次,程序中采用具有一定含義的數(shù)據(jù)命名和容易理解的執(zhí)行語句。n目前被廣泛使用的高級(jí)語言有:C、C+、Java、C#等 C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)10高級(jí)語言示例nC的源程序nC+源程序C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)111.1 程序設(shè)計(jì)與高級(jí)語言程序設(shè)計(jì)與高級(jí)語言 1.1.1 程序與程序設(shè)計(jì)程序與程序設(shè)計(jì) 程序設(shè)計(jì)程序設(shè)計(jì) (Programming)是給
7、出解決特定問題程序的過程。是給出解決特定問題程序的過程。 在拿到一個(gè)實(shí)際問題之后,應(yīng)對(duì)問題的性質(zhì)與要求進(jìn)行深入分在拿到一個(gè)實(shí)際問題之后,應(yīng)對(duì)問題的性質(zhì)與要求進(jìn)行深入分析,從而確定求解問題的數(shù)學(xué)模型或方法,接下來進(jìn)行算法設(shè)析,從而確定求解問題的數(shù)學(xué)模型或方法,接下來進(jìn)行算法設(shè)計(jì),并畫出流程圖。有了算法流程圖,選擇計(jì),并畫出流程圖。有了算法流程圖,選擇在某一程序語言的在某一程序語言的環(huán)境下,依據(jù)該程序語言的語法規(guī)則,編寫出相應(yīng)的程序代碼環(huán)境下,依據(jù)該程序語言的語法規(guī)則,編寫出相應(yīng)的程序代碼n例如:求兩個(gè)整數(shù)和的方法和步驟為:例如:求兩個(gè)整數(shù)和的方法和步驟為:n第第1步步 獲取兩個(gè)整數(shù)獲取兩個(gè)整數(shù)a
8、和和b;n第第2步步 計(jì)算計(jì)算c=a+b;n第第3步步 輸出輸出c;n第第4步步 結(jié)束。結(jié)束。 C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)12【例例1.1】求兩數(shù)和求兩數(shù)和#include /此語句是此語句是C源程序必須書寫的源程序必須書寫的 void main() /聲明主函數(shù)聲明主函數(shù) /主函數(shù)開始主函數(shù)開始 int a,b,sum; /定義定義a,b,sum為整數(shù)為整數(shù) scanf(%d%d,&a,&b); /給整型變量給整型變量a和和b賦值賦值 sum=a+b; /計(jì)算計(jì)算sum=a+b printf(sum=%dn,sum); /輸出計(jì)算結(jié)果輸出
9、計(jì)算結(jié)果sum C程序的基本形式是:程序的基本形式是:#include void main() /一組程序語句一組程序語句C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)13【例例1.1】求兩數(shù)和求兩數(shù)和#include using namespace std; /以上這兩條是以上這兩條是C+程序的必要存在的程序的必要存在的 int main() /聲明主函數(shù)聲明主函數(shù) /主函數(shù)開始主函數(shù)開始 int a,b,sum; /定義定義a,b,sum為整數(shù)為整數(shù) cinab; /給整型變量給整型變量a和和b賦值賦值 sum=a+b; /計(jì)算計(jì)算sum=a+b coutsum=sume
10、ndl; /輸出計(jì)算結(jié)果輸出計(jì)算結(jié)果sum return 0; C+程序的基本形式是:程序的基本形式是:#include using namespace std;int main() /一組程序語句一組程序語句 return 0;C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)141.1.2 高級(jí)語言高級(jí)語言n使用計(jì)算機(jī)高級(jí)語言編寫的程序叫源程序。使用計(jì)算機(jī)高級(jí)語言編寫的程序叫源程序。n源程序不能在計(jì)算機(jī)上直接運(yùn)行,計(jì)算機(jī)只能源程序不能在計(jì)算機(jī)上直接運(yùn)行,計(jì)算機(jī)只能接受接受0 0和和1 1組成的二進(jìn)制程序(又稱二進(jìn)制機(jī)器組成的二進(jìn)制程序(又稱二進(jìn)制機(jī)器指令),高級(jí)語言源程序必須
11、通過系統(tǒng)軟件將指令),高級(jí)語言源程序必須通過系統(tǒng)軟件將其其翻譯成二進(jìn)制程序后翻譯成二進(jìn)制程序后才能執(zhí)行。才能執(zhí)行。n“編譯程序編譯程序” 將源程序全部翻譯成二進(jìn)制程將源程序全部翻譯成二進(jìn)制程序后再執(zhí)行,此種執(zhí)行方式稱為序后再執(zhí)行,此種執(zhí)行方式稱為“編譯執(zhí)行編譯執(zhí)行”方式。方式。n參照?qǐng)D參照?qǐng)D1.11.1C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)15 1.1.2 高級(jí)語言1. C源程序錄入源程序錄入3. 二進(jìn)制機(jī)器指令二進(jìn)制機(jī)器指令2. C 編譯程序編譯程序共共 4 個(gè)步操作個(gè)步操作4. 最后是執(zhí)行程序?qū)崿F(xiàn)功能最后是執(zhí)行程序?qū)崿F(xiàn)功能從源程序到在計(jì)算機(jī)上得到運(yùn)行結(jié)果,其操作過
12、從源程序到在計(jì)算機(jī)上得到運(yùn)行結(jié)果,其操作過程如下:程如下:C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)161.2 算法算法n算法算法算法是指為了解決某個(gè)問題而算法是指為了解決某個(gè)問題而采取的確定且有效的步驟。采取的確定且有效的步驟。C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)171.2.1 算法的特性算法的特性1有窮性有窮性2確定性確定性3可行性可行性4有零個(gè)或多個(gè)輸入有零個(gè)或多個(gè)輸入5有一個(gè)或多個(gè)輸出有一個(gè)或多個(gè)輸出C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)181.2.2 算法表示算法表示1用偽代碼表示算法用偽代碼表示算法2用傳統(tǒng)
13、流程圖表示算法用傳統(tǒng)流程圖表示算法3. 用用N-S流程圖表示算法流程圖表示算法C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)19【例例1.3】求兩個(gè)整數(shù)之和的算法的流程圖求兩個(gè)整數(shù)之和的算法的流程圖 開始開始輸入輸入a,ba,b計(jì)算計(jì)算 c=a+bc=a+b輸出輸出c c值值結(jié)束結(jié)束圖圖1.3 整數(shù)和的傳統(tǒng)流程圖整數(shù)和的傳統(tǒng)流程圖C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)201.3 C/C+的發(fā)展史與特點(diǎn)的發(fā)展史與特點(diǎn) 1.3.1 C/C+的發(fā)展史的發(fā)展史C+是由是由C發(fā)展而來的,與發(fā)展而來的,與C兼容,兼容,C+是是C的的超集。超集。C+語言既可用于面
14、向過程的結(jié)構(gòu)化程序設(shè)計(jì),語言既可用于面向過程的結(jié)構(gòu)化程序設(shè)計(jì),又可用于面向?qū)ο蟮某绦蛟O(shè)計(jì),是一種功能強(qiáng)大又可用于面向?qū)ο蟮某绦蛟O(shè)計(jì),是一種功能強(qiáng)大的程序設(shè)計(jì)語言。的程序設(shè)計(jì)語言。C+保留了保留了C的風(fēng)格和特點(diǎn),同時(shí)對(duì)的風(fēng)格和特點(diǎn),同時(shí)對(duì)C某些不足某些不足做了大量的改進(jìn)和增加了面向?qū)ο蟮臋C(jī)制。改進(jìn)做了大量的改進(jìn)和增加了面向?qū)ο蟮臋C(jī)制。改進(jìn)后的后的C+與與C相比,在數(shù)據(jù)類型方面更加嚴(yán)格,相比,在數(shù)據(jù)類型方面更加嚴(yán)格,使用更加方便了。使用更加方便了。C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)211 1C C語言的特點(diǎn)語言的特點(diǎn)(1)結(jié)構(gòu)化語言)結(jié)構(gòu)化語言 (2)簡(jiǎn)潔、緊湊、靈活
15、)簡(jiǎn)潔、緊湊、靈活(3)運(yùn)算符豐富)運(yùn)算符豐富 (4)中級(jí)語言)中級(jí)語言(5)移植性好)移植性好 (6)功能強(qiáng)大)功能強(qiáng)大(7)編譯語言)編譯語言 (8)語法限制不嚴(yán)格,程序設(shè)計(jì)自由度大)語法限制不嚴(yán)格,程序設(shè)計(jì)自由度大2 2C+C+的特點(diǎn)的特點(diǎn) C+程序中出現(xiàn)了類和對(duì)象,因此程序中出現(xiàn)了類和對(duì)象,因此C+語言與語言與C語言語言的本質(zhì)區(qū)別是增加了面向?qū)ο蟮膬?nèi)容,如支持?jǐn)?shù)據(jù)封裝,支的本質(zhì)區(qū)別是增加了面向?qū)ο蟮膬?nèi)容,如支持?jǐn)?shù)據(jù)封裝,支持基類、派生類的繼承性,支持重載、多態(tài)性等。持基類、派生類的繼承性,支持重載、多態(tài)性等。1.3.2 C/C+語言的特點(diǎn)語言的特點(diǎn)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C
16、+C/C+程序設(shè)計(jì)程序設(shè)計(jì)221.3 C/C+的發(fā)展史與特點(diǎn)的發(fā)展史與特點(diǎn) 3 3、C+C+的改進(jìn)內(nèi)容:的改進(jìn)內(nèi)容:C+規(guī)定函數(shù)說明必須使用原型說明,不可以簡(jiǎn)單說明。規(guī)定函數(shù)說明必須使用原型說明,不可以簡(jiǎn)單說明。C+規(guī)定凡是從高類型向低類型轉(zhuǎn)換時(shí)要進(jìn)行強(qiáng)制轉(zhuǎn)換。規(guī)定凡是從高類型向低類型轉(zhuǎn)換時(shí)要進(jìn)行強(qiáng)制轉(zhuǎn)換。C+中符號(hào)常量建議使用中符號(hào)常量建議使用const關(guān)鍵字來定義(常變量)。關(guān)鍵字來定義(常變量)。C+言中引進(jìn)了內(nèi)聯(lián)函數(shù),可以取代言中引進(jìn)了內(nèi)聯(lián)函數(shù),可以取代C中的帶參的宏中的帶參的宏C+允許設(shè)置函數(shù)參數(shù)的默認(rèn)值,提高程序運(yùn)行的效率。允許設(shè)置函數(shù)參數(shù)的默認(rèn)值,提高程序運(yùn)行的效率。C+引進(jìn)函數(shù)
17、重載和運(yùn)算符重載,編程更加方便。引進(jìn)函數(shù)重載和運(yùn)算符重載,編程更加方便。C+可以使用變量的引用進(jìn)行數(shù)據(jù)傳遞??梢允褂米兞康囊眠M(jìn)行數(shù)據(jù)傳遞。C+提供了提供了I/O流類庫(kù),使輸入流類庫(kù),使輸入/輸出更加方便快捷。輸出更加方便快捷。C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)231.4 C1.4 C程序結(jié)構(gòu)及書寫規(guī)則程序結(jié)構(gòu)及書寫規(guī)則1.4.1 C程序的基本結(jié)構(gòu)程序的基本結(jié)構(gòu) C程序是由一個(gè)主函數(shù)和若干個(gè)(或程序是由一個(gè)主函數(shù)和若干個(gè)(或0個(gè))用個(gè))用戶函數(shù)組成的戶函數(shù)組成的. 主函數(shù)可以調(diào)用任何用戶自定義函數(shù),用戶自定主函數(shù)可以調(diào)用任何用戶自定義函數(shù),用戶自定義函數(shù)間可以互相
18、調(diào)用,但不能調(diào)用主函數(shù)。義函數(shù)間可以互相調(diào)用,但不能調(diào)用主函數(shù)。 程序總是從程序總是從main()main()函數(shù)開始執(zhí)行,不論函數(shù)開始執(zhí)行,不論main()main()函數(shù)函數(shù)在整個(gè)程序中的位置如何。在整個(gè)程序中的位置如何。從主函數(shù)的第一條語句開始執(zhí)行,直到主函數(shù)的最后從主函數(shù)的第一條語句開始執(zhí)行,直到主函數(shù)的最后一條語句結(jié)束。一條語句結(jié)束。 C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)24函數(shù)形式:函數(shù)形式:1 1 函數(shù)說明部分(又稱函數(shù)頭)函數(shù)說明部分(又稱函數(shù)頭)2 2 函數(shù)體函數(shù)體函數(shù)頭格式函數(shù)名緊接著一對(duì)圓括號(hào),如:函數(shù)頭格式函數(shù)名緊接著一對(duì)圓括號(hào),如:main
19、()main()函數(shù)體用大括號(hào)函數(shù)體用大括號(hào) 括起來;括起來;函數(shù)體內(nèi)有若干條語句,它們能完成各種操作,具體函數(shù)函數(shù)體內(nèi)有若干條語句,它們能完成各種操作,具體函數(shù)的功能都寫在函數(shù)體中。的功能都寫在函數(shù)體中。C語言允許函數(shù)體內(nèi)為空。語言允許函數(shù)體內(nèi)為空。1.4 C1.4 C程序結(jié)構(gòu)及書寫規(guī)則程序結(jié)構(gòu)及書寫規(guī)則C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)25 C/C+程序書寫格式隨意,除了保留字外,任何地方都可程序書寫格式隨意,除了保留字外,任何地方都可以插入空格、回車換行符。以插入空格、回車換行符。 為了便于閱讀程序,建議采用格式化的書寫格式,采用縮格為了便于閱讀程序,建議采
20、用格式化的書寫格式,采用縮格縱向?qū)R方式??v向?qū)R方式。 可以在程序的任何一處插入可以在程序的任何一處插入“注釋注釋”。注釋語句是非執(zhí)行。注釋語句是非執(zhí)行語句,不參加編譯,也不會(huì)出現(xiàn)在目標(biāo)文件中,只起到幫助語句,不參加編譯,也不會(huì)出現(xiàn)在目標(biāo)文件中,只起到幫助閱讀程序的作用,如同讀文章加上注釋一樣。閱讀程序的作用,如同讀文章加上注釋一樣。 注釋符:注釋符:/* 這里要寫說明內(nèi)容這里要寫說明內(nèi)容 */ 或或 /1.4.2 程序的書寫規(guī)則程序的書寫規(guī)則C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)261.5 C1.5 C的基本詞法的基本詞法 1.5.1 C使用的字符集使用的字符集
21、1大小寫英文字母大小寫英文字母 A,B,C,Z,a,b,c,z2數(shù)字?jǐn)?shù)字 0,1,2,3,4,5,6,7,8,93鍵盤符號(hào)(如表鍵盤符號(hào)(如表1.1所示)所示)4轉(zhuǎn)義字符轉(zhuǎn)義字符 (如表如表1.2所示所示 )C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)27符號(hào)符號(hào)含含 義義符號(hào)符號(hào)含含 義義符號(hào)符號(hào)含含 義義波浪號(hào)波浪號(hào))右圓括號(hào)右圓括號(hào):冒號(hào)冒號(hào)重音號(hào)重音號(hào)-下劃線下劃線;分號(hào)分號(hào)!嘆號(hào)嘆號(hào)-減號(hào)減號(hào)雙引號(hào)雙引號(hào)a圈號(hào)圈號(hào)+加號(hào)加號(hào)單引號(hào)單引號(hào)#井號(hào)井號(hào)=等號(hào)等號(hào)大于號(hào)大于號(hào)%百分號(hào)百分號(hào)反斜杠反斜杠,逗號(hào)逗號(hào)異或號(hào)異或號(hào)左花括號(hào)左花括號(hào).小數(shù)點(diǎn)小數(shù)點(diǎn)&與符號(hào)與符
22、號(hào)右花括號(hào)右花括號(hào)?問號(hào)問號(hào)*星號(hào)星號(hào)左方括號(hào)左方括號(hào)/(正正)斜杠斜杠(左圓括左圓括號(hào)號(hào)右方括號(hào)右方括號(hào)空格符號(hào)空格符號(hào)表1.1 鍵盤符號(hào)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)28表表1.2 轉(zhuǎn)義字符轉(zhuǎn)義字符轉(zhuǎn)義字符(字符)轉(zhuǎn)義字符(字符)ASCII值值意義說明意義說明n (LF)NL10換行符換行符t (tab)9水平制表符水平制表符b (BS)8退格符退格符r (CR)13回車符回車符f (FF)12換頁(yè)符換頁(yè)符 92反斜線符反斜線符 ()39單引號(hào)符單引號(hào)符 ()34雙引號(hào)符雙引號(hào)符0 (NULL)0空字符空字符a (BELL)7響鈴響鈴ddd 例如:例如:0
23、 012 0, 10八進(jìn)制位型八進(jìn)制位型(這里這里ddd是是1至至3位八進(jìn)位八進(jìn)制數(shù)字制數(shù)字)xhh 例如:例如:x4165十六進(jìn)制位型十六進(jìn)制位型(這里這里hh是是1至至2位十位十六進(jìn)制數(shù)字六進(jìn)制數(shù)字)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)29表表1.3 數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型符數(shù)據(jù)類型符數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型符數(shù)據(jù)類型符數(shù)據(jù)類型數(shù)據(jù)類型char字符型字符型double雙精度型雙精度型int整型整型struct結(jié)構(gòu)型結(jié)構(gòu)型short短整型短整型union共用型共用型long長(zhǎng)整型長(zhǎng)整型typedef類型定義型類型定義型signed int帶符號(hào)整型帶符號(hào)整型en
24、um枚舉型枚舉型unsigned int無符號(hào)整型無符號(hào)整型void空類型空類型float浮點(diǎn)型浮點(diǎn)型const常量常量1.5.2 保留字保留字C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)30表表1.4 數(shù)據(jù)的存儲(chǔ)類型數(shù)據(jù)的存儲(chǔ)類型存儲(chǔ)類型符存儲(chǔ)類型符存儲(chǔ)類型存儲(chǔ)類型存儲(chǔ)類型存儲(chǔ)類型符符存儲(chǔ)類型存儲(chǔ)類型auto自動(dòng)自動(dòng)static靜態(tài)靜態(tài)register寄存器寄存器extern外部外部C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)31表表1.5 其它保留字其它保留字保留字保留字中文含義中文含義保留字保留字中文含義中文含義break中止中止goto轉(zhuǎn)向轉(zhuǎn)向c
25、ase情況情況if如果如果continue繼續(xù)繼續(xù)return返回返回default缺省缺省sizeof計(jì)算字節(jié)數(shù)計(jì)算字節(jié)數(shù)do做做switch開關(guān)開關(guān)else否則否則volatile可變的可變的for對(duì)于對(duì)于while當(dāng)當(dāng)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)321.5.3 預(yù)定義標(biāo)識(shí)符預(yù)定義標(biāo)識(shí)符保留字保留字中文含義中文含義保留字保留字中文含義中文含義define宏定義宏定義include包含包含undef撤消定義撤消定義ifdef如果定義如果定義ifndef如果未定義如果未定義endif編譯結(jié)束編譯結(jié)束line行行表表1.6 預(yù)定義標(biāo)識(shí)符預(yù)定義標(biāo)識(shí)符C/C+C/
26、C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)331. 標(biāo)識(shí)符是由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字標(biāo)識(shí)符是由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。母或下劃線。2. 用戶選取的標(biāo)識(shí)符不能是用戶選取的標(biāo)識(shí)符不能是C預(yù)留的保留字。預(yù)留的保留字。3. 語言是區(qū)分大小寫字母的。因此,語言是區(qū)分大小寫字母的。因此,sum和和Sum及及SUM是不同的標(biāo)識(shí)是不同的標(biāo)識(shí)符。符。 4. 語言中標(biāo)識(shí)符的長(zhǎng)度語言中標(biāo)識(shí)符的長(zhǎng)度(字符個(gè)數(shù)字符個(gè)數(shù))無統(tǒng)一規(guī)定,隨系統(tǒng)不同而異。無統(tǒng)一規(guī)定,隨系統(tǒng)不同而異。1.5.4 標(biāo)識(shí)符標(biāo)識(shí)符標(biāo)識(shí)符是指用戶定義的一種字符序列,通常用來
27、表示程序標(biāo)識(shí)符是指用戶定義的一種字符序列,通常用來表示程序中的變量、符號(hào)常量、函數(shù)、數(shù)組、類型等對(duì)象的名字。中的變量、符號(hào)常量、函數(shù)、數(shù)組、類型等對(duì)象的名字。 C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)34合法的標(biāo)識(shí)符:合法的標(biāo)識(shí)符:sum average day a2 _above x_1_2_3 BASIC yes 不合法的標(biāo)識(shí)符:不合法的標(biāo)識(shí)符:a? /含有非法字符:含有非法字符:? c.G /含有非法字符:小數(shù)點(diǎn)含有非法字符:小數(shù)點(diǎn)A$123 /含有非法字符:含有非法字符:$#33 /含有非法字符:含有非法字符:#123H /非字母或下劃線開頭非字母或下劃線開頭
28、a0 /含有非法字符:含有非法字符: C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)351.5.5 C 的詞類的詞類1、 常量常量 例如例如:3, 0,3.14, a 等。等。2、變量、變量 用變量來存放程序運(yùn)行中變化的數(shù)據(jù)。用變量來存放程序運(yùn)行中變化的數(shù)據(jù)。3、運(yùn)算符、運(yùn)算符 運(yùn)算符是用來表示簡(jiǎn)單計(jì)算的符號(hào)。如運(yùn)算符是用來表示簡(jiǎn)單計(jì)算的符號(hào)。如+、*、/、%等。等。4、函數(shù)調(diào)用、函數(shù)調(diào)用 函數(shù)調(diào)用的作用是執(zhí)行某個(gè)函數(shù)。函數(shù)調(diào)用的作用是執(zhí)行某個(gè)函數(shù)。5、表達(dá)式、表達(dá)式 表達(dá)式是用常量、變量、函數(shù)調(diào)用、運(yùn)算符組成的式子。表達(dá)式是用常量、變量、函數(shù)調(diào)用、運(yùn)算符組成的式子。6、保留
29、字、保留字 在在C程序或語句中,用來表示特定語法含義的英文單詞。程序或語句中,用來表示特定語法含義的英文單詞。C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)361.6 C的基本語句的基本語句C語句是語句是C函數(shù)中的基本單位函數(shù)中的基本單位 ,C語句由表達(dá)式加上語句由表達(dá)式加上語句結(jié)束符構(gòu)成。語句結(jié)束符構(gòu)成。 一般格式為:表達(dá)式;一般格式為:表達(dá)式;1.數(shù)據(jù)定義語句數(shù)據(jù)定義語句 2.賦值語句賦值語句3.函數(shù)調(diào)用語句函數(shù)調(diào)用語句 4.表達(dá)式語句表達(dá)式語句 5.流程控制語句流程控制語句 6.復(fù)合語句復(fù)合語句 7.空語句空語句 8.其它語句其它語句 C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C
30、/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)371.7 標(biāo)準(zhǔn)輸入標(biāo)準(zhǔn)輸入/輸出函數(shù)輸出函數(shù)/VC+6.0上機(jī)環(huán)境支持上機(jī)環(huán)境支持 輸入輸入/輸出的頭文件輸出的頭文件: #include using namespace std; /C語言要求的頭文件語言要求的頭文件 #include 兩者至少必具其一兩者至少必具其一C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)381.7 C 標(biāo)準(zhǔn)輸入標(biāo)準(zhǔn)輸入/輸出函數(shù)輸出函數(shù) 1.7.1 格式化輸入格式化輸入/輸出函數(shù)輸出函數(shù)printf( ) 函數(shù)函數(shù) printf(, )參數(shù)包括兩部分,即格式控制字符串和輸出項(xiàng)列表參數(shù)包括兩部分,即格式控制字符串和輸出
31、項(xiàng)列表例:例:printf(“This is a C program.”);printf(“a=%d”,a);C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)39格式控制字符:格式控制字符:普通字符普通字符【例1.4】輸出一串字符:“This is a C program.”#include /C語言輸出風(fēng)格語言輸出風(fēng)格void main() /C+中默認(rèn)中默認(rèn)int類型類型 printf(This is a C program.); /原樣輸出字符串原樣輸出字符串 This is a C program._C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)40格
32、式控制字符:格式控制字符:專用格式字符專用格式字符由前導(dǎo)字符由前導(dǎo)字符“%”開頭,后面加上格式字符,開頭,后面加上格式字符,表示輸出內(nèi)容的指定格式表示輸出內(nèi)容的指定格式格式符格式符輸輸 出出 類類 型型 說說 明明%d有符號(hào)十進(jìn)制整型(有符號(hào)十進(jìn)制整型(int)%ld有符號(hào)十進(jìn)制長(zhǎng)整型(有符號(hào)十進(jìn)制長(zhǎng)整型(long int)%u無符號(hào)十進(jìn)制整型(無符號(hào)十進(jìn)制整型(unsigned int)%lu無符號(hào)十進(jìn)制長(zhǎng)整型(無符號(hào)十進(jìn)制長(zhǎng)整型(unsigned long int)%o無符號(hào)八進(jìn)制整型無符號(hào)八進(jìn)制整型表表1.7 格式字符格式字符C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)
33、計(jì)41表表1.7 格式字符(續(xù))格式字符(續(xù))格式符格式符輸輸 出出 類類 型型 說說 明明%x無符號(hào)十六進(jìn)制整型無符號(hào)十六進(jìn)制整型(每位數(shù)字從每位數(shù)字從0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f中取值中取值)%X無符號(hào)十六進(jìn)制整型無符號(hào)十六進(jìn)制整型(每位數(shù)字從每位數(shù)字從0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F中取值中取值)%c字符型(字符型(char)%s字符串型字符串型%f有符號(hào)十進(jìn)制浮點(diǎn)型(形如:有符號(hào)十進(jìn)制浮點(diǎn)型(形如:-dddd.dddddd)%lf有符號(hào)十進(jìn)制雙精度型(形如:有符號(hào)十進(jìn)制雙精度型(形如:-dddd.dddddd)% L f有
34、符號(hào)十進(jìn)制雙精度型(形如:有符號(hào)十進(jìn)制雙精度型(形如:-dddd.dddddd)%e有符號(hào)十進(jìn)制浮點(diǎn)型(形如:有符號(hào)十進(jìn)制浮點(diǎn)型(形如:-d.dddddde+/-ddd)%E有符號(hào)十進(jìn)制浮點(diǎn)型(形如:有符號(hào)十進(jìn)制浮點(diǎn)型(形如:-d.ddddddE+/-ddd)%p輸出十六格式的地址輸出十六格式的地址C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)42【例例1.5】當(dāng)當(dāng)a=3,b=-3.14時(shí),輸出時(shí),輸出a和和b的值。的值。 #include /C+輸出風(fēng)格輸出風(fēng)格using namespace std;int main() int a=3; /定義變量定義變量a為整型,并賦值
35、為為整型,并賦值為3 float b=-3.14; / 定義變量定義變量b為浮點(diǎn)型,并賦值為為浮點(diǎn)型,并賦值為-3.14 couta=“ab=“bendl; return 0;a=3,b=-3.140000_C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)43表表1.8 附加格式字符附加格式字符 字字 符符功功 能能 說說 明明 m 數(shù)據(jù)最小寬度數(shù)據(jù)最小寬度 n對(duì)實(shí)數(shù),表示輸出對(duì)實(shí)數(shù),表示輸出n位小數(shù),對(duì)于字符串,表示截取的位小數(shù),對(duì)于字符串,表示截取的字符個(gè)數(shù)字符個(gè)數(shù) +輸出數(shù)據(jù)是正數(shù)時(shí)前帶正號(hào)輸出數(shù)據(jù)是正數(shù)時(shí)前帶正號(hào) 輸出的數(shù)字或字符在域內(nèi)左對(duì)齊。系統(tǒng)默認(rèn)右對(duì)齊。輸出的數(shù)字
36、或字符在域內(nèi)左對(duì)齊。系統(tǒng)默認(rèn)右對(duì)齊。格式控制字符:格式控制字符: 附加格式字符附加格式字符C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)44【例1.6】printf( )函數(shù)輸出寬度的定義舉例#include void main( ) int a=3,b=12345; char x =“1234567890”; char y =“abcdefghijklmn”; printf(“%10d,%8dn”,a,b); printf(“%13s,%8sn”,x,y); printf(“%3d,%3dn”,a,b); 3a12345b1234567890 xabcdefghijklmn
37、 y3,43215425 7316 890,geh jfdcibaklmn,332145_C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)45【例1.7】按格式定義寬度輸出實(shí)型數(shù)據(jù)。#include void main() float a=12345.6,b=123.789,c=12.34567; printf(a=%7.2f,b=%7.2f,c=%7.2fn,a,b,c);,12345.6a123.789b12.34567ca=6.543201b=7.3219,c=3.215_ _ _ _C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)46【例1.8】按格式定
38、義寬度輸出字符串。#includevoid main() printf(%3s,%7.2s,% .4s,%-5.3sn, CHINA,CHINA,CHINA,CHINA); ,CH I NACH ,NIHCIHC,_ _ _ _C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)47【例1.9】按格式定義寬度輸出各種類型的數(shù)據(jù)。#include void main() char c=1; int a=1234,b; float f=3.141592653589; double x=0.12345678987654321; printf(“a=%d n”,a); /輸出十進(jìn)制整數(shù) p
39、rintf(“a=%6d n”,a); /輸出6位十進(jìn)制整數(shù) 1c1234ab3.141593 f0.1234567899876543 xa = 1 2 3 4a =1 2 3 4_C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)48續(xù)printf(“a=%06d n”,a); printf(a=%2d n,a); printf(f=%f n,f); printf(“f=%6.4f n”,f); printf(x=%f n,x); printf(c=%c n,c); 1c1234a3.141593 f0.1234567899876543 xa = 0 0 1 2 3 4a =
40、1 2 3 4f = 3 . 1 4 1 5 9 3f = 3 . 1 4 1 6x = 0 . 1 2 3 4 5 7c = 1_C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)49格式控制字符格式控制字符: : 轉(zhuǎn)義字符轉(zhuǎn)義字符 ASCII碼中碼中031是控制字符,在程序中使用轉(zhuǎn)義字符完是控制字符,在程序中使用轉(zhuǎn)義字符完成其控制功能,表成其控制功能,表1.2。例例【 1.10】轉(zhuǎn)義字符轉(zhuǎn)義字符101輸出的字符輸出的字符A。 #include void main() char ch; ch=101; /101是是3位八進(jìn)制整數(shù)位八進(jìn)制整數(shù),相當(dāng)十進(jìn)制的相當(dāng)十進(jìn)制的65 pri
41、ntf(“%cn”,ch); /如果輸出對(duì)應(yīng)的如果輸出對(duì)應(yīng)的ASCII,是,是65 C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)502. scanf( )函數(shù)函數(shù) 功能:程序執(zhí)行時(shí)從標(biāo)準(zhǔn)讀入設(shè)備(鍵盤)讀取程序中所功能:程序執(zhí)行時(shí)從標(biāo)準(zhǔn)讀入設(shè)備(鍵盤)讀取程序中所需要的信息,通常稱其為標(biāo)準(zhǔn)輸入函數(shù)。需要的信息,通常稱其為標(biāo)準(zhǔn)輸入函數(shù)。 格式:格式: scanf(“”,地址表,地址表); 【例例1.11】給整數(shù)給整數(shù)a、b賦值賦值5和和8,并指定以,并指定以a=5,b=8格式輸出。格式輸出。 #include void main() int a,b; scanf(“%d%d”
42、,&a,&b); /給給a和和b的內(nèi)存地址中送整數(shù)值的內(nèi)存地址中送整數(shù)值 printf(“a=%d,b=%d n”,a,b); /輸出輸出a和和b的值的值 aba=5,b=8585 8 _C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)51scanf()函數(shù)函數(shù)格式字符串說明:(1)格式分隔符)格式分隔符 1、默認(rèn)、默認(rèn):包括空格、制表符和換行符包括空格、制表符和換行符 3種種 2、用戶可以自定義,比如用逗號(hào)分隔兩個(gè)變量、用戶可以自定義,比如用逗號(hào)分隔兩個(gè)變量(2)格式字符)格式字符 表表1.9 格式字符格式字符(3)附加字符格式符)附加字符格式符 表表1.10
43、 附加格式附加格式C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)52表表1.9 格式字符格式字符格式符格式符輸輸 入入 類類 型型 說說 明明%d輸入一個(gè)十進(jìn)制整型數(shù)據(jù)(輸入一個(gè)十進(jìn)制整型數(shù)據(jù)(int)%u輸入一個(gè)無符號(hào)十進(jìn)制整型數(shù)據(jù)(輸入一個(gè)無符號(hào)十進(jìn)制整型數(shù)據(jù)(unsigned int)%o輸入一個(gè)無符號(hào)八進(jìn)制整型數(shù)據(jù)輸入一個(gè)無符號(hào)八進(jìn)制整型數(shù)據(jù)%x,%X輸入一個(gè)無符號(hào)十六進(jìn)制整型輸入一個(gè)無符號(hào)十六進(jìn)制整型%c輸入一個(gè)字符型數(shù)據(jù)(輸入一個(gè)字符型數(shù)據(jù)(char)%s輸入一個(gè)字符串,到第一個(gè)輸入一個(gè)字符串,到第一個(gè)0結(jié)束結(jié)束%f輸入一個(gè)有符號(hào)十進(jìn)制浮點(diǎn)型數(shù)據(jù)(形如:輸入一個(gè)有
44、符號(hào)十進(jìn)制浮點(diǎn)型數(shù)據(jù)(形如:-dddd.dddddd)%E,%G與格式與格式f相同相同C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)53表表1.10 附加格式字符附加格式字符附加字符附加字符功功 能能 說說 明明l輸入長(zhǎng)整型(輸入長(zhǎng)整型(%ld,%lo,%lx)及)及double型數(shù)據(jù)型數(shù)據(jù)(%lf,%Le)h輸入短整型數(shù)據(jù)(輸入短整型數(shù)據(jù)(%hd,%ho,%hx)w(域?qū)捰驅(qū)?指定輸入數(shù)據(jù)寬度(列寬),系統(tǒng)自動(dòng)截取用戶所規(guī)指定輸入數(shù)據(jù)寬度(列寬),系統(tǒng)自動(dòng)截取用戶所規(guī)定的位數(shù),定的位數(shù),w為整數(shù)(為整數(shù)(%3d)*虛讀:本輸入項(xiàng)在讀入數(shù)據(jù)后不賦給下一變量虛讀:本輸入項(xiàng)在讀入
45、數(shù)據(jù)后不賦給下一變量C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)54scanf(%d%d,&a,&b);abscanf(a=%d,b=%d,&a,&b);5 8 a= 5 ,b=8 scanf(%d,%d,&a,&b);5 , 8 5 8 a=5 b=8 baab練習(xí)5858585?C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)55【例1.12】輸入“123456”,觀察變量a,b取值方式。#include void main() int a,b; scanf(%3d%3d,&a,&b); p
46、rintf(a=%d,b=%dn,a,b);限制取三位寬限制取三位寬123456 a=123,b=456ab123456_C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)56【例例1.13】空格作為字符數(shù)據(jù)讀入。空格作為字符數(shù)據(jù)讀入。#includevoid main() char a,b,c; scanf(%c%c%c,&a,&b,&c); printf(%c%c%cn,a,b,c);abcXYZ XYXY_C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)57 printf(“請(qǐng)輸入a,b,c的值(3,5,7):”); scanf(“%
47、d,%d,%d”); 注意:注意:1 1、在輸入語句前加輸入提示語句,、在輸入語句前加輸入提示語句,保證變量輸入順序不要亂。例如:保證變量輸入順序不要亂。例如:注意(注意(2)輸入數(shù)據(jù)時(shí),遇到以下情況系統(tǒng)認(rèn)為讀數(shù)據(jù))輸入數(shù)據(jù)時(shí),遇到以下情況系統(tǒng)認(rèn)為讀數(shù)據(jù)結(jié)束。結(jié)束。 遇到空格,或按下遇到空格,或按下鍵或鍵或鍵。鍵。 指定寬度讀完,如指定寬度讀完,如%3d,只取只取3位整數(shù)。位整數(shù)。 遇到非法輸入。遇到非法輸入。C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)58【例1.14】“v”字符的輸入結(jié)束了變量a的取值。#includevoid main() int a; char b;
48、 float c; scanf(%d%c%f,&a,&b,&c); printf(a=%d,b=%c,c=%fn,a,b,c);數(shù)據(jù)類型不同,起到了分隔作用數(shù)據(jù)類型不同,起到了分隔作用abc12v345.678 _12v345.678a=12,b=v,c=345.678009_C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)59【例1.15】在一個(gè)程序中出現(xiàn)幾次scanf函數(shù)的調(diào)用,可按規(guī)定格式順序在一行內(nèi)完成輸入(或幾行)。#include void main() int a, b,c,d,e,f; scanf(%d %d,&a,&b)
49、; scanf(%d %d,&c,&d); scanf(%d,&e); scanf(%d,&f); /出現(xiàn)出現(xiàn)4行輸入語句行輸入語句printf(a=%d,b=%d,c=%d,d=%d,e=%d,f=%dn,a,b,c,d,e,f);1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)60【例例1.161.16】scanfscanf()函數(shù)調(diào)用語句前加上輸入信息提()函數(shù)調(diào)用語句前加上輸入信息提示語句,以方便數(shù)據(jù)輸入,調(diào)用示語句,以方便數(shù)據(jù)輸入,調(diào)用printfprintf函數(shù)完
50、成此功能。函數(shù)完成此功能。#include void main() char c1,c2; int i1,i2; printf(input char c1, c2:n); scanf(%c,%c,&c1,&c2); printf(input int i1, i2:n); scanf(%d,%d,&i1,&i2); printf(%c,%cn,c1, c2); printf(%d,%dn,i1, i2); c1c2i1 input char c1,c2:a,b i2 input int i1,i2:3,5 a,b 3,5_ab_35_C/C+C/C+程序設(shè)計(jì)程序設(shè)
51、計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)611.7.2 C+1.7.2 C+的輸入的輸入/ /輸出輸出流名流名含義含義默認(rèn)設(shè)備默認(rèn)設(shè)備 cin cout cerr clog 標(biāo)準(zhǔn)輸入標(biāo)準(zhǔn)輸入 標(biāo)準(zhǔn)輸出標(biāo)準(zhǔn)輸出 標(biāo)準(zhǔn)出錯(cuò)輸出標(biāo)準(zhǔn)出錯(cuò)輸出 cerr的緩沖形式的緩沖形式 鍵盤鍵盤 顯示器顯示器 顯示器顯示器 顯示器顯示器1介紹介紹I/O流流C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)62當(dāng)程序需要在屏幕上顯示輸出時(shí),可以使用插入操作符當(dāng)程序需要在屏幕上顯示輸出時(shí),可以使用插入操作符向向coutcout輸出流中插入字符,格式:輸出流中插入字符,格式: cout表達(dá)式表達(dá)式1”,從鍵盤取得
52、數(shù)據(jù)送到輸入流從鍵盤取得數(shù)據(jù)送到輸入流cin中,再到內(nèi)存。格式:中,再到內(nèi)存。格式: cin表達(dá)式表達(dá)式1表達(dá)式表達(dá)式22. 2. 預(yù)定義的插入符和提取符預(yù)定義的插入符和提取符ncout等價(jià)等價(jià)C函數(shù):函數(shù): printf() ncin等價(jià)等價(jià)C函數(shù):函數(shù): scanf()C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)63例例1.4改寫成改寫成C+程序,源代碼如下程序,源代碼如下 :#include void main() printf(This is a C program.); /coutThis is a C program. endl; 將例將例1.16改寫成改寫成C
53、+程序,程序, 見后頁(yè)見后頁(yè)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)64#include using namespace std;int main() char c1,c2;int i1,i2;coutinput char c1,c2:c1c2; coutinput int i1, i2:i1i2; coutc1 c2endl; couti1 i2endl; return0; c1c2i1 input char c1,c2:ab i2 input int i1,i2:35 ab 35_ab_35_C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)653.
54、C+控制符簡(jiǎn)介控制符簡(jiǎn)介改變輸出格式比較簡(jiǎn)單的方法是控制符改變輸出格式比較簡(jiǎn)單的方法是控制符(操縱函數(shù)操縱函數(shù)),控制符是控制符是頭文件中的對(duì)象頭文件中的對(duì)象, 控制符引用是以控制符引用是以一個(gè)流引用作為參數(shù)一個(gè)流引用作為參數(shù),嵌入到輸入或輸出流中。控制符所嵌入到輸入或輸出流中。控制符所在的頭文件在的頭文件 include 使用格式:使用格式:coutsetiosflags(ios:left) ; 其中:其中:setiosflags 為控制符為控制符 (操縱函數(shù)操縱函數(shù));ios 為流為流 (預(yù)定義類預(yù)定義類) ;:為域符為域符 (作用域區(qū)分符作用域區(qū)分符);left為成員函數(shù);為成員函數(shù);C
55、/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)66常用控制符常用控制符 描述描述dec 置基數(shù)為置基數(shù)為10hex 置基數(shù)為置基數(shù)為16oct 置基數(shù)為置基數(shù)為8setfill(c) 設(shè)填充字符為設(shè)填充字符為csetprecision(n) 設(shè)顯示小數(shù)精度為設(shè)顯示小數(shù)精度為n位位setw(n) 設(shè)域?qū)挒樵O(shè)域?qū)挒閚個(gè)字符個(gè)字符setiosflags(ios:fixed) 固定的浮點(diǎn)顯示固定的浮點(diǎn)顯示setiosflags(ios:left) 左對(duì)齊左對(duì)齊setiosflags(ios:right) 右對(duì)齊右對(duì)齊setiosflags(ios:skipws)忽略前導(dǎo)空格忽略前導(dǎo)空格
56、setiosflags(ios:uppercase) 16進(jìn)制數(shù)大寫輸出進(jìn)制數(shù)大寫輸出setiosflags(ios:lowercase) 16進(jìn)制數(shù)小寫輸出進(jìn)制數(shù)小寫輸出C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)674. C+4. C+常用控制符的應(yīng)用舉例常用控制符的應(yīng)用舉例(1)控制浮點(diǎn)數(shù)值顯示控制浮點(diǎn)數(shù)值顯示setiosflags(ios:fixed) /設(shè)置以定點(diǎn)數(shù)形式輸出,默認(rèn)輸出形式設(shè)置以定點(diǎn)數(shù)形式輸出,默認(rèn)輸出形式setiosflags(ios:scientific) /設(shè)置以指數(shù)形式輸出設(shè)置以指數(shù)形式輸出setprecision(n) /設(shè)置顯示浮點(diǎn)數(shù)的數(shù)
57、字個(gè)數(shù),默認(rèn)時(shí)輸出數(shù)值有效位是設(shè)置顯示浮點(diǎn)數(shù)的數(shù)字個(gè)數(shù),默認(rèn)時(shí)輸出數(shù)值有效位是6如果如果setprecision(n)與與setiosflags(ios:fixed)合用,可以控制小合用,可以控制小數(shù)點(diǎn)右邊的數(shù)字個(gè)數(shù)。如果與數(shù)點(diǎn)右邊的數(shù)字個(gè)數(shù)。如果與setiosnags(ios:scientific)合用,合用, 可以控制指數(shù)表示法的小數(shù)位數(shù)??梢钥刂浦笖?shù)表示法的小數(shù)位數(shù)。C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)68【例例1.17】 設(shè)置浮點(diǎn)數(shù)值顯示格式。設(shè)置浮點(diǎn)數(shù)值顯示格式。#include #include using namespace std; int main
58、 ( ) double amount = 22.0 / 7; cout amount endl ; 3.142863.14285714amount_C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)69cout setprecision ( 0 ) amount endl setprecision ( 2 ) amount endl setprecision ( 4 ) amount endl; cout setiosflags ( ios : fixed ) ;cout setprecision ( 8 ) amount 數(shù)據(jù)長(zhǎng)度時(shí)數(shù)據(jù)長(zhǎng)度時(shí), 按定義長(zhǎng)度數(shù)據(jù)右對(duì)齊;按定義長(zhǎng)度
59、數(shù)據(jù)右對(duì)齊;n數(shù)據(jù)長(zhǎng)度時(shí)數(shù)據(jù)長(zhǎng)度時(shí),數(shù)據(jù)按實(shí)際寬度顯示。例如數(shù)據(jù)按實(shí)際寬度顯示。例如:float pi=3.14159; coutsetw(10)pisetw(3)pi; / 定義以定義以10個(gè)和個(gè)和3 個(gè)字符寬度輸出個(gè)字符寬度輸出pi coutsetw(12)pipi; / 定義以定義以12個(gè)和默認(rèn)格式輸出個(gè)和默認(rèn)格式輸出 pi4. C+4. C+常用控制符的應(yīng)用舉例常用控制符的應(yīng)用舉例C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)71(3)輸出)輸出8進(jìn)制和進(jìn)制和16進(jìn)制數(shù)進(jìn)制數(shù)dec 十進(jìn)制形式輸出;十進(jìn)制形式輸出; oct 八進(jìn)制形式輸出;八進(jìn)制形式輸出;hex 十六
60、進(jìn)制形式輸出;十六進(jìn)制形式輸出;以上以上 3 個(gè)控制符在個(gè)控制符在 iostream.h 文件中文件中. setiosflags(ios:uppercase) /十六進(jìn)制大寫輸出十六進(jìn)制大寫輸出 setiosflags(ios:lowcase) /十六進(jìn)制小寫輸出十六進(jìn)制小寫輸出以上以上 2 個(gè)控制符在個(gè)控制符在 iomanip.h 中中.4. C+4. C+常用控制符的應(yīng)用舉例常用控制符的應(yīng)用舉例C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)C/C+C/C+程序設(shè)計(jì)程序設(shè)計(jì)72【例例1.18 】輸出輸出10進(jìn)制、進(jìn)制、8進(jìn)制和進(jìn)制和16進(jìn)制數(shù)進(jìn)制數(shù)#include #include using namespace std;int main( ) int number=1001; coutDecimal: dec numberendl; coutOctal: oct numberendl ; coutHexadecim
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 班級(jí)文化在培養(yǎng)學(xué)生領(lǐng)導(dǎo)力中的作用研究
- 瑜伽呼吸法對(duì)身心健康的促進(jìn)作用
- 《平行四邊形的初步認(rèn)識(shí)之四邊形、五邊形和六邊形的初步認(rèn)識(shí)》(說課稿)-2024-2025學(xué)年二年級(jí)上冊(cè)數(shù)學(xué)蘇教版
- 班級(jí)健康管理與家長(zhǎng)合作模式
- 深入開展安全生產(chǎn)培訓(xùn)的探索與實(shí)踐案例分享
- 未來教育中的綠色能源教育內(nèi)容
- 環(huán)境科學(xué)前沿研究與實(shí)際應(yīng)用案例分析
- 現(xiàn)代服務(wù)業(yè)的企業(yè)文化建設(shè)與價(jià)值觀塑造
- 班級(jí)活動(dòng)設(shè)計(jì)與學(xué)生心理發(fā)展促進(jìn)
- 生物技術(shù)推動(dòng)辦公效率的未來之鑰
- 商業(yè)銀行的風(fēng)險(xiǎn)審計(jì)與內(nèi)部控制
- 2025年新能源汽車銷售傭金返點(diǎn)合同范本6篇
- 2025-2030年中國(guó)配電變壓器市場(chǎng)未來發(fā)展趨勢(shì)及前景調(diào)研分析報(bào)告
- GB/T 45120-2024道路車輛48 V供電電壓電氣要求及試驗(yàn)
- 2025年上海市嘉定區(qū)中考英語一模試卷
- 潤(rùn)滑油、潤(rùn)滑脂培訓(xùn)課件
- 2025年中核財(cái)務(wù)有限責(zé)任公司招聘筆試參考題庫(kù)含答案解析
- 華中師大一附中2024-2025學(xué)年度上學(xué)期高三年級(jí)第二次考試數(shù)學(xué)試題(含解析)
- ADA糖尿病醫(yī)學(xué)診療標(biāo)準(zhǔn)指南修訂要點(diǎn)解讀(2025)課件
- 健康管理-理論知識(shí)復(fù)習(xí)測(cè)試卷含答案
- 成人腦室外引流護(hù)理-中華護(hù)理學(xué)會(huì)團(tuán)體 標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論