《面向?qū)ο蟪绦蛟O(shè)計(jì)》模擬試題及答案0_第1頁
《面向?qū)ο蟪绦蛟O(shè)計(jì)》模擬試題及答案0_第2頁
《面向?qū)ο蟪绦蛟O(shè)計(jì)》模擬試題及答案0_第3頁
《面向?qū)ο蟪绦蛟O(shè)計(jì)》模擬試題及答案0_第4頁
《面向?qū)ο蟪绦蛟O(shè)計(jì)》模擬試題及答案0_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第第頁《面向?qū)ο蟪绦蛟O(shè)計(jì)》模擬試題及答案0《面對(duì)對(duì)象程序設(shè)計(jì)》模擬試題及答案0

《面對(duì)對(duì)象程序設(shè)計(jì)》模擬試題及答案

一、單項(xiàng)選擇題〔每題2分,共20分〕

1.C++程序的基本功能模塊為〔〕。

A.表達(dá)式B.標(biāo)識(shí)符C.語句D.函數(shù)

2.當(dāng)處理特定問題的循環(huán)次數(shù)已知時(shí),通常采納〔〕來解決。

A.for循環(huán)B.while循環(huán)C.do循環(huán)D.switch語句

3.下面函數(shù)原型語句正確的選項(xiàng)是〔〕。

A.intFunction(voida);B.voidFunction(int);

C.intFunction(a);D.int(doublea);

4.假定變量m定義為“intm=7;”,那么定義變量p的正確語句為〔〕。

A.intp=m;B.int*p=m;C.intp=*m;D.int*p=m;

5.假定變量a和pa定義為“doublea[10],*pa=a;”,要將12.35賦值給數(shù)組a中的下標(biāo)為5的元素,不正確的語句是〔〕。

A.pa[5]=12.35;B.a[5]=12.35;

C.*(pa+5)=12.35;D.*(a[0]+5)=12.35;

6.假定AA為一個(gè)類,a為該類私有的數(shù)據(jù)成員,GetValue()為該類公有函數(shù)成員,它返回a的值,*為該類的一個(gè)對(duì)象,那么訪問*對(duì)象中數(shù)據(jù)成員a的格式為〔〕。

A.*.aB.*.a()C.*-GetValue()D.*.GetValue()

7.類的構(gòu)造函數(shù)是在定義該類的一個(gè)()時(shí)被自動(dòng)調(diào)用執(zhí)行的。

A.成員函數(shù)B.數(shù)據(jù)成員C.對(duì)象D.友元函數(shù)

8.假定AB為一個(gè)類,那么執(zhí)行“AB*;”語句時(shí)將自動(dòng)調(diào)用該類的()。

A.帶參構(gòu)造函數(shù)B.無參構(gòu)造函數(shù)C.拷貝構(gòu)造函數(shù)D.賦值重載函數(shù)

9.假定一個(gè)類AB只含有一個(gè)整型數(shù)據(jù)成員a,當(dāng)用戶不定義任何構(gòu)造函數(shù)時(shí),系統(tǒng)為該類定義的無參構(gòu)造函數(shù)為()。

A.AB(){a=0;}B.AB(intaa=0):a(aa){}

C.AB(intaa):a(aa){}D.AB(){}

10.假如表達(dá)式a++中的“++”是作為一般函數(shù)重載的運(yùn)算符,假設(shè)采納運(yùn)算符函數(shù)調(diào)用格式,那么可表示為〔〕。

A.a.operator++()B.operator++(a)

C.operator++(a,1)D.operator++(1,a)

二、填空題〔每題2分,共20分〕

1.存儲(chǔ)字符’a’和字符串”a”分別需要占用________和________個(gè)字節(jié)。

2.重載一個(gè)函數(shù)的條件是:該函數(shù)需要在參數(shù)的________或參數(shù)對(duì)應(yīng)的__________上與其它同名函數(shù)不相同。

3.假定p是一個(gè)指向整數(shù)對(duì)象的指針,那么用________表示該整數(shù)對(duì)象,用________表示指針變量p的地址。

4.元素a[i]和b[i][j]的指針訪問方式分別為__________和__________。

5.已知有定義“int*,a[]={5,7,9},*pa=a;”,在執(zhí)行“*=++*pa;”語句后,*的值是________,*(pa+1)的值為________。

6.在一個(gè)用數(shù)組實(shí)現(xiàn)的隊(duì)列類中,假定數(shù)組長度為MS,隊(duì)首元素位置為first,隊(duì)列長度為length,那么隊(duì)列為空和隊(duì)列為滿的條件分別為__________和__________。

7.對(duì)類中________和________成員的初始化只能通過在構(gòu)造函數(shù)中給出的初始化表項(xiàng)來實(shí)現(xiàn)的。

《面對(duì)對(duì)象程序設(shè)計(jì)》模擬試題及答案0

8.假定AB為一個(gè)類,該類中含有一個(gè)指向動(dòng)態(tài)數(shù)組空間的指針成員pa,那么在該類的析構(gòu)函數(shù)中應(yīng)當(dāng)包含有一條______________語句。

9.假定派生類及其基類中都定義有同名函數(shù)成員,假設(shè)要在派生類中調(diào)用基類的同名函數(shù)成員時(shí),就需要在其函數(shù)名前加上______和__________。

10.派生類的成員函數(shù)能夠徑直訪問所含基類的__________成員函數(shù)和___________成員函數(shù)。

三、程序填充題,對(duì)程序、函數(shù)或類中劃有橫線的位置,依據(jù)題意按標(biāo)號(hào)把合適的內(nèi)容填寫到程序后面的標(biāo)號(hào)處。〔每題5分,共20分〕

1.統(tǒng)計(jì)字符串中英文字母個(gè)數(shù)的程序。

#includeiostream.h

intcount(charstr[]);

voidmain(){

chars1[80];

cout”Enteraline:”;

cins1;

cout”count=”count(s1)endl;

}

intcount(charstr[]){

intnum=0;//給統(tǒng)計(jì)變量賦初值

for(inti=0;str[i];i++)

if(str[i]=’a’str[i]=’z’||___(1)___)___(2)___;___(3)___;

}

(1)(2)(3)

2.對(duì)數(shù)組a[n]中的n個(gè)元素按升序進(jìn)行的選擇排序算法。

voidSelectSort(inta[],___(1)___)

{

inti,j,k;

for(i=1;in;i++){//進(jìn)行n-1次選擇和交換

k=i-1;

for(j=i;jn;j++)

if(a[j]a[k])___(2)___;

int*=a[i-1];a[i-1]=a[k];___(3)___;

}

}

(1)(2)(3)

3.下面是一維數(shù)組類ARRAY的定義,ARRAY與一般一維數(shù)組的區(qū)分是:(a)用()而不是

[]進(jìn)行下標(biāo)訪問,(b)下標(biāo)從1而不是從0開始,(c)要對(duì)下標(biāo)是否越界進(jìn)行檢查。classARRAY{

int*v;//指向存放數(shù)組數(shù)據(jù)的空間

ints;//數(shù)組大小

public:

ARRAY(inta[],intn);

~ARRAY(){delete[]v;}

《面對(duì)對(duì)象程序設(shè)計(jì)》模擬試題及答案0

intsize(){returns;}

intoperator()(intn);

};

___(1)___operator()(intn)//()的運(yùn)算符成員函數(shù)定義

{

if(___(2)___){cerr下標(biāo)越界!;e*it(1);}

return___(3)___;

}

(1)(2)(3)

4.一種類定義如下:

classGoods

{

private:

chargd_name[20];//商品名稱

intweight;//商品重量

staticinttotalweight;//同類商品總重量

public:

Goods(char*str,intw){//構(gòu)造函數(shù)

strcpy(gd_name,str);

weight=w;

totalweight+=weight;

}

~Goods(){totalweight-=weight;}

char*GetN(){___(1)___;}//返回商品名稱

intGetW(){returnweight;}

___(2)___GetTotal_Weight(){//定義靜態(tài)成員函數(shù)返回總重量___(3)___;

}

}

(1)(2)(3)

四、理解問答題,寫出前三小題的程序運(yùn)行結(jié)果和指出后兩小題的程序〔或函數(shù)〕所能實(shí)現(xiàn)的功能?!裁款}6分,共30分〕

1.#includeiomanip.h

constintN=3;

voidmain()

{

inta[N][N]={{7,-5,3},{2,8,-6},{1,-4,-2}};

intb[N][N]={{3,6,-9},{2,-8,3},{5,-2,-7}};

inti,j,c[N][N];

for(i=0;iN;i++)//計(jì)算矩陣C

for(j=0;jN;j++)

c[i][j]=a[i][j]+b[i][j];

for(i=0;iN;i++){//輸出矩陣C

for(j=0;jN;j++)

《面對(duì)對(duì)象程序設(shè)計(jì)》模擬試題及答案0

coutsetw(5)c[i][j];

coutendl;

}

}

運(yùn)行結(jié)果:

2.#includeiostream.h

#includestring.h

classA{

char*a;

public:

A(char*s){

a=newchar[strlen(s)+1];

strcpy(a,s);

coutaendl;

}

~A(){delete[]a;}

};

voidmain(){

A*(*u*iaokai);

A*y=newA(weirong);

deletey;

}

運(yùn)行結(jié)果:

3.#includeiostream.h

classA{

inta,b;

public:

A(){a=b=0;}

A(intaa,intbb){a=aa;b=bb;}

intSum(){returna+b;}

int*Mult(){

int*p=newint(a*b);

returnp;

}

};

voidmain(){

A*(2,3),*p;

p=newA(4,5);

cout*.Sum()’’*(*.Mult())endl;

coutp-Sum()’’*(p-Mult())endl;

}

運(yùn)行結(jié)果:

4.voidfun5(char*a,constchar*b)

{

《面對(duì)對(duì)象程序設(shè)計(jì)》模擬試題及答案0

while(*b)*a++=*b++;

*a=0;

}

函數(shù)功能:

5.templateclassT

boolfun8(Ta[],intn,Tkey)

{

for(inti=0;in;i++)

if(a[i]==key)returntrue;

returnfalse;

}

函數(shù)功能:

五、編程題〔每題5分,共10分〕

1.根據(jù)下面函數(shù)原型語句編寫一個(gè)遞歸函數(shù)求出并返回?cái)?shù)組a中n個(gè)元素的平方和。intf(inta[],intn);

2.依據(jù)下面類中拷貝構(gòu)造函數(shù)的原型寫出它的類外定義。

classArray{

int*a;//指向動(dòng)態(tài)安排的整型數(shù)組空間

intn;//記錄數(shù)組長度

public:

Array(intaa[],intnn);//構(gòu)造函數(shù),利用aa數(shù)組長度nn初始化n,//利用aa數(shù)組初始化a所指向的數(shù)組空間Array(Arrayaa);//拷貝構(gòu)造函數(shù)

ArrayGive(Arrayaa);//實(shí)現(xiàn)aa賦值給*this的功能并返回*thisArrayUion(Arrayaa);//實(shí)現(xiàn)*this和aa中的數(shù)組合并的

//功能,把合并結(jié)果存入臨時(shí)對(duì)象并返回intLenth(){returnn;}//返回?cái)?shù)組長度

voidPrint(){//輸出數(shù)組

for(inti=0;in;i++)

couta[i]’’;

coutendl;

}

};

答案供參考

一、單項(xiàng)選擇題〔每題2分,共20分〕

1.D2.A3.B4.B5.D

6.D7.C8.B9.D10.C

二、填空題〔每題2分,共20分〕

評(píng)分標(biāo)準(zhǔn):每題假設(shè)有兩個(gè)空,那么每空1分;假設(shè)只有一個(gè)空,那么每空2分。

1.122.個(gè)數(shù)(或數(shù)目)類型

3.*pp4.*(a+i)*(*(b+i)+j)

5.676.length==0length==MS

《面對(duì)對(duì)象程序設(shè)計(jì)》模擬試題及答案0

7.對(duì)象基類常量引用〔四取二即可〕8.delete[]pa;

9.基類名類區(qū)分符10.公有愛護(hù)

三、程序填充題,對(duì)程序、函數(shù)或類中劃有橫線的位置,依據(jù)題意按標(biāo)號(hào)把合適的內(nèi)容填寫到程序后面的標(biāo)號(hào)處?!裁款}5分,共20分〕

評(píng)分標(biāo)準(zhǔn):對(duì)一空給2分,對(duì)兩空給4分,對(duì)三空給5分。

1.(1)str[i]=’A’str[i]=’Z’

(2)num++

(3)returnnum

2.(1)intn

(2)k=j

(3)a[k]=*

3.(1)intARRAY::

(2)n1||ns

(3)v[n-1]

4.(1)returngd_name

(2)staticint

(3)returntotalweight

四、理解問答題,寫出前三小題的程序運(yùn)行結(jié)果和指出后兩小題的程序〔或函數(shù)〕所能實(shí)現(xiàn)的功能。〔每題6分,共30分〕

1.101-6//2分

40-3//2分

6-6-9//2分

2.*u*iaokai//3分

weirong//3分

3.56//3分

920//3分

4.實(shí)現(xiàn)字符串系統(tǒng)函數(shù)strcpy的功能,把b所指的字符串拷貝到a所指的字符數(shù)組空間中。

5.函數(shù)模板,從一維數(shù)組a[n]中查找值為key的元素,假設(shè)查找勝利那么返回真否那么返回假。

第4、5小題評(píng)分標(biāo)準(zhǔn):按表達(dá)完整程度酌情給分。

五、編程題〔每題5分,共10分〕

評(píng)分標(biāo)準(zhǔn):按編程完整程度酌情給分。

1.intf(inta[],intn)

{

if(n==0)return0;

elsereturna[n-1]*a[n-1]+f(a,n-1);

}

2.Array::Array(Arrayaa){

n=aa.n;

a=newint[n];

for(inti=0;in;i++)a[i]=aa.a[i];

}

《面對(duì)對(duì)象程序設(shè)計(jì)》模擬試題及答案0

《面對(duì)對(duì)象程序設(shè)計(jì)》模擬試題及答案

一、單項(xiàng)選擇題〔每題2分,共20分〕

1.C++程序的基本功能模塊為〔〕。

A.表達(dá)式B.標(biāo)識(shí)符C.語句D.函數(shù)

2.當(dāng)處理特定問題的循環(huán)次數(shù)已知時(shí),通常采納〔〕來解決。

A.for循環(huán)B.while循環(huán)C.do循環(huán)D.switch語句

3.下面函數(shù)原型語句正確的選項(xiàng)是〔〕。

A.intFunction(voida);B.voidFunction(int);

C.intFunction(a);D.int(doublea);

4.假定變量m定義為“intm=7;”,那么定義變量p的正確語句為〔〕。

A.intp=m;B.int*p=m;C.intp=*m;D.int*p=m;

5.假定變量a和pa定義為“doublea[10],*pa=a;”,要將12.35賦值給數(shù)組a中的下標(biāo)為5的元素,不正確的語句是〔〕。

A.pa[5]=12.35;B.a[5]=12.35;

C.*(pa+5)=12.35;D.*(a[0]+5)=12.35;

6.假定AA為一個(gè)類,a為該類私有的數(shù)據(jù)成員,GetValue()為該類公有函數(shù)成員,它返回a的值,*為該類的一個(gè)對(duì)象,那么訪問*對(duì)象中數(shù)據(jù)成員a的格式為〔〕。

A.*.aB.*.a()C.*-GetValue()D.*.GetValue()

7.類的構(gòu)造函數(shù)是在定義該類的一個(gè)()時(shí)被自動(dòng)調(diào)用執(zhí)行的。

A.成員函數(shù)B.數(shù)據(jù)成員C.對(duì)象D.友元函數(shù)

8.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論