昆明理工大學C++補考資料_第1頁
昆明理工大學C++補考資料_第2頁
昆明理工大學C++補考資料_第3頁
昆明理工大學C++補考資料_第4頁
昆明理工大學C++補考資料_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第二章數(shù)據(jù)類型、運算符和表達 第三章簡單的輸入/輸出語 第一節(jié)C++語言的語句和程序結 第二節(jié)選擇結 第三節(jié)循環(huán)語句結 第五章函數(shù)和編譯預處 第一節(jié)函數(shù)的定義和調(diào) 第三節(jié)遞歸函數(shù)、變量的作用域和編譯預處 第十章類和對象【2 第十一章構造函數(shù)和析構函數(shù)【4 第十二 繼承和派生類【4 B(intrr,int 第十二章類的其他特性【4 第一節(jié)友元函 第二節(jié)靜態(tài)成 第三節(jié)虛函 第十三章運算符重載【2 voidmain(void){ int //說明變量i //從鍵盤上輸入變量i }

實型(實型

單引號括起來的單個字符。例如:‘a(chǎn)’,‘&’‘a(chǎn)b’“a”都是不合義符”\”開始,后跟一個字符或一個整型常量(ASCII值)的辦法來表示一個字符。開頭。常用的轉(zhuǎn)義序列字符有:’\\’表示字符“\”,‘\’’表示單引號,‘\”’表示雙引號,‘\n’用雙引號括起來的若干個字符。例如:“ab3d”,“a”都是合法的字符串常量。字符串常量與字符常量的存放格式不一樣,在字符串常量的尾部,存儲時都要存放一個\0’,\0’表示例 PI=3.1415926在程序中標識符常量必須先定義后引用,并且標識符例如:inta//aa4個字節(jié)的存儲單元,變量說明語句必①在變量說明的同時對變量賦初值,例如:charch1=‘a(chǎn)’,char②使用賦值語句賦值,例如:floatx,yx=1.234cin對變量賦初值,例如:inta;cin>>a;(后面章節(jié)將會學到)(:+(4(a&&b&&ca0ba0時,不管后面的項0a和b0ca||b||ca0bca、b0時才需要計c項。C++中賦值運算符分為兩種:單一賦值運算符(=)和復合賦值運算符(+=,–=,*=,/=,%=,^=,|=,<<=,>>=),都為雙目運算符,結合性為左結合,其運算法則為:將左操作數(shù)與右操 (前置自增:先將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++語法規(guī)則的任一表達式,可以是算術表達式、關系表達式if語句,C++elseif的配對規(guī)則為: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、執(zhí)行下列程序段后,變量i的值 inti=10;{case9:case10:case11:i+=1;default:}A. 注意:breakwhile(do…while()語句的主要區(qū)別:循環(huán)條件的判斷與循環(huán)體的執(zhí)行順序不do…while()語句中的循環(huán)體至少要執(zhí)行一次。二、for14,3)S32break2ORWHILE3OR適用于循環(huán)次數(shù)已確定的情況下,用的比較多。1、break語句(結束循環(huán)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()語句的執(zhí)行情況是 A.循環(huán)0次 B.循環(huán)4次 C.循環(huán)5次 D.循環(huán)6次循環(huán)語句“for(intx=0,y=0;y!=100||x<10;)x++;,執(zhí)行的循環(huán)次數(shù)是 for(intx=0,y=0;!x&&y<=5;y++)語句執(zhí)行循環(huán)的次數(shù) 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的主函數(shù)。C++程序執(zhí)行總是從mainmain函數(shù),最后在main函數(shù)中結束整個程一個函數(shù)可以調(diào)用其它函數(shù)或其本身,但任何函數(shù)(main函數(shù)外)<類型 {函數(shù)體2)return不管函數(shù)返回值的類型(return后面表達式)是什么,最后的返回值要轉(zhuǎn)化成與《return語句,則函數(shù)定義的<類型>void;反之,<類型>不voidreturn參函數(shù)調(diào)用格式:<函數(shù)名>(實形參數(shù)列表第二節(jié)一、1、函數(shù)的例:floatf(floatx,floaty,intI,charc) // 3、注意兼容性(實參對于形參而言,若可以轉(zhuǎn)換則稱為可兼容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(如前面節(jié)中所述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中的同名標識符,即局部優(yōu)先。ifswitch語句的表達式(即括號中語句)forfor語句的整個塊。(后述(auto(register(static(auto寄存器靜態(tài)(taic)存儲類型的變量分為全局變量和靜態(tài)類型變量。靜態(tài)類型的變量在程序開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語句只能包不帶參數(shù)的宏定義:例: 帶參數(shù)的宏定義:例:# 設有宏定義:#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 //調(diào)用C}四、this*this指針是一個指向當前被操作對象的特殊指針。在類的成員函數(shù)中,*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();//加括號并不表示定義對象,更不表示要調(diào)用不待參數(shù)的構造函}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次構造函數(shù),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行,由于在類定義中沒有相應的構造函數(shù)與它們匹配,此時將調(diào)用系統(tǒng)C行,由于是同類型變量之間的賦值,因此不需要調(diào)用任 { classintCPoint(intvx,int {x=vx;y=vy;CPoint(CPoint}voidvoidmain(){CPointpt1(100,200);CPointpt2(pt1); CPointpt3=pt1; } 標志ABCnew inti;<<"A14a(0); //a,編譯時首先對其處理,調(diào)用構造函i=0調(diào)用了構造函數(shù)!,而在整個程序結束時撤消該對象,調(diào)用析構函數(shù)voidmainA14a1(10); A14a2=20; //50a2,因此需要調(diào)用構造函數(shù),賦值完后臨時對象立即被撤消,調(diào)用析構函數(shù)}i=0調(diào)用了構造函數(shù)!i=10調(diào)用了構造函數(shù)!i=20調(diào)用了構造函數(shù)!i=50調(diào)用了構造函數(shù)!i=50調(diào)用了析構函數(shù)!i=50調(diào)用了析構函數(shù)!i=10調(diào)用了析構函數(shù)!i=0調(diào)用了析構函數(shù)!3(在函數(shù)內(nèi)定義的對象static定義的局部對象,在首次到達對象的定義時調(diào)用構造函數(shù);在程序結束時,deleteclassCCircle{intr;CCircle(inta){voidmain{CCirclec1(10);CCircle*c2=newCCircle(20);delete cout<<"結束main()} 結束main()函數(shù)! intx,y;A17( A17(inta,int x=a;y=b;cout<<"A17的構造函數(shù)!"<<endl;}voidshow(){~A17(){cout<<"A17classintLength,Width;B17( B17(inta,intb)Length=a;Width=b;cout<<"B17的構造函數(shù)!"<<endl;}voidshow(){classC17{intr,High;A17 B17 C17(inta,intb,intc,int voidshow()voidmain{C17 c1.show(}c1A17B17c1a1b1。數(shù),c和dA17a1的初始化參數(shù)。A的構造函數(shù)!B的構造函數(shù)!C的構造函數(shù)! A《,c2(2),…,cn(參數(shù)表n) 第四節(jié)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根據(jù)基類中的成員在派生類中的訪問權限,可分為公有派生(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第一節(jié)<常為引用類型。通過友元關系,類外函數(shù)可以通過某種機制訪問類中的任何成員,而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);}友元函數(shù)并不是相應類的成員函數(shù),由于它沒有隱含的*this指針,所以它不::第二節(jié)1、態(tài)成員數(shù)據(jù)與靜態(tài)類型的變量的定義方式一樣,即只要在成員數(shù)據(jù)的定義之前加關鍵字static。靜態(tài)成員數(shù)據(jù)也必須有確定的值,但由于在類定義中不能成員數(shù)據(jù)直接進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=第三節(jié)數(shù)。virtual類型>成員函數(shù)名(<參數(shù)表(可以通過域操作符“#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類型>(<參數(shù)表2.::?:*(指針運算符 值運算符、數(shù)組下標運算符”[]”、函數(shù)調(diào)用運算符”()”、new、delete等。<類型 operator<單目運算符 {}//<類型operator二元運算符>(<參數(shù){}//X {}//X>{}//++----<類型operator{}//函數(shù)體friend<類型>operator &{}//<類型operator{}//函數(shù)體friend<類型>operator &,{}//c++(三目運算符?:)(成員選擇符.)(*(::(求字節(jié)操作符sizeofthis指針用友元函數(shù)實現(xiàn)運算符的重載時,不能使用*this實現(xiàn)前置“++;實現(xiàn)后置“++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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論