2020年10月全國自考《04737 C++程序設(shè)計》真題(無答案)_第1頁
2020年10月全國自考《04737 C++程序設(shè)計》真題(無答案)_第2頁
2020年10月全國自考《04737 C++程序設(shè)計》真題(無答案)_第3頁
2020年10月全國自考《04737 C++程序設(shè)計》真題(無答案)_第4頁
2020年10月全國自考《04737 C++程序設(shè)計》真題(無答案)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

絕密★考試結(jié)束前

全國2020年10月高等教育自學(xué)考試

C++程序設(shè)計試題

課程代碼:04737

1.請考生按規(guī)定用筆將所有試題的答案涂、寫在答題紙上。

2.答題前,考生務(wù)必將自己的考試課程名稱、姓名、準(zhǔn)考證號用黑色字跡的簽字筆或鋼筆

填寫在答題紙規(guī)定的位置上。

選擇題部分

注意事項:

每小題選出答案后,用2B鉛筆把答題紙上對應(yīng)題目的答案標(biāo)號涂黑。如需改動,用橡皮

擦干凈后,再選涂其他答案標(biāo)號。不能答在試題卷上。

一、單項選擇題:本大題共20小題,每小題1分,共20分。在每小題列出的備選項中

只有一項是最符合題目要求的,請將其選出。

1.下列選項中,能表現(xiàn)出C++語言的主要特點的是

A.繼承于C#語言B.可以進(jìn)行面向?qū)ο蟮某绦蛟O(shè)計

C.不能進(jìn)行結(jié)構(gòu)化程序設(shè)計D.基于數(shù)據(jù)流的程序設(shè)計

2.下列關(guān)于C++語言類庫提供輸入流類和輸出流類的描述中,正確的是

A.輸入流類ostreamB.輸出流類istream

C.cin是istream類的對象D.cout是istream類的對象

3.下列關(guān)于封裝特點的描述中,錯誤的是

A.隱藏對象的屬性B.公開實現(xiàn)的細(xì)節(jié)

C.提供使用的信息D.公開的信息是與外界交互的接口

4.下列關(guān)于訪問范圍說明符public、private,protected的描述中,正確的是

A.每種關(guān)鍵字至少出現(xiàn)1次

B.不加說明符默認(rèn)為公有的

C.3種關(guān)鍵字出現(xiàn)的先后次序沒有限制

D.成員的訪問范圍由它之后最近的說明符決定

5.有關(guān)語句"Student*ss=newStudent[2];delete口ss;"的描述中,正確的是

A.delete[]ss釋放動態(tài)對象數(shù)組B.delete[]ss調(diào)用3次析構(gòu)函數(shù)

C.newStudent[2]分配8個字節(jié)的內(nèi)存D.newStudent[2]調(diào)用一次構(gòu)造函數(shù)

6.“classDemo{public:voidSetValue(){主函數(shù)中有語句uconstDemoObj;

Obj.SetValueO;'',正確的說法是

A.Obj是常量對象B.SetValue()函數(shù)值為整型

C.constDemoObj;編譯時錯誤D.Obj.SetValue。;編譯時正確

浙04737#C++程序設(shè)計試題第1頁(共10頁)

7.設(shè)類Test將其他類對象作為成員,則創(chuàng)建類Test的對象時,下列描述正確的是

A.先執(zhí)行類的構(gòu)造函數(shù)B.先執(zhí)行成員對象的構(gòu)造函數(shù)

C.先執(zhí)行類的析構(gòu)函數(shù)D.先執(zhí)行成員對象的析構(gòu)函數(shù)

8.下列關(guān)于重載流插入和流提取運算符的描述中,正確的是

A.不可以對流插入運算符進(jìn)行重載B.不可以對流提取運算符進(jìn)行重載

C.重載函數(shù)不能是流類庫中的成員D.流是標(biāo)準(zhǔn)類庫用戶能繼承也能修改

9.有定義“Demo&Demo::operatort-+(){...return*this;}”,若obj是類Demo的對象,

則以下描述錯誤的是

A.自增運算符“++”可以被重載B.函數(shù)可以區(qū)分前置及后置情況

C.++obj等價于obj.operator++D.obj++等價于obj.operator++()

10.當(dāng)派生類私有繼承基類時,基類中的公有成員和保護(hù)成員成為派生類的

A.public成員B.private成員

C.protected成員D.友元

11.下列關(guān)于派生類對象的初始化敘述中,正確的是

A.是由基類的構(gòu)造函數(shù)實現(xiàn)的

B.是由派生類的構(gòu)造函數(shù)實現(xiàn)的

C.是由基類和派生類的構(gòu)造函數(shù)實現(xiàn)的

D.是系統(tǒng)自動完成的不需程序設(shè)計者干預(yù)

12.下面關(guān)于基類和派生類的描述中,正確的是

A.一個類不能被多次說明為某個派生類的宜接類,可以不止一次地成為間接基類

B.一個類可以被多次說明為某個派生類的直接類,可以不止一次地成為間接基類

C.一個類不能被多次說明為某個派生類的直接類,但只能成為一次間接基類

D.一個類可以被多次說明為某個派生類的直接類,但只能成為一次間接基類

13.對于下面類定義,正確的敘述是

classA{

public:virtualvoidfuncl(){}

voidfunc2(){}};

classB:publicA{

public:voidtime1(){cout?BclassBfunc1"?endl;}

virtualvoidfunc2(){cout?wclassBfunc2"?endl;});

A.A::func2()和B::funcl()都是虛函數(shù)

B.A::func2()和B::funcl()都不是虛函數(shù)

C.B::funcl()是虛函數(shù),而A::func2()不是虛函數(shù)

D.B::funcl()不是虛函數(shù),而A::func2()是虛函數(shù)

14.關(guān)于純虛函數(shù)和抽象類的描述中,錯誤的是

A.純虛函數(shù)是一種特殊的虛函數(shù),它沒有具體實現(xiàn)

B.抽象類一般作為基類使用,其純虛函數(shù)的實現(xiàn)由派生類給出

C.抽象類中一定具有一個或多個純虛函數(shù)

D.抽象類的派生類中一定不會再有純虛函數(shù)

浙04737#C++程序設(shè)計試題第2頁(共10頁)

15.下列流類中,可以用于輸入/輸出的是

A.iosB.(stream

C.iostreamD.strstream

16.對ignore。成員函數(shù)原型“istream&ignore(intn=l,intdelim=EOF);”描述正確的是

A.跳過輸出流中的n個字符B.跳過delim及其之后的所有字符

C.常用于跳過輸出中的無效部分D.cin.ignore。等效于cin.ignore(1,EOF)

17.在C++中打開一個文件就是將指定的文件與下列哪個選項建立關(guān)聯(lián)

A.流對象B.流類

C,流函數(shù)D.流結(jié)構(gòu)

18.以下不能正確創(chuàng)建輸出文件對象并使其與磁盤文件相關(guān)聯(lián)的語句是

A.ofstreammyfile;myfile.open("d:ofile.txt'');

B.ofstream?myfile=newofstream;myfile->open(i€d:ofile.txf,);

C.ofstreammyfile.open(ud:ofile.txf,);

D.ofstream*myfile=new(ud:ofile.txf,);

19.假設(shè)聲明了以下函數(shù)模板,并定義了“inti;charc;",則錯誤的調(diào)用語句是

template<classT>

Tmax(Tx,Ty){return(x>y)?x:y;}

A.max(i,i)B.max(i,c)

C.max(c,c)D.max((int)c,i)

20.F面對模板的聲明正確的是

A.templateclass<Sl?S2>B.template<classS1,S2>

C.template<classS1;classS2>D.template<classS1,classS2>

非選擇題部分

注意事項:

用黑色字跡的簽字筆或鋼筆將答案寫在答題紙上,不能答在試題卷上。

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

21.通常根據(jù)是否可以直接操縱計算機(jī)底層硬件,將程序設(shè)計語言分為低級語言、中級

語言和。

22.函數(shù)調(diào)用時參數(shù)的傳遞為“傳引用”,是傳遞對象的。

23.面向?qū)ο蟮某绦蛟O(shè)計方法使得程序結(jié)構(gòu)清晰,相互協(xié)作容易,更重要的是程序的

性大大提升了。

24.從邏輯關(guān)系上看,典型的C++程序的結(jié)構(gòu)包括類的定義、類中成員函數(shù)的實現(xiàn)及

25.當(dāng)程序創(chuàng)建一個對象時,系統(tǒng)自動調(diào)用來初始化該對象。

26.已知類A中的兩個成員函數(shù)fl()和f2(),如果在fl()中不能直接調(diào)用f2(),則

是靜態(tài)函數(shù)。

27.重載賦值運算符后,賦值語句的功能是將一個對象中指針成員變量指向的內(nèi)容復(fù)制

到另一個對象中指針成員變量指向的地方,這樣的拷貝叫“

浙04737#C++程序設(shè)計試題第3頁(共10頁)

28.運算符重載相當(dāng)于定義了一個以為名稱的函數(shù)。

29.定義類時,保護(hù)成員的訪問范圍比成員的訪問范圍大。

30.學(xué)生集合包含本科生集合,如果一個人是本科生,他/她必然也是一位學(xué)生,設(shè)計程

序時,集合作為派生類。

31.聲明虛函數(shù)成員的一般格式為:"函數(shù)返回值類型函數(shù)名(形參表

32.定義4個類,類A中定義公有成員函數(shù)Print。為虛函數(shù),類A派生了類B和類D,

類B派生了類C,3個派生類均是公有繼承也都重寫了Print。函數(shù),則有個派

生類中的Print。是虛函數(shù)。

33.要將s="C++”輸出為“@@@C++”這樣的格式,應(yīng)該使用的語句是“cout<<

?setw(6)?s;,,o

34.文件的I/O由ifstream>和fstream三個類提供。

35.類模板“template<classT>classX其中友元函數(shù)f對特定類型T(如int),使函

數(shù)f(X〈int>&)成為X〈int>模板類的友元,則其說明應(yīng)為。

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

在答題卡(紙)指定位置上填寫答案,錯填、不填均無分。

36.請將下面程序補充完整,使輸出為:

x=l,y=10

x=2

#inc1ude<iostream>

usingnamespacestd;

classSample

intx,y;

public:

voidset(inti,intj){x=i;y=j;}

voidprint()

if(y!=0)cout?,',y=,,?y;

cout?endl;

}

);

intmain()

{Samplea;

a.set(lJO);

a.print();

a.printQ;

return0;

)

浙04737#C++程序設(shè)計試題第4頁(共10頁)

37.請將下面程序補充完整,使輸出為:

-x=ll,ch=l

-i=ll,x=201,ch=l,i=lI

#include<iostream>

usingnamespacestd;

charch=,1*;

voidfun(inti)

(

intj=211;

intx=201;

cout?,,-i=',?i?",x=,,?x?'\ch=,,?ch?',,i=',?i?endl;

)

intmain()

(

cout?,,-x=,,?x?',,ch=,,?ch?endl;

return0;

)

38.請將下面程序補充完整,實現(xiàn)復(fù)數(shù)的加法。

#include<iostream>

usingnamespacestd;

classComplex

{public:

intreal,imag;

Complex(intr=O,inti=0){real=r;imag=i;}

);

Complexoperator+(,Complex&b)

(

intr=a.real+b.real;

inti=a.imag+b.imag;

return;

)

intmain()

(

Complexx(l,2),y(3,4),z;

z=x+y;

cout?z.real?',+,,?z.imag?,,i',?endl;

return0;

浙04737#C++程序設(shè)計試題第5頁(共10頁)

39.請將下面程序補充完整,使輸出為:

3.142

#include<iostream>

#include<iomanip>

usingnamespacestd;

intmain()

(

doublex=3.1415926;

cout.width(5);

cout??x?endl;

return0;

}

40.程序完成后可以顯示文本文件中的內(nèi)容。

#include<iostream>

#include<fstream>

usingnamespacestd;

intmain()

(

fstreaminflle;

infile.open("myfile.txtn,ios::in);

iR)

(

coutvv”文件打開時發(fā)生錯誤"Wendi;

return0;

}

charch;

while(ch!=EOF)

(

;〃從文件中讀取一個字符,存放在ch中

cout?ch;

}

infile.close();

return0;

浙04737#C++程序設(shè)計試題第6頁(共10頁)

四、程序分析題:本大題共5小題,每小題6分,共30分。

41.寫出以下程序的輸出結(jié)果。

#include<iostream>

usingnamespacestd;

intx=2;

inty=5;

int&value(int&z){y=2*5;returnz;}

intmain()

(

value(x)=10;

cout?”x、y的值分別是:H?endl;

cout?x?end1?y;

return0;

)

42.寫出以下程序的輸出結(jié)果。

#include<iostream>

usingnamespacestd;

classF{

public:

intfun(int,int);

charfun(char,char);

intfiin(double,double);

};

intF::fun(intx,inty){returnx%y;}

charF::fun(charx,chary)

(

if(x>y)retumy;

elsereturnx;

)

intF::fun(doublex,doubley){retum((int)(x+y+0.5));}

intmain()

(

Fa;

cout?a.fun(9,11)?endl;

cout?a.fun(3.59,4.06)?end1;

coutwa.fun(0,K);

return0;

}

浙04737#C++程序設(shè)計試題第7頁(共10頁)

43.寫出以下程序的輸出結(jié)果。

#include<iostream>

usingnamespacestd;

classSample

{

private:intx;

public:

Sample(){}

Sample(inta){x=a;}

voiddisp(){cout?Mx=w?x?endl;}

friendSampleoperator*(Sample&sl,Sample&s2);

voidLeapYear()

(

iRx%4==0&&x%100!=0||x%400=0)coutvv”是閏年”;

elsecoutvv”不是閏年”;

}

};

Sampleoperator*(Sample&sl.Sample&s2){returnSample(sl.x*s2.x);)

intmain()

(

Sampleobjl(20);

Sampleobj2(101);

Sampleobj3;

obj3=objI*obj2;

obj3.disp();

obj3.LeapYear();

return0;

)

44.寫出以下程序的輸出結(jié)果。

#include<iostream>

usingnamespacestd;

classPoint

{public:

Point(intxx=0,intyy=0):X(xx),Y(yy){coutw”對象“v〈Xvv”被構(gòu)造“v<endl;}

Point(Point&p);

?Point。;

intGetX(){returnX;}

浙04737#C++程序設(shè)計試題第8頁(共10頁)

intGetY(){returnY;}

private:intX,Y;

);

Point::Point(Point&p)

{X=p.X+l;Y=p.Y+2;

coutw”對象”"X<v”被構(gòu)造“wendl;

}

Point::?Point(){cout〈v”對象“wXvv”被析構(gòu)“vvendl;}

intmain()

{PointA(l,2);PointB(A);PointC(A);

return0;

}

45.寫出以下程序的輸出結(jié)果。

#include<iostream>

usingnamespacestd;

classAnimal{

public:virtualvoidcry()=0;

};

classCat:publicAnimal{

public:

voidcry()

{coutvv”程序設(shè)計\n"vvend1;}

);

classDog:publicAnimal

{

public:

voidcry()

{cout?”C++”;}

);

voidfun(Animal*ptr){ptr->cry();}

intmain()

{Catcat;Dogdog;

Animal*p;

p=&cat;fun(p);

p=&d

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論