大學(xué)計(jì)算機(jī)應(yīng)用基礎(chǔ)(面向?qū)ο蟛糠?復(fù)習(xí)題_第1頁(yè)
大學(xué)計(jì)算機(jī)應(yīng)用基礎(chǔ)(面向?qū)ο蟛糠?復(fù)習(xí)題_第2頁(yè)
大學(xué)計(jì)算機(jī)應(yīng)用基礎(chǔ)(面向?qū)ο蟛糠?復(fù)習(xí)題_第3頁(yè)
大學(xué)計(jì)算機(jī)應(yīng)用基礎(chǔ)(面向?qū)ο蟛糠?復(fù)習(xí)題_第4頁(yè)
大學(xué)計(jì)算機(jī)應(yīng)用基礎(chǔ)(面向?qū)ο蟛糠?復(fù)習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

大學(xué)計(jì)算機(jī)應(yīng)用根底〔面向?qū)ο缶植俊硰?fù)習(xí)題

一、選擇題

4.關(guān)于成員函數(shù),以下表達(dá)中不正確的選項(xiàng)是一A0

A.成員函數(shù)一定是內(nèi)聯(lián)函數(shù)B.成員函數(shù)可以重載

C.成員函數(shù)的參數(shù)可以設(shè)置默認(rèn)值D.成員函數(shù)可以是另一個(gè)類(lèi)的友元函

數(shù)

5.以下關(guān)于析構(gòu)函數(shù)說(shuō)法正確的選項(xiàng)是_Do

A.析構(gòu)函數(shù)可以有參數(shù)。B.析構(gòu)函數(shù)可以重載。

C.析構(gòu)函數(shù)一定被繼承。D.析構(gòu)函數(shù)無(wú)返回值。

6.以下對(duì)友元的描述中,正確的選項(xiàng)是_D—。

A.友元可以在類(lèi)外聲明和定義B.友元降低了程序的運(yùn)行效率

C.友元不能訪問(wèn)類(lèi)中的保護(hù)成員D.友元破壞了類(lèi)的封裝性

7.下面對(duì)靜態(tài)成員的描述中,錯(cuò)誤的選項(xiàng)是_C_。

A.靜態(tài)成員的提出是為了解決數(shù)據(jù)共享問(wèn)題

B.靜態(tài)數(shù)據(jù)成員的初始化在類(lèi)體外進(jìn)行

C.類(lèi)的不同對(duì)象有不同的靜態(tài)數(shù)據(jù)成員值

D.靜態(tài)成員函數(shù)可以直接訪問(wèn)類(lèi)中的靜態(tài)數(shù)據(jù)成員

8.以下對(duì)常量的定義中,錯(cuò)誤的選項(xiàng)是C。

A.intconstsize=10;B.char*constp="GoodLuck";

C.voidconstprint();D.constMyClassobj(10,10);

9.假設(shè)有如下函數(shù)聲明:voidFun(intx);,那么以下_B—能與該函數(shù)進(jìn)行重載。

A.voidFun(inty);B.voidFun(intx,inty='l');

C.intFun(intx);D.voidFun(int)const;

10.為了提高程序的運(yùn)行速度,可將不太復(fù)雜的功能用函數(shù)實(shí)現(xiàn),此函數(shù)應(yīng)選擇

_A_o

A.內(nèi)聯(lián)函數(shù)B.重載函數(shù)C.遞歸函數(shù)D.函數(shù)模板

11.派生類(lèi)的對(duì)象對(duì)它的基類(lèi)成員中什么是可訪問(wèn)的(A,C)。

A.公有繼承的公有成員B.公有繼承的私有成員

C.公有繼承的保護(hù)成員D.私有繼承的公有成員

12、—D_不是構(gòu)造函數(shù)的特征。

A.構(gòu)造函數(shù)的函數(shù)名與本類(lèi)類(lèi)名相同B.構(gòu)造函數(shù)可以重載

C.構(gòu)造函數(shù)可以設(shè)置缺省形參值D.構(gòu)造函數(shù)必須指明返回類(lèi)型

13、以下函數(shù)中,_A不是類(lèi)的成員函數(shù)。

A.友元函數(shù)B.拷貝構(gòu)造函數(shù)C.析構(gòu)函數(shù)D,構(gòu)造函數(shù)

14、假設(shè)有如下函數(shù)聲明:voidFun(intx);,那么以下一B―能與該函數(shù)進(jìn)行重載。

A.voidFun(inty);B.voidFun(intx,inty='l');

C.intFun(intx);D.voidFun(int)const;

15、假設(shè)派生類(lèi)的繼承方式為私有,那么派生類(lèi)自有的成員函數(shù)不能對(duì)基類(lèi)的

_B_______直接訪問(wèn)。

A.公有成員B、私有成員C、保護(hù)成員D、全部成員;

16、以下對(duì)常量的定義中,錯(cuò)誤的選項(xiàng)是_C_o

A.intconstsize=10;B.char*constp=nGoodLuck";

C.voidconstprint();D.constMyClassobj(10,10);

17、設(shè)置虛基類(lèi)的目的是_B。

A.簡(jiǎn)化程序B.消除二義性

C.實(shí)現(xiàn)多態(tài)D.減少目標(biāo)代碼

18、類(lèi)A,并staticinta為其公有成員,下面初始化方法正確的選項(xiàng)是_D=

A.inta=0;B.a=0;

C.A(…):a(0);D.intA::a=0;

19、以下運(yùn)算符中,不能重載的運(yùn)算符是A。

A.::B.[]C.&&D.?

20、在建立派生類(lèi)對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行方式為:C

A.先執(zhí)行派生類(lèi)構(gòu)造函數(shù)后執(zhí)行基類(lèi)構(gòu)造函數(shù)

B.只執(zhí)行派生類(lèi)構(gòu)造函數(shù)

C.先執(zhí)行基類(lèi)構(gòu)造函數(shù)后執(zhí)行派生類(lèi)構(gòu)造函數(shù)

D,僅執(zhí)行基類(lèi)構(gòu)造函數(shù)

21、為了提高程序的運(yùn)行速度,可將不太復(fù)雜的功能用__A—函數(shù)實(shí)現(xiàn)。

A.內(nèi)聯(lián)函數(shù)B.重載函數(shù)C.遞歸函數(shù)D.函數(shù)模板

22、派生類(lèi)中,重新定義基類(lèi)的虛函數(shù)時(shí),虛函數(shù)的_口必須保持一致。

A.參數(shù)個(gè)數(shù)B.參數(shù)類(lèi)型

C.返回值D.參數(shù)個(gè)數(shù)、參數(shù)類(lèi)型和返回值

23.當(dāng)派生類(lèi)中有和基類(lèi)一樣名字的成員時(shí),一般來(lái)說(shuō)-B—。

A.將產(chǎn)生二義性B.派生類(lèi)的同名成員將覆蓋基類(lèi)的成員

C.是不能允許的D.基類(lèi)的同名成員將覆蓋派生類(lèi)的成員

24.如果是類(lèi)B在類(lèi)A的根底上構(gòu)造,那么稱_B—。

A.類(lèi)A為基類(lèi)或派生類(lèi),類(lèi)B為子類(lèi)或父類(lèi)B.類(lèi)A為基類(lèi)、父類(lèi),類(lèi)B為

派生類(lèi)或子類(lèi)

C.類(lèi)A為派生類(lèi),類(lèi)B為基類(lèi)D.類(lèi)A為派生類(lèi)或子類(lèi),類(lèi)B為基類(lèi)、父類(lèi)

25.多繼承派生類(lèi)構(gòu)造函數(shù)構(gòu)造對(duì)象時(shí),_C_最先被調(diào)用。

A.虛函數(shù)的構(gòu)造函數(shù)B.派生類(lèi)自己的構(gòu)造函數(shù)

C.非虛基類(lèi)的構(gòu)造函數(shù)D.派生類(lèi)中子對(duì)象類(lèi)的構(gòu)造函數(shù)

二、程序填空

1、把一串字符中的小寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)的大寫(xiě)字母。

#include<stdio.h>

charfun(charc)

(

if(c>=,a,&&c<=,z,)

—c=c+32;

returnc;

}

main()

(

charc;

c=getchar();

while(c!='\n!)

(

c=_fun(c);

putchar(c);

c=_getchar(c);

)

)

2、友元應(yīng)用

#include"iostream.h"

classstudent

(

public:

intNo;

char*Name;

student();

?student。;

friendvoidf_age(intag,student&p);

private:

intage;

);

student::student(intn,char*str)

(

No二n;

Name=str;

age=18;

)

student::?student()

cout<v"學(xué)號(hào)"v<No<Vendl;

cout<<"姓名n?Name?endl;

coutvv"年齡“vvagevVendl;

)

voidJage(intag,student&p)

(

P-age=ag;

coutvv"友元年齡"vvp.age?endl;

}

voidmain()

(

studentwang(5074401,nwangn);

Lage(30,wang);

)

3、輸出一個(gè)點(diǎn)

#includeniostream.hn

classpoint

(

public:

point(intx,inty);

?point。

(

cout?X?n,n?Y?endl;

)

private:

intX;

intY;

);

point::point(intx,inty)

(

X=x;

Y二y;

)

voidmain()

{pointpl(10,10);}

4、求出圓的面積:

#include<iostream.h>

classPoint

public:

Point(doublem,doublen);

virtualvoidArea();

private:

doublex,y;

);

Point::Point(doublem,doublen)

{x=m,y=n}

voidPoint::Area()

{cout?"Theareais0H?endl;}

classCircle:publicPoint

(

public:

Circle();

voidArea();

private:

doubler;

);

Circle::Circle(doublem,doublen,doublei):Point(m,n)

{r=i;}

voidCircle::Area()

(

doublea=—3.14*r*r;

cout?"Theareaofthecircleis:"?a?endl;

)

voidmain()

(

Point*pt;

Circlec(l,2,3);

_pt=&c_____________;

pt->Area();

}

5、以下程序執(zhí)行后的輸出結(jié)果是80口0081口23~口~8~口~8,請(qǐng)將以下程

序補(bǔ)充完整。

classBase{

public:

Base(inti=0){x=i;cout?,B'?x<<'';}

~Base(){cout?',-B,,?x?,}

private:

intx;

);

classDerived:publicBase{

inty,z;

public:

—Derived(inti,inta=O,intb=O):Base(i){y=a;z=b;cout?/,D〃?

y?z?'';}//Constructor

_-Derived(){cout?,/?D"<<”;}//

Destructor

);

voidmain(){

Derivedobj1;

Derivedobj2(1,2,3);

)

5、函數(shù)重載

#include<iostream.h>

intf_add(_inti,intj)

{returni+j;}

doubleCadd(_doublei,doublej)

{returni+j;}

intCadd(inti,intj,intk)

{returni+fLadd(—intj,intk);}

voidmain()

(

inta=l,b=2,c=3;

doublex=3.5,y=4.5;

inte,f;

doublez;

e=Cadd(a,b);

f=f_add(a,b,c);

z=Ladd(x,y);

cout?a?n+',?b?,,=,,?e?endl;

cout?a?',+',?b?',+',?c?'-"?f?endl;

cout?x?n+n?y?n=n?z?endl;

)

三、寫(xiě)出以下程序的運(yùn)行結(jié)果

1.閱讀程序,輸入如下數(shù)據(jù):10052,寫(xiě)出運(yùn)行結(jié)果。

#include"stdio.h"

mainQ

(

longm,p,q,t;

p=q=0;

scanf("%ld",&m);

do

(

t=m%10;

if(t==O)p++;

else

if(q<=t)q=t;

m/=10;

}while(m);

printf(nCount=%ld,Max=%ld\nn,p,q);

)

2、閱讀程序,寫(xiě)出運(yùn)行結(jié)果

#include"iostream.h"

classtest

(

private:

intnum;

floatfl;

public:

test();

intgetint(){returnnum;}

floatgetfloat(){returnfl;}

~test();

);

test::test()

(

cout?"Initalizingdefault"?endl;

num=l;fl=1.2;

)

test::~test()

{cout?nDesdtructorisactiveH?endl;}

voidmain()

testarray[2];

cout?array[l].getint()?”"?array[l].getfloat()?endl;

)

3、閱讀程序,寫(xiě)出運(yùn)行結(jié)果。

#include<iostream.h>

classA

(

public:

A(){cout<<”調(diào)用的無(wú)參構(gòu)造函數(shù)”<<endl;}

A(intx)

{al=x;coutv<”調(diào)用的有參構(gòu)造函數(shù)”<<endl;}

A(A&p)

{al=p.al;coutvv”調(diào)用的復(fù)制構(gòu)造函數(shù)”《endl;}

voidadd(Aq)

(

Atemp;

temp.al=al+q.al;

cout<<"結(jié)果為:"?temp.al?endl;

)

private:

intal;

);

main()

(

AA1(1),A2(2);

Al.add(A2);

)

4、分析以下程序的運(yùn)行結(jié)果

#include<iostream.h>

classadd

(

public:

virtualvoidsm()=0;

virtualvoiddisp(){}

);

classaddkpublicadd

private:

int

public:

add1(inta,intb):ml(a),nl(b){}

voidsm(){ml+=—nl;nl—;}

voiddisp()

{cout?Hml=M?ml?nn?nnl="?nl?endl;}

);

voidmain()

(

addla(4,6);

add*p=&a;

p->sm();p->disp();

)

5、閱讀程序,寫(xiě)出運(yùn)行結(jié)果

#include<iostream.h>

classA

(

public:

A(inti){a=i;cout?"ConstructorA.n?endl;}

-A(){cout?nDestructorA.H?endl;}

voidPrint(){cout?a?endl;}

private:

inta;

);

classB:publicA

(

public:

B(inti,intj):A(i){b=j;cout?nConstructorB,n?endl;}

-B(){cout?nDestructorB.M?endl;}

voidPrint(){A::Print();cout?b?endl;}

private:

intb;

);

classC:publicB

(

public:

C(inti,intj,intk):B(i,j),c(k)

{cout?nConstructorC.n?endl;}

-C(){cout?nDestructorC.n?endl;}

voidPrint(){A::Print();B::Print();cout?c?endl;}

private:

intc;

);

voidmain()

(

Ccl(l,2,3);

cl.Print();

)

6、分析以下程序,寫(xiě)出運(yùn)行結(jié)果

#include<iostream.h>

classTest{

public:

Test(doublem,doublen,doubled):p(d){x=m;y=n;}

voidShow();

voidShow()const;

private:

doublex,y;

constdoublep;

);

voidTest::Show(){

cout<<x?",H?y?endl;

cout?np=H?p?endl;

)

voidTest::Show()const{

cout?x?","?y?Hconstu?endl;

cout?,,p=',?p?nconstn?endl;

)

voidmain(){

Testa(8.9,2.5,3.1416);

a.Show();

constTestb(2.5,8.9,3.14);

b.Show();

)

7、分析以下程序,寫(xiě)出運(yùn)行結(jié)果

#include<iostream.h>

classSample

intx,y;

public:

Sample(){x=y=O;}

Sample(inta,intb){x=a;y=b;}

?Sample。

(

if(x==y)

cout?"x=yn?endl;

else

cout?nx!=yn?endl;

}

voiddisp()

(

cout?"x="?x?",y="?y?endl;

)

);

voidmain()

(

Samplesl,s2(2,3);

sl.dispO;

s2.disp();

)

8、分析以下程序,寫(xiě)出運(yùn)行結(jié)果

#include<iostream.h>

classPoint

(

public:

Point(doublem,doublen);

virtualvoidArea();

private:

doublex,y;

);

Point::Point(doublem,doublen)

{x=m;

y=n;

)

voidPoint::Area()

{cout?/,Theareais0,,?endl;}

classCircle:publicPoint

public:

Circle(doublem,doublen,doublei);〃聲明構(gòu)造函數(shù)

voidArea();

private:

doubler;

);

Circle::Circle(doublem,doublen,doublei):Point(m,n)

{r=i;}

voidCircle::Area()

{doublea=3.14*r*r;

cout?/,Theareaofthecircleis:"?a?endl;

)

voidmain()

{Point*pt;

Circlec(4,5,6);

pt=&c;

pt->Area();

)

四、編寫(xiě)程序

1、數(shù)列:1------1-----------1----------1—編一程序,求其前十項(xiàng)的和?!伯?huà)出N~S

357911

流程圖)

#include<iostream>

usingnamespacestd;

intmain()

(

doublesum,m,n;

inti;

sum=l;

m=l;

n=l;

for(i=l;i<=9;i++)

(

n=n+2;

if(i%2!=0)

m=-(l/n);

elsem=l/n;

sum+=m;

)

cout<<”前十項(xiàng)的和為:"?sum?endl;

return0;

)

2、編寫(xiě)一函數(shù)計(jì)算n!,調(diào)用該函數(shù)計(jì)算sinx的近似值,要求誤差小于KT4,

其中:

#include<iostream>

#include<math.h>

usingnamespacestd;

intjiecheng(intn)

{

intsum=l,i;

for(i=l;i<=n;i++)

(

sum=sum*i;

)

returnsum;

)

doublemain()

{

doublesinx=0,x;

intn,i;

cout<v”請(qǐng)輸入X:";

cin?x;

cout?”請(qǐng)輸入n:

cin?n;

for(i=l;i<=n;i++)

(

sinx=pow((-1),(i-1))*pow(x,(2i-1))/jiecheng(2i-1);

)

cout?',sinx=n;

printf(H%10.4\nH,sinx);

return0;

}

3、定義一復(fù)數(shù)類(lèi),利用運(yùn)算符重載完成復(fù)數(shù)相加。主函數(shù)及運(yùn)行結(jié)果如下:

(注意:實(shí)部為real;虛部為imag,為私有數(shù)據(jù)成員)

#include<iostream.h>

classComplex

{public:

Complex()

(

real=O;

Image=0;

)

Complex(doubler,doublei):real(r),imag(i){}

Complexoperator+(Complexb&c2);

(

return(real+c2.real,imag+c2.imag)

)

Voidput()

(

cout?,"("<<real<<〃:?imag?,/i)〃?endl;

)

private:

doubleraeal;

doubleimage;

);

voidmain()

{Complexcl(l,2),c2(3,4),c3;

c3=cl+c2;

c3.put();

)

4、編寫(xiě)一函數(shù)把字串中與某字符相同的字符刪除,主函數(shù)如下:

#include<iostream.h>

#include<stdio.h>

main()

{

char*str=newchar[];

charc;

gets(str);

cin?c;

fun(str,c);

puts(str);

)

voidfun(str,c)

while(str[]!=,\O,)

(

if(strcmp(str[],c)==0)

deletestr[];

)

)

5、三角形的三遍,在該三角形的根底上拉伸出高為H的三棱柱,編寫(xiě)三棱柱

派生類(lèi),求三棱柱的體積。

三角形類(lèi)描述如下:

classTriangle

(

public:

Triangle(floatx,floaty,floatz){a=x;b=y;c=z;}

voidArea()

(

floatt;

t=(a+b+c)/2;

area=sqrt(t*(t-a)*(t-b)*(t-c));

}

floatGet_area(){returnarea;}

voidShow(){cout<<”三角形的面積為:H?area?endl;}

private:

floata,b,c;

floatarea;

};

classColumn:publicTriangle

(

)

主函數(shù)如下:

main()

(

TriangleTl(3,4,5);

Tl.Area();Tl.Show();

ColumnCl(3,4,5,10);

Cl.Volume();Cl.Show();

)

答案:

#include<iostream>

#include<math.h>

usingnamespacestd;

classTriangle

(

public:

Triangle(floatx,floaty,floatz)

(

a=x;b=y;c=z;

)

vo

溫馨提示

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

評(píng)論

0/150

提交評(píng)論