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

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

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

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

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

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

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

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

A.面向過程
B.面向?qū)ο?br/>C.安全性
D.復(fù)用性

2.結(jié)構(gòu)化程序設(shè)計(jì)所規(guī)定的三種基本控制結(jié)構(gòu)是(  )

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

3.關(guān)于函數(shù)模板,描述錯(cuò)誤的是(  )

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

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

A.標(biāo)識(shí)作用域的級別的
B.指出作用域的范圍的
C.給定作用域的大小的
D.標(biāo)識(shí)成員是屬于哪個(gè)類的

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

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

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

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.下列不是構(gòu)造函數(shù)的特征的是(  )

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

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

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

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

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

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

A.它們均為真
B.其中一個(gè)為真
C.它們均為假
D.其中一個(gè)為假

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

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

13.當(dāng)一個(gè)派生類公有繼承一個(gè)基類時(shí),基類中的所有公有成員成為派生類的(  )

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

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

A.八進(jìn)制數(shù)
B.十進(jìn)制數(shù)
C.十六進(jìn)制
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.下列運(yùn)算符中,在C++語言中不能重載的是(  )

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

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

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

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

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

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

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

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

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

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

13.面向?qū)ο缶幊痰挠⑽目s寫是__________。

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

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

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

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

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

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

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

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

112.在C++中,函數(shù)在定義時(shí)可以預(yù)先定義出默認(rèn)的形參值。默認(rèn)形參值必須按__________的順序定義。因?yàn)樵谡{(diào)用時(shí),實(shí)參初始化形參是按從左到右的順序。

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

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

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

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

117.如果一個(gè)派生類只有一個(gè)唯一的基類,則這樣的繼承關(guān)系稱為__________。

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

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

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

三、改錯(cuò)題(本大題共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="