版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石河子大學(xué)《食品機(jī)械與設(shè)備》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《教育影視賞析》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《家畜育種學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《飯店管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《商業(yè)品牌整體策劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《建筑設(shè)計(jì)》2022-2023學(xué)年第一學(xué)期期末試卷
- 2018年四川內(nèi)江中考滿分作文《我心中的英雄》8
- 沈陽(yáng)理工大學(xué)《化工安全與環(huán)?!?022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《電力變壓器設(shè)計(jì)》2023-2024學(xué)年期末試卷
- 沈陽(yáng)理工大學(xué)《產(chǎn)品仿生學(xué)應(yīng)用設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷
- 軍隊(duì)文職聘用合同管理規(guī)定
- 2024年貴州省安順市西秀區(qū)小升初語(yǔ)文試卷
- 2024-2029年中國(guó)兒童牙冠行業(yè)市場(chǎng)現(xiàn)狀分析及競(jìng)爭(zhēng)格局與投資發(fā)展研究報(bào)告
- 新時(shí)代鐵路發(fā)展面對(duì)面全文內(nèi)容
- 人工智能與語(yǔ)文閱讀理解教學(xué)
- 科學(xué)素養(yǎng)培育及提升-知到答案、智慧樹(shù)答案
- 快遞主管崗位職責(zé)
- 醫(yī)療差錯(cuò)、糾紛、事故登記表
- 七年級(jí)第一次期中家長(zhǎng)會(huì)課件
- 2024下半年四川省廣元市直屬事業(yè)單位招聘104人歷年公開(kāi)引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
- 市政道路施工工程重難點(diǎn)分析及對(duì)策
評(píng)論
0/150
提交評(píng)論