




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二章數據類型、運算符和表達 第三章簡單的輸入/輸出語 第一節C++語言的語句和程序結 第二節選擇結 第三節循環語句結 第五章函數和編譯預處 第一節函數的定義和調 第三節遞歸函數、變量的作用域和編譯預處 第十章類和對象【2 第十一章構造函數和析構函數【4 第十二 繼承和派生類【4 B(intrr,int 第十二章類的其他特性【4 第一節友元函 第二節靜態成 第三節虛函 第十三章運算符重載【2 voidmain(void){ int //說明變量i //從鍵盤上輸入變量i }
實型(實型
單引號括起來的單個字符。例如:‘a’,‘&’‘ab’“a”都是不合義符”\”開始,后跟一個字符或一個整型常量(ASCII值)的辦法來表示一個字符。開頭。常用的轉義序列字符有:’\\’表示字符“\”,‘\’’表示單引號,‘\”’表示雙引號,‘\n’用雙引號括起來的若干個字符。例如:“ab3d”,“a”都是合法的字符串常量。字符串常量與字符常量的存放格式不一樣,在字符串常量的尾部,存儲時都要存放一個\0’,\0’表示例 PI=3.1415926在程序中標識符常量必須先定義后引用,并且標識符例如:inta//aa4個字節的存儲單元,變量說明語句必①在變量說明的同時對變量賦初值,例如:charch1=‘a’,char②使用賦值語句賦值,例如:floatx,yx=1.234cin對變量賦初值,例如:inta;cin>>a;(后面章節將會學到)(:+(4(a&&b&&ca0ba0時,不管后面的項0a和b0ca||b||ca0bca、b0時才需要計c項。C++中賦值運算符分為兩種:單一賦值運算符(=)和復合賦值運算符(+=,–=,*=,/=,%=,^=,|=,<<=,>>=),都為雙目運算符,結合性為左結合,其運算法則為:將左操作數與右操 (前置自增:先將i的值加1,再將變化后的i值參與運算) (后置自增:先將i參與運算,再將i的值加1) (前置自減:先將i的值減1,再將變化后的i值參與運算) (后置自減:先將i參與運算,再將i的值減1)<1>,<2>,條件運算符“<12計算過程為:先計算<1>0,則計算<2>,并將計算的值作為該條件表達式的值;否則求解<3>的值,并將該值作為條件表達式的值。高!++1“intx=5,y=7,z=8;”,“z+=x++||y++||++z”x、y、z B.6、8、 C.6、8、 D.6、8、2、設有語句“inta=258,b;unsignedcharc;b=c=a;“,則b的值是 3、設有語句“chars[]=“Rep\0Ch”;intm=sizeof(s);”,則m的值是 43xyxya和bC++中對應的正確表達式是 B. C. D. /#include<iostream.h> 1cin>><變量名>[>><變量名>(1“ 若從鍵盤上輸入:A 和從鍵盤上輸入:Abe回車兩者結果一樣(例:char二、輸出語句1格式:cout<<<1><<< (回車)(3)Setw(n):用于指定輸出的寬度。其必須要在程序的開頭位置加一行:#include<iomanip.h>。另外1)n例2C++1if(<表達式 if(<表達式>) <語句2>if(<表達式 if(<表達式2>) if…
else<表達式>C++語法規則的任一表達式,可以是算術表達式、關系表達式if語句,C++elseif的配對規則為:else總是與其前面最近的還沒有if進行配對。(?)—三目運算(左結合格式:3的值3的值(2的值,并把他作為運算的結果。1:max=a>b?a:b;等價于 if 等價于:if if max=c;else <1>:1break break… <n>:《語句序列nbreak《default<n+1>}<<i>可以含有多個語句,也可以沒有任何語句,當有多條語句時,不需要用大括號“{}”括起來。字符(ASCII32)和其他字符。voidmain(void){charif elseif(c>=’0’ elseif && if(c>=’A’ &&c<=’Z’)}2、執行下列程序段后,變量i的值 inti=10;{case9:case10:case11:i+=1;default:}A. 注意:breakwhile(do…while()語句的主要區別:循環條件的判斷與循環體的執行順序不do…while()語句中的循環體至少要執行一次。二、for14,3)S32break2ORWHILE3OR適用于循環次數已確定的情況下,用的比較多。1、break語句(結束循環aa
已知迭代公式:10-5#include<math.h> main(void){if do{}while(fabs(x1-x0)>1e-5);}}2設有語“for(inti=5,sum=0;i<10,sum++;i++)sum+=i;則for()語句的執行情況是 A.循環0次 B.循環4次 C.循環5次 D.循環6次循環語句“for(intx=0,y=0;y!=100||x<10;)x++;,執行的循環次數是 for(intx=0,y=0;!x&&y<=5;y++)語句執行循環的次數 A0B5C.6D.5、以下程序的輸出結果是s= #include<iostream.h>void{intj,k,s,m;s=1;m=k+2;}} ,第二行 voidmain(void){intx=6; }while(--x)}1floatmax(floatx,floaty){return}voidmain(void){floata,b;}C++源(程序)main的主函數。C++程序執行總是從mainmain函數,最后在main函數中結束整個程一個函數可以調用其它函數或其本身,但任何函數(main函數外)<類型 {函數體2)return不管函數返回值的類型(return后面表達式)是什么,最后的返回值要轉化成與《return語句,則函數定義的<類型>void;反之,<類型>不voidreturn參函數調用格式:<函數名>(實形參數列表第二節一、1、函數的例:floatf(floatx,floaty,intI,charc) // 3、注意兼容性(實參對于形參而言,若可以轉換則稱為可兼容42voidp(inta,intb){}voidmain(void)intx=100,y=200;p(x,y);cout<<x<<'\t'<<y<<'\n';p(x,x);cout<<x<<'\t'<<y<<'\n';p(y,x);cout<<x<<'\t'<<y<<'\n';p(y,}voidp(int&a,intb){}voidmain(void)intx=100,y=200;p(x,y);cout<<x<<'\t'<<y<<'\n';p(x,x);cout<<x<<'\t'<<y<<'\n';p(y,x);cout<<x<<'\t'<<y<<'\n';p(y,}voidmain(void)intx=100,y=200;p(x,}voidp(int&a,intb){})1(1)將pmain(如前面節中所述voidp(int&a,intb); voidp(int&,int intp(inta,intb=1return}voidmain(void)intt1=p(x, }A行不能寫成:floatv(floata,floatb=10,floatc);//floatv(floata=20,floatintabs(intx) }floatabs(floatx){ return(x<0?-x:x);}doubleabs(doublex) return(x<0?-x:x);}voidinta;floatb;doublec;cin>>a>>b>>c; //E }例:floatfun(floatx) voidfun(float#includeiostream.h>longintf(intn){if return(1);else }voidintn;cin>>n;}intf(inti){if(i==1)return }voidintfor(int}}a)ABABB中的A中的同名標識符,即局部優先。ifswitch語句的表達式(即括號中語句)forfor語句的整個塊。(后述(auto(register(static(auto寄存器靜態(taic)存儲類型的變量分為全局變量和靜態類型變量。靜態類型的變量在程序開0。(xen用前需進行外部類型變量聲明,或在一個源文件中引用另一個源文件中定義的全局變量時,引用前須進行該變量的外部聲明。#includeintvoidmain(void)for(inti=0;i<5;i++){intk;k=i+1;cout<<k<<'';}}intz;voidfun(intx,int&y){}voidmain(void)intx=5,y=10;z=15;}#include<iostream.h>intf(intx){staticintu=1;x+=x;returnu*=x;}void{intcout<<f(x)<<'\n';}intf(void){staticinta,b=10,c=1;a+=b;b+=c;returnc=a+b;}voidmain(void){}#include文件包含 //目錄include子目錄下的文件或#include “文件名”//當前工作目錄下的文件被包含的文件一般是以.h、.cpp.txtinclude語句只能包不帶參數的宏定義:例: 帶參數的宏定義:例:# 設有宏定義:#definef(x) #defineSQR(x)x*xvoidmain(){inta,k=3;} 2class類名<《<《<#include<iostream.h>classAA{intx[10];intm;intsum;voidf(inta[],intn){inti;}voidinti;}voidshow(){inti;if((i+1)%5==0)cout<<endl;}}intx[10];intm;intsum;voidf(inta[],intvoidg(void);voidAA:f(intinti;} AA:g(void){inti;} AA:show(){inti;if((i+1)%5==0)cout<<endl;}}3#include<iostream.h>classAA{intx[10];intm;intsum;voidf(inta[],intn){inti;}voidg(void){inti;}voidshow(){inti;if((i+1)%5==0)cout<<endl;}}voidintAAar1;}classintAdd(inta,intb){returna+b;} //AdoubleAdd(doublex,doubley) {returnx+y;} //BintAdd(inta,intb) {returna+b;} //Cvoidmain(){CAddcout //Acout //調用C}四、this*this指針是一個指向當前被操作對象的特殊指針。在類的成員函數中,*this指針代表當前4classAA{intx[10];intm;intsum;AA(inta[],intn){inti;}voidg(void){inti;}voidshow(){inti;if((i+1)%5==0)cout<<endl;}}voidintt[]={1,2,3,4,5,6,7,8,9,0};AAar1(t,10);}void類型。classRectangle{ Rectangle(intl,intr,intt,intvoidvoidmain(void)Rectangler1(100,200,300,400);Rectangle Rectangler3();//加括號并不表示定義對象,更不表示要調用不待參數的構造函}classintx,y;D(int,int!\n”;} D(!\n”;}void voidmain(void)D*pd=new D*p=newD; deletepd;deletep;}class{intx,y;E(inta,intb)}如有說明 classE{intx,y;E(inta=0,intb=0){x=a;y=b;}E(){}}如有說明 classE{intx,y;E(inta=0,intb=0)}如有說明 classB{inti;intA(inta){<<"}A(By,int<<"}voidAa2=20;B}i=10A(int)!i=20A(int)!i=50 A、B、D、E44次構造函數,62CF行。classCSample{intx,y;CSample(inta,intb){}voidCSamplex1(12,105); } x1,完成賦值后,立即撤消該臨時的對象。classCPoint{intx,y;CPoint(intvx,intvy){x=vx;y=vy;}voidPrint(){cout<<x<<'\t'<<y<<'\n';}voidCPointCPoint CPoint }AB行,由于在類定義中沒有相應的構造函數與它們匹配,此時將調用系統C行,由于是同類型變量之間的賦值,因此不需要調用任 { classintCPoint(intvx,int {x=vx;y=vy;CPoint(CPoint}voidvoidmain(){CPointpt1(100,200);CPointpt2(pt1); CPointpt3=pt1; } 標志ABCnew inti;<<"A14a(0); //a,編譯時首先對其處理,調用構造函i=0調用了構造函數!,而在整個程序結束時撤消該對象,調用析構函數voidmainA14a1(10); A14a2=20; //50a2,因此需要調用構造函數,賦值完后臨時對象立即被撤消,調用析構函數}i=0調用了構造函數!i=10調用了構造函數!i=20調用了構造函數!i=50調用了構造函數!i=50調用了析構函數!i=50調用了析構函數!i=10調用了析構函數!i=0調用了析構函數!3(在函數內定義的對象static定義的局部對象,在首次到達對象的定義時調用構造函數;在程序結束時,deleteclassCCircle{intr;CCircle(inta){voidmain{CCirclec1(10);CCircle*c2=newCCircle(20);delete cout<<"結束main()} 結束main()函數! intx,y;A17( A17(inta,int x=a;y=b;cout<<"A17的構造函數!"<<endl;}voidshow(){~A17(){cout<<"A17classintLength,Width;B17( B17(inta,intb)Length=a;Width=b;cout<<"B17的構造函數!"<<endl;}voidshow(){classC17{intr,High;A17 B17 C17(inta,intb,intc,int voidshow()voidmain{C17 c1.show(}c1A17B17c1a1b1。數,c和dA17a1的初始化參數。A的構造函數!B的構造函數!C的構造函數! A《,c2(2),…,cn(參數表n) 第四節2004#includeclassElem{ intscore; intid; Elem(ints=0,inti=0){}intKey(){ returnid;}intGetScore(){ returnscore;}voidSelect(Elema[],intn){for(inti=0;i<n–1;i++){intmin=a[i].Key();intp=i,j;Elemtemp;if(a[j].Key()<min){ } }}}voidints[intid[Elemfor(inti=0;i<8;i++) for(intcout<<a[j].GetScore()<<‘\t’<<a[j].Key(}第十二章繼承和派生類【4根據基類中的成員在派生類中的訪問權限,可分為公有派生(public) #include<iostream.h>classA{intx,y,sum;A(intxx,intyy){}voidp(){}voidshow1(){}classB:publicA{intr,s,n;B(intrr,intss):A(ss,rr){}voidintfor(i=1;i<=s;i++)ss1*=i;for(i=1;i<=r;i++)ss2*=i;}voidshow2(){}voidmain(){Bb(2,4);}class{intx;CBase41(intclass{inty;CBase42(intclassCDerived4:publicCBase41,public{intCDerived4(inta,intb,intcCBase41(aCBase42(b)B初始化基類成員,此時是void{CDerived4}BCDerived4(inta,intb,intc):classintx;A(inta){x=a;coutAclassB:publicinty;B(inta,intb):A(a){y=b;coutBclassC:publicintz;C(inta,intb,intc):B(a,b){z=c;coutCvoid{ABC}C2293類類類類類類類1
11-6能1#include<iostream.h>classA{intA(intvoidclassB{intB(intvoidclassC:publicA,publicB{intC(inta,intb,intvoidvoidC}2#include<iostream.h>classBa{inty;intBa(intb){x=b;y=x+x;}intGety(void){returny;}classA:publicBa{A(intintGetx(void){returnclassB:publicBa{B(intintGetx(){return類類類類類類類類類類C(intvoidmain(){Cc(100);}4第一節<常為引用類型。通過友元關系,類外函數可以通過某種機制訪問類中的任何成員,而2class{inti,j;CBox(inta=10,intfriendintget_area(CBox //Afriendint intget_area(CBox returns.i*s.j; intget_default_area(){CBox return }void{CBoxs1(18,12);}友元函數并不是相應類的成員函數,由于它沒有隱含的*this指針,所以它不::第二節1、態成員數據與靜態類型的變量的定義方式一樣,即只要在成員數據的定義之前加關鍵字static。靜態成員數據也必須有確定的值,但由于在類定義中不能成員數據直接進2[例]#include<iostream.h>classTpublic:staticintx;};intT::t=1;void{Ta,b;a.x=10;b.x=20;}3#include<iostream.h>classA{inti;staticintA(int{i=a+count;}intA::count=0;voidmain(void){AAA}(15)2 (16)count=第三節數。virtual類型>成員函數名(<參數表(可以通過域操作符“#includeiostream.h>classX{public:virtualvoidpublic:voidvoidYy,*xy=&y;X*xp=&y;}2#include<iostream.h>classX{voidvirtualf(){cout<<"X:11"<<endl;}voidvirtualg(){cout<<"X:22"<<endl;}classA:publicX{voidclassB:publicA{voidvoidg(int voidmain(){Bb;X*px=&b;}3#include<iostream.h>classX{intX(intvoidvirtualf(){cout<<m+m<<endl;}voidvirtualclassA:publicX{intn;A(inta):X(100){n=a;}voidf(){cout<<n<<endl;}voidg(int voidmain(){Aa(10);X*p=&a;}4#include<iostream.h>classShape{virtualfloatclassCircle:publicShape{floatr;classRectangle:publicShape{floath,w;Rectangle(floatc,floatd){h=c;w=d;}floatArea(){returnh*w;}voidfun(Shape*s){}voidmain(){Circlec(4);Rectangler(5,2);}virtual類型>(<參數表2.::?:*(指針運算符 值運算符、數組下標運算符”[]”、函數調用運算符”()”、new、delete等。<類型 operator<單目運算符 {}//<類型operator二元運算符>(<參數{}//X {}//X>{}//++----<類型operator{}//函數體friend<類型>operator &{}//<類型operator{}//函數體friend<類型>operator &,{}//c++(三目運算符?:)(成員選擇符.)(*(::(求字節操作符sizeofthis指針用友元函數實現運算符的重載時,不能使用*this實現前置“++;實現后置“++1133713.5}#ifndefEMPLOYEE_H#defineEMPLOYEE_H#include<iostream>#include<string>usingnamespacestd;classEmployee{voidget_information(stringi_number_ID,stringi_name,stringi_card_ID);virtualstringout_number_ID();virtualstringout_card_ID();virtualstringoutName();virtualvoidget_laborage(inti_b_laborage);virtualintout_laborage();virtualvoidstringm_number_ID;stringm_name;stringm_card_ID;//int#ifndefFUNCTIONARY_H#define#includeclassFunctionary:public{voidget_sales(inti_sales);intout_sales();voidget_laborage(inti_b_laborage);intout_laborage();voidget_information(stringi_number_ID,stringi_name,stringi_card_ID);stringout_number_ID();stringout_card_ID();stringoutName();voidout_Date();int#ifndefJOBBER_H#define#includeclassJobber:public{voidget_workTime(inti_workTime);intout_workTime();voidget_laborage(inttime_laborage);intout_laborage();voidget_information(stringi_number_ID,stringi_name,stringi_card_ID);stringout_number_ID();stringout_card_ID();stringoutName();voidout_Date();intm_workTime;inttime_laborage;#ifndefMANGER_H#defineMANGER_H#include"Employee.h"classManager:public{voidget_laborage(inti_b_laborage);intout_laborage();voidget_information(stringi_number_ID,stringi_name,stringi_card_ID);stringout_number_ID();stringout_card_ID();stringoutName();voidout_Date();#include{}string{return}string{return}string{return}voidEmployee::get_laborage(int{}int{return}void{}{}voidFunctionary::get_sales(int{}int{return}voidFunctionary::get_laborage(int{}int{return}{}string{return}string{return}string{return}void{ "<<m_name<<"\n\t\t工資:"<<m_laborage<<"本月的銷售額:}{}{}#includevoidJobber::get_workTime(int{}int{return}voidJobber::get_laborage(int{}int{return}{}string{return}string{return}string{return}void{ "<<m_name<<"\n\t\t工資:"<<m
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省蘇州吳中學區2024-2025學年初三下學期周末練習3生物試題含解析
- 山西機電職業技術學院《德國精神與文化》2023-2024學年第二學期期末試卷
- 宿州學院《生物資源保護與利用》2023-2024學年第二學期期末試卷
- 江蘇省無錫市第一女子中學2025屆高三下學期聯合考試物理試題含解析
- 石家莊信息工程職業學院《地方教學名師課堂》2023-2024學年第二學期期末試卷
- 遼寧農業職業技術學院《數學方法論與解題研究》2023-2024學年第一學期期末試卷
- 莆田學院《土木工程施工技術課程設計》2023-2024學年第一學期期末試卷
- 天津外國語大學《病理形態學診斷技術》2023-2024學年第二學期期末試卷
- 山東省鄒平市一中學2025屆高三4月月考試生物試題含解析
- 公司股權轉讓居間協議書二零二五年
- 復式交分道岔檢查
- GB/T 269-2023潤滑脂和石油脂錐入度測定法
- 2023年教師資格《初中道德與法治學科知識與教學能力》模擬真題
- 厭氧罐檢修安全環保措施
- SH-T 3202-2018 二氧化碳輸送管道工程設計標準 含2022年第1號修改單
- 數學精彩兩分鐘一年級
- 浙江碼頭沉樁專項施工方案
- 質量內部-產品檢驗作業指導書
- 2023年網球教練員崗位職責(七篇)
- 波形梁鋼護欄檢查記錄表
- 煤礦安全生產重點檢查表
評論
0/150
提交評論