2014cpp語(yǔ)言學(xué)習(xí)-零起點(diǎn)學(xué)快速入門_第1頁(yè)
2014cpp語(yǔ)言學(xué)習(xí)-零起點(diǎn)學(xué)快速入門_第2頁(yè)
2014cpp語(yǔ)言學(xué)習(xí)-零起點(diǎn)學(xué)快速入門_第3頁(yè)
2014cpp語(yǔ)言學(xué)習(xí)-零起點(diǎn)學(xué)快速入門_第4頁(yè)
2014cpp語(yǔ)言學(xué)習(xí)-零起點(diǎn)學(xué)快速入門_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余18頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

零起點(diǎn)學(xué)C++比如C/C++功能強(qiáng)大,而PASCAL更加易用。雖然目前信息學(xué)競(jìng)賽的、資料、等仍以PASCALC或C++卻是未來(lái)發(fā)展的一種趨勢(shì)。對(duì)于沒(méi)有編程學(xué)習(xí)經(jīng)驗(yàn)的初學(xué)者來(lái)說(shuō),C++C++C++語(yǔ)言概一、第一個(gè)C++程人們?cè)陔娔X上工作往往會(huì)根據(jù)不同的目的選擇不同的來(lái)解決問(wèn)題如打字排版一般會(huì)使用Word,上網(wǎng)瀏覽信息常常使用IE等,現(xiàn)在要使用C++編寫程序,也要使用一種編程的,這里CPPDev-Dev-C++4.9.9.2“OKAgree“Next“InstallClose”等進(jìn)行安裝,第一次運(yùn)行時(shí),程序會(huì)提示你進(jìn)行界面設(shè)置,當(dāng)出現(xiàn)“Dev-C++timeconfiguration”窗口(1)時(shí),選擇語(yǔ)言為“ChineseDev-C++顯示為中文界面。Dev-C++2編寫第一個(gè)C++程【例1】現(xiàn)在使用Dev-C++來(lái)編寫第一個(gè)C++程序(Ctrl+N, //My#include<iostream>usingnamespacestd;intmain(){ return0;} o.cpp(files按“F93窗口雖然該程序的功能只是輸出一句話 o.cpp這個(gè) o.exe這個(gè)可執(zhí)行文件。C++程序的結(jié)好了,讓來(lái)分析一下該程序的結(jié)構(gòu),從而了解C++程序的一般構(gòu)成 #include以#號(hào)開(kāi)始的語(yǔ)句叫預(yù)處理語(yǔ)句。include是包含的意思;iostreaminandoutstream,即基本輸入usingnamespaceC++的標(biāo)準(zhǔn)命名空間——std。C++中,因此為了能夠使用這些標(biāo)準(zhǔn)函數(shù),就用這條語(yǔ)句來(lái)它1班的張三了。<C++int,汽車(程序)C++mainC++程序的運(yùn)行的起始點(diǎn)。intmainint(整數(shù))intmain函數(shù)的內(nèi)容由一對(duì)花括號(hào){}括起來(lái),稱為函數(shù)體。函數(shù)體由左花括號(hào){開(kāi)始,到右花括號(hào)}結(jié)束,cout<< o這條語(yǔ)句的作用是在屏幕上顯示oWorldC++使用“流”的概念進(jìn)行數(shù)據(jù)的輸入輸出,可以假想兩種方向的數(shù)據(jù)流:一種是從鍵盤等外部設(shè)備流向計(jì)算機(jī)的,叫輸入流;另一種是從計(jì)算機(jī)流向屏幕等外部設(shè)備的,叫輸出流。cout是C++中的標(biāo)準(zhǔn)輸出流(通常為控制臺(tái),即屏幕),這條語(yǔ)句把一行字符串oWorld!輸出注意這個(gè)句子以分號(hào)(;)結(jié)尾。分號(hào)表示一個(gè)語(yǔ)句的結(jié)束,C++的每一個(gè)完整語(yǔ)句都必須以分號(hào)結(jié)尾return值的類型必須和函數(shù)的類型相同,由于主函數(shù)是int類型的,所以就返回一個(gè)0,這是在程序執(zhí)行沒(méi)有程序框根據(jù)以上對(duì)C++程序基本結(jié)構(gòu)的理解,現(xiàn)在來(lái)建立一個(gè)空的程序框架#include<iostream>usingnamespacestd;intmain(){return}intmain(){cout<<"oWorld!";return0;二、學(xué)會(huì)與數(shù)據(jù)打交數(shù)據(jù)類int——整數(shù)類型(整型顧名思義,它就是平時(shí)所說(shuō)的整數(shù),通常用于整數(shù)計(jì)算、循環(huán)計(jì)數(shù)等f(wàn)loat——浮點(diǎn)型(實(shí)型char——‘A‘6bool——布爾型、邏輯booltrue(真)false(假)變量與變4a、x、r等分別表示一個(gè)變量,可以存放一個(gè)某種類型的數(shù)據(jù)。在程axrls_a、x、x2、x_2、student_name等。但要注意區(qū)分字母的大小寫,C++小寫敏感”的,即同樣的字母,大寫和小寫代表不同的變量名。因此,像age、Age和AGE分別表示的是變量的語(yǔ)法格式為數(shù)數(shù)據(jù)類量int //了一個(gè)整型變量float 如果你要多個(gè)同一類型的變量,你可以將它們縮寫在同一行中,如inta,b,a、b、cinta;intb;int另外,也可以在變量時(shí)直接給它賦一個(gè)初始值,如intage=0;語(yǔ)句了一個(gè)整型變量age,并為它賦初始值0,盡管為0不具有任何實(shí)際意義,但卻避免了這個(gè)變量在使用前可能有的不確定值,因此,在變量時(shí)進(jìn)行初始化是一個(gè)好的。表達(dá)式與賦值語(yǔ)abss=a*b進(jìn)行計(jì)算。在s=a*b中,可以這樣理解變量之間的關(guān)系1、計(jì)算a*b的積,像這樣的由變量和運(yùn)算符號(hào)等所組成的式子,稱之為表達(dá)式2、將等號(hào)“=”右邊的值賦給左邊的變量,即將a*b的積賦給了s,稱之為賦值語(yǔ)句。下面通過(guò)實(shí)例體會(huì)通過(guò)變量與數(shù)據(jù)打交道的方法。1】5.0r=5.0s=3.14*r*r(r2r*r代替)套用上面 oWorld程序框架,可以嘗試編寫如下程序#include<iostream>usingnamespacestd;intmain(){floatr,l,s; //為變量r賦值5.0 //分別根據(jù)公式計(jì)算l、s //分別輸出顯示l、s的值 //endl表示另起一行return}數(shù)據(jù)的輸入輸讓程序接收用戶輸入的數(shù)據(jù),讓全面地了解C++的輸入/輸出功能。作依靠?jī)煞N數(shù)據(jù)流:cin(讀作see-in)和cout(讀作see-out)。cin(標(biāo)準(zhǔn)輸入流)通常被定向到鍵盤,而cout(標(biāo)準(zhǔn)輸出流)通常被定向到屏幕。通俗地說(shuō),cincout是屏幕的代名詞。前例中使用的cout語(yǔ)法格式為coutcout輸出內(nèi)容1[<<輸出內(nèi)2……<<輸出內(nèi)<<(于號(hào))cout上。\no另起一行World!另起一行cincin>>cin>>1[>>2……>>變量其中,輸入操作符“>>(上數(shù)據(jù)并把它在變量r中,可使用語(yǔ)句:數(shù)值就被送入變量r中起來(lái),并繼續(xù)執(zhí)行下面的語(yǔ)句。注意,cin要和“>>”一起使用,它后面必須跟一個(gè)變量以便讀入的數(shù)據(jù)2】2改為:從鍵盤輸入圓的半徑值,編程求其相應(yīng)的周長(zhǎng)與面積。”改為“cin>>r;為了便于cin和cout中雙大于號(hào)、雙小于號(hào)的箭頭方向,可以做這種理解:“cin>>變量”中箭頭方向朝右,象征著數(shù)據(jù)流從cin(鍵盤)傳送給變量;“cout<<輸出內(nèi)容”中箭頭方向朝左,象征著數(shù)據(jù)流從輸出內(nèi)容傳送給cout(屏幕三、學(xué)會(huì)說(shuō)如果……那么)……,……,if語(yǔ)if符合某if符合某個(gè)條件要執(zhí)行的語(yǔ)句xx20,則xifx%2==0)cout<<"x為偶數(shù)其中,括號(hào)內(nèi)的“x%2==0x20的語(yǔ)句,當(dāng)條件成立時(shí),執(zhí)行該語(yǔ)句,即輸出“x#include<iostream>usingnamespacestd;intmain(){intx;ifx%2==0)cout<<"x為偶數(shù)return}if符合if符合某個(gè)條件{}【例1】編程完成如下任務(wù)#include<iostream>usingnamespacestd;intmain(){intif{}if{}return0;}5891,輸出結(jié)果如下:否if符合某個(gè)條件if符合某個(gè)條件12if符合某個(gè)條件if符合某個(gè)條件{語(yǔ)句}{語(yǔ)句}if{}{}條件的構(gòu)現(xiàn)在來(lái)研究if語(yǔ)句中條件的構(gòu)成。在紛繁復(fù)雜的世界萬(wàn)象中許多事物都可以簡(jiǎn)單地分成兩種狀要么為假。數(shù)學(xué)家布爾提出了用1和0(也就是True和False)表示兩種狀態(tài)的方法,也就是前面曾if語(yǔ)句的條件構(gòu)成既可以是(x>0)這樣的簡(jiǎn)單形式,也可以是(a+b>c)這樣復(fù)雜一點(diǎn)的式子;既可以是使bool型的。程序在判斷一個(gè)條件是否成立的時(shí)候,恰恰就依賴于這個(gè)條件表達(dá)式的值是真或是假。關(guān)系運(yùn) intx,y;5,70,表示(x>y)7,51,表示(x>y)【例2】編程完成如下任務(wù)#include<iostream>usingnamespacestd;intmain(){intx,y;ifx>y)xy,{inttemp;定義一個(gè)臨時(shí)變量}cout<<x<<"空格"<<y<<endl將兩個(gè)數(shù)輸出return}邏輯運(yùn)logic(&&與運(yùn)算—— 或運(yùn)算—— 非運(yùn)算——型的“非a=5,b=-3a=5,b=-3(a<0)||b>0)非運(yùn)算:它總是取其右邊表達(dá)式值的相反值,就簡(jiǎn)記為“取其相反a=5時(shí)(a>0)的結(jié)果為真,而(a>0)用它們的諧音簡(jiǎn)記為“飛魚活用諧音簡(jiǎn)記為不算關(guān)羽活在編程實(shí)踐中,當(dāng)對(duì)運(yùn)算順序把握時(shí),可以通過(guò)加括號(hào)來(lái)設(shè)定運(yùn)算順序,因?yàn)闊o(wú)論什么情況下,【例3】當(dāng)intx=1,y=2;時(shí),為了輸出x的值1,下列使用的if語(yǔ)句正確的是 if(x!>y)if((x=y)&&(x!=0))cout<<x;解答:正確答案!>B錯(cuò),語(yǔ)句的本意是想說(shuō)“x等于y且x不等于0”的,因?yàn)閤=1,y=2,若按這種理解本句應(yīng)該沒(méi)有輸出,但實(shí)際輸出2,為什么么呢?關(guān)鍵問(wèn)題在于“==”與“=”區(qū)別,前者是判斷是否等于的,而后者是賦值,(x=y)的作用是將y的值2賦給了x,此時(shí),括號(hào)內(nèi)是一個(gè)非0值,c++將非0理解成“真(x!=0)也為“真按照與運(yùn)算的規(guī)則——“同真為真((x=y)&&(x!=0))是成立的,所以就執(zhí)行cout<<x,輸出x2。Cif{如果中的如果如果你喜歡編程{如果你聰明且勤奮,你就會(huì)成為一名OIer,否則,也可稱得上一個(gè)P-fans否則,Game-playerifififififif【例4】明明的壓歲錢得之不易,要由的打分x和的打分y綜合決定。方法是:如果x、y,輸出明明所得的等級(jí)。intx,y;if((x>=80)&&(y>=80))cout<<"A"<<endl;if((x>=80)&&(y<80))cout<<"B"<<endl;if(x<80)cout<<"C"<<endl;ifintx,y;ififcout<<"A"<<endl;cout<<"B"<<endl;ifif-else:elseif果不怕麻煩,可以盡量多使用{}if-elseinta,b,c;if(a>b){if(a>c)else

if(b>c)}巧選“多岔路口你玩CS時(shí)是不是經(jīng)常碰到一些“多岔路口,根據(jù)你選擇的不同方向,向你展示了不同的場(chǎng)景、ifswitch語(yǔ)句會(huì)讓問(wèn)題輕松解決。switchswitchswitch選擇條件case1:1;case2:2;…casennbreak;}default:語(yǔ)句n+1;}switch5 case后的值相比較,看是否相等,當(dāng)找到第defaultdefaultswitch語(yǔ)句?!纠?】編寫一個(gè)簡(jiǎn)易計(jì)算器程序。用戶輸入運(yùn)算數(shù)和四則運(yùn)算符,輸出計(jì)算結(jié)果floata,b;charc;cout<<"請(qǐng)輸入a+(-,*,/)b"<<endl;casecout<<a+b<<endl;break;}case'-':{cout<<a-b<<endl;break;}case'*{cout<<a*b<<endl;break;}case'/':{cout<<a/b<<endl;break;}default:cout<<"輸入錯(cuò)誤";}四、把周而復(fù)始的工作交給123123n1到n,每到一處均重復(fù)同一件事情,例如詢問(wèn):該數(shù)是質(zhì)數(shù)嗎?11n231到nn1forwhile語(yǔ)句。for循環(huán)語(yǔ)……,intfor(i=1;i<=10;i++)cout<<"i從1到10逐個(gè)增加,每次輸出一個(gè)o!,這樣程序運(yùn)行的結(jié)果就是在屏幕上顯示10個(gè)o!ii=1;Ai<=10;Ai++1。注意這句結(jié)尾不for(循環(huán)for(循環(huán)變量賦值;循環(huán)條件;循環(huán)變量增/減{要執(zhí)行的語(yǔ)句}【1】求forsintfor(inti=1;i<=100;i++)5050for循環(huán)的執(zhí)行過(guò)程是什么樣子的,作為編程初學(xué)者,會(huì)用大腦模擬小程總體來(lái)說(shuō),for循環(huán)開(kāi)始時(shí),執(zhí)行一次“循環(huán)變量賦值inti=1;i作為循環(huán)控制1。i=1i1s中。(2(3(2(2(3) while循環(huán)語(yǔ)while(循環(huán)條件{while(循環(huán)條件{循環(huán)體語(yǔ)//注意:一定要有改變循環(huán)變量的語(yǔ){while0)時(shí),執(zhí)行循環(huán)體語(yǔ)句,當(dāng)其0)時(shí),終止循環(huán)。intN,i=1,s=0;{}intM,n=0,s=0;{n++;//cout<<n<<''<<n*n<<'';s=s+(n*n);//cout<<s<<endl;}早上又將剩下的桃子一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第dayintday,x,y;//x,yy=1;M1{x=(y+1)*2;cout<<day<<''<<y<<''<<x<<endl;}五、數(shù)據(jù)的倉(cāng)庫(kù)——數(shù)數(shù)組的定組名組名[長(zhǎng)度int型。它們?cè)趦?nèi)存中的存放形式如同5個(gè)連續(xù)的盒子,如下圖所示:(相同的)int、float、double或char[“下標(biāo)數(shù)組元素的也叫“下標(biāo),是從0開(kāi)始的int可見(jiàn),常數(shù)依次包括在花括號(hào){}中,常數(shù)間用逗號(hào)間隔。初始化后的結(jié)果如下圖所示。 8inta[]=5a5。初始化后的結(jié)果同上圖。inta[5]=a[3]、a[4]0。inta[5]={0,0,0,0,0};int[5]={0};int0。如:inta[5];數(shù)組的操數(shù)組名數(shù)組名[下標(biāo)a[2]=10;//3cout<<a[3];//4元素的值下標(biāo)可以是整型常量或整型表達(dá)式。當(dāng)數(shù)組的長(zhǎng)度為n時(shí),下標(biāo)的取值范圍為0~(n-1)。例如進(jìn)行“inta[5];a1個(gè)~5a[0]、a[1]、a[2]、a[3]a[4]a[i]ai+1個(gè)元素。#include<iostream>usingnamespacestd;intmain(){constintfloatcout<<"\nc++語(yǔ)言考試成績(jī):\n";for(inti=0;i<n;i++)for(inti=0;i<n;cout<<"\n總分是:"<<sum<<endl;return}可見(jiàn),當(dāng)要求輸入100個(gè)、1000個(gè)甚至10000個(gè)學(xué)生的c++語(yǔ)言考試成績(jī)時(shí),只須將符號(hào)常量的定義語(yǔ)句“constintN=5;5100、100010000即可。顯然,使用數(shù)組并配合循環(huán)語(yǔ)句,使處理應(yīng)用舉2Fibonacci1557Fibonacci1,1,2,3,5,8,13…具有如下規(guī)律:ff[n]依次存放Fibonaccin (n=1 (n=2f[n]=f[n-1]+f[n- (#include#include<iomanip.h>setw()usingnamespacestd;intconstintN=16;intn;intf[N]={0,1,1}; f[1]=1,f[2]=1{ }return0;}1123583aNa[0]~a[-a[0]a[0]a[1]~a[-的比較a[1]a[1NNN1#include<iostream>#include<iomanip.h>usingnamespacestd;intmain(){constintintfor(i=0;i<N;i++)cin>>a[i]; N-1{ { }}cout<<"\n 10cout<<endl;return0;}1355247736999774121324 通過(guò)前面的學(xué)習(xí),想必你已經(jīng)對(duì)C++語(yǔ)言概貌有了一個(gè)大致的了解,覺(jué)得你學(xué)懂了多少,或者六、讀寫磁盤文文件與數(shù)組相似,文件中的各個(gè)元素按一定順序排列,可以從頭至尾每一個(gè)元素,當(dāng)然它們之間又存在明顯的不同在信息學(xué)競(jìng)賽中使用的文件一般都是文本文件——即用記事本就能打開(kāi)編輯的ASCII碼字符組成的文件。在C++中有一個(gè)stream這個(gè)類所有的I/O都以這“流類為基礎(chǔ)的包括要認(rèn)識(shí)的文件I/O,stream這個(gè)類有兩個(gè)重要的運(yùn)算符: 器向流輸出數(shù)據(jù)。比如說(shuō)系統(tǒng)有一個(gè)默認(rèn)的標(biāo)準(zhǔn)輸出流(cout)析取器就表示從標(biāo)準(zhǔn)輸入流中一個(gè)指定類型(即變量x的類型)的數(shù)據(jù)。fstreamfstream.h。fstream類中,有兩個(gè)非常好用的子類:ifstream(inputfilestream)ofstream(outputfilestream),ifstreamofstream默認(rèn)以輸出方式打開(kāi)文件。ifstreamfile1("a.txt");//以輸入方式打開(kāi)文件ofstreamfile2("b.dat");//以輸出方式打開(kāi)ofstream打開(kāi)的文件使用完成后一定要關(guān)閉,fstream提供了成員函數(shù)close()file1文本文件的讀寫很簡(jiǎn)單:用器(<<)向文件輸出;用析取器(>>)從文件輸入。假設(shè)file1是以輸入方式打開(kāi),file2以輸出打開(kāi)。示例如下:inti;00。七、綜合應(yīng)有了以上學(xué)習(xí)的基礎(chǔ),現(xiàn)在可以開(kāi)始著手做一點(diǎn)信息學(xué)奧賽中的簡(jiǎn)單題目了,大家可以從中體會(huì)NOIP2005普及組第1題陶陶摘蘋果(apple.pas/陶陶家的院子里有一棵蘋果樹(shù),每到秋天樹(shù)上就會(huì)結(jié)出10個(gè)蘋果。蘋果成時(shí)候,陶陶就會(huì)跑去30厘米高的板凳,當(dāng)她不能直接用手摘到蘋果的時(shí)候,就會(huì)踩到板凳上再試試。10個(gè)蘋果到地面的高度,以及陶陶把手伸直的時(shí)候能夠達(dá)到的最大高度,請(qǐng)幫陶陶算一下米為單位)10100120之間(100120)的整數(shù)(以厘米為單位apple.out1002001501401291341671982005#include<iostream>#include<fstream>usingnamespacestd;intmain(){ifstreamcin("apple.in");ofstreamcout("apple.out");inta[10];inth=0,s=0;for(inti=0;i<10;i++)for(inti=0;i<10;i++)if(a[i]<=h+30)s=s+1;return0;}NOIP2004普及組第1題不高興的津津(unhappy.pas/津津上初中了。認(rèn)為津津應(yīng)該更加用習(xí),所以津津除了上學(xué)之外,還要參加為她報(bào)名的不高興,而且上得越久就會(huì)越不高興。假設(shè)津津不會(huì)因?yàn)槠渌虏桓吲d,并且不高興不會(huì)持續(xù)到第二unhappy.in10的非負(fù)整數(shù),用空格隔開(kāi),分別表示津津在學(xué)校上課的時(shí)間和安排她上課的時(shí)間。輸出文件unhappy.out包括一行,這一行只包含一個(gè)數(shù)字。如果不會(huì)不高興則輸出0,如果會(huì)則輸出最不高興的是周幾(1,2,3,4,5,6,7分別表示周一,周二,周三,周四,周五,周六,周日。如果有兩56755003#include<iostream>usingnamespacestd;intmain(){inta[7],b[7],f[7];longi,j,k,n,sum;{ //f[1]=9; f[6]=10; //k}if(sum>8)cout<<k+1;elsecout<<'0';NOIP2006普及組第1題明明的隨機(jī)數(shù)(random.pas/明明想在學(xué)校中請(qǐng)一些同學(xué)一起做一項(xiàng)問(wèn)卷,為了實(shí)驗(yàn)的客觀性,他先用計(jì)算機(jī)生成了N個(gè)1到(N≤100random.in211N2Nrandom.out211M220403267402089300

6789300#include<fstream>usingnamespacestd;intmain(){ifstreamfin("random.in");ofstreamfout("random.out");inta[1001],n,t,i,q;fin>>n;{fin>>t;}fout<<q<<endl;iffout<<i<<"fout<<"\n";return0;}

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論