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

?C++程序設(shè)計(jì)2008年10月真題試題(04737)

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

摘要:C++程序設(shè)計(jì)2008年10月真題試題及答案解析(04737),本試卷總共100分。

C++程序設(shè)計(jì)2008年10月真題試題及答案解析(04737)

C++程序設(shè)計(jì)2008年10月真題試題及答案解析(04737),本試卷總共100分。

一、單項(xiàng)選擇題

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

1.對(duì)C++語(yǔ)言和C語(yǔ)言的兼容性,描述正確的是(  )

A.C++兼容C
B.C++部分兼容C
C.C++不兼容C
D.C兼容C++

2.在C++中使用流進(jìn)行輸入輸出,其中用于屏幕輸出的對(duì)象是(  )

A.cerr
B.cin
C.cout
D.cfile

3.對(duì)使用關(guān)鍵字new所開(kāi)辟的動(dòng)態(tài)存儲(chǔ)空間,釋放時(shí)必須使用(  )

A.free
B.create
C.delete
D.realse

4.如沒(méi)有使用private關(guān)鍵字定義類的數(shù)據(jù)成員,則默認(rèn)為(  )

A.private
B.public
C.protected
D.friend

5.使用值傳遞方式將實(shí)參傳給形參,下列說(shuō)法正確的是(  )

A.形參是實(shí)參的備份
B.實(shí)參是形參的備份
C.形參和實(shí)參是同一對(duì)象
D.形參和實(shí)參無(wú)聯(lián)系

6.在函數(shù)調(diào)用時(shí),如某一默認(rèn)參數(shù)要指明一個(gè)特定值,則有(  )

A.其之前所有參數(shù)都必須賦值
B.其之后所有參數(shù)都必須賦值
C.其前、后所有參數(shù)都必須賦值
D.其前、后所有參數(shù)都不必賦值

7.設(shè)存在函數(shù)int max(int, int)返回兩參數(shù)中較大值,若求22,59,70三者中最大值,下列表達(dá)式不正確的是(  )

A.int m=max(22, max(59, 70));
B.int m=max(max(22, 59), 70);
C.int m=max(22, 59, 70);
D.int m=max(59, max(22, 70));

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

A.函數(shù)體語(yǔ)句較多
B.函數(shù)體語(yǔ)句較少
C.函數(shù)執(zhí)行時(shí)間較短
D.函數(shù)執(zhí)行時(shí)間過(guò)長(zhǎng)

9.int Func(int, int);不可與下列哪個(gè)函數(shù)構(gòu)成重載(  )

A.int Func(int, int, int);
B.double Func(int, int);
C.double Func(double, double);
D.double Func(int, double);

10.對(duì)類中聲明的變量,下列描述中正確的是(  )

A.屬于全局變量
B.只屬于該類
C.屬于該類,某些情況下也可被該類不同實(shí)例所共享
D.任何情況下都可被該類所有實(shí)例共享

11.類的私有成員可在何處訪問(wèn)(  )

A.通過(guò)子類的對(duì)象訪問(wèn)
B.本類及子類的成員函數(shù)中
C.通過(guò)該類對(duì)象訪問(wèn)
D.本類的成員函數(shù)中

12.如果沒(méi)有為一個(gè)類定義任何構(gòu)造函數(shù)的情況下,下列描述正確的是(  )

A.編譯器總是自動(dòng)創(chuàng)建一個(gè)不帶參數(shù)的構(gòu)造函數(shù)
B.這個(gè)類沒(méi)有構(gòu)造函數(shù)
C.這個(gè)類不需要構(gòu)造函數(shù)
D.該類不能通過(guò)編譯

13.一個(gè)類可包含析構(gòu)函數(shù)的個(gè)數(shù)是(  )

A.0個(gè)
B.1個(gè)
C.至少一個(gè)
D.0個(gè)或多個(gè)

14.this指針存在的目的是(  )

A.保證基類公有成員在子類中可以被訪問(wèn)
B.保證每個(gè)對(duì)象擁有自己的數(shù)據(jù)成員,但共享處理這些數(shù)據(jù)成員的代碼
C.保證基類保護(hù)成員在子類中可以被訪問(wèn)
D.保證基類私有成員在子類中可以被訪問(wèn)

15.下列關(guān)于類的權(quán)限的描述錯(cuò)誤的是(  )

A.類本身的成員函數(shù)只能訪問(wèn)自身的私有成員
B.類的對(duì)象只能訪問(wèn)該類的公有成員
C.普通函數(shù)不能直接訪問(wèn)類的公有成員,必須通過(guò)對(duì)象訪問(wèn)
D.一個(gè)類可以將另一個(gè)類的對(duì)象作為成員

16.在編譯指令中,宏定義使用哪個(gè)指令(  )

A.#include
B.#define
C.#if
D.#else

17.設(shè)類A將其它類對(duì)象作為成員,則建立A類對(duì)象時(shí),下列描述正確的是(  )

A.A類構(gòu)造函數(shù)先執(zhí)行
B.成員構(gòu)造函數(shù)先執(zhí)行
C.兩者并行執(zhí)行
D.不能確定

18.下列描述錯(cuò)誤的是(  )

A.在創(chuàng)建對(duì)象前,靜態(tài)成員不存在
B.靜態(tài)成員是類的成員
C.靜態(tài)成員不能是虛函數(shù)
D.靜態(tài)成員函數(shù)不能直接訪問(wèn)非靜態(tài)成員

19.對(duì)于友元描述正確的是(  )

A.友元是本類的成員函數(shù)
B.友元不是本類的成員函數(shù)
C.友元不是函數(shù)
D.友元不能訪問(wèn)本類私有成員

20.在哪種派生方式中,派生類可以訪問(wèn)基類中的protected成員(  )

A.public和private
B.public和protected
C.protected和private
D.僅protected

二、填空題

(本大題共20小題,每小題1分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。

11.設(shè)要把一個(gè)文件輸出流對(duì)象myFile與文件“f:myText.txt”相關(guān)聯(lián),所用的C++語(yǔ)句是:__________。

12.C++中iostream類的直接基類是________。

13.運(yùn)算符[ ]只能用________運(yùn)算符來(lái)重載,不能用友元運(yùn)算符來(lái)重載。

14.定義虛函數(shù)所用的關(guān)鍵字是________。

15.vector類中用于返回向量中第1個(gè)對(duì)象的方法是________。

16.在C++中,利用向量類模板定義一個(gè)具有20個(gè)char的向量E,其元素均被置為字符"t",實(shí)現(xiàn)此操作的語(yǔ)句是________。

17.類的繼承是指子類繼承基類的________和成員函數(shù)。

18.不同對(duì)象可以調(diào)用相同名稱的函數(shù),但可導(dǎo)致完全不同的行為的現(xiàn)象稱為_(kāi)_______。

19.________指令指示編譯器將一個(gè)源文件嵌入到帶該指令的源文件之中。

110.設(shè)類A有成員函數(shù)void Fun(void);若要定義一個(gè)指向類成員函數(shù)的指針變量pafn來(lái)指向Fun,該指針變量的聲明語(yǔ)句是:________。

111.設(shè)在程序中使用如下語(yǔ)句申請(qǐng)了一個(gè)對(duì)象數(shù)組:Point * ptr = new Point[2];則在需要釋放ptr指向的動(dòng)態(tài)數(shù)組對(duì)象時(shí),所使用的語(yǔ)句是________。

112.在保護(hù)派生中,基類權(quán)限為Private的成員在派生類中________。

113.類A有如下成員函數(shù)int A::fun(double x){return (int) x/2;}int A::fun(int x){return x*2;}設(shè)a為類A的對(duì)象,在主函數(shù)中有int s=a.fun(6.0)+a.fun(2),則執(zhí)行該語(yǔ)句后,s的值為_(kāi)_______。

114.對(duì)象傳送的消息一般由3部分組成:接收對(duì)象名、調(diào)用操作名和________。

115.將指向?qū)ο蟮闹羔樧鳛楹瘮?shù)參數(shù),形參是對(duì)象指針,實(shí)參是對(duì)象的________。

116.在使用string類的find成員函數(shù)來(lái)檢索主串中是否含有指定的子串時(shí),若在主串中不含指定的子串,find函數(shù)的返回值是________。

117.在C++中,聲明布爾類型變量所用的關(guān)鍵字是________。

118.執(zhí)行下列代碼int a=29, b=100;cout<<setw(3)<<a<<b<<endl;程序的輸出結(jié)果是:________。

119.執(zhí)行下列代碼cout <<″Hex:″<< hex << 255;程序的輸出結(jié)果為_(kāi)_______。

120.C++語(yǔ)言中可以實(shí)現(xiàn)輸出一個(gè)換行符并刷新流功能的操控符是________。

三、改錯(cuò)題

(本大題共5小題,每小題2分,共10分)下面的類定義中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并給出修改意見(jiàn)。

21.#include<iostream.h>main( ){int x=5, y=6;const int * p=&x;*p=y;cout<<*p<<endl;}

22.#include<iostream.h>class f{private: int x,y;public: f1( ){x=0; y=0;}print( ){cout<<x<<"<<y<<endl;}}main( ){f a;a.f1(1,1);a.print( );}

23.#include<iostream.h>class f{private: int x=0, y=0;public: void f1(int a, int b){x=a; y=b;}void get( ){cout<x<<','<<y<<endl;};main( ){f a;a.f1(1,3);a.get ( );}

24.#include<iostream.h>class point{private:float x;public:void f(float a){x=a;}void f( ){x=0;}friend float max(point& a, point& b);};float max(point& a, point& b){return(a.x>b.x)? a.x: b.x;}main( ){point a, b;a.f(2.2);b.f(3.3);cout<<a.max(a,b);}

25.#include<iostream.h>template<class T>class f{private: T x, y;public:void f1(T a, T b){x=a;y=b;}T max( ){retum(x>y)?x:y;}};main( ){f a;a.f1(1.5,3.8);cout<<a.x<<a.y<<a.max()<<endl;}

四、完成程序題

(本大題共5小題,每小題4分,共20分)

31.完成下面類中的成員函數(shù)的定義。class point{private: int m, n;public: point(int, int);point(point&);};point:: point(int a,int b){m=a;________=b;}point:: point(________) {m=t.m;n=t.n;}

32.下面是一個(gè)輸入半徑,輸出其面積和周長(zhǎng)的C++程序,在下劃線處填上正確的語(yǔ)句。#include<iostream> using namespace std;________ pi=3.14159;void main( ){double r;cout<<″r=″;___________ ;double l=2.0*pi*r;double s=pi*r*r;cout<<″ The long is:″<<l<<endl;cout<<″The area is:″<<s<<endl;}

33.在下劃線處填上缺少的部分。#include<iostream>#include<fstream>using namespace std;class complex{public: int real;int imag;complex(int r=0, int i=0){real=r;imag=i;}};complex operator+(________,complex& b){int r=a.real+b.real;int i=a.imag+b.imag;return_________;}void main( ){complex x(1, 2), y(3, 4), z;z=x+y;cout<<z.real<<"+"<<z.imag<<"i"<<endl;}

34.程序的輸出結(jié)果如下:1,950,30請(qǐng)根據(jù)輸出數(shù)據(jù)在下面程序中的下劃線處填寫正確的語(yǔ)句。 源程序如下: #include<iostream>using namespace std;class base{private: int m;public: base( ){ };base(int a):m(a){}int get( ){return m;}void set(int a){m=a;}};void main() {base*ptr=new base[2];ptr- >set(30);ptr= _________;ptr- >set(50);base a[2]={1, 9};cout<<a[0].get()<<","<<a[1].get()<<endl;cout<<ptr->get( )<<″,″;ptr=ptr-1;cout<<________<<endl;delete[ ]ptr;}

35.在下面橫線處填上求兩個(gè)浮點(diǎn)數(shù)之差的cha函數(shù)的原型聲明、調(diào)用方法。#include<iostream>using namespace std;void main( ){float a,b;________ //函數(shù)cha的原型聲明a=12.5;b=6.5;float c=_________;//調(diào)用函數(shù)chacout<<c<<endl;}float cha(float x, float y) {float w;w=x-y;return w;}

五、程序分析題

(本大題共4小題,每小題5分,共20分)

41.給出下面程序的輸出結(jié)果。#include<iostream>template <class T> class Sample {T n;public:Sample(T i){n=i;}int operator==(Sample &);};template int Sample:: operator==(Sample&s) {if(n==s.n)return 1;elsereturn 0;}void main( ) {Samples1(2), s2(3);cout<<″s1與s2的數(shù)據(jù)成員″<<(s1==s2?″相等″:″不相等″)<<endl;Sample<double>s3(2.5), s4(2.5);cout<<″s3與s4的數(shù)據(jù)成員″<<(s3==s4 ? ″相等″:″不相等″)<<endl;}

42.給出下面程序的輸出結(jié)果。#include<iostream>using namespace std;template<class T>T max(T m1, T m2){return(m1>m2)?m1:m2;}void main( ){cout<<max(1,7)<<" "<<max(2.0,5.0)<<endl;cout<<max('y','b')<<" "<<max("A","a")<<endl;}

43.給出下面程序的輸出結(jié)果#include<iostream>using namespace std;class A {public: int x;A( ){ }A(int a){x=a;}int get(int a){return x+a;}};void main( ){A a(8);int(A:: *p)(int);p=A:: get;cout<<(a.*p)(5)<<endl;A*pi=&a;cout<<(pi->*P)(7)<<endl;

44.給出下面程序的輸出結(jié)果。#include<iostream>#include<string>using namespace std;class Book {char*title;char*author;int numsold;public:Book( ){ }Book(const char*str1, const char*str2, const int num){int len=strlen(strl);title=new char[len+1];strcpy(title, str1);len=strlen(str2);author=new char[len+1];strcpy(author, str2);numsold=num;}void setbook(const char*str1, const char*str2, const int num){int len=strlen(str1);title=new char[len+1];strcpy(title, str1);len=strlen(str2);author=new char[len+1];strcpy(author, str2);numsold=num;}~Book( ){delete title;delete author;}void print(ostream&output){output<<″書名:″<<title<<endl;output<<″作者:″<<author<<endl;output<<″月銷售量:″<<numsold<<endl;}};void main( ){Book obj1(″數(shù)據(jù)結(jié)構(gòu)″, ″嚴(yán)蔚敏″, 200), obj2;obj1.print(cout);obj2.setbook(″C++語(yǔ)言程序設(shè)計(jì)″, ″李春葆″, 210);obj2.print(cout);}

六、程序設(shè)計(jì)題

(本大題共1小題,共10分)

51.在三角形類TRI實(shí)現(xiàn)兩個(gè)函數(shù),功能是輸入三個(gè)頂點(diǎn)坐標(biāo)判斷是否構(gòu)成三角形#include<iostream>#include<math.h>class point{private: float x, y;public: point(float a, float b){x=a; y=b;}point( ){x=0; y=0;}void set(float a, float b){x=a;y=b;}float getx( ){return x;}float gety( ){return y;}};class tri{point x, y, z;float s1, s2, s3;public: ....settri(....); //用于輸入三個(gè)頂點(diǎn)坐標(biāo)....test(....); //用于判斷是否構(gòu)成三角形};請(qǐng)寫出兩個(gè)函數(shù)的過(guò)程(如果需要形式參數(shù),請(qǐng)給出形參類型和數(shù)量,以及返回值類型)

溫馨提示:因考試政策、內(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í)集錦】

    下載