c++等級考試復(fù)習(xí)題_第1頁
c++等級考試復(fù)習(xí)題_第2頁
c++等級考試復(fù)習(xí)題_第3頁
c++等級考試復(fù)習(xí)題_第4頁
c++等級考試復(fù)習(xí)題_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C++等級考試復(fù)習(xí)

一、選擇題

1.(2001年秋)設(shè)有說明:intx=10,y=4,f;floatm;執(zhí)行表達式f=m=x/y后,那么f、m的值分別為。

A.2,2.5B.3,2.5C.2.5,2.5D,2,2.0

2.(2003秋)設(shè)有說明語句:chars[]="f\0\123\\\n89";sizeof(s)的值是。

A.2B.9C.11D.15

3.(2002年春)實型變量x的取值范圍為閉區(qū)間[?2,10]或開區(qū)間(15,34),那么正確表示x取值

范圍的邏輯表達式是。

A.-2<=x<=10||15<x<40B.(-2<=x&&x<=10)||(15<x&&x<34)

C.-2<=x<=10&&15<x<40D.(-2<=x&&x<=10)&&(15<x&&x<34)

4.(2003秋)設(shè)x為整數(shù),C++中能正確地表達數(shù)學(xué)式OWxv5的是。

A.0<=x<15B.x=O||x=l||x=2||x=3||x=4

C.x>=0||x<5D.!(x<0||x>=5)

5.(2009年春)以下關(guān)于break語?的描述中,不正確的選項是。

A.break語句可用在循環(huán)語句中,其作用是完畢本層循環(huán)的執(zhí)行

B.break語句可用switch語句中,其作用是完畢該switch語句的執(zhí)行

C.break語句可用if語句中,其作用是完畢該if語句的執(zhí)行

D.break語句在同一循環(huán)體中可以屢次使用

6.(2011秋)C++的break語句。

A.用在能出現(xiàn)語句的任意位置B.只能用在循環(huán)體內(nèi)

C.只能用在循環(huán)體內(nèi)或switch語句中D.能用在任一復(fù)合語句中

7.(2003秋)以下四組函數(shù)原型說明中,滿足C++函數(shù)重載規(guī)那么的是。

A.floatf(floatx);voidf(floaty);

B.floatf(floatx);voidf2(floatx,floaty);

C.floatf(floatx,inty);voidf(floaty);

D.floatf(floaty);floatf(floaty);

8.(2005秋)函數(shù)重載是指。

A.函數(shù)名一樣,但函數(shù)的參數(shù)個數(shù)不同或參數(shù)的類型不同

B.函數(shù)名一樣,但函數(shù)的參數(shù)個數(shù)不同或函數(shù)的返回值的類型不同

C.函數(shù)名不同,但函數(shù)的參數(shù)個數(shù)和參數(shù)的類型一樣

D.函數(shù)名一樣,但函數(shù)的參數(shù)類型不同或函數(shù)的返回值的類型不同

9.(2011春)下述關(guān)于函數(shù)重載的描述中,不正確的選項是。

A.兩個或兩個以上的函數(shù)取一樣的函數(shù)名,但形參的個數(shù)不同

B.兩個或兩個以上的函數(shù)取一樣的函數(shù)名,各函數(shù)的返回值的類型必須不同

C.兩個或兩個以上的函數(shù)取一樣的函數(shù)名,形參的個數(shù)一樣但類型不同

D.兩個或兩個以上的函數(shù)取一樣的函數(shù)名,形參的個數(shù)不同或類型不同

10.(2012春)C++中,函數(shù)重載是指兩個或兩個以上的函數(shù),其函數(shù)名。

A.不同,但形參的個數(shù)或類型一樣B.一樣,但返回值類型不同

C.一樣,但形參的個數(shù)或類型不同D.一樣,形參的個數(shù)一樣,但其類型不同

11.(2002秋)以下關(guān)于類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的表達中,不正確的選項是。

A.類的析構(gòu)函數(shù)可以重載B.類的構(gòu)造函數(shù)可以重載

C.定義一個類時可以不顯式定義構(gòu)造函數(shù)

D.定義一個類可以不顯式定義析構(gòu)函數(shù)

12.(2003春)以下有關(guān)對象的表達中,不正確的選項是。

A.產(chǎn)生對象時必定要調(diào)用構(gòu)造函數(shù)B.撤消對象時必定要調(diào)用析構(gòu)函數(shù)

C.對象被保護,其私有成員不能任意訪問D.對象可以沒有構(gòu)造函數(shù)或析構(gòu)函數(shù)

13.(2011春)以下有關(guān)this指針的表達中,不正確的選項是。

A.當調(diào)用對象的非靜態(tài)成員時,總存在一個this指針

B.非靜態(tài)成員函數(shù)調(diào)用類中的成員時,可直接使用this指針

C.this指針隱含地指向要用到的當前對象

D.靜態(tài)成員函數(shù)也存在this指針

14.(2010春)類的成員函數(shù)中,沒有this指針的是。

A.構(gòu)造函數(shù)B.析構(gòu)函數(shù)C,虛函數(shù)D.靜態(tài)成員函數(shù)

15.(2003秋)下面有關(guān)運算符重載的表達中,正確的選項是。

A.非靜態(tài)成員函數(shù)重載運算符時帶有this指針

B.友元函數(shù)重載運算符時帶有this指針

C.成員函數(shù)與友元函數(shù)重載運算符時都不帶有this指針

D.用成員函數(shù)或友元函數(shù)重載同一運算符時,兩者的參數(shù)類型與參數(shù)個數(shù)一樣

16.(2004春)以下有關(guān)析構(gòu)函數(shù)的表達中,正確表達的是。

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

C.析構(gòu)函數(shù)可以定義為虛函數(shù)D.必須顯式地自定義析構(gòu)函數(shù)

17.(2004春)下面有關(guān)基類與其派生類的的表達中,正確的選項是。

A.派生類對象不能賦給基類對象B.派生類對象的地址不能賦給其基類的指針變量

C.基類對象不能賦給派生類對象D.基類對象的地址能賦給其派生類的指針變量

18.(2006秋)以下關(guān)于賦值兼容規(guī)那么的表達中,不正確的選項是。

A.派生類的對象可以賦值給基類的對象

B.基類的對象可以賦值給派生類的對象

C.派生類的對象可以初始化其基類的引用

D.可以將派生類對象的地址賦值給其基類的指針變量

19.(2011秋)在C++中,沒有this指針的函數(shù)是。

A.靜態(tài)成員函數(shù)B.構(gòu)造函數(shù)C.析構(gòu)函數(shù)D.非靜態(tài)的內(nèi)聯(lián)成員函數(shù)

20.(2011秋)以下關(guān)于C++類的表達中,不正確的選項是。

A.類可以動態(tài)地描述和動態(tài)地產(chǎn)生B.虛基類可以解決多重繼承中的二義性

C.類是具有一樣行為的假設(shè)干對象的統(tǒng)一抽象D.類是創(chuàng)立對象的一個模板

二、填空題

1.(2006秋)當一個類的非靜態(tài)成員函數(shù)被調(diào)用時,該成員函數(shù)的指向調(diào)用它的對象。

2.(2008春)在C++中,重載賦值運算符“二〃和下標運算符“[]〃等只能用實現(xiàn),而重載插入運算

符?<<"和提取運算符“>>〃等只能用實現(xiàn)。

(成員函數(shù),友元函數(shù))

3.(2001年秋)多態(tài)性分為兩種:靜態(tài)多態(tài)性和動態(tài)多態(tài)性。函數(shù)重載屬于二種多態(tài)性中的哪一種:。

4.(2002秋)設(shè)有語句:inta=6,b=3;floatx=8,y;y=b/a*x/2;那么y的值為。

5.(2003春)設(shè)有語句:chars[]=MChina\ONanjin";inlm=slrlen(s);那么ni的值為。(引號,ASCII

值,換行符)

6.(2003春)在C++中函數(shù)的參數(shù)傳遞方式有三種:第一種是值傳遞,第二種是指針傳遞,第三種是傳遞。

7.(2004春)函數(shù)重載是指函數(shù)名一樣,但函數(shù)的不同或函數(shù)的②不同。

8.[程序](2002年春)

#include<iostream.h>

voids(inta,int&b){intt=a;a=b;b=t;}

voidmain(void)

{intx=500,y=1000;

cout?x?*\t*?y?*\n*;s(x,y);

cout?x?,\t,?y?,\n,;

程序的第一行輸出為in,第二行輸出為g。

9.[程序](2004春)(全局變量通過指針傳遞)

#include<iostream.h>

intz;

voidfun(intx,int&y)

{z=x;x=x+y;y=y+z;

cout?x?*,*?y?,/?z?endl;

}

voidmain(void)

{intx=5,y=10;

z=15;

fun(x,y);

cout?x?,,,?y?,,,?z?endl;

程序的第一行輸出為第二行輸出為g。

10.[程序](2004秋)(內(nèi)部循環(huán))

#include<iostream.h>{intcl[3]={10,20,30},c2[3]={40,50,60);

voidfun(int*a,int*b)fun(cl,c2);

{(*a)++;*b++;*a++;(*b)++;cout?cl[0]?,\t,?cl[l]?endl;

cout?*a?*\t*?*b?endl;cout?c2|0]?'\t,?c2[1]?endl;

))

voidmain(void)

程序的第一行輸出為山,第二行輸出為g,第三行是

H.[程序](2002秋)

#include<iostreaiii.h>classA{

intx,n;{y=k;m=h;p=10;}

intmul;intpower(void)

public:{P=l;

A(inta,intb){x=a;n=b;mul=1;}for(inti=l;i<=m;i++)p*=y;

virtualintpower(void)returnp;

{mul=l;)

for(inti=l;i<=n;i++)mul*=x;voidshow(void)

returnmul;{A::show();cout?p?*\n,;}

));

voidshow(void){cout?}voidfun(A*f)

);{cout?f->power()?,\n,;}

classB:publicA{voidmain()

inty,m;{Aa(5,3);Bb(2,4,3,3);

intp;fun(&a);fun(&b);

public:b.show();

B(inti,intj,intk,inth):A(i,j)}

程序輸出的第一行和第三行分別是應(yīng),②。

12.[程序](2003秋)

#include<iostream.h>

ints(int(*f)(int),intm,intn)

{intk,sum=0;

for(k=m;k<=n;k++){

sum+=f(k)+f(k);

cout?,,s=,,?sum?endl;

)

returnsum;

}

intfl(intx){returnx+=2;}

intf2(intx){returnx-=2;}

voidmain(void)

{cout?,,result=n?(s(fl,l,2)+s(f2,l,2))?endl;}

程序輸出的第一行是第三行是⑵,第五行是⑶

13.[程序](2003年春)

#include<iostream.h>

classShape{

public:

Shape(){}

virtualfloatArea()=0;

};

classCircle:publicShape{

floatr;

public:

Circle(floatc){r=c;}

floatArea(){return3*r*r;}

);

classRectangle:publicShape{

floath,w;

public:

Rectangle(floatc,floatd){h=c;w=d;}

floatArea(){returnh*w;}

voidfun(Shape*s){cout?s->Area()?,\n,;}

voidmain(void)

{Circlec(4);

fun(&c);

Rectangler(5,2);

fun(&r);}

程序輸出的第一行是0},第二行是⑵。

14.(2003年春)以下程序的功能是求三角函數(shù)sinx的近似值。求sinx近似值的計算公式

『(2w-D

xx5X

為:⑥^二工一3+不一下+-+(-1)“五Eo其中X的值為弧度。當輸入的X值為度數(shù)時,要求出

sinx的近似值,必須將度數(shù)轉(zhuǎn)換為弧度。轉(zhuǎn)換公式為:

y=3.1415926x/360

要走計算精度到達0.000001o

[程序]

#include<iostream.h>sum+=(2);//term

#include<math.h>n++;

doublesin(doublex,doubleeps)term=term*v/(3);//((2*n-2)*(2*n-i))

{doubleterm,sum,y;term*=-1;

intn=1;)

y=x*x;return(4);//sum+term或sum

term=(l);//x)

sum=0;voidmain(void)

while(fabs(term)>=eps){{doublex,y;

coutv<“輸入X的值(角度conf度數(shù)為:“VVX;

cin?x;cout<v"其sin值為:“vvsin(y,le-6)vv,\n,;

while(x>360)x-=360;

y=3.1415926:Kx/180;

15.(2005春)設(shè)已建設(shè)一條單向鏈表,指針head指向該鏈表的首結(jié)點。結(jié)點的數(shù)據(jù)構(gòu)造如下:struct

Node{intdata;Node*next;};

以下函數(shù)sort(Node*head)的功能是:將head所指向鏈表上各結(jié)點的數(shù)據(jù)按data值從小到大的

順序排序。

算法提示:初始時,使p指向鏈表的首結(jié)點,從p之后的所有結(jié)點中找出data值最小的結(jié)點,

讓pl指向該結(jié)點。將p指向的結(jié)點的data值與pl指向的結(jié)點的data值進展交換。讓p指向下一個

結(jié)點,依此類推,直至p指向鏈表的最后一個結(jié)點為止。

[程序](4分)

Node*sort(Node*head))

{Node*p=head,*pl,*p2;if(p!=pl){

if(p==NULL)returnhead;intt;

while(p->next!=NULL){t=p->data;

P1=P;p->data=⑵;//pl->data

p2=p->next;⑶=t;//pl->data

while(p2!=NULL){}

if((1))//p2->data<pl->data(4);//p=p->next}

pl=p2;returnhead;

p2=p2->nexl;}

16.(2008辛春)在以下程序中,函數(shù)CreateLink()根據(jù)鍵盤輸入的數(shù)據(jù)建設(shè)一個單向無序鏈表,

鏈表上的每一個結(jié)點包含一個整型數(shù);函數(shù)SortLink()通過改變結(jié)點在鏈表中的位置將鏈表調(diào)整為

一條有序鏈表;函數(shù)PrintLink()將鏈表上的數(shù)據(jù)輸出;函數(shù)DeleteLink()將鏈表刪除。

[程序]

#include<iostream.h>

structnode{intdata;node*next;};

node*CreateLink(void)〃創(chuàng)立無序鏈表

{node*pl,*p2,*head=0;

inta;

COlltVd產(chǎn)生一條無序鏈,請輸入數(shù)據(jù),以?1完畢了;

cin?a;

while(a!=-1){

pl=newnode;

pl->data=a;

if(head==O){

head=pl;

p2=pl;

)

else{

(1)〃D2?>next二pl;

p2=pl;

)

coutvv”請輸入數(shù)據(jù),以完畢:“;

cin?a;

)

p2->next=0;

return(head);

)

voidSortLink(node*&head)〃通過移動每個節(jié)點的指針來完成鏈表排序

{node*q,*tq,*p,*tp;

intflag=O;

if(!head)return;

for(q=head,tq=0;q;q=q->next){

for(tp=q,p=q->next;p;tp=p,p=p->next)

if(q->data>=p->data){〃將p和q指向的兩個節(jié)點所處位置互換

(2)〃tp?>next二p?>next;

p->next=q;

q=p;

P=tp;

)

if(!tq)head=q;

elsetq->next=q;

tq=q;

)

}

voidPrintLink(node*head)//打印鏈表

{node*p=head;

coutVV”鏈上各結(jié)點的數(shù)據(jù)為八n";

while(p!=NULL){

cout?p->data?*\f;

(3)〃p=p?>next;

)

cout?,'\nM;

)

voidDeleteLink(node*head)〃刪除鏈表

{node*pl;

while(head){

pl=head;

head=head->next;

(4)“deletepl;

}

voidmain(void)

{node*head=0;

head=CreateLink();

PrintLink(head);

SortLink(head);

PrintLink(head);

DeleteLink(head);

}

17.(2011春)在以下程序中,函數(shù)create0根據(jù)鍵盤輸入的整數(shù)建設(shè)一條單向無序鏈表,鏈表上的

每一個結(jié)點包含一個整數(shù);函數(shù)sort()根據(jù)鏈表結(jié)點的數(shù)據(jù)按從小到大的順序?qū)㈡湵碚{(diào)整為一條有

序鏈表;函數(shù)print()將鏈表上的整數(shù)依次輸出;函數(shù)del()將鏈表刪除。

排序算法提示:(1)初始時,使p指向鏈表的首結(jié)點,(2)從p之后的所有結(jié)點中找出data值

最小的結(jié)點,(3)讓pl指向該結(jié)點,并將p指向結(jié)點的data值與pl指向結(jié)點的data值進展交換,

讓p指向下一個結(jié)點,(4)重復(fù)步驟(2)和(3),直至p指向鏈表的最后一個結(jié)點為止。

[程序]

#include<iostream.h>

structNode{參考答案:

intdata;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論