C語(yǔ)言程序設(shè)計(jì)試題和答案_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)試題和答案_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)試題和答案_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)試題和答案_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)試題和答案_第5頁(yè)
已閱讀5頁(yè),還剩4頁(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)介

C++語(yǔ)言程序設(shè)計(jì)試題和答案

一、單選題(把正確選項(xiàng)寫(xiě)在各小題后面的括號(hào)內(nèi),每小題1分,共20分)

1.已知:intx,y;下列表達(dá)式中,非法的是()。

A.x%yB.y=-xC.-(x*y)D.x+=y

2.已知:intx,y;下列循環(huán)的執(zhí)行次數(shù)是()。

for(x(0),y(0);!y&&x<=5;x++,y++)

{...}

A.1B.2C.5D.無(wú)限

3.己知:inia,*p;下列操作中,非法的是()。

A.p=aB.p=&aC.*p=9D.p!=a;

4.下列有關(guān)語(yǔ)句的描述中,錯(cuò)誤的是(

A.條件語(yǔ)句中,else子句可以有0個(gè)或1個(gè)

B.Continue語(yǔ)句只能出現(xiàn)在循環(huán)體內(nèi)

C.Switch語(yǔ)句不能出現(xiàn)在循環(huán)體內(nèi)

D.循環(huán)語(yǔ)句可以自身嵌套,也可以相互嵌套

5.下列關(guān)于構(gòu)造函數(shù)的描述中,錯(cuò)誤的是()。

A.構(gòu)造函數(shù)是沒(méi)有名字的B.構(gòu)造函數(shù)是可以重載的

C.構(gòu)造函數(shù)是系統(tǒng)自動(dòng)調(diào)用的D.構(gòu)造函數(shù)是可以沒(méi)有參數(shù)的

6.下列關(guān)于運(yùn)算符new的描述中,錯(cuò)誤的是()o

A.new運(yùn)算符月來(lái)創(chuàng)建動(dòng)態(tài)對(duì)象

B.new運(yùn)算符用來(lái)創(chuàng)建堆對(duì)象時(shí)可進(jìn)行初始化

C.用new運(yùn)算符創(chuàng)建的對(duì)象可用delete運(yùn)算符釋放

D.用new運(yùn)算將可創(chuàng)建對(duì)象數(shù)據(jù),并可同時(shí)進(jìn)行初始化

7.下列關(guān)于公有繼承方式下基類成員在派生類中訪問(wèn)性的描述,其中錯(cuò)誤的是?)。

A.基類中私有成員在派生類中為私有成員

B.基類中公有成員在派生類中為公有成員

C.基類中保護(hù)成員在派生類中為保護(hù)成員

D.派生類中成員函數(shù)不能訪問(wèn)基類私有成員

8.類的構(gòu)造函數(shù)的成員初始化列表中,不可以包含()。

A.基類構(gòu)造函數(shù)B.子對(duì)象類的構(gòu)造函數(shù)

C.靜態(tài)數(shù)據(jù)成員初始化D.常數(shù)據(jù)成員的初始

9.已知:B類是A類的公有繼承的派生類,下列描述中,錯(cuò)誤的是()。

A.A類的對(duì)象就是B類的對(duì)象

B.B類對(duì)象可以給A類對(duì)象賦值

C.B類對(duì)象的地址值可以給A類對(duì)象指針賦值

D.B類對(duì)象可以給A類對(duì)象引用賦值

10.下列關(guān)于派生類定義格式的描述中,錯(cuò)誤的是()。

A.定義派生類可用關(guān)鍵字class或struct

B.定義派生類時(shí)要指出派生類的類名和基類的類名

C.定義派生類時(shí)一定要給出繼承方式,不能默認(rèn)

D.定義派生類時(shí),類體中給出派生類的成員

11.下列的模板說(shuō)明中,正確的是()。

A.template<classT1,T2>B.tempia(e<T>

C.template<T1,T2>D.template<classT1,classT2>

12.類模板的實(shí)例化()。

A.在編譯時(shí)進(jìn)行B.屬于動(dòng)態(tài)聯(lián)編

C.在運(yùn)行時(shí)進(jìn)行D.在連接時(shí)進(jìn)行

13.線性表采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)時(shí),其地址(

A.必須是連續(xù)的B.部分地址必須是連續(xù)的

C.一定是不連續(xù)的D.連續(xù)與否均可以

14.能夠處理任何類型異常的catch語(yǔ)句是()c

A.catch(){}B.catch(all){}

C.catch(…){)D.catch_all(){}

15.下面的語(yǔ)句可以取代哪條語(yǔ)句()。

namespace

{

intx,y;

A.intx;inty;B.intx,y;C.staticintx,y;D.intx;y;

16.在一個(gè)單向鏈表中,已知q所指結(jié)點(diǎn)是p所指結(jié)點(diǎn)的前件,若在q和p之間插入S

所指結(jié)點(diǎn)劉則執(zhí)行()操作。

A.s->next=p->next;p->next=s;B.q->next=s;s->next=p;

C.p->next=s->next;s->next=p;D.p->next=s;s->next=q;

17.任何一棵二叉樹(shù)的葉子結(jié)點(diǎn)在前序、中序、后序遍歷序列中的相對(duì)次序()<.

A.肯定不發(fā)生改變B.肯定發(fā)生改變

C.不能確定D.有時(shí)發(fā)生變化

18.用插入排序?qū)ο旅嫠膫€(gè)序列進(jìn)行由小到大排序,元素比較次數(shù)最少的是()。

A.94,32,40,90,80,46,21,69B.21,32,46,40,80,69,90,94

C.32,40,21,46,69,94,90,80D.90,69,80,46,21,32,94,40

19.下列using語(yǔ)句錯(cuò)誤的是()。

A.usingstd;B.usingstd::cndl;

C.usingnamespacestd;D.usingstd::cout;

20.由單向鏈發(fā)可以判斷鏈接存儲(chǔ)結(jié)構(gòu)中的數(shù)據(jù)元素之間的邏輯關(guān)系是由()表示。

A.線性結(jié)構(gòu)B.非線性結(jié)構(gòu)C.存儲(chǔ)位置D.指針

二.判斷題(對(duì)者在題號(hào)前劃V,錯(cuò)者在題號(hào)前劃x;每小題1分,共20分)

1.函數(shù)體和循環(huán)語(yǔ)句的循環(huán)體都可為空。

2,數(shù)組下標(biāo)只能是常品,不能是表達(dá)式。

3.使用delete運(yùn)算符釋放一個(gè)用new創(chuàng)建的數(shù)組時(shí),每次只能釋放一個(gè)元素。

4.設(shè)置函數(shù)參數(shù)默認(rèn)值只能用常量,不能用表達(dá)式。

5.一個(gè)類的對(duì)象可以是該類的成員。

6.內(nèi)部靜態(tài)對(duì)象是全局對(duì)象.因?yàn)樗膲勖情L(zhǎng)的0

7.引用是一種可做函數(shù)參數(shù)的變量。

8.只有運(yùn)算符++,??,才具有副作用。

9.構(gòu)造函數(shù)與拷貝構(gòu)造函數(shù)的名字都與類名相同。

10友元函數(shù)只能訪問(wèn)類中的私有成員。

11.單繼承中,一個(gè)派生類只有一個(gè)基類,而一個(gè)基類可以生成多個(gè)派生類。

12.派生類對(duì)基類成員的可訪問(wèn)性與派生類對(duì)象對(duì)基類成員的可訪問(wèn)性是相同的。

13.保護(hù)繼承方式下,基類中公有成員和保護(hù)成員在派生類中都是保護(hù)成員。

14.在公有繼承和保護(hù)繼承方式下,基類中的公有成員在直接派生類和間接派生類中都

是可訪問(wèn)的,而直接派生類和間接派生類的對(duì)象也可訪問(wèn)。

15.靜態(tài)數(shù)據(jù)成員應(yīng)該在構(gòu)造函數(shù)的成員初始化列表中進(jìn)行初始化。

16.友元函數(shù)是說(shuō)明在類體內(nèi)的成員函數(shù),它的定義應(yīng)在類體外。

17.用new創(chuàng)建的堆對(duì)象,在使用delete釋放時(shí)必須是先創(chuàng)建的后釋放,后創(chuàng)建的先

釋放。

18.如果類模板的模板類型參數(shù)有多個(gè),除第1個(gè)模板類型參數(shù)前使用關(guān)鍵字class,

其余的模板類型參數(shù)前都不使用關(guān)鍵字class

19.查找運(yùn)算是在一個(gè)給定的數(shù)據(jù)結(jié)構(gòu)中查找指定的數(shù)據(jù)元素。

20.一個(gè)try-catch語(yǔ)句中只能有一個(gè)try語(yǔ)句塊,但卻可以有多個(gè)catch語(yǔ)句塊,以便

與不同的異常類型匹配。

三.填空題(將適當(dāng)?shù)膬?nèi)容填寫(xiě)在下劃線上面,每空I分,共10分)

1.定義類A中有兩個(gè)公有的成員函數(shù),其中一個(gè)是構(gòu)造函數(shù),另一個(gè)是靜態(tài)成員函數(shù)

fl(),還有兩個(gè)私有的數(shù)據(jù)成員,一個(gè)是靜態(tài)數(shù)據(jù)成員a,另一個(gè)類B的對(duì)象b。類B

中有兩個(gè)私有的數(shù)據(jù)成員。為滿足上述要求,請(qǐng)?zhí)顚?xiě)下列程序的空白處。

________A

(

_________inta;

_______b;

public:

(inti,intj):

(}

voidfl()

2.P類公有繼承Q類,P和Q類中都僅有一個(gè)私有的數(shù)據(jù)成員,P類中兩個(gè)成員困數(shù),

一個(gè)是構(gòu)造函數(shù),另一個(gè)友元函數(shù)fun()。下列一段程序?qū)崿F(xiàn)上述要求,請(qǐng)將空白處填

上適當(dāng)?shù)膬?nèi)容。

classP________

(

public:

P(inti,intj)

{P=i;}

voidfun();

private:

};

四.分析下列程序的輸出結(jié)果(分析結(jié)果寫(xiě)在該程序右邊的空白處;每小題5分,共3D分)

1.

a=b;b=c;c=a;

cout?a+b+c?endl;

returna+b+c;

4.

#include<iostream.h>

#include<string.h>

template々classT>

Tmax(Tx,Ty)

(

returnx>y?x:y;

I

char*max(char*x,char*y)

(

if(strcmp(x,y)>=0)

returnx;

else

returny;

)

voidmain()

(

inta(20),b(9);

cout?max(a,b)?cndl;

doublem=l1.2,n=9.5;

cout?max(m,n)?cndl;

charx='G',y='U;

cout?max(x,y)?endl;

char*s1=,'cdkl",*s2="cdmn";

cout?max(s1,s2)?endl;

)

5.

#include<iostream.h>

classPQ

{

public:

PQ(inti=0)

{P=i;}

voidprint()

{cout?p?endl;}

~PQO

{cout?"PQ"?p?endl;

private:

inip;

PQa(8);

voidmain()

(

PQ*pl,*p2;

p1=newPQ(7);

p2=newPQ[2J;

p2[Ol=a;

p2[l]=*pl;

(*pl).print();

p2[O].print();

p2[l].print();

deletepl;

delete[\p2;

#inckidc<iostrcam>

usingnamespacestd;

voidmain()

(

inta[]={3,1,9,74.10,6.5,8,2},i,j,temp,len=l0;

fbr(i=O;i<len-1;i++)

{

for(j=0:j<lcn-1-i;j++)

(

if(aU]>a[j+H)

(

temp=a|jl;

a[j+ll=temp;

fbr(i=O;i<len;i++)

cout?a[i]?"

cout?endl;

}

五.分析程序回答問(wèn)題(共10分)

#include<iostream.h>

classA

public:

A()

{al=a2=0;}

A(inli,intj)

{al=i;a2=j;}

~A()

{

cout?uA\n";}

A(A&a)

|

a1=a.al+2;a2=a.a2+2;

cout?"C\n";

)

voidpiint()

{cout?aI+a2?endl;)

private:

intal,a2;

};

voidfun(A&a)

(

Ab;

b=a;

b.print();

)

voidniain()

{Ax(4,8),y;

Ap(x);

y=x;

fun(p);

y.print。;

}

該程序調(diào)用了幾次構(gòu)造函數(shù)(全部)?(3分)

函數(shù)fun()中,b.print。輸出值是多少?(3分)

該程序調(diào)用了幾次拷貝構(gòu)造函數(shù)?(4分)

六.簡(jiǎn)單回答問(wèn)題(每小題回答結(jié)果寫(xiě)在該題下面空白處;每小題2分,共10分)

己知:inta=10,*pa=&a;定義一個(gè)指針pa的引用ref,并計(jì)算表達(dá)式*ref*8的值。

2..已知:A類中有一個(gè)成員函數(shù)說(shuō)明如下:

intfun(int);

請(qǐng)將該成員函數(shù)fun()說(shuō)明常成員函數(shù),其格式如何?該函數(shù)的功能是返回該參數(shù)

的平方,寫(xiě)出在類體外定義該函數(shù)的語(yǔ)句。

3.使用指針作函數(shù)參數(shù)和使用引用作函數(shù)參數(shù)有何不同?

4.在兩個(gè)不同的類中,A類對(duì)象可以賦值給類B的對(duì)象,要求A類和B類有什么關(guān)系?

5.C++中的異常處理機(jī)制包括哪兒部分?

答案

單選題(每小題1分,共20分)

1.C2.A3.B4.C5.A6.D7.A8.C9.A10.B11.D12.A

13.D14.C15.C16.B17.A18.B19.A20.D

判斷題(每小題1分,共20分)

對(duì)的有:2,5,8,9,11,13,14,16,19,20

三.填空題(每空1分,共10分)

1.

classA

staticinta;

Bb;

public:

A(inti,intj):B(i,i)

{)

staticvoidfl()

classP:publicQ

(

public:

P(inti,intj):O(i)

{P=i;}

friendvoidfun();

private:

intp;

I:

四.分析下列程序的輸出結(jié)果(部分答對(duì)酌情給分;每個(gè)題全對(duì)5分,共30分)

1.

34

24

25

7

8

10

25

20

11.2

L

edmn

7

8

7

PQ7

PQ7

PQ8

PQ8

6.

12345678910

五.分析程序回答問(wèn)題(共10分)

該程序調(diào)用了幾次

溫馨提示

  • 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)論