違法信息舉報 客服熱線:400-118-7898
廣告
?
專接本欄目測試廣告

?自考C++程序設計2014年4月試題

自考 責任編輯:彭雅倩 2019-06-24

摘要:自考C++程序設計2014年4月試題及答案解析,該試卷為自考C++程序設計歷年真題試卷,包含答案及詳細解析。

自考C++程序設計2014年4月試題及答案解析

自考C++程序設計2014年4月試題及答案解析,該試卷為自考C++程序設計歷年真題試卷,包含答案及詳細解析。

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

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

A.類本身的成員函數(shù)可以訪問自身的任何成員
B.類的對象只能訪問公有成員
C.普通函數(shù)可以不通過對象直接訪問類的公有成員
D.一個類可以包含另一個類的對象作為成員

2.只能在自身類和子類成員函數(shù)中被訪問,無法通過對象在類外訪問的成員屬于(  )

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

3.面向?qū)ο笾械摹皩ο蟆笔侵?  )

A.行為抽象
B.數(shù)據(jù)抽象
C.行為抽象和數(shù)據(jù)抽象的統(tǒng)一
D.行為抽象和數(shù)據(jù)抽象的對立

4.在類外定義成員函數(shù)時,::運算符兩側(cè)分別連接(  )

A.返回值類型 函數(shù)名
B.返回值類型 類名
C.函數(shù)名 類名
D.類名 函數(shù)名

5.設函數(shù)int& index(int * a, int i)返回數(shù)組a中下標為i的元素,如存在整型數(shù)組int Array[ ]={1,2,3},在執(zhí)行index(Array, 2)++后,Array中各元素值為(  )

A.{0, 1, 2}
B.{1, 1, 2}
C.{1, 2, 4}
D.{0, 2, 3}

6.類構(gòu)造函數(shù)定義的位置是(  )

A.類體內(nèi)或體外
B.只是在類體內(nèi)
C.只在類體外
D.在類的成員函數(shù)中

7.設存在數(shù)組a,其長度為Len,則下列哪項泛型算法用于在a中尋找值Value的位置(  )

A.reverse(a, a+Len, Value);
B.sort(a, a+Len, Value);
C.find(a, a+Len, Value);
D.copy(a, a+Len, Value);

8.關(guān)于對象的性質(zhì),下列描述錯誤的是:(  )

A.同一類對象間可相互賦值
B.可以使用對象數(shù)組
C.對象不可以用作函數(shù)參數(shù)
D.一個對象可以用作另一個類的成員

9.聲明一個沒有初始化參數(shù)的對象,需調(diào)用(  )

A.指定參數(shù)構(gòu)造函數(shù)
B.拷貝構(gòu)造函數(shù)
C.初始化函數(shù)
D.默認構(gòu)造函數(shù)

10.下列運算符不能重載的是(  )

A.!
B.sizeof
C.new
D.delete

11.如P是一指針類型表達式,則下列表達式中不是左值表達式的是(  )

A.P
B.*P
C.&P
D.P+1

12.使用下列流格式控制符能輸出一個換行符的是(  )

A.dec
B.oct
C.hex
D.endl

13.下列表達式,能將P聲明為常量指針的是(  )

A.const int * P;
B.int *const P;
C.const int * const P;
D.int * P;

14.C++程序文件擴展名為(  )

A..cpp
B..h
C..lib
D..obj

15.對C++中主函數(shù)描述正確的是(  )

A.名稱為main,可為多個
B.名稱不限,可為多個
C.名稱為main,必須有且只能有一個
D.名稱不限,必須有且只能有一個

16.假定有char * P="Hello";,要輸出這個字符串的地址值的正確寫法是(  )

A.cout﹤﹤ *P
B.cout﹤﹤P
C.cout﹤﹤&P
D.cout﹤﹤(void *)P

17.下列描述錯誤的是(  )

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

18.對于友元描述正確的是(  )

A.友元是本類的成員函數(shù)
B.友元不是本類的成員函數(shù)
C.友元不是函數(shù)
D.以上皆不正確

19.一個函數(shù)功能不太復雜,但要求頻繁使用,則該函數(shù)適合作為(  )

A.內(nèi)聯(lián)函數(shù)
B.重載函數(shù)
C.遞歸函數(shù)
D.嵌套函數(shù)

20.下列默認參數(shù)的聲明不正確的是(  )

A.int max(int a, int b, int c, int d=0);
B.int max(int a, int b, int c=0, int d=0);
C.int max(int a=0, int b, int c=0, int d=0);
D.int max(int a, int b=0, int c=0, int d=0);

二、填空題(本大題共20小題,每小題1分,共20分)請在每小題的空格中填上正確答案。錯填、不填均無分。

11.C++程序的編譯是以_________為單位進行的。

12.默認參數(shù)是在_________中說明的,默認參數(shù)可以多于一個。

13.通過C++語言中的_________機制,可以從現(xiàn)存類中構(gòu)建其子類。

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

15.基類的公有成員在通過公有派生得到的子類中訪問權(quán)限是_________。

16.要關(guān)閉一個輸出流對象myFile,所用的C++語句是_________。

17.執(zhí)行下列代碼:double pi= 3.1415926; cout﹤﹤setprecision(5)﹤﹤pi; 程序的輸出結(jié)果是_________。

18.對象作為函數(shù)參數(shù),就是將實參對象的_________傳遞給形參對象,這種傳遞是單向的。

19.建立一個對象時,對象的狀態(tài)是不確定的。為了使對象的狀態(tài)確定,必須對其進行正確的_________。

110.C++類中的_________函數(shù)在對象的生存期結(jié)束時被自動調(diào)用。

111.C++語言中的整數(shù)常量有四種:十進制常量、長整型常量、八進制常量和_________。

112.UML中對象之間的靜態(tài)關(guān)系是通過對象屬性之間的連接反映的,稱之為_________。

113.聲明一個常成員函數(shù)Fun,返回類型為char,第一個參數(shù)類型為int,第二個參數(shù)類型為double,則該函數(shù)的聲明原型是_________。

114.在C++語言中,利用向量類模板定義一個具有20個int類型且初值為1的向量C,實現(xiàn)此操作的語句是_________。

115.執(zhí)行下列代碼:int a=123,b=321; cout﹤﹤setw(3)﹤﹤a﹤﹤b﹤﹤endl; 程序輸出結(jié)果是:_________。

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

117.vector類中用于返回向量中第一個對象的方法是_________。

118.C++語言中動態(tài)分配內(nèi)存的關(guān)鍵字是_________。

119.C++類成員的訪問權(quán)限有_________、公有和保護三種。

120.寫出聲明一個復數(shù)對象num的語句,并使對象被初始化為單精度 2.2+ 1.3i,此聲明語句是_________。

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

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: T x, y;   public: f1(T a, T b){x=a; y=b;}   T max( ){return(x﹥y)? x: y;}   };   main( ) {   f a;   a.f1( 1.5, 3.8);   cout﹤﹤a.max( )﹤﹤endl;   }

23.#include ﹤iostream.h﹥   class point {   private: float x,y;   public: point(float a, float b){x=a; y=b; }   f( ){x=0; y=0; }   void getx( ){cout﹤﹤x﹤﹤endl;}   void gety( ){cout﹤﹤y﹤﹤endl;}   };   main( ) {   point a ( 3.5);   a.getx( );   }

24.#include ﹤iostream.h﹥class f{   private: float x,y;   float get( ){return x+y;}   public:f1(float a,float b){x=a;y=b;}   };   main( ) {   f a;   a.f1(1, 3.8);   cout﹤﹤a.get( )﹤﹤endl;   }

25.#include ﹤iostream.h﹥   class test1{   private: int x;   public: test1( ){x=2;}   void set(int a){x=a;}   void get(){cout﹤﹤x﹤﹤endl;}   };   class test2{   private: int x;   public: test2( ){x=3;}   void set(int a){x=a;}   void get( ){cout﹤﹤x﹤﹤endl;}   };   class test: public test1, public test 2. {   private: int x;   public: void set(int a){x=a;}   void gettest( ){cout﹤﹤x﹤﹤endl;}   };   main( ) {   test a; a.get( );   }

四、完成程序題(本大題共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.#include ﹤iostream﹥   using namespace std;   class base   {   private: int x;   public: base(int a){x=a;}   int get( ){return x:}   void showbase( ) {cout﹤﹤"x="﹤﹤x﹤﹤endl; }   };   class Derived: public base   {private: int y;   public: Derived(int a, int b): base(a) {y=b; }   void showderived( )   {cout﹤﹤"x="﹤﹤get( )﹤﹤",y="﹤﹤y﹤﹤endl; }   };   void main( )   {   base b(3);   Derived d(6, 7);   b.showbase( );   d.showderived( );   _________;   b.showbase( );   _________;   b 1.showbase( );   base * pb=&b1;   pb-﹥showbase( );   d.showderived( );   b.showbase( );   }   輸出結(jié)果如下:   x=3   x=6,y=7   x=6   x=6   x=6   x=6,y=7   x=6

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é)果如下:   This is line1   This is line2   This is line3   將下列程序補充完整,答案寫在答題紙上。源程序如下:   #include ﹤iostream﹥   #include _________   using namespace std;   void main( )   {   fstream fin, fout;   fout.open("my.txt", ios:: out);   if(!fout.is_open( ))   return;   for(int i=0; i﹤3; i=i+1)   fout﹤﹤"This is line"﹤﹤i+1﹤﹤endl;   fout.close( );   fin.open("my.txt", ios:: in);   if(! fin.is_open( ))   return;   char str[100];   while(_________)   {   fin.getline(str,100);   cout﹤﹤str﹤﹤endl;   }   fin.close( );   }

35.求兩個浮點數(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ù)cha   cout﹤﹤c﹤﹤endl;   }   float cha(float x,float y)   {   float w;   w=x-y;   return w;   }

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

41.#lnclude ﹤iostream.h﹥   void func( );   void main( )   {   for(int i=0; i﹤6; i++)   {   func( );   }   }   void func( )   {   int x=0;   x++;   static int y=0;   y++;   cout﹤﹤"x="﹤﹤x﹤﹤";y="﹤﹤y﹤﹤endl;   }

42.#include ﹤iostream.h﹥   class A   {   public:   A( );   void Show( );   ~A( );   private:   static int c;   };   int A:: c=O;   A:: A( )   {   cout﹤﹤"constructor."﹤﹤endl;   c +=10;   }   void A:: Show( )   {   cout﹤﹤"c="﹤﹤c﹤﹤endl;   }   A:: ~A( )   {   cout﹤﹤"destrucator."﹤﹤endl;   }   void main( )   {   A a, b;   a.Show( );   b.Show( );   }

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

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

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

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

去領(lǐng)取