違法信息舉報(bào) 客服熱線:400-118-7898
廣告
?
專接本欄目測(cè)試廣告

?自考C++程序設(shè)計(jì)2018年10月試題

自考 責(zé)任編輯:彭雅倩 2019-06-24

摘要:自考C++程序設(shè)計(jì)2018年10月試題及答案解析,該試卷為自考C++程序設(shè)計(jì)歷年真題試卷,包含答案及詳細(xì)解析。

自考C++程序設(shè)計(jì)2018年10月試題及答案解析

自考C++程序設(shè)計(jì)2018年10月試題及答案解析,該試卷為自考C++程序設(shè)計(jì)歷年真題試卷,包含答案及詳細(xì)解析。

一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分。)在每小題列出的備選項(xiàng)中只有一項(xiàng)是最符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均不得分。

1.若有以下類型標(biāo)識(shí)符定義:char c="c"; int a=4; float f=3.14; double d=1.212; 則表達(dá)式C+a/(int)d+f的結(jié)果類型是(  )

A.float
B.char
C.int
D.double

2.設(shè)x和y均為bool量,則x&&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.以下說(shuō)法中正確的是(  )

A.C++程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行
B.C++程序總是從main函數(shù)開始執(zhí)行
C.C++中函數(shù)必須有返回值
D.C++中函數(shù)名必須唯一

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

A.class virtual B:public A
B.class B:virtual public A
C.class B:public A virtual
D.virtual class B:public A

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

A.函數(shù)體語(yǔ)句較多
B.函數(shù)體語(yǔ)句較少
C.函數(shù)執(zhí)行時(shí)間較短
D.函數(shù)被頻繁調(diào)用

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

A.template﹤class T﹥
B.template﹤class T, class int i﹥
C.template﹤class T, typename T﹥
D.template﹤class T1,T2﹥

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

A.基類指針
B.類名
C.派生類指針
D.對(duì)象名

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

A.靜態(tài)成員不屬于對(duì)象,是類的共享成員
B.靜態(tài)數(shù)據(jù)成員要在類外定義和初始化
C.調(diào)用靜態(tài)成員函數(shù)時(shí)要通過(guò)類或?qū)ο蠹せ?,所以靜態(tài)成員函數(shù)擁有this指針
D.非靜態(tài)成員函數(shù)也可以操作靜態(tài)數(shù)據(jù)成員

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

A.一個(gè)派生類可以作為另一個(gè)派生類的基類
B.派生類至少有一個(gè)基類
C.派生類的成員除了它自己的成員外,還包含了它的基類的成員
D.派生類中繼承的基類成員的訪問(wèn)權(quán)限到派生類保持不變

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

A.int f(void);
B.void f(hat);
C.int f(a);
D.void f(double a);

12.如果有int型變量a,則定義指向變量a的指針p正確的寫法是(  )

A.int p=&a
B.int * P=&a
C.int&p=*a
D.int*p = a

13.假定指針變量P定義為“int *P=new int(100);”,要釋放P所指向的動(dòng)態(tài)內(nèi)存,應(yīng)使用語(yǔ)句(  )

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

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

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

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

A.stdio
B.math
C.iostream
D.stdlib

16.允許用戶為類定義一種模式,使得類中的某些數(shù)據(jù)成員及某些成員函數(shù)的返函值能取任意類型,這是一個(gè)(  )

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

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

A.通過(guò)運(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è)流對(duì)象并打開一個(gè)磁盤文件時(shí),文件的隱含打開方式為(  )

A.ios::out | ios::binary
B.ios::in | ios::binary
C.ios::out
D.ios::in

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

A.函數(shù)模板只是對(duì)函數(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.對(duì)類的構(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分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。

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

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

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

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

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

16. C++中字符串是通過(guò)字符數(shù)組來(lái)表示的,每一個(gè)字符串都有一個(gè)結(jié)尾字符_________。

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

18.假定x=15,則表達(dá)式X﹤=10?20:30的值為_________。

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

110.假設(shè)類F的對(duì)象f是類A的成員對(duì)象,則“A a”語(yǔ)句執(zhí)行時(shí),先調(diào)用類_________的構(gòu)造函數(shù)。

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

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

113.C++中字符串"a+b=12 "的長(zhǎng)度為_________。

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

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

116.C++中一般的程序都要有兩條語(yǔ)句,包含頭文件“#include ﹤iostream﹥”語(yǔ)句和使用命名空間“_________”語(yǔ)句。

117.用new申請(qǐng)某一個(gè)類的動(dòng)態(tài)對(duì)象數(shù)組時(shí),在該類中必須能夠匹配到?jīng)]有形參的或缺省參數(shù)的_________,否則應(yīng)用程序會(huì)產(chǎn)生一個(gè)編譯錯(cuò)誤。

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

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

120.假如一個(gè)類的名稱為F,使用這個(gè)類的一個(gè)對(duì)象初始化該類的另一個(gè)對(duì)象時(shí),可以調(diào)用_________構(gòu)造函數(shù)來(lái)完成此功能。

三、改錯(cuò)題(本大題共5小題,每小題2分,共10分)

21.#include ﹤iostream.h﹥using namespace std;void setzero(int &a) {a=0; }int main( ){int x1=10; setzero(&x1);cout ﹤﹤x1﹤﹤ endl;return 0;}

22.改正后程序輸出結(jié)果為2 5 8 11 14#include ﹤iostream. h﹥using namespace std;void main( ){int i=1;while(i﹤=15){i++; if(i%3==2) continue;else cout ﹤﹤1﹤﹤" ";}}

23.#include ﹤iostream. h﹥using namespace std;class Point{public: void init( ) { }static void output( ) { }};void main( ){Point P;Point:: init( );P. output( );}

24.#include ﹤iostream. h﹥using namespace std;class A{int x, y; public: void set(int a, int b){ x=a; y=b;}int getx( ){return x; }int gety( ){return y;}int sum( ){return x+y;}}; int main( ) {A a; a. set(3, 4);cout﹤﹤a.x﹤﹤a.y﹤﹤ a.sum( )﹤﹤ endl;return 0;}

25.申請(qǐng)一個(gè)長(zhǎng)度為10的int型空間,之后釋放該空間。#include ﹤iostream. h﹥using namespace std;int main( ){int *p=new int[ 10];delete p;return 0;}

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

31.把從鍵盤上輸入的一批整數(shù)(以-1作為終止輸入的標(biāo)志)保存到文本文件“a:xxk1.dat”中。#include ﹤iostream﹥#include ﹤fstream.h﹥#include ﹤stdlib. h﹥void main( ){ofstream fout("a: xxk1.dat");if( _____________ ) {cout﹤﹤"文件沒(méi)有打開!"﹤﹤end;exit(1);}int x; cin﹥﹥x;while(x! =-1){fout ﹤﹤x﹤﹤' ';cin ﹥﹥x;}_____________; //關(guān)閉文件}

32.#include ﹤iostream. h﹥using namespace std;_____________;_____________;{T tmp =x*x+y*y+x*y; return tmp;}int main( ){int x1=1, y1 =4;float x2=1.1, y2=2.2;double x3=2.0, y3=3.1;cout﹤﹤fun(x1, y1)﹤﹤endl;cout ﹤﹤fun(x2, y2)﹤﹤endl;cout ﹤﹤fun(x3, y3)﹤﹤ endl;return 0;}

33.完成程序,使其輸出結(jié)果為79#include ﹤iostream. h﹥using namespace std;int main( ){int a[6]={23,15,64,33,40,58};_____________;s1=s2=a[0];for(int *p=a+1; p﹤a+6; p++) {if(s1﹥*p) s1=*p;if _____________;}cout ﹤﹤s1 +s2 ﹤﹤endl;return 0;}

34.#include ﹤iostream.h﹥class Point{int X,Y;public:Point(int x=0, int y=0){ X=x; Y=y; Countp ++;}Point( point &p){X=p. X; Y=p.Y; }~Point( ){ Countp--; }_____________;static int Countp; void display( ){ cout ﹤﹤X﹤﹤", "﹤﹤Y﹤﹤", "; }};Point myfun( Point p1, Point p2, Point p3){ Point tmp(p1. X+p2. X+P3. X, p1. Y+p2.Y+p3. Y);return tmp;}int Point:: Countp =0;void main( ){ Point pp,p1(1,2),p2(1);Point p=myfun(pp0, pp1, pp2);p. display ( );_____________; //輸出Countp的值}

35.完成程序,使其結(jié)果為 x=6,y=10 x=11,y=10#include ﹤iostream.h﹥using namespace std;class Sample{private: int x;_____________;public:Sample (int a);void print( );};Sample:Sample( _____________ ){ x=a; y=x++;}void Sample:: print( ){cout ﹤﹤"x="﹤﹤x﹤﹤",y="﹤﹤y﹤﹤end;}int Sample: : y =25;void main( ){ Sample s1(5);Sample s2(10);s1. print( );s2. print( );}

五、程序分析題(本大題共2小題,每小題10分,共20分)

41.#include ﹤iostream﹥using namespace std;void Result(char ch){switch(ch){case 'A':case 'a': cout ﹤﹤"well!";break;case 'B': case 'b':cout ﹤﹤"good!"; break;case 'C':case 'c':cout ﹤﹤"pass!";break;default:cout ﹤﹤"bad!"; break;}}void main( ){char a1='b', a2='C', a3='f';cout ﹤﹤"Results:"﹤ endl;Result(a1);Result(a2 );Result(a3);Result('A');}

42.#include ﹤iostream.h﹥using namespace std;class Sample {protected:int x;public:Sample( ) {x=0; }Sample(int val) { x=val;}void operator++( ){ x++;}};class Derived:public Sample{int y;public:Derived( ):Sample( ) { y=0;}Derived ( int val1, int val2):Sample(val1 ) { y=val2;}void operator--( ) {x--; y--;}void disp( ){cout﹤﹤"x="﹤﹤x﹤﹤",y="﹤﹤y﹤﹤ endl;}};void main( ) {Derived d(3, 5);D. disp( ); d++;D. disp( ); d--; d--;D. disp( );}

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

51.設(shè)計(jì)一個(gè)圓類circle和一個(gè)桌子類table。circle類包含私有數(shù)據(jù)成員radius和求圓面積的成員函數(shù)getarea( );table類包含私有數(shù)據(jù)成員height和返回高度的成員函數(shù)getheight( )。roundtable類繼承所有上述類的數(shù)據(jù)成員和成員函數(shù),添加了私有數(shù)據(jù)成員color和相應(yīng)的成員函數(shù)。其中,main函數(shù)已給出。請(qǐng)完成程序的其他部分。void main( ) { roundtable rt(0.8,1.2,"黑色");cout﹤"圓桌屬性數(shù)據(jù)"﹤endl; cout﹤﹤"高度:"﹤﹤rt.getheight( )﹤"米"﹤﹤endl;cout﹤"面積:"﹤﹤tr. geared( )﹤"平方米"﹤﹤endl;cout﹤﹤"顏色"﹤﹤rt. getcolor( )﹤﹤endl; }

溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

自考備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

資料下載
  • 00152《組織行為學(xué)》【知識(shí)集錦】

    下載
  • 00158《資產(chǎn)評(píng)估》【知識(shí)集錦】

    下載
  • 00148《國(guó)際企業(yè)管理》【知識(shí)集錦】

    下載
  • 00160《審計(jì)學(xué)》【知識(shí)集錦】

    下載