2018年10月自考04737C真題及答案_第1頁
2018年10月自考04737C真題及答案_第2頁
2018年10月自考04737C真題及答案_第3頁
2018年10月自考04737C真題及答案_第4頁
2018年10月自考04737C真題及答案_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2018年10月高等教育自學(xué)考試全國統(tǒng)一命題考試

C++程序設(shè)計(jì)試卷

(課程代碼04737)

本試卷共10頁,滿分100分,考試時(shí)間150分鐘。

考生答題注意事項(xiàng):

1.本卷所有試題必須在答題卡上作答。答在試卷上無效,試卷空白處和背面均可作草稿紙。

2.第一部分為選擇題。必須對應(yīng)試卷上的題號使用2B鉛筆將“答題卡”的相應(yīng)代碼涂黑。

3.第二部分為非選擇題。必須注明大、小題號,使用0.5毫米黑色字跡簽字筆作答。

4.合理安排答題空間,超出答題區(qū)域無效。

第一部分選擇題

一、單項(xiàng)選擇題:本大題共20小題,每小題1分,共20分。在每小題列出的備選項(xiàng)審只有

一項(xiàng)是最符合題目要求的,請將其選出。

1,若有以下類型標(biāo)識符定義:chare=%';inta=4;=doubled=1.212;則

表達(dá)式C+a/(int)d+f的結(jié)果類型是

A.floatB.charC.iniD.double

2.設(shè)X和y均為bool量,貝ijx&&y曲為真的條件是

A.它們均為真B.其中一個(gè)為真C.它們均為假D.其中一個(gè)為假

3.拷貝構(gòu)造函數(shù)應(yīng)該是

A.不帶參數(shù)的構(gòu)造函數(shù)B.帶有一個(gè)參數(shù)的構(gòu)造函數(shù)

C.帶有兩個(gè)參數(shù)的構(gòu)造函數(shù)D.缺省構(gòu)造函數(shù)

4.以下說法中正確的是

A.C++程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行

B.C++程序總是從main函數(shù)開始執(zhí)行

C.C++中函數(shù)必須有返回值

D.C++中函數(shù)名必須唯一

5.下列虛基類的聲明中,正確的是

A.classvirtualB:publicAB.classB:virtualpublicA

C.classB:publicAvirtualD.virtualclassB:publicA

6.下列哪個(gè)類型函數(shù)不適合聲明為內(nèi)聯(lián)函數(shù)

A.函數(shù)體語句較多B.函數(shù)體語句較少

C.函數(shù)執(zhí)行時(shí)間較短D.函數(shù)被頻繁調(diào)用

7.以下類模板定義正確的為

A.template<classT>B.template<classT.classinti>

C.template<classT,typenameT>D.template<classTLT2>

8.C++中要實(shí)現(xiàn)動態(tài)聯(lián)編,調(diào)用虛函數(shù)時(shí)必須使用

A.基類指針B.類名C.派生類指針D.對象名

9.下列對靜態(tài)成員的描述中,不正確的是

?A.靜態(tài)成員不屬于對象,是類的共享成員

B.靜態(tài)數(shù)據(jù)成員要在類外定義和初始化

C.調(diào)用靜態(tài)成員函數(shù)時(shí)要通過類或?qū)ο蠹せ?,所以靜態(tài)成員函數(shù)擁有this指針

D.非靜態(tài)成員函數(shù)也可以操作靜態(tài)數(shù)據(jù)成員

10.下列對派生類的描述中,錯(cuò)誤的是

A.一個(gè)派生類可以作為另一個(gè)派生類的基類

B.派生類至少有一個(gè)基類

C.派生類的成員除了它自己的成員外,還包含了它的基類的成員

D.派生類中繼承的基類成員的訪問權(quán)限到派生類保持不變

11.下列函數(shù)原型聲明語句中,錯(cuò)誤的是

A.intf(void);B.voidf(hat);C.intf(a);D.voidf(doublea);

12.如果有灑t型變量a,則定義指向變量a的指針P正確的寫法是

A.intP=&aB.int*P=&aC.int&p=*a1).int*P=a

13.假定指針變量P定義為“int冰P=flewint(100);",要釋放P所指向盼動態(tài)內(nèi)存,

應(yīng)使用語句

A.deletep;B.delete*p;C.delete&p;D.delete[]p;

14.假定A為一個(gè)類,則執(zhí)行“Aa[3],b(3);”語句時(shí)調(diào)用該類構(gòu)造函數(shù)的次數(shù)為

A.3B.4C.5D.9

15.C++中定義標(biāo)準(zhǔn)輸入輸出的癢為

A.stdioB.mathCoiostream;D.stdlib

16.允許用戶為類定義一種模式,使礙類中的某些數(shù)據(jù)成員及某些成員函數(shù)的返函值能

取任意類型,這是1個(gè)

A.類模板B.模板類C.函數(shù)模板D.模板函數(shù)

17.下列關(guān)于運(yùn)算符重載的敘述中,正確的是

A.通過運(yùn)算符重載,可以定義新的運(yùn)算符

B.有的運(yùn)算符只能作為成員函數(shù)重載

C.若重載運(yùn)算符+,則相應(yīng)的運(yùn)算符函數(shù)名是+

D.重載一個(gè)二元運(yùn)算符時(shí),必須聲明兩個(gè)形參

18.當(dāng)使用ofstream流類定義一個(gè)流對象并打開一個(gè)磁盤文件時(shí),文件的隱含打開方式

A.ios::out|ios::binaryB.ios::inios::binary

C.ios::outD.ios::in

19.有關(guān)函數(shù)模板和模板函數(shù)說法錯(cuò)誤的是

A.函數(shù)模板只是對函數(shù)的描述,編譯器不為其產(chǎn)生任何執(zhí)行代碼,所以它不是一個(gè)

實(shí)實(shí)在在的函數(shù)

B.模板函數(shù)是實(shí)實(shí)在在的函數(shù),它由編譯系統(tǒng)在遇到具體函數(shù)調(diào)用時(shí)所生成,并調(diào)

用執(zhí)行

C.函數(shù)模板需要實(shí)例化為模板函數(shù)后才能執(zhí)行

D.當(dāng)函數(shù)模板和一般函數(shù)同名時(shí),系統(tǒng)先去匹配函數(shù)模板,將其實(shí)例化后進(jìn)行調(diào)用

20.對類的構(gòu)造函數(shù)和析構(gòu)函數(shù)描述正確的是”

A.構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)不能重載

B.構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)可以重載

C.構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)也可以重載

D.構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)也不能重載

第二部分非選擇題

二、填空題:本大題共20空,每空1分。共20分。

21.將int類型指針p轉(zhuǎn)換為char類型指針,則強(qiáng)制轉(zhuǎn)換語句為

22.當(dāng)一個(gè)成員函數(shù)被調(diào)用時(shí),該成員函數(shù)的指向調(diào)用它的對象。

23.在繼承的情況下,基類數(shù)據(jù)成員在派生類中的訪問權(quán)限保持不變。

24.Windows環(huán)境下,由C++源程序文件編譯而成的目標(biāo)文件的擴(kuò)展名是

25.具有至少一個(gè)純虛函數(shù)的類是。

26.C++中字符串是通過字符數(shù)組來表示的,每一個(gè)字符串都有一個(gè)結(jié)尾字符

27.C++中定義重載函數(shù)時(shí),應(yīng)至少使重載函數(shù)的參數(shù)個(gè)數(shù)或不同。

28.假定x=15,則表達(dá)式X〈=10720:30的值為。

29.不同對象可以調(diào)用相同名稱的函數(shù),但執(zhí)行完全不同行為的現(xiàn)象稱為___________.

30.假設(shè)類F的對象f是類A的成員對象,則“Aa”語句執(zhí)行時(shí),先調(diào)用類

的構(gòu)造函數(shù)。

31.設(shè)"inta=3,b=4,C=5;”,表達(dá)式“(a+b)>c&&b==c"的值是。

32.描述命題“A小于8或小于C”的表達(dá)式為o

33.C++中字符串"a+b=12\n\t"的長度為。

34.C++類中構(gòu)造函數(shù)的個(gè)數(shù)最多是無限個(gè),析構(gòu)函數(shù)的個(gè)數(shù)最多是___________個(gè)。

35.C++的靜態(tài)數(shù)據(jù)成員需要在進(jìn)行初始化,可以被該類的所有對象共享。

36.C++中一般的程序都要有兩條語句,包含頭文件“#include〈iostream>”語句和使用

命名空間””語句。

37.用new申請某一個(gè)類的動態(tài)對象數(shù)組時(shí),在該類中必須能夠匹配到?jīng)]有形參的或缺

省參數(shù)的,否則應(yīng)用程序會產(chǎn)生一個(gè)編譯錯(cuò)誤。

38.C++中解決命名沖突的機(jī)制是。

39.拷貝構(gòu)造函數(shù)使作為參數(shù)初始化創(chuàng)建中的對象。

40.假如一個(gè)類的名稱為F,使用這個(gè)類的一個(gè)對象初始化該類的另一個(gè)對象時(shí),可以調(diào)

用構(gòu)造函數(shù)來完成此功能。

三、改錯(cuò)題:本大題共5小題,每小題4分,共20分。以下程序中各有一處錯(cuò)誤,請抄寫有錯(cuò)誤的語句并

改正。

41.#ine.lude<i^tream.h>

usingn血espacestd;

voidsetzero(int&a)f

a=O;I

int:maln()!

intxl=10;

setzero(&xl);

cout?x1?endl;

returnO;

42.改正后程序輸出結(jié)果為2581114

#include<ios4±earn.h>

usingnJULespacestd;

voidmain()

inti=1;

while(i<=15)1

i++;

if^i%3==2)continu七我

ut<Vi<V"";

43.銜nclude<ios;rearn.h>

usi噸namespacestd;

egPoint

public:

voidinit()11

staticvoidoutput()IJ

voidmain()

PointP;

Point::init();

P.output();

44.#include<iootre81n.h>

usingnamespacestd;

classAl

mtx,y;

public:

voidset(inta,inib)

Ix=a;y=b;)

intge江()

ILturnX;1

intgety()

Ireturny;l

intsum()

Ireturnx+y;I

intmain()I

Aa;

a.set(3,4);

cout?a.x?a:y?a,sum()?end!;

O;

45.申諸一個(gè)長度為10的血型空間,之后釋放該空間。

枷eludevi忱氐am.h>

usingnamcspscesld:

inimain()!

int*pnewint[1OJ;

del必p;

returnO;

四、完成程序題:本大題共5小題,每小題4分,共20分。請按試題順序和空格順序填寫答

家錯(cuò)箕不巽撫比

46.把從鍵盤上輸人的批整數(shù)(映1作為終止輸入的標(biāo)志)保存到文本班侏xkl.

dat”中。

#include<iostre血>

#include<£stream.h>

#include<sldlib.h>

void叩in()

ofstrerunfoul(Ha:xxkl.如");

if(){

tei1v〈”文件沒有打開!nd!;

exit(1);I

intx;

cin?x;

while(x!=-1)1

fOUl<<x?,;

cin?x;

_________________://關(guān)閉文件

47.#include<iosm?nm.b>

usingnamespacestd;

ITtmp=x,x+y?y+x?y;

mkimtmp;

int四皿01

intxi=1,yl=4;

floatx2=l.I,y2=2.2;

doublex3=2.0,y3=3.1;

cout?fun(xl,yl)?end!;

coul?fun(心y2)?endl;

cout?fun(x3,y3)?endl;

returnO;

I

48.完成程序,百^出結(jié)果為79

#inelude<i偽tream.h>

usingnamespacestd;

intmain()I

inta[6)=123,15,64,33,40,581;

si=s2=a[O];

for(int?p=a+1;p<a+6;p++)

{if(sl>*p)sl=*p;

if-----------------------/

)

cout?si+s2?endl;

returnO;

I

49.#inelude<iostream.h>

classPoint

intX,Y;

public:

Point(intx=0,inty=0)

IX=x;Y=y;Countp++;1

Point(Point&p)

IX=p.X;Y=p.Y;Countp++;

-Point()ICountp--;

slAticintCountp;

voiddisplay()!cout?X?n,n?Y?

I;

PointmyfUJJ(Pointpl,Pointp2,Pointp3)

IPin-tmp(pl.X+p2.X+p3.X,pLY+p2.Y+p3.Y);

returnimp;

intPoint::Countp=0;

voidmain()

IPointplL)ppi(1,2),pp2(1);

Pointp=myfun(心ppi,pp2);

p.如play();

:I./輸出Counlp的值

50.完成程序,使其結(jié)果為

x=6,y=IO

x=ll,y=IO

#include<ioon:om.h>

usingnruncspacestd;

daiuSampleIpriv.te:

IDtx:

她i"?_________

Sample(inta);

voidprint();

I;

S血pie:,Sample()

lx=a;y=x++;1

,oidSample,,print()

fcoul?"x="?x?n,y=n?y?cncll;)

intS戲pie::y=25;

voidmain()

S.mplesl(S),

S.mples2(10):

si.print();

s2,Priti();

五、程序分析題:本大題共2小題,每小題分,共10分。閱讀程序后,填寫程序的正確運(yùn)

行結(jié)果。

51.

#include<iostream>

using皿mespaestd;

voidResult(charch)I

叩tcb(ch)I

case*A*:case'a^cout?"weU!n;break;

也se'B':case'b':com?"good!";break;

case'C':'c':coutvV',嚴(yán)!";break;

default:coot?nbad!H;break;

voidm幻n()

charal='b',a2='C',心='貯

cout?"ResullS:11?end!;

Result(al);Result(a2);Result(a3);Result('A');

52.#include<iostream.h>

usingnamespacestd;

cl邸,Sample!

protttted:

intx;

public:

Sample()1x=0;l

Sample(intval)lx=val;I

oidoperator+-F(){x++?1

1;

classDerived:puhlicSamplcl

inty;

p心lie:

Derived():婦pie()1Y=O;f

Derived(intval\,intva12):Sample(vall)1y=va12;}

voidop叩tor--()1x--;y--;I

voiddisp(){

cout?Mx=M?x?M,y=,r?y?endl;|

1;

voidmain(){

Derivedd(3,5);

D.disp();

d-H-;

D.disp();

d—;

d—;

D.disp();

1

六、程序設(shè)計(jì)題:本大題共1小題。每小題10分,共10分。

53.設(shè)id-一個(gè)圓類circle和一個(gè)桌子類table。circle類包含私有數(shù)據(jù)成員radius和求圓

面積的成員函數(shù)9etarea();table類包含私有數(shù)據(jù)成員height和返回高度的成員函數(shù)

getheightOoroundtable類繼承所有上述類的數(shù)據(jù)成員和成員函數(shù),添加了私有數(shù)據(jù)成員

color和相應(yīng)的成員函數(shù)。其中,main函數(shù)已給出。請完成程序的其他部分。

voidmain()

I-

roundtablert(O.8,L2,"黑色")?

cout?”圓桌屬性數(shù)據(jù)”?endl;

cout?"高度:"?rt.getheight()?"米"<<endl;

cout<<"面積:"?tr.getarea()?"平方米"<<endl;

cout?"顏色"?rt,getcolor()?endl;

絕密*啟用前

2018年10月高等教育自學(xué)考試全國統(tǒng)一命題考試

C++程序設(shè)計(jì)試題答案及評分參考

(課程代碼04737)

一、單項(xiàng)選擇題:本大題共20小題,每小題1分,共20分。

LD2.A3.J34.J35.J36.A7.A8.A9.C!OD

ILC12.B13.D14.B15.A16.B17.B18.C19.D20.A

二、填空題:本大題共20空,每空1分,共20分。

21.(char*)p22.如s指針23.公有24.obj25.抽象類

26.\027.(參數(shù))類型28.309多態(tài)6F

31.032.A<BIIA<C33.834.135.類外

36.usingnamespacestd;37.構(gòu)造函數(shù)38?函數(shù)重載

39.引用40拷貝復(fù)制)

三、改錯(cuò)題:本大題共5小題,每小題4分,共20分。

41.setzern(&xi);錯(cuò)誤,改為etzem(xi);

42.if(i%3==2)錯(cuò)誤,改為f(i%3!=2)

43.Point::init();錯(cuò)誤,改為P.inil();

44.cout?a.x?a.y?a.sum()?endl;錯(cuò)誤,g^/cout?a.getx()?a.gety()

<a.sum()?endl;

45.deletep;錯(cuò)誤,改為delete]]p;

四、完成程序題:本大題共5小題,每小題4分,共20分。

46.

Ifoul

fout.close()

47.

template<叨記nameT>

Tfun(T,xTy)

48.

intsl,s2;

(s2<>1<p)s2=>1<p

49.

friendPointmJ-fun(Pointpl,Pointp2,Pointp3)

cout?Point::Countp?endl:或者ppO.Cotnlp-

50.

stallCInty

inta

五、程吩析題:本大題

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論