C++程序作業(yè)答案11_第1頁
C++程序作業(yè)答案11_第2頁
C++程序作業(yè)答案11_第3頁
C++程序作業(yè)答案11_第4頁
C++程序作業(yè)答案11_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計(jì)算機(jī)應(yīng)用專業(yè)“C++語言程序設(shè)計(jì)”課程作業(yè)第一次作業(yè)一、填空題1.C++語言中的每條基本語句以;作為結(jié)束符,每條復(fù)合語句以}作為結(jié)束符。2.用于輸出表達(dá)式值的標(biāo)準(zhǔn)輸出流對象是cout,用于從鍵盤上為變量輸入值的標(biāo)準(zhǔn)入流對象是cin。3.當(dāng)不需要函數(shù)返回任何值時(shí),則應(yīng)把該函數(shù)類型定義為void。4.執(zhí)行“cout<<143<<’+’<<18<<’=’<<143+18<<endl;”語句后得到的輸出結(jié)果為143+18=161。5.執(zhí)行“cout<<“ning”<<“chen”<<38<<endl;”語句后得到的輸出結(jié)果為ningchen38。6.在每個(gè)C++程序中都必須包含有這樣一個(gè)函數(shù),該函數(shù)的函數(shù)名為main。7.C++源程序文件的缺省擴(kuò)展名為cpp,由C++源程序文件編譯而成的目標(biāo)文件的缺省擴(kuò)展名為obj,由C++目標(biāo)文件連接而成的可執(zhí)行文件的缺省擴(kuò)展名為exe。8.程序運(yùn)行中需要從鍵盤上輸入多于一個(gè)數(shù)據(jù)時(shí),各數(shù)據(jù)之間應(yīng)使用空格或逗號符號作為分隔符。9.十進(jìn)制數(shù)25表示成符號C++語言規(guī)則的八進(jìn)制和十六進(jìn)制數(shù)分別為31和19符號。10.在C++語言中,用轉(zhuǎn)義字符序列\(zhòng)n或操縱符endl表示輸出一個(gè)換行符。11.執(zhí)行“cout<<char(’b’+2)<<endl;”語句后得到的輸出結(jié)果為d。12.執(zhí)行“cout<<char(’K’-3)<<endl;”語句后得到的輸出結(jié)果為H。13.已知’A’~’Z’的ASCII碼為65~90,當(dāng)執(zhí)行“intx=’H’+5;”語句后x的值為77。14.已知’A’~’Z’的ASCII碼為65~90,當(dāng)執(zhí)行“charch=16*5+2;cout<<ch<<endl;語句序列后,得到的輸出結(jié)果為R。15.假定一個(gè)枚舉類型的定義為“enumRA{xa,xb,xc,xd};”,則執(zhí)行“cout<<”xc=”<<xc<<endl;”語句得到的輸出結(jié)果為xc=2。16.假定一個(gè)枚舉類型的定義為“enumRB{ab,ac=3,ad,ae}x=ad;”則x的值為4。17.Char、short和int類型的大小分別為1字節(jié)、2字節(jié)和4字節(jié)。18.float和double類型的大小分別為4字節(jié)和8字節(jié)。19.十進(jìn)制數(shù)128和-3.26的類型分別為整型和雙精度型。20.若需要定義一個(gè)標(biāo)識符常量,并且使C++能夠進(jìn)行類型檢查,則應(yīng)在定義語句的開始用保留字define。21.使用const語句定義一個(gè)標(biāo)識符常量時(shí),則必須對它同時(shí)進(jìn)行初始化。22.執(zhí)行“intx=45,y=16;cout<<x/y<<’’<<x%y<<endl;”語句序列后得到的輸出結(jié)果為213。23.假定x=10,y=6,則表達(dá)式2+x++和++y*3的值分別為12和21。24.算術(shù)表達(dá)式(x2+y2)/(2-xy)對應(yīng)C++表達(dá)式為(x*x+y*y)/(2-x*y)。25.算術(shù)表達(dá)式xy2/(3a+4b-1)對應(yīng)的C++表達(dá)式為x*y*y/(3*a+4*b-1)。26.表達(dá)式float(25)/4和int(14.6)%5的值分別為6.25和4。27表達(dá)式a=a+b表示成復(fù)合賦值表達(dá)式為a+=b。28.表達(dá)式a=a+1表示成增量表達(dá)式為a++。29.增量表達(dá)式++y表示成賦值表達(dá)式為y=y+1。30.關(guān)系表達(dá)式(x==0)的等價(jià)表達(dá)式為!x。31.關(guān)系表達(dá)式(x!=0)的等價(jià)表達(dá)式為x。32.關(guān)系表達(dá)式x+y>z的相反表達(dá)式為x+y<=z。33.邏輯表達(dá)式x>5&&x<10的相反表達(dá)式x<=5||x>=10。34.邏輯表達(dá)式a>b||b==5的相反表達(dá)式為a<=b&&b!=5。35.若x=15,y=40,則x>y和x<=y的邏輯值分別為false和true。36.假定x=5,則執(zhí)行“a=(x?10:4*2);”語句后a的值為10。37.假定a=5,則條件表達(dá)式“a==0?10:20”的值為20。38.執(zhí)行“typedefintDataType;”語句后,在使用int定義整型變量的地方都可以使用DataType定義整型變量。39.設(shè)x和y均為bool量,x&&y為真的條件是x=truey=true。40.設(shè)x和y均為bool量,則x||y為假的條件是x、y都為false。二、寫出下列程序運(yùn)行后的輸出結(jié)果1.#include<iostream.h>voidSB(charch){switch(ch){case’A’:case’a’:cout<<”well”!”;break;case‘B’:case‘b’:cout<<”good!”;break;case‘C’:case‘c’:cout<<”pass!”;break;default:cout<<“bad!”;break;voidmain(){charal=’b’,a2=’c’,a3=’f’;SB(al);SB(a2);SB(a3);SB(‘A’);Cout<<endl;good!pass!bad!well!2.#clude<stream.h>#include<stdlib.h>doubleSD(inta,intb,charop){doublex;switch(op){case‘x’:x=double(a)+b;break;case‘-‘:x=double(a)–b;break;case‘*’x=double(a)*b;break;case‘/’:if(b)x=double(a)/b;elseexit(1);break;default:exit(1);returnx;voidmain(){intx=20,y=12;cout<<SD(x,y,’-‘)<<’‘;cout<<SD(x,y,’*’)<<’‘;cout<<SD(x+y,y-2,’/’)<<endl;82403.23.#include<iostream.h>voidmain(){ints=0;for(intI=1;I<6;I++)s+=I*I;cout<<”s=”<<s<<endl;s=554.#include<iostream.h>voidmain(){ints=0;for(intI=1;;I++){if(s>50)break;if(I%3==0)s+=I;cout<<”I,s=”<<I<<”,”<<s<<endl;I,s=19,635.#include<iostream.h>voidmain(){ints1=0,s2=0;for(intI=0;I<10;I++)if(I%2)s1+=I;elses2+=I;cout<<s1<<’‘<<s2<<endl;25206.#include<iostream.h>voidmain(){intn=10,y=1;while(n--){y++;++y;}cout<<”y*y=”<<y*y<<endl;y*y=441三、寫出下列每個(gè)函數(shù)的功能1.#include<iostream.h>intSA(inta,intb){if(a>b)return1;elseif(a==b)return0;elsereturn–1;比較兩個(gè)整數(shù)a和b,如果a大于b則返回1;如果a等于b則返回0;如果a小于b則返回-1。2.intSC(inta,intb,intc){if(a>=b&&a>=c)returna;if(b>=a&&b>=c)returnb;if(c>=a&&c>=b)returnc;返回a、b、c三個(gè)數(shù)中的最大數(shù)。3.intSE(intn){//n為大于等于1的整數(shù)intx;cin>>x;if(n==1)returnx;intm=x;while(――n){cin>>x;m+=x;returnm;求輸入的n個(gè)數(shù)之和。4.doubleSF(doublex,intn){//n為大于等于0的整數(shù)doublep=1,s=1;for(inti=1;i<=n;i++){p*=x;s+=p/(i+1);returns;計(jì)算1+x/2+x2/3+x3/4+…+xn/(n+1)5.#include<math.h>boolSG(intx){//x為大于等于2的整數(shù)inta=int(sqrt(x));//取x的平方根inti=2;while(i<=a){if(x%i==0)break;i++;if(i<=a)return0;elsereturn1;判斷整數(shù)x是否為質(zhì)數(shù),若為質(zhì)數(shù)返回true,若不是則返回false。6.floatFH(){floatx,y=0,n=0;cin>>x;while(x!=-100){n++;y+=x;cin>>x;if(n==0)returny;elsereturny/n;求鍵盤輸入的數(shù)的平均值,輸入-100結(jié)束(不計(jì)在平均值內(nèi)),若沒有數(shù)輸入則返回0。計(jì)算機(jī)應(yīng)用專業(yè)“C++語言程序設(shè)計(jì)”課程作業(yè)第二次作業(yè)填空題1.假定一個(gè)一維數(shù)組的定義為“char*a[5];”,則該數(shù)組所含元素的個(gè)數(shù)為5,所占存儲空間的字節(jié)數(shù)為20。2.假定一個(gè)二維數(shù)組的定義為“inta[4][6];”,則該數(shù)組所含元素的個(gè)數(shù)為24,所占存儲空間的字節(jié)數(shù)為96。3.假定一個(gè)二維數(shù)組的定義為“chara[8][8];”,則該數(shù)組所含元素的個(gè)數(shù)為64,所占存儲空間的字節(jié)數(shù)為64。4.執(zhí)行“typedeffloatABC[10];”語句把ABC定義為具有10個(gè)單精度元素的數(shù)組。5.在函數(shù)外定義的變量稱為全局變量,若沒有被初始化則系統(tǒng)隱含對它賦初值0。6.函數(shù)中的形參變量的初值由調(diào)用該函數(shù)時(shí)獲得。7.函數(shù)調(diào)用時(shí),實(shí)參向形參的傳送分為傳值和傳址兩種傳送方式。8.變量分為全局和局部兩種,局部變量沒有賦初值時(shí),其值是不確定的。給出下列程序運(yùn)行后的輸出結(jié)果1.#include<iostream.h>voidmian(){inta[10]={12,39,26,41,55,63,72,40,83,95};inti0=0,i1=0,i2=0;for(inti=0;i<10;I++)switch(a[i]%3){case0:i0++;break;case1:i1++;break;case2:i2++;cout<<i0<<’’<<i1<<’’<<i2<<endl;4242.#include<iostream.h>#include<string.h>voidmain(){char*a[5]={”student”,”worker”,”cadre”,”apple”,”peasant”};char*p1,*p2;p1=p2=a[0];for(inti=0;i<5;i++){if(strcmp(a[i],p1)>0)p1=a[i];if(strcmp(a[i],p2)<0)p2=a[i];cout<<p1<<’’<<p2<<endl;workerapple3.#include<iostream.h>voidmain(){inta[8]={36,73,48,14,55,40,32,66};intb1,b2;b1=b2=a[0];for(inti=1;i<8;I++)if(a[i]>b1){if(b1>b2)b2=b1;b1=a[i];cout<<b1<<’’<<b2<<endl;73364.#include<iostream.h>voidmain(){chara[]=”aabcdaabacabfgacd”;inti1=0,i2=0,i=0;while(a[i]){if(a[i]==’a’)i1++;if(a[i]==’b’)i2++;i++;cout<<i1<<’’<<i2<<endl;735.#include<iostream.h>voidmain(){chara[]=”abcdabcdbdaeaf”;intb[5]={0},i=0;while(a[i]){switch(a[i]){case’a’:b[0]++;break;case’b’:b[1]++;break;case’c’:b[2]++;break;case’d’:b[3]++;break;default:b[4]++;i++;for(i=0;i<5;i++)cout<<b[i]<<’’;cout<<endl;432326.#include<iostream.h>voidmain(){inta[10]={73,83,54,62,40,75,80,92,77,84};intb[4]={60,70,90,101};intc[4]={0};for(inti=0;i<10;i++){intj=0;while(a[i]>=b[j])j++;c[j]++;for(i=0;i<4;i++)cout<<c[i]<<’’;cout<<endl;21617.#include<iostream.h>voidmain(){inta[3][4]={{1,2,7,8},{5,6,11,12},{24,10,3,4}};intm=a[0][0];intii=0,jj=0;for(inti=0;i<3;i++)for(intj=0;j<4;j++)if(a[i][j]>m){m=a[i][j];ii=i;jj=j;}cout<<ii<<’’<<jj<<’’<<a[ii][jj]<<endl;20248.#include<iostream.h>voidmain(){inta=10,b=20;cout<<a<<’’<<b<<endl;{a*=4;intb=a+35;cout<<a<<’’<<b<<endl;cout<<a<<’’<<b<<endl;102040754020寫出下列每個(gè)函數(shù)的功能1.intWC(inta[],intn,intk){intc=0;for(inti=0;i<n;i++)if(a[i]>=k)c++;returnc;返回有n個(gè)元素的整型數(shù)組a中大于等于整數(shù)k的元素個(gè)數(shù)。2.#include<iostream.h>voidWA(inta[],intn){for(inti=0;i<n;i++){intk=i;for(intj=i+1;j<n;j++)if(a[j]<a[k])k=j;intx=a[i];a[i]=a[k];a[k]=x;函數(shù)功能是將有n個(gè)元素的整型數(shù)組從小到大排列。3.#include<iosteram.h>template<classTT>intWG(TTa,TTb){if(a>b)return1;elseif(a==b)return0;elsereturn-1;比較兩個(gè)任意類型的數(shù)a和b,若a大于b則返回1,若a等于b則返回0,若a小于b否則返回1。4.#include<iostream.h>template<classType>TypeWD(Typea[],intn){Typem=a[0];for(inti=0;i<n;i++)if(a[i]>m)m=a[i];returnm;返回有n個(gè)元素的任意類型數(shù)組中最大的數(shù)。5.Template<classType>voidWE(Typea[],Typeb[],intn){for(inti=0;i<n;i++)b[i]=a[i]*2;將有n個(gè)元素的任意類型數(shù)組a中的每個(gè)元素乘以2后放到數(shù)組b中的相應(yīng)位置中。計(jì)算機(jī)應(yīng)用專業(yè)“C++語言程序設(shè)計(jì)”課程作業(yè)第三次作業(yè)填空題1.假定p所指對象的值為28,p+1所指對象的值為62,則*p++的值為28。2.假定p所指對象的值為28,p+1所指對象的值為62,則*++p的值為62。3.假定p所指對象的值為25,p+1所指對象的值為50,則執(zhí)行“(*p)++;”語句后,p所指對象的值為26。4.假定p所指對象的值為25,p+1所指對象的值為50,則執(zhí)行“*(p++);”語句后,p所指對象的值為50。5.假定a是一個(gè)指針數(shù)組,則a+i所指對象的地址比a地址大未知字節(jié)。6.假定a是一個(gè)一維數(shù)組,則a[i]的指針訪問方式為*(a+i)。7.假定a是一個(gè)二維數(shù)組,則a[i][j]的指針訪問方式為*(*(a+i)+j)。8.假定a是一個(gè)一維數(shù)組,則a[i]對應(yīng)的存儲地址(以字節(jié)為單位)為(char*)a+i*sizeof(a[0])。9.假定一個(gè)二維數(shù)組為a[M][N],則a[i][j]對應(yīng)的存儲地址(以字節(jié)為單位)為(char*)a+(i*N+j)*sizeof(a[0][0])。10.假定一個(gè)二維數(shù)組a[M][N],則a[i]的地址值(以字節(jié)為單位)為(char*)a+i*N*sizeof(a[0][0])。11.假定p是一個(gè)指向float型數(shù)據(jù)的指針,則p+1所指數(shù)據(jù)的地址比p所指數(shù)據(jù)的地址大4字節(jié)。12.假定a為一個(gè)字符數(shù)組名,則元素a[8]的字節(jié)地址為8。13.假定a為一個(gè)整型數(shù)組名,則元素a[4]的字節(jié)地址為16。14.假定一個(gè)結(jié)構(gòu)類型的定義為“structA{inta,b;shortc;A*d;};”,則該類型的大小為14字節(jié)。15.假定一個(gè)結(jié)構(gòu)類型的定義為“structB{inta[8];char*b;};”,則該類型的大小為36字節(jié)。16.假定一個(gè)結(jié)構(gòu)類型的定義為“structD{inta;union{intb;doublec;};D*d[3];};”,則該類型的大小為24字節(jié)。17.假定要?jiǎng)討B(tài)分配一個(gè)類型為Worker的具有n個(gè)元素的數(shù)組,并由r指向這個(gè)動(dòng)態(tài)數(shù)組,則使用的語句為r=newWorker[n];。18.假定要訪問一個(gè)結(jié)構(gòu)x中的由a指針成員所指向的對象,則表示方法為*(x.a)。19.假定要訪問一個(gè)結(jié)構(gòu)指針p所指對象中的b指針成員所指的對象,則表示方法為*(p->b)。給出下列程序運(yùn)行后的輸出結(jié)果以下結(jié)果中空格以’ˉ’表示1.#include<iomanip.h>voidmain(){inta[8]={7,9,11,13,3,8,15,17};int*p=a;for(inti=0;i<8;i++){cout<<setw(5)<<*p++;if((i+1)%4==0)cout<<endl;ˉˉˉˉ7ˉˉˉˉ9ˉˉˉ11ˉˉˉ13ˉˉˉˉ3ˉˉˉˉ8ˉˉˉ15ˉˉˉ172.#include<iomanip.h>voidmain(){inta[5]={3,6,15,7,20};int*p=a;for(inti=0;i<5;i++)cout<<setw(5)<<*p++;cout<<endl;for(i=0;i<5;i++)cout<<setw(5)<<*--p;cout<<endl;ˉˉˉˉ3ˉˉˉˉ6ˉˉˉ15ˉˉˉˉ7ˉˉˉ20ˉˉˉ20ˉˉˉˉ7ˉˉˉ15ˉˉˉˉ6ˉˉˉˉ33.#include<iomanip.h>voidmain(){inta[8]={4,8,12,16,20,24,28,32};int*p=a;do{cout<<*p<<’’;p+=3;}while(p<a+8);cout<<endl;416284.#include<iomanip.h>voidmain(){intx=20,y=40,*p;p=&x;cout<<*p<<’’;*p=x+10;p=&y;cout<<*p<<endl;*p=y+20;cout<<x<<’’<<y<<endl;204030605.#include<iomanip.h>intLA(int*a,intn){ints=0;for(inti=0;i<n;i++)s+=a[i];returns;voidmain(){inta[]={5,10,15,20,25,30};intb=LA(a,5);intc=LA(a+3,2);cout<<b<<’’<<c<<’’<<b+2*c<<endl;75451656.#include<iomanip.h>voidLC(inta,intb){intx=a;a=b;b=x;cout<<a<<’’<<b<<endl;voidmain(){intx=15,y=36;LC(x,y);cout<<x<<’’<<y<<endl;361515367.#include<iomanip.h>voidLF(int&x,inty){x=x+y;y=x+y;cout<<”x=”<<x<<”,y=”<<y<<endl;voidmain(){intx=5,y=8;cout<<”x=”<<x<<”,y=”<<y<<endl;LF(x,y);cout<<”x=”<<x<<”,y=”<<y<<endl;x=5,y=8x=13,y=21x=13,y=88.#include<iomanip.h>voidLG(int*&a,int&m){a=newint[m];int*p=a;for(inti=0;i<m;i++)*p++=2*i+1;voidmain(){int*p,n=5;LG(p,n);for(inti=0;i<n;i++)cout<<p[i]<<’’;cout<<endl;delete[]p;135799.#include<iomanip.h>voidLH(int*a,intn){int*p=a+n-1;whlie(a<p){intx=*a;*a=*p;*p=x;a++;p--;voidmain(){int*d=newint[5];inti;for(i=0;i<5;i++){d[i]=2*i+3;cout<<setw(5)<<d[i]<<’’;cout<<endl;LH(d,5);for(i=0;i<5;i++){cout<<setw(5)<<d[i]<<’’;cout<<endl;delete[]d;ˉˉˉˉ3ˉˉˉˉ5ˉˉˉˉ7ˉˉˉˉ9ˉˉˉ11ˉˉˉ11ˉˉˉˉ9ˉˉˉˉ7ˉˉˉˉ5ˉˉˉˉ310.#include<iostream.h>structWorker{charname[15];//姓名intage;//年齡floatpay;//工資voidmain(){Workerx={”weirong”,55,640};Workery,*p;y=x;p=&x;cout<<<<’’<<y.age<<’’<<y.pay<<endl;cout<<p->name<<’’<<p->age+5<<’’<<p->pay-10<<endl;weirong55640weirong6063011.#include<iostream.h>#include<string.h>structWorker{charname[15];//姓名intage;//年齡floatpay;//工資voidmain(){Workerx;char*t=”liouting”;intd=46;floatf=725;strcpy(,t);x.age=d;x.pay=f;cout<<<<’’<<x.age<<’’<<x.pay<<endl;liouting46725寫出下列每個(gè)函數(shù)的功能1.#include<iostream.h>voidLI(intn){int*a=newint[n],*p=a+n;for(inti=0;i<n;i++)cin>>a[i];for(i=n-1;i>=0;i--)cout<<*(--p)<<’’;cout<<’\n’;delete[]a;輸入n個(gè)數(shù)并以相反的順序顯示出來。2.#include<iostream.h>voidLK(inta[],intn,int*&b,int&m){floats=0;inti;for(i=0;i<n;i++)s+=a[i];s/=n;m=0;for(i=0;i<n;i++)if(a[i]>=s)m++;b=newint[m];int*p=b;for(i=0;i<n;i++)if(a[i]>=s)*p++=a[i];將數(shù)組a中大于平均數(shù)的元素存放到動(dòng)態(tài)申請的數(shù)組b中,數(shù)組b的大小由m返回。3.//structWorker{//charname[15];//姓名//intage;//年齡//floatpay;//工資istream&operator>>(istream&istr,Worker&x){cout<<”請輸入一個(gè)職工記錄:姓名、年齡、工資”<<endl;istr>>>>x..age>>x..pay;returnistr;重載istream的>>操作符以輸入Worker結(jié)構(gòu)對象。4.//structStrNode{//charname[15];//字符串域//StrNode*next;//指針域voidQB(StrNode*&f,intn){if(n==0){f=NULL;return;}f=newStrNode;cin>>f->name;StrNode*p=f;whlie(--n){p=p->next=newStrNode;cin>>p->name;p->next=NULL;創(chuàng)建有n個(gè)結(jié)點(diǎn)的StrNode類型的鏈表,并從鍵盤輸入每個(gè)結(jié)點(diǎn)的name值。5.//structStrNode{charname[15];StrNode*next;};voidQC(StrNode*f){whlie(f){cout<<f->name<<’’;f=f->next;遍歷鏈表并輸出所有結(jié)點(diǎn)的name數(shù)據(jù)成員計(jì)算機(jī)應(yīng)用專業(yè)“C++語言程序設(shè)計(jì)”課程作業(yè)第四次作業(yè)填空題在定義類對象的語句執(zhí)行時(shí),系統(tǒng)在建立每個(gè)對象的過程中將自動(dòng)調(diào)用該類的_構(gòu)造函數(shù)_____使其初始化。當(dāng)一個(gè)類對象被撤消時(shí)將自動(dòng)調(diào)用該類的__析構(gòu)函數(shù)_________。對基類數(shù)據(jù)成員的初始化是通過執(zhí)行派生類構(gòu)造函數(shù)中的__初始化表_____來實(shí)現(xiàn)的。對一個(gè)類中的數(shù)據(jù)成員的初始化可以通過構(gòu)造函數(shù)中的_初始化表___實(shí)現(xiàn),也可以通過構(gòu)造函數(shù)中的__賦值語句________實(shí)現(xiàn)。在一個(gè)派生類中,對基類成員、類對象成員和非類對象成員的初始化次序的先基類成員,后類對象成員,最后非對象成員。當(dāng)撤消一個(gè)含有基類和類對象成員的派生類對象時(shí),將首先完成派生類本身的析構(gòu)函數(shù)定義體的執(zhí)行,接著完成類對象成員的析構(gòu)函數(shù)定義體的執(zhí)行,最后完成基類成員的析構(gòu)函數(shù)定義體的執(zhí)行。設(shè)PX是指向一個(gè)類動(dòng)態(tài)對象的指針變量,則執(zhí)行“deletepx;”語句時(shí),將自動(dòng)調(diào)用該類的析構(gòu)函數(shù)。當(dāng)一個(gè)類對象離開它的作用域時(shí),系統(tǒng)將自動(dòng)調(diào)用該類的析構(gòu)函數(shù)。假定一個(gè)類對象數(shù)組為A[N],當(dāng)離開它的作用域時(shí),系統(tǒng)自動(dòng)調(diào)用該類析構(gòu)函數(shù)的次數(shù)為N次。假定AB為一個(gè)類,則執(zhí)行“ABa[10];”語句時(shí),系統(tǒng)自動(dòng)調(diào)用該類構(gòu)造函數(shù)的次數(shù)為10次。假定擁護(hù)沒有給一個(gè)名為AB的類定義構(gòu)造函數(shù),則系統(tǒng)為其隱含定義的構(gòu)造函數(shù)為空構(gòu)造函數(shù)。假定用戶沒有給一個(gè)名為AB的類定義析構(gòu)函數(shù),則系統(tǒng)為其隱含定義的析構(gòu)函數(shù)為空析構(gòu)函數(shù)。若需要把一個(gè)函數(shù)“voidf();”定義為一個(gè)類AB的友元函數(shù),則應(yīng)在類AB的定義中加入一條語句:friendvoidf();。若需要把一個(gè)類AB定義為一個(gè)類CD的友元類,則應(yīng)在類CD的定義中加入一條語句:friendclassAB;。假定一個(gè)類AB中有一個(gè)靜態(tài)整型成員bb,在類外為它進(jìn)行定義并初始化為0時(shí),所使用寫法為AB:bb=0;。假定類AB中有一個(gè)公用屬性的靜態(tài)數(shù)據(jù)成員bb,在類外不通過對象名訪問該成員bb的寫法為AB:bb。當(dāng)類中一個(gè)字符指針成員指向具有n個(gè)字節(jié)的儲存空間時(shí),它所能儲存字符串的最大長度為n-1。假定AB為一個(gè)類,則該類的拷貝構(gòu)造函數(shù)的聲明語句為AB:AB(AB&)。對類對象成員初始化是通過執(zhí)行構(gòu)造函數(shù)中的初始化表完成的。對于類中定義的成員,其隱含訪問權(quán)限為private,對于結(jié)構(gòu)中定義的成員,其隱含訪問權(quán)限為public。一個(gè)類的友元函數(shù)或友元類能夠通過成員操作符訪問該類的所有數(shù)據(jù)成員和函數(shù)成員。假定要對類AB定義加號操作符重載成員函數(shù),實(shí)現(xiàn)兩個(gè)AB類對象的加法,并返回相加結(jié)果,則該成員函數(shù)的聲明語句為:ABoperator+(AB,AB);。在C++流類庫中,根基類為ios。在C++流類庫中,輸入流類和輸出流類的名稱分別為istream和ostream。若要在程序文件中進(jìn)行標(biāo)準(zhǔn)輸入輸出操作,則必須在開始的#inlude命令中使用iosteam.h頭文件。若要在程序文件中進(jìn)行文件輸入輸出操作,則必須在開始的#inlude命令中使用fstream.h頭文件。當(dāng)從字符文件中讀取回車和換行兩個(gè)字符時(shí),被系統(tǒng)看作為一個(gè)換行符。當(dāng)使用ifstream流類定義一個(gè)流對象并打開一個(gè)磁盤文件時(shí),文件的隱含打開方式為讀取的文本文件,當(dāng)使用ofstream流類定義一個(gè)流對象并打開一個(gè)磁盤文件時(shí),文件的隱含打開方式為寫入的文本文件。當(dāng)需要使用istrstream流類定義一個(gè)流對象并聯(lián)系一個(gè)字符串時(shí),應(yīng)在文件開始使用#include命令,使之包含strstrea.h文件。二、給出下列程序運(yùn)行后的輸出結(jié)果1.#include<iostream.h>classA{inta,b;public:A(){a=b=0;}A(intaa,intbb){a=aa;b=bb;cout<<a<<’’<<b<<endl;voidmain(){Ax,y(6,3),z(8,10);638102.#include<iostream.h>classAinta,b;public:A(intaa=0,intbb=0):a(aa),b(bb)cout<<"Constructor!"<<a+b<<endl;voidmain(){Ax,y(2,5),z(y);Constructor!0Constructor!73.#include<iostream.h>classA{int*a;public: A(intaa=0) a=newint(aa); cout<<"Constructor!"<<*a<<endl;voidmain() Ax[2]; A*p=newA(5); deletep;Constructor!0Constructor!0Constructor!54.#include<iostream.h>classA inta;public: A(intaa=0):a(aa){} ~A(){cout<<"Destructor!"<<a<<endl;}voidmain() Ax(5); A*p=newA(10); deletep;Destructor!10Destructor!55.#include<iostream.h>classA{int*a;public: A(intx) a=newint(x); cout<<"Constructor!"<<*a<<endl; ~A(){deletea;cout<<"Destructor!"<<endl;}voidmain() Ax(9),*p; p=newA(12); deletep;Constructor!9Constructor!12Destructor!Destructor!6.#include<iostream.h>classA inta;public: A(intaa=0):a(aa) cout<<"ConstructorA!"<<a<<endl;classB:publicA intb;public: B(intaa,intbb):A(aa),b(bb) cout<<"ConstructorB!"<<b<<endl;voidmain() Bx(2,3),y(4,5);ConstructorA!2ConstructorB!3ConstructorA!4ConstructorB!57.#include<iostream.h>classA inta;public: A(intaa=0){a=aa;} ~A(){cout<<"DestructorA!"<<a<<endl;}classB:publicA{intb;public: B(intaa=0,intbb=0):A(aa){b=bb;} ~B(){cout<<"DestructorB!"<<b<<endl;}voidmain() Bx(5),y(6,7);DeconstructorB!7DeconstructorA!6DeconstructorB!0DeconstructorA!58.#include<iostream.h>#include<stdlib.h>classA inta,b;charop;public: A(intaa,intbb,charch){a=aa;b=bb;op=ch;} intComp() switch(op) case'+':returna+b; case'-':returna-b; case'*':returna*b; case'/':if(b!=0)returna/b;elseexit(1); case'%':if(b!=0)returna%b;elseexit(1); default:exit(1); voidSetA(intaa,intbb,charch) a=aa;b=bb;op=ch;voidmain(void) Ax(3,5,'*'); inta=x.Comp(); x.SetA(4,9,'+'); a+=x.Comp(); x.SetA(13,8,'%'); a+=x.Comp();

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論