天堂888-欧美黄色小说-熟睡侵犯の奶水授乳在线-初尝情欲h名器av-亚洲天堂免费视频-日韩五十路-免费在线国产-国产又大又黄又粗-久草导航-色播导航-亚洲免费资源-熟女一区二区三区视频-亚洲美女视频在线-亚洲成人福利视频-婷婷精品在线-亚洲综合p-中文字幕 日本-亚洲骚片-亚洲自拍偷拍网-国产农村妇女精品一区二区-午夜中出-久久精品国产精品亚洲毛片-91精品毛片-99爱视频在线-狠狠操亚洲-美女让人操-里番本子纯肉侵犯肉全彩无码-999偷拍

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

?自考C++程序設計2013年1月試題

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

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

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

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

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

1.下列不屬于C++關鍵字的是(  )

A.extern
B.goto
C.free
D.default

2.C++中定義標準輸入的庫為(  )

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

3.My是一個類,則執行語句My a[3], *p[2]; 之后,自動調用構造函數次數為(  )

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

4.下列語句錯誤的是(  )

A.int val(20);
B.extern int val(20);
C.const int val;
D.extern const int val;

5.下列說法中,有關構造函數是正確的是(  )

A.任何一類必定有構造函數
B.可定義沒有構造函數的類
C.構造函數不能重載
D.任何一類必定有缺省的構造函數

6.下面關于類和對象說法不正確是(  )

A.類由數據與函數組成
B.一個對象必屬于某個類
C.對象是類的實例
D.一個類的對象只有一個

7.下面選項中不是類成員函數的是(  )

A.構造函數
B.析構函數
C.友元函數
D.靜態函數

8.在C++中類之間的繼承關系具有(  )

A.自反性
B.對稱性
C.傳遞性
D.反對稱性

9.C++中類的成員默認為(  )

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

10.C++中要實現動態聯編,調用虛函數時必須使用(  )

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

11.下面對析構函數的正確描述是(  )

A.系統不能提供默認的析構函數
B.析構函數必須由用戶定義
C.析構函數沒有參數
D.析構函數可以設置默認參數

12.在下面的二維數定義正確的是(  )

A.int ary[5][ ];
B.int ary[ ][5]={{0,1,2}};
C.int ary[ ][5];
D.int ary[5,5];

13.以下說法中正確的是(  )

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

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

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

15.下面聲明純虛函數語句正確的是(  )

A.void fun( )=0;
B.virtual void fun( )=0;
C.virtual void fun( );
D.virtual void fun( ){ };

16.對于拷貝構造函數和賦值操作的關系,正確的描述是(  )

A.拷貝構造函數和賦值操作是完全一樣的操作
B.進行賦值操作時,不會調用類的構造函數
C.當調用拷貝構造函數時,類的對象正在被建立并被初始化
D.拷貝構造函數和賦值操作不能在同一個類中被同時定義

17.使用重載函數的目的是(  )

A.共享函數數據
B.減少代碼量
C.優化運行效率
D.提高可讀性

18.C++語言對C語言做了很多改進,C++語言相對于C語言的最根本的變化是(  )

A.增加了一些新的運算符
B.允許函數重載,并允許設置缺省參數
C.規定函數說明符必須用原型
D.引進了類和對象的概念

19.假定有“char *p="Hello";”,若要輸出這個字符串的地址值正確的寫法為(  )

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

20.對類成員訪問權限的控制,是通過設置成員的訪問控制屬性實現的,下列不是訪問控制屬性的是(  )

A.公有類型
B.私有類型
C.保護類型
D.友元類型

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

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

12.C++語言支持的兩種多態性分別是編譯時的多態性和_________的多態性。

13.重載的運算符保持其原有的操作符個數、_________和結合性不變。

14.在C++中,函數的參數有兩種傳遞方式,它們分別是值傳遞和_________。

15.含有_________的類稱為抽象類。

16.C++程序運行時的內存空間可以分成全局數據區,堆區,棧區和_________。

17.對于無返回值函數,定義函數時要用_________修飾函數類型。

18.定義重載函數必須在參數的個數或參數的_________上與其它同名函數不同。

19.拷貝構造函數是在用一個對象初始化另一個對象時被調用,系統缺省的拷貝構造函數的工作方法是_________。

110.以面向對象方法構造的系統,其基本單位是_________。

111.拷貝構造函數使用_________作為參數初始化創建中的對象。

112.當一個成員函數被調用時,該成員函數的_________指向調用它的對象。

113.類可將實現細節隱藏起來,這種機制稱為_________。

114.在面向對象的程序設計中,通過封裝實現數據隱藏;通過_________實現代碼的復用。

115.在公有繼承的中基類數據成員在派生類中的訪問權限_________。

116.復雜對象可以由簡單對象構成,這種現象稱為_________。

117.如有“char *p="Hello";”,則語句“cout﹤﹤*(p+1);”輸出值是_________。

118.基類和派生類的關系稱為_________。

119.在類的定義中,說明為protected的數據成員稱為保護成員。保護數據成員具有雙重作用:對于其派生類而言,是公有的;而對于其外部的程序而言,是_________。

120.假定x=10,則表達式x﹤=10?20:30的值為_________。

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

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

22.#include ﹤iostream.h﹥   main( ){   int x=7;   const int *p=&x;   *p=99;   cout﹤﹤*p﹤﹤endl;   }

23.#include ﹤iostream.h﹥   class test{   private: int x; y;   public: void f(int a, int b){x=a; y=b;}   int max( ){return(x﹥y)?x:y;}   };   main( ){   test a;   a.f(1,3);   cout﹤﹤a.max( )﹤﹤endl;   }

24.#include ﹤iostream.h﹥   class test{   private: int x;   public: test(int a){x=a;}   void set(int a){x=a;}   void get( ){cout﹤﹤x﹤﹤endl;   };   class test1: public test{   private: int x;   public: test1(int a){x=a;}   void set(int a){x=a;}   void get( ){cout﹤﹤x﹤﹤endl;   };

25.#include ﹤iostream.h﹥   class f{   private: int x,y;   public: f1(int a, int b){x=a; y=b;}   void print( ){cout﹤﹤x﹤﹤"﹤﹤y﹤﹤endl;   };   main( ){   f a;   float x= 1.0, y= 2.0;   a.f1(x,y);   a.print( );   }

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

31.將下劃線處缺少的部分寫在“答題紙”上。源程序如下:   #include ﹤iostream﹥   using namespace std;   class base   、{   int a, b;   public:   base(int x, int y){a=x; b=y;}   void show( _________ )   {   cout﹤﹤p.a﹤﹤″,″﹤﹤p.b﹤﹤endl;   }   }_________   void main( )   {   base b(78,87);   b.show(b);   }

32.將下劃線處缺少的部分寫在“答題紙’’上。源程序如下:   #include ﹤iostream﹥   #include ﹤fstream﹥   using namespace std;   void main( )   {   _________ myf("aB.txt"); //定義輸出流文件,并初始化   _________﹤﹤"This ia a TXT file"; //向文件輸入字符串   myf.close( );   }

33.在下面程序中的下劃線處填上適當的程序(答案寫在“答題紙”上),使程序的輸出結果如下:   67,90   源程序如下:   #include ﹤iostream﹥   using namespace std;   class base   {   pnvate:   int x,y;   priblic:   void initxy(int a,int b){x=a;y=b;}   void show(base *p);   };   inline void base::show( _________ )   {   cout﹤﹤p-﹥x﹤﹤","﹤﹤p-﹥y﹤﹤endl;   }   void print(base *p)   {   p-﹥show(p);   }   void main( )   {   base a;   a.initxy(67,90);   print( _________ );   }

34.下面程序給出了一個從普通的基類派生出一個模板類的方法,在下劃線處填上正確的部分(答案寫在“答題紙”上)。   #include ﹤iostream﹥   using namespace std;   class Base   {   public:   Base(int a){x=a;}   int Getx( ){return x;   void showb( ){cout﹤﹤x﹤﹤endl;   private:   int x;   };   template﹤class T﹥   class derived: public Base   {   public:   derived(T a, int b): _________   { y=a; }   T Gety( ){ return y; }   void showd( ){cout﹤﹤y﹤﹤" "﹤﹤Getx( )﹤﹤endl;   private:   _________   };   void main( )   { Base A(458);   A. showb( );   derived ﹤char *﹥B("It is",1357);   B.showd( );   }

35.下面程序的運行結果如下:   20,22   60,22   將下劃線處缺少的部分寫在“答題紙”上。源程序如下:   #include ﹤iostream﹥   using namespace std;   class base   {   private:   const int a;   static const int b;   public:   base(int);   void Show( );   };   _________=22;   _________ : a(i){ } //初始化   void base:: Show( )   { cout﹤﹤a﹤﹤","﹤﹤b﹤﹤endl; }   void main( )   {   base a1(20), a2(60);   a 1.Show( );   a 2.Show( );   }

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

41.給出下面程序的輸出結果   #include ﹤iostream﹥   using namespace std;   class base   {   int x;   public:   void setx(int a){x=a;}   int getx( ){return x;}   };   void main( )   {   int *p;   base a;   a.setx(15);   p=new int(a.getx( ));   cout﹤﹤*p;   }

42.給出下列程序的輸出結果   #include ﹤iostream﹥   #include ﹤complex﹥   #include ﹤string﹥   using namespace std;   void main( )   {   complex ﹤int﹥ fs1 ( 5, 6) ;   complex ﹤float﹥ fs2( 7.5, 8.5) ;   string str1 ("real is:") ;   string str2 (" image is:") ;   cout﹤﹤ str1﹤﹤ fs 1. real( )﹤﹤ ', ' ﹤﹤ str2﹤﹤ fs 1. imag( ) ﹤﹤ endl;   cout﹤﹤ str1﹤﹤ fs 2. real( ) ﹤﹤ ', '﹤﹤ str2﹤﹤ fs 2. imag( ) ﹤﹤ endl;   }

43.給出下面程序的輸出結果   #include ﹤iostream﹥   using namespace std;   class base   {   private:   int x;   public:   void setx(int a){x=a;}   int getx( ){return x;}   };   void main( )   {   base a, b;   a.setx(89);   b=a;   cout﹤﹤a.getx( )﹤﹤endl;   cout﹤﹤b.getx( )﹤﹤endl;   }

44.給出下面程序的輸出結果   #include ﹤iostream﹥   using namespace std;   void main( )   {   int a[ ]= { 10,20,30,40 } , * pa = a;   int * &pb =pa;   pb++;   cout﹤﹤*pa﹤﹤endl;  ?。?/p>

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

51.在字符串類string中實現一個判斷函數,該函數功能是統計某一字符串類對象(僅有單詞和空格組成)有多少個單詞,同時保存所有單詞在字符串中的起始地址(設該字符串不超過100個單詞)   #include ﹤iostream.h﹥   #include ﹤string﹥   class str{   string s; int n, a[100], j, l;   public: str(string &a){s=a; n=0; j=0; l=0;}   ....test(....);   int *geta( ){return a;}   };   請寫出test函數的過程(如果需要形式參數,請給出形參類型和數量,以及返回值類型)

更多資料

00292《市政學》【知識集錦】

00177《消費心理學》【知識集錦】

00179《談判與推銷技巧》【知識集錦】

溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

自考備考資料免費領取

去領取