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

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)應(yīng)用專(zhuān)業(yè)“C++語(yǔ)言程序設(shè)計(jì)〃課程作業(yè)

第一次作業(yè)

一、填空題

1.C++語(yǔ)言中的每條基本語(yǔ)句以——作為結(jié)束符,每條復(fù)合語(yǔ)句以」

作為結(jié)束符。

2.用于輸出表達(dá)式值的標(biāo)準(zhǔn)輸出流對(duì)象是cout,用于從鍵盤(pán)上為變

量輸入值的標(biāo)準(zhǔn)入流對(duì)象是cin。

3.當(dāng)不須要函數(shù)返回任何值時(shí),則應(yīng)把該函數(shù)類(lèi)型定義為void。

4.執(zhí)行<<cout?143?,+'?18?,='?143+18?endl;”語(yǔ)句后得到

的輸出結(jié)果為143+18=161。

5.執(zhí)行“cout<<“ning”<<“chen”<<38<<endl;”語(yǔ)句后得到的輸出

結(jié)果為ningchen38。

6.在每個(gè)C++程序中都必需包含有這樣一個(gè)函數(shù),該函數(shù)的函數(shù)名為

main。

7.C++源程序文件的缺省擴(kuò)展名為cpp,由C++源程序文件編譯而成

的目標(biāo)文件的缺省擴(kuò)展名為obj,由C++目標(biāo)文件連接而成的可執(zhí)行

文件的缺省擴(kuò)展名為exeo

8.程序運(yùn)行中須要從鍵盤(pán)上輸入多于一個(gè)數(shù)據(jù)時(shí),各數(shù)據(jù)之間應(yīng)運(yùn)用空

格—或逗號(hào)符號(hào)作為分隔符。

9.十講制數(shù)25表示成符號(hào)C++語(yǔ)言規(guī)則的八進(jìn)制和十六進(jìn)制數(shù)分別為31

和19符號(hào)。

10.在C++語(yǔ)言中,用轉(zhuǎn)義字符序列\(zhòng)n或操縱符endl表示輸出

一個(gè)換行符。

11.執(zhí)行rtcout?char('b'+2)<<endl;”語(yǔ)句后得到的輸出結(jié)果為

do

12.執(zhí)行acout?char('K'-3)?endl;語(yǔ)句后得到的輸出結(jié)果為

H0

13.已知‘A'V的ASCII碼為65~90,當(dāng)執(zhí)行“intx='H'+5;”

語(yǔ)句后x的值為77。

14.已知'A'V的ASCII碼為65~90,當(dāng)執(zhí)行“charch=16*5+2;

cout<<ch?endl;語(yǔ)句序列后,得到的輸出結(jié)果為R。

15.假定一個(gè)枚舉類(lèi)型的定義為"enumRA{xa,xb,xc,xd};”,則執(zhí)行

"cout<<"xc="<<xc〈<endl;”語(yǔ)句得到的輸出結(jié)果為xc=2。

16.假定一個(gè)枚舉類(lèi)型的定義為"enumRB{ab,ac=3,ad,ae}x=ad;"則x

的值為4。

17.Char、short和int類(lèi)型的大小分別為1字節(jié)、2字節(jié)和4

字節(jié)。

18.float和double類(lèi)型的大小分別為4字節(jié)和8字節(jié)。

19.十進(jìn)制數(shù)128和-3.26的類(lèi)型分別為整型和雙精度型。

20.若須要定義一個(gè)標(biāo)識(shí)符常量,并且使C++能夠進(jìn)行類(lèi)型檢查,則應(yīng)在

定義語(yǔ)句的起先用保留字define。

21.運(yùn)用const語(yǔ)句定義一個(gè)標(biāo)識(shí)符常量時(shí),則必需對(duì)它同時(shí)進(jìn)行初始

22.執(zhí)行"intx=45,y=16;cout?x/y<<,J<<x%y<<endl;”語(yǔ)句序列

后得到的輸出結(jié)果為213。

23.假定x=10,y=6,則表達(dá)式2+x++和++y*3的值分別為12和

21o

24.算術(shù)表達(dá)式(x,y2)/(2-xy)對(duì)應(yīng)C++表達(dá)式為(x*x+y*y)

/(2-x*y)。

25.算術(shù)表達(dá)式xy2/(3a+4b-l)對(duì)應(yīng)的C++表達(dá)式為

x*y*y/(3*a+4*bT)。

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+l表示成增量表達(dá)式為a++。

29.增量表達(dá)式++v表示成賦值表達(dá)式為y=y+l。

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和

trueo

36.假定x=5,則執(zhí)行“a=(x?10:4*2);”語(yǔ)句后a的值為100

37.假定a=5,則條件表達(dá)式“a==0?10:20”的值為20。

38.執(zhí)行“typedefintDataType;”語(yǔ)句后,在運(yùn)用int定義整型變

量的地方都可以運(yùn)用DataType定義整型變量。

39.設(shè)x和y均為bool量,x&&y為真的條件是x=truey=true

40.設(shè)x和y均為bool量,則x||y為假的條件是x、y都為false

二、寫(xiě)出下列程序運(yùn)行后的輸出結(jié)果

1.#include<iostream.h>

voidSB(charch){

switch(ch){

case'A':case'a':

coutwell"!";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、ttclude<stream.h>

#include<stdlib.h>

doubleSD(inta,intb,charop){

doublex;

switch(op){

case'x':x=double(a)+b;break;

casex=double(a)-b;break;

case'*'x=double(a)*b;break;

case7':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.2

3、#include<iostream.h>

voidmain(){

ints=0;

for(int1=1;I<6;I++)

s+=I*I;

cout<<ws=w<<s<<endl;

)

s=55

4^#include<iostream.h>

voidmain(){

ints=0;

for(int1=1;;I++){

if(s>50)break;

if(I%3==0)s+=I;

)

cout?J,I,s=w?I?>>,v?s?endl;

}

I,s=19,63

5、#include<iostream.h>

voidmain(){

intsl=0,s2=0;

for(int1=0;I<10;I++)

if(I%2)sl+=I;

elses2+=I;

cout<<sl<<,4<<s2<<endl;

)

2520

6、#include<iostream.h>

voidmain(){

intn=10,y=l;

while(n-){y++;++y;}

cout<〈"y*y="<<y*y<〈endl;

}

y*y=441

三、寫(xiě)出下列每個(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=l,s=l;

for(inti=l;i〈=n;i++){

p*=x;

s+=p/(i+l);

returns;

計(jì)算1+X/2+X2/3+X3/4+**,+X7(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;

求鍵盤(pán)輸入的數(shù)的平均值,輸入TOO結(jié)束(不計(jì)在平均值內(nèi)),若沒(méi)有數(shù)

輸入則返回0o

計(jì)算機(jī)應(yīng)用專(zhuān)業(yè)“C++語(yǔ)言程序設(shè)計(jì)”課程作業(yè)

其次次作業(yè)

一、填空題

1.假定一個(gè)一維數(shù)組的定義為“char*a[5];",則該數(shù)組所含元素的

個(gè)數(shù)為3,所占存儲(chǔ)空間的字節(jié)數(shù)為20。

2.假定一個(gè)二維數(shù)組的定義為“inta[4][6];",則該數(shù)組所含元素的

個(gè)數(shù)為24,所占存儲(chǔ)空間的字節(jié)數(shù)為96。

3.假定一個(gè)二維數(shù)組的定義為“chara[8][8];",則該數(shù)組所含元素

的個(gè)數(shù)為64,所占存儲(chǔ)空間的字節(jié)數(shù)為64。

4.執(zhí)行“typedeffloatABC[10];”語(yǔ)句把ABC定義為具有10個(gè)單精

度元素的數(shù)組。

5.在函數(shù)外定義的變量稱(chēng)為全局變量,若沒(méi)有被初始化則系統(tǒng)隱含對(duì)

它賦初值_Q____o

6.函數(shù)中的形參變量的初值由調(diào)用該函數(shù)時(shí)獲得。

7.函數(shù)調(diào)用時(shí);實(shí)參向形參的傳送分為傳值和傳址兩種傳

送方式。

8.變量分為全局和局部?jī)煞N,局部變量沒(méi)有賦初值時(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:il++;break;

case2:i2++;

}

cout?i0?,'?il?,'?i2?endl;

)

424

2.#include<iostream.h>

#include<string.h>

voidmain(){

char*a[5]

{“student","worker","cadre","apple","peasant”);

char*pl,*p2;

pl=p2=a[0];

for(inti=0;i<5;i++){

if(strcmp(a[i],pl)>0)pl=a[i];

if(strcmp(a[i],p2)<0)p2=a[i];

)

cout?pl<<,'<<p2<<endl;

)

workerapple

3.#include<iostream.h>

voidmain(){

inta[8]={36,73,48,14,55,40,32,66};

intbl,b2;

bl=b2=a[0];

for(inti=l;i<8;1++)

if(a[i]>bl){

if(bl>b2)b2=bl;

bl=a[i];

)

cout?bl?,'?b2?endl;

}

7336

4.#include<iostream.h>

voidmain(){

chara[]="aabcdaabacabfgacd

intil=O,i2=0,i=0;

while(a[i]){

if(a[i]=='a')il++;

if(a[i]=='b')i2++?

i++;

)

cout?il?,'?i2?endl;

)

73

5.#include<iostream.h>

voidmain(){

chara[]="abcdabcdbdaeafw;

intb[5]={0},i=0;

while(a[i]){

switch(a[i]){

case'a':b[0]++;break;

case'b':b[l]++;break;

case'c':b[2]++;break;

case'd':b[3]++;break;

default:b[4]++;

}()UTBUIpTOA

<q-iueaJisoT>9pnpui#

1915

(

4pu9>>inoo

:,(++!濘〉?。?=T)Joj

(

:++[門(mén)。

:++r([門(mén)q=<口]?)鈍!邛

:o=f1UT

}(++T:01>]:0=11邛)JOJ

:{0}=舊。物!

:{101'06'02,'09}=㈤q

:e8'Z6'08'%'0AZ9力9'£8=[0口?”!

}()UWUIpTOA

<q-uie9J^soT>9pnpui#,g

Z£Z£V

(

:[pua>>ino0

:,,>>[!]q>*noo(++i:g>[i0=1)“J

:++T

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?J'?a[ii][jj]?endl;

2024

8.#include<iostream.h>

voidmain(){

inta=10,b=20;

cout<<a?J'?b<<endl;

{a*=4;

intb=a+35;

cout<<a<<''?b<<endl;

}

cout<<a<<''<<b<<endl;

1020

4075

4020

三、寫(xiě)出下列每個(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è)隨意類(lèi)型的數(shù)a和b,若a大于b則返回1,若a等于b則返

回0,若a小于b否則返回lo

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è)元素的隨意類(lèi)型數(shù)組中最大的數(shù)。

5.Template<classType>

voidWE(Typea[],Typeb[],intn){

for(inti=0;i<n;i++)

b[i]=a[i]*2;

}

將有n個(gè)元素的隨意類(lèi)型數(shù)組a中的每個(gè)元素乘以2后放到數(shù)組b中

的相應(yīng)位置中。

計(jì)算機(jī)應(yīng)用專(zhuān)業(yè)“C++語(yǔ)言程序設(shè)計(jì)”課程作業(yè)

第三次作業(yè)

一、填空題

1.假定p所指對(duì)象的值為28,p+1所指對(duì)象的值為62,則*p++的值為

28o

2.假定p所指對(duì)象的值為28,p+1所指對(duì)象的值為62,則*++p的值

為62。

3.假定p所指對(duì)象的值為25,p+1所指對(duì)象的值為50,則執(zhí)行“(*p)+

+;”語(yǔ)句后,D所指對(duì)象的值為26。

4.假定p所指對(duì)象的值為25,p+1所指對(duì)象的值為50,則執(zhí)行“*(p++);”

語(yǔ)句后,D所指對(duì)象的值為50。

5.假定a是一個(gè)指針數(shù)組,則a+i所指對(duì)象的地址比a地址大未知

字節(jié)。

6.假定a是一個(gè)一維數(shù)組,則a[i]的指針訪問(wèn)方式為*(a+i)。

7.假定a是一個(gè)二維數(shù)組,則a:i][j]的指針訪問(wèn)方式為

*(*(a+i)+j)。

8.假定a是一個(gè)一維數(shù)組,則a[i]對(duì)應(yīng)的存儲(chǔ)地址(以字節(jié)為單位)為

(char*)a+i*sizeof(a[0])。

9.假定一個(gè)二維數(shù)組為a[M][N],則a[i][j]對(duì)應(yīng)的存儲(chǔ)地址(以字節(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ù)組名,則元素a18]的字節(jié)地址為8。

13.假定a為一個(gè)整型數(shù)組名,則元素a「4]的字節(jié)地址為16。

14.假定一個(gè)結(jié)構(gòu)類(lèi)型的定義為ustructA{inta,b;shortc;A*d;};”,

則該類(lèi)型的大小為14字節(jié)。

15.假定一個(gè)結(jié)構(gòu)類(lèi)型的定義為"structB{inta[8];char*b;};",

則該類(lèi)型的大小為36字節(jié)。

16.假定一個(gè)結(jié)構(gòu)類(lèi)型的定義為"structD{inta;union{intb;double

c;);D*d[3];};",則該類(lèi)型的大小為24字節(jié)。

17.假定要?jiǎng)討B(tài)支配一個(gè)類(lèi)型為Worker的具有n個(gè)元素的數(shù)組,并由r

指向這個(gè)動(dòng)態(tài)數(shù)組,則運(yùn)用的語(yǔ)句為r=newWorker[n];。

18.假定要訪問(wèn)一個(gè)結(jié)構(gòu)x中的由a指針成員所指向的對(duì)象,則表示方法

為*(x.a)o

19.假定要訪問(wèn)一個(gè)結(jié)構(gòu)指針p所指對(duì)象中的b指針成員所指的對(duì)象,則

表示方法為*(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;

}

}

791113

381517

2.#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;

}

3615720

2071563

3.#include<iomanip.h>

voidmain(){

inta[8]={4,8,12,16,20,24,28,32];

(++T:u>i:0=l;UT)JOJ

:0=s

}(U4.UT9*”!)VTiuj

<q,dTueiuoT>9pnpuT#'g

090£

0VOS

(

“pua>>A?,?x?;noo*A=d*

4pus?d*?^noo:除d

:0l+x=d*

:,,>>d*>>】noo:x§=d

:d*,o兀X(03=x”!

}()UWUIpIOA

<q-diueuioT>9pnpuT#.我

8591f

{

:【pua)〉]noo

:(8+?>d)9TTqA\{

:S=+d

:,>>d*>>”oo

}op

=d*IUT

s+=a[i];

returns;

)

voidmain(){

inta[]={5,10,15,20,25,30];

intb=LA(a,5);

intc=LA(a+3,2);

cout?b〈<''?c?J'?b+2*c?endl;

)

7545165

6.#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;

}

3615

1536

:I+!*Z=++d*

(++IS:0=1S"J

:e=d*IUI

i[UI]1UIM9U=B

}(Ui91UIb4*1UI)93piOA

<q-diueuiOT>9pnpui#?§

8=人'£l=x

l'£l=x

8=A'S=x

(

:[pue>>X>>“=X'“>>x>>“=x“>>”oo

:(人'x)m

“pua>>X?“=A'“>>x?“=x“>xnoo

ig=A,g=x^ui

)()uwuipiOA

(

:Tpue?A?“=…“>>x?“=x“>xnoo

"+x=K

:A+x=x

}(AIUI'x用M!)dlP!0A

<q-diueuioi>9pnpuT#)

voidmain(){

int*p,n=5;

LG(p,n);

for(inti=0;i<n;i++)

cout<<p[i]?',;

cout<<endl;

deleteE]p;

}

13579

9.#includediomanip.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;

deleteE]d;

}

3579H

n9753

10.#include<iostrearn.h>

structWorker{

charname[15];//姓名

intage;//年齡

floatpay;//工資

};

voidmain(){

Workerx={"weirong”,55,640};

Workery,*p;

y=x;p=&x;

cout<<y,name<<''<<y.age<<''<<y.pay<<endl;

cout<<p—>name<<''<<p—>age+5<<''?p—>pay

—10<<endl;

}

weirong55640

weirong60630

11.#include<iostream.h>

#include<string.h>

structWorker{

charname[15];//姓名

intage;//年齡

floatpay;//工資

};

voidmain(){

Workerx;

char*t="liouting”;

intd=46;floatf=725;

strcpy(x.name,t);

x.age=d;x.pay=f;

cout?x.name<<''<<x.age<<''<<x.pay?endl;

}

liouting46725

三、寫(xiě)出下列每個(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ù)并以相反的依次顯示出來(lái)。

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)申請(qǐng)的數(shù)組b中,數(shù)組b的大小

由m返回。

3.//structWorker{

//charname[15];//姓名

//intage;//年齡

//floatpay;//工資

//};

istream&operator>>(istreamfeistr,Workerftx){

cout〈<”請(qǐng)輸入一個(gè)職工記錄:姓名、年齡、工資”〈Cendl;

istr?x.name>>x..age?x..pay;

returnistr;

}

重載istream的>>操作符以輸入Worker結(jié)構(gòu)對(duì)象。

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類(lèi)型的鏈表,并從鍵盤(pán)輸入每個(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)用專(zhuān)業(yè)“C++語(yǔ)言程序設(shè)計(jì)”課程作業(yè)

第四次作業(yè)

一、填空題

1.在定義類(lèi)對(duì)象的語(yǔ)句執(zhí)行時(shí),系統(tǒng)在建立每個(gè)對(duì)象的過(guò)程中將自動(dòng)調(diào)

用該類(lèi)的一構(gòu)造函數(shù)使其初始化。

2.當(dāng)一個(gè)類(lèi)對(duì)象被撤消時(shí)將自動(dòng)調(diào)用該類(lèi)的—析構(gòu)函數(shù)o

3.對(duì)基類(lèi)數(shù)據(jù)成員的初始化是通過(guò)執(zhí)行派生類(lèi)構(gòu)造函數(shù)中的—初始化表

來(lái)實(shí)現(xiàn)的。

4.對(duì)一個(gè)類(lèi)中的數(shù)據(jù)成員的初始化可以通過(guò)構(gòu)造函數(shù)中的—初始化表—

實(shí)現(xiàn),也可以通過(guò)構(gòu)造函數(shù)中的—賦值語(yǔ)句實(shí)現(xiàn)。

5.在一個(gè)派生類(lèi)中,對(duì)基類(lèi)成員、類(lèi)對(duì)象成員和非類(lèi)對(duì)象成員的初始化

次序的先基類(lèi)成員,后類(lèi)對(duì)象成員,最終非對(duì)象成員。

6.當(dāng)撤消一個(gè)含有基類(lèi)和類(lèi)對(duì)象成員的派生類(lèi)對(duì)象時(shí),將首先完成派生

類(lèi)本身的析構(gòu)函數(shù)定義體的執(zhí)行,接著完成類(lèi)對(duì)象成員的析構(gòu)函數(shù)定義體

的執(zhí)行,最終完成基類(lèi)成員的析構(gòu)函數(shù)定義體的執(zhí)行。

7.設(shè)PX是指向一個(gè)類(lèi)動(dòng)態(tài)對(duì)象的指針變量,則執(zhí)行“deletepx;”語(yǔ)

句時(shí),將自動(dòng)調(diào)用該類(lèi)的析構(gòu)函數(shù)。

8.當(dāng)一個(gè)類(lèi)對(duì)象離開(kāi)它的作用域時(shí),系統(tǒng)將自動(dòng)調(diào)用該類(lèi)的析構(gòu)函數(shù)。

9.假定一個(gè)類(lèi)對(duì)象數(shù)組為A[N],當(dāng)離開(kāi)它的作用域時(shí),系統(tǒng)自動(dòng)調(diào)用該

類(lèi)析構(gòu)函數(shù)的次數(shù)為N次。

10.假定AB為一個(gè)類(lèi),則執(zhí)行“ABa[10];”語(yǔ)句時(shí),系統(tǒng)自動(dòng)調(diào)用該類(lèi)

構(gòu)造函數(shù)的次數(shù)為10次。

11.假定擁護(hù)沒(méi)有給一個(gè)名為AB的類(lèi)定義構(gòu)造函數(shù),則系統(tǒng)為其隱含定義

的構(gòu)造函數(shù)為空構(gòu)造函數(shù)。

12.假定用戶(hù)沒(méi)有給一個(gè)名為AB的類(lèi)定義析構(gòu)函數(shù),則系統(tǒng)為其隱含定義

的析構(gòu)函數(shù)為空析構(gòu)函數(shù)。

13.若須要把一個(gè)函數(shù)“voidf();"定義為一個(gè)類(lèi)AB的友元函數(shù),則應(yīng)

在類(lèi)AB的定義中加入一條語(yǔ)句:friendvoidf();。

14.若須要把一個(gè)類(lèi)AB定義為一個(gè)類(lèi)CD的友元類(lèi),則應(yīng)在類(lèi)CD的定義中

加入一條語(yǔ)句:friendclassAB;。

15.假定一個(gè)類(lèi)AB中有一個(gè)靜態(tài)整型成員bb,在類(lèi)外為它進(jìn)行定義并初始

化為0時(shí);所運(yùn)用寫(xiě)法為AB:bb=0;。

16.假定類(lèi)AB中有一個(gè)公用屬性的靜態(tài)數(shù)據(jù)成員bb,在類(lèi)外不通過(guò)對(duì)象名

訪問(wèn)該成員bb的寫(xiě)法為AB:bb。

17.當(dāng)類(lèi)中一個(gè)字符指針成員指向具有n個(gè)字節(jié)的儲(chǔ)存空間時(shí),它所能儲(chǔ)

存字符串的最大長(zhǎng)度為n-l。

18.假定AB為一個(gè)類(lèi),則該類(lèi)的拷貝構(gòu)造函數(shù)的聲明語(yǔ)句為AB:AB(AB&)。

19.對(duì)類(lèi)對(duì)象成員初始化是通過(guò)執(zhí)行構(gòu)造函數(shù)中的初始化表完成的。

20.對(duì)于類(lèi)中定義的成員,其隱含訪問(wèn)權(quán)限為private,對(duì)于結(jié)構(gòu)中定義的

成員,其隱含訪問(wèn)權(quán)限為public。

21.一個(gè)類(lèi)的友元函數(shù)或友元類(lèi)能夠通過(guò)成員操作符訪問(wèn)該類(lèi)的全部數(shù)據(jù)

成員和函數(shù)成員。

22.假定要對(duì)類(lèi)AB定義加號(hào)操作符重載成員函數(shù),實(shí)現(xiàn)兩個(gè)AB類(lèi)對(duì)象的

加法,并返回相加結(jié)果,則該成員函數(shù)的聲明語(yǔ)句為:ABoperator+(AB,

AB);o

23.在C++流類(lèi)庫(kù)中,根基類(lèi)為ios。

24.在C++流類(lèi)庫(kù)中,輸入流類(lèi)和輸出流類(lèi)的名稱(chēng)分別為istream和

ostreamo

25.若要在程序文件中進(jìn)行標(biāo)準(zhǔn)輸入輸出操作,則必需在起先的#inlude

叮囑中運(yùn)用iosteam,h頭文件。

26.若要在程序文件中進(jìn)行文件輸入輸出操作,則必需在起先的#inlude

叮囑中運(yùn)用fstream,h頭文件。

27.當(dāng)從字符文件中讀取回車(chē)和換行兩個(gè)字符時(shí),被系統(tǒng)看作為一個(gè)換行

符。

28.當(dāng)運(yùn)用ifstream流類(lèi)定義一個(gè)流對(duì)象并打開(kāi)一個(gè)磁盤(pán)文件時(shí),文件的

隱含打開(kāi)方式為讀取的文本文件,當(dāng)運(yùn)用ofstream流類(lèi)定義一個(gè)流對(duì)象

并打開(kāi)一個(gè)磁盤(pán)文件時(shí),文件的隱含打開(kāi)方式為寫(xiě)入的文本文件。

29.當(dāng)須要運(yùn)用istrstream流類(lèi)定義一個(gè)流對(duì)象并聯(lián)系一個(gè)字符串時(shí),,應(yīng)

在文件起先運(yùn)用#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<<J'<<b<<endl;

}

);

voidmain(){

Ax,y(6,3),z(8,10);

}

63

810

2.#include<iostream.h>

classA

{

inta,b;

public:

A(intaa-0,intbb=0):a(aa),b(bb)

(

cout<<,,Constructor!”<〈a+b<<endl;

}

);

voidmain(){

Ax,y(2,5),z(y);

Constructor!0

Constructor!?

3.#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!0

Constructor!0

Constructor!5

4.#include<iostrearn.h>

classA

inta;

public:

A(intaa=0):a(aa){}

~A(){cout?/zDestructor!/z?a<<endl;}

);

voidmain()

{

Ax(5);

A*p=newA(10);

deletep;

}

Destructor!10

Destructor!5

5.#include<iostream.h>

classA{

int*a;

public:

A(intx)

(

a二newint(x);

cout<<,,Constructor!〃<<*a<<endl;

~A(){deletea;cout<<z/Destructor!,/<<endl;}

);

voidmain()

(

Ax(9),*p;

p=newA(12);

deletep;

}

Constructor!9

Constructor!12

Destructor!

Destructor!

6.#include<iostream.h>

classA

(

inta;

public:

A(intaa=0):a(aa)

cout?/,ConstruetorA!”<<a<<endl;

);

classB:publicA

intb;

public:

B(intaa,intbb):A(aa),b(bb)

cout<</zConstruetorB!”<<b<<endl;

)

);

voidmain()

(

Bx(2,3),y(4,5);

}

ConstructorA!2

ConstructorB!3

ConstructorA!4

ConstructorB!5

7.#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!7

DeconstructorA!6

DeconstructorB!0

DeconstructorA!5

8.#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(l);

)

}

voidSetA(intaa,intbb,charch)

{

a=aa;b=bb;op=ch;

}

};

voidmain(void)

Ax(3,5,';

inta=x.Comp();

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論