版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
精選試題
面向?qū)ο蟪绦蛟O(shè)計(jì)離線作業(yè)答案
編制:
審核:
出版:
浙江大學(xué)遠(yuǎn)程教育學(xué)院
《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程作業(yè)答案
第2章
【】測試下面的注釋(它在C++風(fēng)格的單行注釋中套入了類似于C的注釋)是否
有效。
name[3]='a,;B.name="lin";
C.name=newchar[5];D.cout?name[3];
11假設(shè)已經(jīng)有定義“char*constname=''chen";”下面的語句中正確的是(A)。
A.name[3]='q,;B.name="lin";
C.name=newchar[5];D.name=newchar('q');
【】假設(shè)已經(jīng)有定義“constchar*name="chen";"下面的語句中錯(cuò)誤的是(A)。
A.name[3]='q';B.name="lin";
C.name=newchar[5];D.name=newchar('q');
[]重載函數(shù)在調(diào)用時(shí)選擇的依據(jù)中,(B)是錯(cuò)誤的。
A.函數(shù)名字B.函數(shù)的返回類型
C.參數(shù)個(gè)數(shù)D.參數(shù)的類型
【】在(A)情況下適宜采用內(nèi)聯(lián)函數(shù)。
A.函數(shù)代碼小,頻繁調(diào)用B.函數(shù)代碼多,頻繁調(diào)用
C.函數(shù)體含有遞歸語句D.函數(shù)體含有循環(huán)語句
【】下列描述中,(C)是錯(cuò)誤的。
A.內(nèi)聯(lián)函數(shù)主要解決程序的運(yùn)行效率問題
B.內(nèi)聯(lián)函數(shù)的定義必須出現(xiàn)在內(nèi)聯(lián)函數(shù)第一次被調(diào)用之前
C.內(nèi)聯(lián)函數(shù)中可以包括各種語句
D.對內(nèi)聯(lián)函數(shù)不可以進(jìn)行異常接口聲明
【】在C++中,關(guān)于下列設(shè)置默認(rèn)參數(shù)值的描述中,(B)是正確的。
A.不允許設(shè)置默認(rèn)參數(shù)值
B.在指定了默認(rèn)值的參數(shù)右邊,不能出現(xiàn)沒有指定默認(rèn)值的參數(shù)
C.只能在函數(shù)的定義性聲明中指定參數(shù)的默認(rèn)值
D.設(shè)置默認(rèn)參數(shù)值時(shí),必須全部都設(shè)置
【】下面的類型聲明中正確是(D)。
A.int&a[4];B.int&*p;
&&q;D.inti,*p=&i;
[]下面有關(guān)重載函數(shù)的說法中正確的是(C)。
A.重載函數(shù)必須具有不同的返回值類型
B.重載函數(shù)形參個(gè)數(shù)必須不同
C.重載函數(shù)必須有不同的形參列表
D.重載函數(shù)名可以不同
【】關(guān)于new運(yùn)算符的下列描述中,(D)是錯(cuò)誤的。
A,它可以用來動(dòng)態(tài)創(chuàng)建對象和對象數(shù)組
B.使用它創(chuàng)建的對象或?qū)ο髷?shù)組可以使用運(yùn)算符delete刪除
C.使用它創(chuàng)建對象時(shí)要調(diào)用構(gòu)造函數(shù)
D.使用它創(chuàng)建對象數(shù)組時(shí)必須指定初始值
【】關(guān)于delete運(yùn)算符的下列描述中,(C)是錯(cuò)誤的。
A.它必須用于new返回的指針
B.使用它刪除對象時(shí)要調(diào)用析構(gòu)函數(shù)
C.對一個(gè)指針可以使用多次該運(yùn)算符
D.指針名前只有一對方括號(hào)符號(hào),不管所刪除數(shù)組的維數(shù)
【】寫出下列程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
inti=15;
intmain()
{inti;
i=100;
::i=i+l;
cout?::i?endl;
return0;
)
答:101
【】寫出下列程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
voidf(int&m,intn)
{inttemp;
temp=m;
m=n;
n=temp;
)
intmain()
{inta=5,b=10;
f(a,b);
cout?a?nn?b?endl;
return0;
)
答:1010
【】分析下面程序的輸出結(jié)果。
#include<iostream>
usingnamespacestd;
int&f(int&i)
{i+=10;
returni;
)
intmain()
{intk=0;
int&m=f(k);
cout?k?endl;
m=20;
cout?k?endl;
return0;
)
答:
10
20
【】舉例說明可以使用const替代#define以消除#define的不安全性。
答:
例如#include<>
#defineA2+4
#defineBA*3
voidmain()
(
cout?B?endl;
)
上面程序的運(yùn)行結(jié)果是14而不是1818。用const替代#define
#define的不安全性。
#include<>
constA=2+4;
constB=A*3;
voidmain()
(
cout?B?endl;
)
運(yùn)行結(jié)果為18o
【】編寫一個(gè)C++風(fēng)格的程序,用動(dòng)態(tài)分配空間的方法計(jì)算Fibonacci數(shù)列的前
20項(xiàng),并存儲(chǔ)到動(dòng)態(tài)分配的空間中。
#include<iostream>
usingnamespacestd;
intmain()
inti;
int*p;
p=newint[20];
p[0]=0;
p[l]=l;
cout?*p?""?*(p+l)?"
for(i=2;i<20;i++)
(
p[i]=p[i-2]+p[i-l];
cout?*(p+i)?"
)
deletep;
return0;
)
【】編寫一個(gè)C++風(fēng)格的程序,建立一個(gè)被稱為sroot()的函數(shù),返回其參數(shù)的二
次方根。重載sroot()3次,讓它返回整數(shù)、長整數(shù)與雙精度數(shù)的二次方
根(計(jì)算二次方根時(shí),可以使用標(biāo)準(zhǔn)庫函數(shù)sqrt())。
#include<>
#include<>
intsroot(intx)
(
return
(int)sqrt(x);
)
floatsroot(floatx)
(
return
(float)sqrt(x);
)
doublesroot(doublex)
return(double)sqrt(x);
)
voidmain()析構(gòu)函數(shù)名與類名完全相同
C.析構(gòu)函數(shù)不能指定返回類型
D.析構(gòu)函數(shù)可以有一個(gè)或多個(gè)參數(shù)
【】構(gòu)造函數(shù)是在(B)時(shí)被執(zhí)行的。
A.程序編譯B.創(chuàng)建對象
C.創(chuàng)建類D.程序裝人內(nèi)存
【】在下面有關(guān)靜態(tài)成員函數(shù)的描述中,正確的是(B)。
A.在靜態(tài)成員函數(shù)中可以使用this指針
B.在建立對象前,就可以為靜態(tài)數(shù)據(jù)成員賦值
C.靜態(tài)成員函數(shù)在類外定義時(shí),要用static前綴
D.靜態(tài)成員函數(shù)只能在類外定義
【】在下面有關(guān)友元函數(shù)的描述中,正確的說法是(A)。
A.友元函數(shù)是獨(dú)立于當(dāng)前類的外部函數(shù)
B.一個(gè)友元函數(shù)不能同時(shí)定義為兩個(gè)類的友元函數(shù)
C.友元函數(shù)必須在類的外部定義
D.在外部定義友元函數(shù)時(shí),必須加關(guān)鍵字friend
【】友元的作用之一是(A)。
A.提高程序的運(yùn)行效率B.加強(qiáng)類的封裝性
C.實(shí)現(xiàn)數(shù)據(jù)的隱藏性D.增加成員函數(shù)的種類
【】以下程序運(yùn)行的結(jié)果是(B)o
#include<iostream>
usingnamespacestd;
classB{
public:
B(){}
B(inti,intj)
{x=i;
y二j;
)
voidprintb()
{cout<<x<<”,"<<y<<endl;
)
private:
intx,y;
);
classA{
public:
A()
()
A(intI,intj);
voidprinta();
private:
Bc;
);
A::A(inti,intj):c(i,j)
()
voidA::printa()
{();
)
intmain()
{Aa(7,8);
0;
return0;
)
A.8,9B.7,8C.5,6D.9,10
[]以下程序的運(yùn)行結(jié)果是(A)o
#include<iostream>
usingnamespacestd;
classA{
public:
voidset(inti,intj)
{x=i;
產(chǎn)j;
)
intget_y()
{returny;
)
private:
intx,y;
);
classbox{
public:
voidset(intl,intw,ints,intp)
{length=l;
width二w;
(s,p);
)
intget_area()
{returnlength*width;
)
private:
intlength,width;
Alabel;
);
intmainQ
{boxb;
(4,6,1,20);
cout?()?endl;
return0;
)
A.24B.4C.20D.6
[]以下程序的運(yùn)行結(jié)果是(B)。
#include<iostream>
usingnamespacestd;
classSample{
public:
Sample(inti,intj)
{x=i;
y二j;
)
voiddisp()
{cout?,,displ,,?endl;
)
voiddisp()const
{cout?ndisp2"?endl;
)
private:
intx,y;
);
intmain()
{constSamplea(l,2);
0;
return0;
)
A.displ2C.displdisp2D.程序編譯出錯(cuò)
【】以下程序的運(yùn)行結(jié)果是(B)o
#include<iostream>
usingnamespacestd;
classR{
public:
R(intrl,intr2)
{Rl=rl;
R2=r2;
)
voidprint();
voidprint()const;
private:
intR1,R2;
);
voidR::print()
{cout?Rl?n,n?R2?endl;
)
voidR::print()const
{cout?R1?",n?R2?endl;
)
intmain()
{Ra(6,8);
constRb(56,88);
0;
return0;
)
A.6,8B.56,88C.0,0D.8,6
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classtoy
{public:
toy(intq,intp)
{quan=q;
price=p;
intget_quan()
{returnquan;
)
intget_price()
{returnprice;
)
private:
intquan,price;
);
intmainQ
{toyop[3][2]={
toy(10,20),toy(30,48),
toy(50,68),toy(70,80),
toy(90,16),toy(ll,120),
);
for(inti=0;i<3;i++)
{cout?op[i][0].get_quan()?n,n;
cout?op[i][0].get_price()?n\nn;
cout?op[i][l].get_quan()?",";
cout?op[i][1].get_price()?n\nn;
)
cout?endl;
return0;
10,20
30,48
50,68
70,80
90,16
11,120
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classexample
{public:
example(intn)
{i=n;
cout?"Constructing\nn;
)
?example。
{cout?"DestructingXn";
)
intget_i()
{returni;
)
private:
inti;
);
intsqr_it(exampleo)
{return()*();
)
intmain()
{examplex(10);
cout?()?endl;
cout?sqr_it(x)?endl;
return0;
)
10
100
Destructing
Destructing
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classaClass
{public:
aClass()
{total++;
)
~aClass()
{total—;
)
intgettotal()
{returntotal;
)
private:
staticinttotal;
);
intaClass::total=0;
intmain()
{aClassol,o2,o3;
cout?()?"objectsinexistence\n";
aClass*p;
p=newaClass;
if(!p)
{cout?"Allocationerror\n";
return1;
)
cout?();
cout?"objectsinexistenceafterallocation\n";
deletep;
cout?();
cout?"objectsinexistenceafterdeletion\n";
return0;
)
3objectsinexistence
4objectsinexistenceafterallocation
3objectsinexistenceafterdeletion
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classtest
{public:
test();
~test(){};
private:
inti;
);
test::test()
{i=25;
for(intctr=0;ctr<10;ctr++)
{cout?"Countingat"?ctr?"\n";
)
testanObject;
intmain()
{return0;
)
CountingatO
Countingatl
Countingat2
Countingat3
Countingat4
Countingat5
Countingat6
Countingat7
Countingat8
Countingat9
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classA{
inta,b;
public:
A()
{a=0;
b=0;
cout?"DefaultconstructorcalledAn";
)
A(inti,intj)
{a=i;
b=j;
cout?"Constructor:a=n?a?",b="?b?endl;
)
);
intmain()
{Aa[3];
Ab[3]={A(l,2),A(3,4),A(5,6));
return0;
)
Defaultconstructorcalled.
Defaultconstructorcalled.
Defaultconstructorcalled.
Constructor:a=l,b=2
Constructor:a=3,b=4
Constructor:a=5,b=6
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classTest{
private:
intval;
public:
Test()
{cout?"default.n?endl;
)
Test(intn)
{val=n;
cout?"Con."?endl;
)
Test(constTest&t)
{val=;
cout?"Copycon.n?endl;
)
);
intmain()
{Testtl(6);
Testt2=tl;
Testt3;
t3=tl;
return0;
)
Con.
Copycon.
Default.
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classN{
private:
intA;
staticintB;
public:
N(inta)
{A=a;
B+=a;
)
staticvoidfl(Nm);
);
voidN::fl(Nm)
{cout?nA="??endl;
cout?"B=n?B?endl;
intN::B=0;
intmain()
{NP(5),Q(9);
N::fl(P);
N::fl(Q);
return0;
)
A=5
B=14
A=9
B=14
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classM{
intx,y;
public:
M()
{x=y=0;
)
M(inti,intj)
{x=i;
y=j;
)
voidcopy(M*m);
voidsetxy(inti,intj)
{x=i;
y刁;
)
voidprint()
{cout?x?n,n?y?endl;
)
);
voidM::copy(M*m)
{x=m->x;
y=m->y;
)
voidfun(M
{(12,15);
m2->setxy(22,25);
)
intmain()
{Mp(5,7),q;
(&p);
fun(p,&q);
0;
0;
return0;
)
5,7
22,25
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classM{
intA;
staticintB;
public:
M(inta)
{A=a;
B+=a;
cout<<"Constructing”<<endl;
)
staticvoidfl(Mm);
?M()
{cout?"Destructing\n";
)
);
voidM::fl(Mm)
{cout?"A="??endl;
cout?"B="?B?endl;
)
intM::B=0;
intmain()
{Mp(5),Q(10);
M::fl(p);
M::fl(Q);
return0;
)
Constructing
Constructing
A=5
B=15
Destructing
A=10
B=15
Destructing
Destructing
Destructing
【】指出下列程序中的錯(cuò)誤,并說明為什么。
#include<iostream>
usingnamespacestd;
classStudent{
public:
voidprintStu();
private:
charname[10];
intage;
floataver;
);
intmain()
{Studentpl,p2,p3;
=30;
return0;
}age為private不能付值
【】指出下列程序中的錯(cuò)誤,并說明為什么。
#include<iostream>
usingnamespacestd;
classStudent{
intsno;
intage;
voidprintStu();
voidsetSno(intd);
);
voidprintStu();
{cout?"\nSnois"?sno?",n;
cout?"ageisn?age?n.n?endl;
)
voidsetSno(ints)
{sno=s;
)
voidsetAge(inta)
{age=a;
)
intmain()
{Studentlin;
(20021);
(20);
0;
}!classStudent1不存在?個(gè)叫l(wèi)etAge,的方式
【】指出下列程序中的錯(cuò)誤,并說明為什么。
#include<iostream>
usingnamespacestd;
classPoint{
public:
intx,y;
private:
Piont()
{x=l;y=2;
)
);
intmain()
{Pointcpoint;
=2;
return0;
)
構(gòu)筑函數(shù)錯(cuò)誤
[]下面是一個(gè)計(jì)算器類的定義,請完成該類成員函數(shù)的實(shí)現(xiàn)。
classcounter{
public:
counter(intnumber);
voidincrement();?month?n.n?day?endl;
);
intmain()
{DatetestDay;
(5);
(10);
(2003);
0;
return0;
)
【】建立類cylinder,cylinder的構(gòu)造函數(shù)被傳遞了兩個(gè)double值,分別表示圓柱
體的半徑和高度。用類cylinder計(jì)算圓柱體的體積,并存儲(chǔ)在一個(gè)
double變量中。在類cylinder中包含一個(gè)成員函數(shù)vol,用來顯示每個(gè)
cylinder對象的體積。
#include<iostream>
usingnamespacestd;
#definePI
classCylinder
(
public:
Cylinder(double
radius,doubleheight):radius(radius),height(height),volume(PI*radius*radiu
s*height)
(
total_vol+=volume;
)
doublevol()const;
friendvoidgetParas(double&radius,double&height,double&vol,double&
total_vol,constCylinder&obj);
private:
doubleradius;et_qu()*obj[i].get_price()?endl;
)
)
[]修改習(xí)題,通過對象指針訪問對象數(shù)組,使程序以相反的順序顯示每個(gè)對
象數(shù)組元素的qu*price值。
#include<>
classbook
(
intqu,price;
public:
book(intq)
(
qu=q;price=10*q;
)
intget_qu()
{returnqu;}
intget_price()
{returnprice;}
);
voidmain()
(
bookobj[5]={1,2,3,4,5};
book*p;
p=&obj[4];
for(inti=0;i<5;i++)
cout?數(shù)組對象”<<i+l<<”的qu*price值
為:"?p->get_qu()*p->get_price()?endl;
p--;
【】構(gòu)建一個(gè)類Stock,含字符數(shù)組stockcode口及整型數(shù)據(jù)成員quan、雙精度
型數(shù)據(jù)成員price。構(gòu)造函數(shù)含3個(gè)參數(shù):字符數(shù)組na[]及q、p。當(dāng)定
義Stock的類對象時(shí),將對象的第1個(gè)字符串參數(shù)賦給數(shù)據(jù)成員
stockcode,第2和第3個(gè)參數(shù)分別賦給quan、price0未設(shè)置第2和第
3個(gè)參數(shù)時(shí),quart的值為1000,price的值為。成員函數(shù)print沒有形
參,需使用this指針,顯示對象數(shù)據(jù)成員的內(nèi)容。假設(shè)類Stock第1
個(gè)對象的三個(gè)參數(shù)分別為:“600001”,3000和,第2個(gè)對象的第1個(gè)
數(shù)據(jù)成員的值是“600001”,第2和第3個(gè)數(shù)據(jù)成員的值取默認(rèn)值。要
求編寫程序分別顯示這兩個(gè)對象數(shù)據(jù)成員的值。
#include<iostream>
fp)0);
fp=student::avg2;
printf("%g\n",(sl.*fp)());
fp=student::avg3;
printf("%g\n",(sl.*fp)());
第四章:
【】使用派中類的主要原因是(A)o
A.提高代碼的可重用性
B.提高程序的運(yùn)行效率
C.加強(qiáng)類的封裝性
D.實(shí)現(xiàn)數(shù)據(jù)的隱藏
【】假設(shè)已經(jīng)定義好了一個(gè)類student,現(xiàn)在要定義類derived,它是從student
私有派生的,定義類derived的正確寫法是(c)。
A?clasederived::studentprivate{...};
B.clasederived::studentpublic
C?clasederived::privatestudent}...};
D?clasederived::publicstudent{...};
【】在多繼承構(gòu)造函數(shù)定義中,幾個(gè)基類構(gòu)造函數(shù)用(c)分隔。
A.:B.;C.,D.::
【】設(shè)置虛基類的目的是(b)o
A.簡化程序B.消除二義性C提高運(yùn)行效率D.減少目標(biāo)代碼
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classB1{
public:
Bl(inti)
{bl=i;
cout?"ConstructorBl.u?endl;
)
voidPrint()
{cout?bl?endl;
)
private:
intbl;
);
classB2{
public:
B2(inti)
{b2=i;
cout?"ConstructorB2."?endl;
)
voidPrint()
{cout?b2?endl;
)
private:
intb2;
);
classA:publicB2,publicBl{
public:
A(inti,intj,int1);
voidPrint();
private:
inta;
);
A::A(inti,intj,intl):Bl(i),B2(j)
{a=l;
cout?"ConstructorA."?endl;
)
voidA::Print()
{Bl::Print();
B2::Print();cout?a?endl;
intmainQ
{Aaa(3,2,l);
0;
return0;
)
3
2
1
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classMain{
protected:
char*mainfood;
public:
Main(char*name)
{mainfood=name;
)
);
classSub{
protected:
char*subfdod;
public:
Sub(char*name)
{subfood=name;
)
);
classMenu:publicMain,publicSub{
public:
Menu(char*m,char*s):Main(m),Sub(s)
()
voidshow();
);
voidMenu::show()
{cout<<"主食="<<mainfood?endl;
cout<<"副食="<<subfood?endl;
)
intmain()
{Menum(nbreadn,nsteakn);
0;
return0;
)
主食二bread
副食二stea
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classA{
private:
inta;
public:
A()
{a=0;}
A(inti)
{a=i;}
voidPrint()
{cout?a?n,n;
)
);
classB:publicA{
private:
intbl,b2;
public:
B()
{bl=0;b2=0;
)
B(inti)
{bl=i;b2=0;
)
B(inti,intj,intk):A(i),bl(j),b2(k)
()
voidPrint()
{A::Print();
cout?bl?","?b2?endl;
)
);
intmain()
{Bobl,ob2(l),ob3(3,6,9);
0;
0;
0;
return0;
)
0,0,0
0,1,0
3,6,9
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classB1{
intbl;
public:
Bl(inti)
{bl=i;
cout?nconstructorBl."?i?endl;
)
voidprint()
{cout?bl?endl;
)
);
classB2{
intb2;
public:
B2(inti)
{b2=i;
cout?**constructorB2.n?i?endl;
)
voidprint()
{cout?b2?endl;
)
);
classB3{
intb3;
public:
B3(inti)
{b3=i;
cout?"constructorB3.n?i<<endl;
)
intgetb3()
{returnb3;
)
);
classA:publicB2,publicBl{
inta;B3bb;
public:
A(inti,intj,intk,int1):B1⑴,B2(j),bb(k)
{a=l;
cout?"constructorA."?l?endl;
)
voidprint()
{Bl::print();
B2::print();
cout?a?","?()?endl;
)
);
intmain()
{Aaa(l,2,3,4);
0;
return0;
)
ConstructorB2.
Constructor
Constructor
Constructor
1
2
4,3
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classA{
public:
A(inti,intj)
{x=i;
y=j;
)
intsum()
{returnx+y;
)
private:
intx,y;
);
classB:publicA{
public:
B(inti,intj,intk,int1);
intsum()
{returnw+h;
)
private:
intw,h;
);
B::B(inti,intj,intk,intl):A(i,j)
{w=k;
h=l;
)
voidf(A&s)
{cout?()?endl;
)
intmain()
{Bob(l,3,5,7);
f(ob);
return0;
)
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classA{
inta,b;
public:
A(inti,intj)
{a=i;b=j;
)
voidMove(intx,inty)
{a+=x;b+=y;
)
voidShow()
{cout?nC,?a?n;'?b?n),,?endl;
)
);
classB:privateA{
intx,y;
public:
B(inti,intj,intk,intl):A(i,j)
{x=k;y=l;
)
voidShow()
{cout?x?","<<y?endl;
)
voidfun()
{Move(3,5);
)
voidfl()
{A::Show();
)
);
intmain()
{Ae(l,2);
0;
Bd(3,4,5,6);
0;
0;
0;
return0;
)
(1,2)
5,6
(6,9)
【】寫出下面程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classbasel{
public:
base1()
{cout?"classbasel"?endl;
)
);
classbase2{
public:
base2()
{cout?"classbase2"?endl;
)
);
classlevelkpublicbase2,virtualpublicbasel{
public:
level1()
{cout?"classlevell"?endl;
)
);
classlevel2:publicbase2,virtualpublicbasel{
public:
level2()
{cout?"classlevel2"?endl;
)
);
classtoplevel:publiclevel1,virtualpubliclevel2{
public:
toplevel()
{cout?"classtoplevel"?endl;
)
);
intmain()
{toplevelobj;
return0;
)
classbasel
classbase2
classlevel2
classbase2
classlevel1
classtoplevel
【】已有類Time和Date,要求設(shè)派生類Birthtime,它繼承類Time和
Date,并且增加一個(gè)數(shù)據(jù)成員Childname用于表示小孩的名字,同時(shí)
設(shè)計(jì)主程序顯示一個(gè)小孩的出生時(shí)間和名字。
classTime{
public:
Time(inth,intm,ints)
{hours=h;
minutes=m;
seconds=s;
)
voiddisplay()
{cout<<”出生時(shí)間:"<<hours<<“時(shí)"<<minutes<<“分"<<seconds<〈”秒
n?endl;
)
protected:
inthours,minutes,seconds;
);
classDate{
public:
Date(intm,intd,inty)
{month=m;
day二d;
yearly;
)
voiddisplay()
{cout?"出生年月:"<<year<<"年'>?month?n月"?day?"日
"?endl;
)
protected:
intmonth,day,year;
);
classBirthtime:publicTime,publicDate
(
public:
Birthtime(char*Cn,intyy,intmm,intdd,inthh,intmint,int
ss):Time(hh,mint,ss),Date(mm,dd,yy)
(
strcpy(Childname,Cn);
)
voiddisplay()
(
cout<<“姓名:"<<Childname<<endl;
Date::display();
Time::display();
)
protected:charChildname[20];
)
intmain()
(
Birthtimeyx(“曉鳳”,2010,12,13,14,20,30);
0;
return0;
)
【】編寫一個(gè)學(xué)生和教師數(shù)據(jù)輸人和顯示程序,學(xué)生數(shù)據(jù)有編號(hào)、姓名、班號(hào)
和成績,教師數(shù)據(jù)有編號(hào)、姓名、職稱和部門。要求將編號(hào)、姓名輸
入和顯示設(shè)計(jì)成一個(gè)類person,并作為學(xué)生數(shù)據(jù)操作類student和教師
數(shù)據(jù)操作類teacher的基類。
#include<iostream>
#include<string>
usingnamespacestd;
classperson
private:intno;
stringname;
public:
voidinput()
(
cout?;cin?no?name;
)
voiddisplay()
(
cout?“?no?endl;cout?"?name?endl;
)
);
classstudent:publicperson
(
private:intbh,score;
public:
voidget(){input();
cout?;cin?bh?score;
)
voidshow()
{display();
cout?“班號(hào)"?bh?endl;cout?"成績"?score?endl;
)
);
classteacher:publicperson{private:stringzc,bm;public:voidget()
input();
cout?;cin?zc?bm;
)
voidshow()
(
displayO;
cout?"職稱"?zc?endl;cout?"部門"?bm?endl;
);
intmain()
(
students;
teachert;
();
();
();
();
return0;
第五章:
【】有關(guān)運(yùn)算符重載正確的描述是(D)。
A.C++語言允許在重載運(yùn)算符時(shí)改變運(yùn)算符的操作個(gè)數(shù)
B.C++語言允許在重載運(yùn)算符時(shí)改變運(yùn)算符的優(yōu)先級(jí)
C.C++語言允許在重載運(yùn)算符時(shí)改變運(yùn)算符的結(jié)合性
D.C++語言允許在重載運(yùn)算符時(shí)改變運(yùn)算符原來的功能
【】能用友元函數(shù)重載的運(yùn)算符是(A)。
A.+B.=C.[]>
[]關(guān)于虛函數(shù),正確的描述是(A)o
A.構(gòu)造函數(shù)不能是虛函數(shù)
B.析構(gòu)函數(shù)不能是虛函數(shù)
C.虛函數(shù)可以是友元函數(shù)
D.虛函數(shù)可以是靜態(tài)成員函數(shù)
【】派生類中虛函數(shù)原型的(D)。
A.函數(shù)類型可以與基類中虛函數(shù)的原型不同
B.參數(shù)個(gè)數(shù)可以與基類中虛函數(shù)的原型不同
C.參數(shù)類型可以與基類中虛函數(shù)的原型不同
D.以上都不對
【】如果在基類中將show聲明為不帶返回值的純虛函數(shù),正確的寫法是(C)。
A.virtualshow()=0;
B.virtualvoidshow();
C.virtualvoidshow()=0;
D.voidshow()=0virtual;
【】下列關(guān)于純虛函數(shù)與抽象類的描述中,錯(cuò)誤的是(C)。
A.純虛函數(shù)是一種特殊的函數(shù),它允許沒有具體的實(shí)現(xiàn)
B.抽象類是指具有純虛函數(shù)的類
C.一個(gè)基類的說明中有純虛函數(shù),該基類的派生類一定不再是抽象類
D.抽象類只能作為基類來使用,其純虛函數(shù)的實(shí)現(xiàn)由派生類給出
【】下面的程序段中虛函數(shù)被重新定義的方法正確嗎為什么
classbase{
public:
virtualintf(inta)=0;
);
classderived:publicbase{
public:
intf(inta,intb)
{returna*b;
)
};正確
【】寫出下列程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classA{
public:
A(inti):x(i)
()
A()
{x=0;
)
friendAoperator++(Aa);
friendAoperator—(A&a);
voidprint();
private:
intx;
);
Aoperator++(Aa)
{++;
returna;
)
Aoperator—(A&a)
(;
returna;
)
voidA::print()
{cout?x?endl;
)
intmain()
{Aa(7);
++a;
0;
-a;
0;
return0;
)
7
6
【】寫出下列程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classWords{
public:
Words(char*s)
{str=newchar[strlen(s)+l];
strcpy(str,s);
len=strlen(s);
)
voiddisp();
charoperator[](intn);;
0;
cout<〈”第1個(gè)字符:”;
cout?word[0]?endl;第1T
第16個(gè)字符:
第26個(gè)字符數(shù)據(jù)下標(biāo)超界
【】寫出下列程序的運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
classLength{
intmeter;
public:
Length(intm)
{m
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人短期借款法律合同范本2025
- 萬畝良田聯(lián)產(chǎn)承包合同新政策
- 個(gè)人廠房租賃合同典范
- 產(chǎn)權(quán)清楚車位買賣合同細(xì)則
- 上海市房地產(chǎn)委托代理合同范本
- 食品調(diào)料采購合同
- 個(gè)人貸款借款合同模板
- 勞動(dòng)合同管理制度7
- 個(gè)人借款合同書及還款細(xì)則
- 個(gè)人住宅購房合同條款及樣本
- 充血性心力衰竭課件
- 2025年日歷(日程安排-可直接打印)
- 《VAVE價(jià)值工程》課件
- 分享二手房中介公司的薪酬獎(jiǎng)勵(lì)制度
- 安徽省2022年中考道德與法治真題試卷(含答案)
- GB 4793-2024測量、控制和實(shí)驗(yàn)室用電氣設(shè)備安全技術(shù)規(guī)范
- 重大火災(zāi)隱患判定方法
- 挖掘機(jī)售后保養(yǎng)及維修服務(wù)協(xié)議(2024版)
- 2024年電工(高級(jí)技師)考前必刷必練題庫500題(含真題、必會(huì)題)
- 公司組織架構(gòu)與管理體系制度
- 2024-2030年中國涂碳箔行業(yè)現(xiàn)狀調(diào)查與投資策略分析研究報(bào)告
評(píng)論
0/150
提交評(píng)論