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

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

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

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

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

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

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

1.C++語言是從早期的C語言逐漸發(fā)展演變而來的,與C語言相比,C++在求解問題方法上進行的最大改進是(  )

A.面向過程
B.面向對象
C.安全性
D.復用性

2.結構化程序設計所規(guī)定的三種基本控制結構是(  )

A.輸入、處理、輸出
B.樹形、網(wǎng)形、環(huán)形
C.順序、選擇、循環(huán)
D.主程序、子程序、函數(shù)

3.關于函數(shù)模板,描述錯誤的是(  )

A.函數(shù)模板必須由程序員實例化為可執(zhí)行的函數(shù)模板
B.函數(shù)模板的實例化由編譯器實現(xiàn)
C.一個類定義中,只要有一個函數(shù)模板,則這個類是類模板
D.類模板的成員函數(shù)都是函數(shù)模板,類模板實例化后,成員函數(shù)也隨之實例化

4.作用域運算符“::”的功能是(  )

A.標識作用域的級別的
B.指出作用域的范圍的
C.給定作用域的大小的
D.標識成員是屬于哪個類的

5.采用重載函數(shù)的目的是(  )

A.實現(xiàn)共享
B.減少空間
C.提高速度
D.使用方便,提高可讀性

6.以下關鍵字不能用來聲明類的訪問權限的是(  )

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

7.有如下類聲明“class A{int x; …};”,則A類的成員x是(  )

A.公有數(shù)據(jù)成員
B.私有數(shù)據(jù)成員
C.公有成員函數(shù)
D.私有成員函數(shù)

8.下列不是構造函數(shù)的特征的是(  )

A.構造函數(shù)的函數(shù)名與類名相同
B.構造函數(shù)可以重載
C.構造函數(shù)可以設置缺省參數(shù)
D.構造函數(shù)不能重載

9.通常的拷貝構造函數(shù)的參數(shù)是(  )

A.某個對象名
B.某個對象成員名
C.某個對象的引用
D.某個對象的指針名

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

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

11.設x和y均為bool量,則x&&y為真的條件是(  )

A.它們均為真
B.其中一個為真
C.它們均為假
D.其中一個為假

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

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

13.當一個派生類公有繼承一個基類時,基類中的所有公有成員成為派生類的(  )

A.public成員
B.private成員
C.protected成員
D.友元

14.在C++語言中,080是(  )

A.八進制數(shù)
B.十進制數(shù)
C.十六進制
D.非法數(shù)

15.下面函數(shù)原型聲明中,聲明了fun為虛函數(shù)的是(  )

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

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

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

17.下列運算符中,在C++語言中不能重載的是(  )

A.*
B.﹥=
C.::
D./

18.在C++語言中,能代表邏輯值“假”的是(  )

A.小于0的數(shù)
B.大于0的數(shù)
C.非0整數(shù)
D.0

19.以下敘述中不正確的是(  )

A.在一個函數(shù)中,可以有多條return語句
B.函數(shù)的定義不能嵌套,但函數(shù)的調用可以嵌套
C.函數(shù)必須有返回值
D.不同的函數(shù)中可以使用相同名字的變量

20.已知:int m=10;在下列表示引用的方法中,下列哪一項是正確的?(  )

A.int&x=m
B.int &y=10
C.int &z
D.float &t=&m

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

11.對象的核心概念就是通常所說的繼承、封裝和__________。

12.cin后面的符號是:﹥﹥,cout后面的符號是__________。

13.面向對象編程的英文縮寫是__________。

14.已知x=2,y=3,x﹤y的值是__________。

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

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

17.重載運算符的含義必須清楚,不能有__________。

18.按照聯(lián)編進行階段的不同,聯(lián)編方法可分為兩種:動態(tài)聯(lián)編和__________。

19.設要把一個文件輸出流對象myFile與文件“f:myText.txt”相關聯(lián),所用的C++語句是__________。

110.在C++中,函數(shù)的參數(shù)有兩種傳遞方式,它們是__________和地址或指針或引用傳遞。

111.設有定義int x=3, y=4; 則表達式x*=y+5的值為__________。

112.在C++中,函數(shù)在定義時可以預先定義出默認的形參值。默認形參值必須按__________的順序定義。因為在調用時,實參初始化形參是按從左到右的順序。

113.如果一個函數(shù)直接或間接地調用自身,這樣的調用稱為__________調用。

114.函數(shù)模板中緊隨template之后尖括號內的類型參數(shù)都要冠以保留字__________。

115.假如一個類的名稱為MyClass,使用這個類的一個對象初始化該類的另一個對象時,可以調用__________構造函數(shù)來完成此功能。

116.設函數(shù)sum是由函數(shù)模板實現(xiàn)的,并且sum(3,6)和sum( 4.6,8)都是正確的函數(shù)調用,則函數(shù)模板具有__________個類型參數(shù)。

117.如果一個派生類只有一個唯一的基類,則這樣的繼承關系稱為__________。

118. 一個const對象只能訪問__________成員函數(shù)。

119.如果通過同一個基類派生一系列的類,則將這些類總稱為__________。

120.A是一個類,已有語句“A *p; P=new A[10];”。要釋放由P指向的動態(tài)空間,正確的語句應該是__________。

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

21.  #include "stdafx. h"   #include ﹤iostream﹥   using namespace std;   class Test   { private:   int x, y =20;   public:   Test( int i, int j) {x=i, y=j; }   int getx( ) { return x; }   int gety( ) { return y; }   };   void main( )   {Test mt(10, 20);   cout﹤﹤mt. getx( )﹤﹤endl;   cout﹤﹤mt. gety( )﹤﹤endl;   }

22.  #include "stdafx.h"   #include ﹤iostream﹥   using namespace std;   class Test   { int x, y;   public:   fun(int i, int j)   {x=i; y=j; }   show( )   {cout﹤﹤"x="﹤﹤x;   if(y)   cout﹤﹤" ,y="﹤﹤y﹤﹤endl;   cout﹤﹤endl;}   };   void man( )   {Test A;   A. fun (1);   A. show( );   A. fun(2,4);   A. show( );   }

23.#include "stdafx.h"   #include ﹤iostream﹥   using namespace std;   class A   { int i;   public:   virtual void fun( )=0;   A( int a)   { i=a;}   };   class B: public A   { int j;   public:   void fun( )   {cout﹤﹤"B:: fun( ) ";}   B(int m, int n=0): A(m),j(n) { }   };   void main ( )   { A *pa;   B b(7);   pa=&b;   }

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

25.#include ﹤iostream. h﹥   #include ﹤string. h﹥   class Base   { public:   Base( char *s="