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

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

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

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

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

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

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

1.在C++語言中用于注釋的標(biāo)識符是(  )

A.&
B.//
C.*
D./

2.編寫C++程序一般需經(jīng)過的幾個步驟依次是(  )

A.編輯、調(diào)試、編譯、連接
B.編譯、調(diào)試、編輯、連接
C.編譯、編輯、連接、運行
D.編輯、編譯、連接、運行

3.要求通過函數(shù)來實現(xiàn)一種不太復(fù)雜的功能,并且要求加快執(zhí)行速度,選用(  )

A.內(nèi)聯(lián)函數(shù)
B.重載函數(shù)
C.內(nèi)部函數(shù)
D.函數(shù)模板

4.設(shè)x=8,執(zhí)行語句y=x++,則y等于(  )

A.6
B.7
C.9
D.8

5.下列運算符中,優(yōu)先級最高的是(  )

A.*
B.-﹥
C.&&
D.﹥=

6.關(guān)于new運算符的下列描述中,錯誤的是(  )

A.它可以用來動態(tài)創(chuàng)建對象和對象數(shù)組
B.使用它創(chuàng)建的對象和對象數(shù)組可以使用運算符delete刪除
C.使用它創(chuàng)建對象時要調(diào)用構(gòu)造函數(shù)
D.使用它創(chuàng)建對象數(shù)組時必須指定初始值

7.存儲下列數(shù)據(jù),占用存儲字節(jié)最多的是(  )

A.0
B."0"
C."0"
D.0.0

8.關(guān)于類和對象不正確的說法是(  )

A.類是一種類型,它封裝了數(shù)據(jù)和操作
B.對象是類的實例
C.一個類的對象只有一個
D.一個對象必屬于某個類

9.下列有關(guān)構(gòu)造函數(shù)的描述中,正確的是(  )

A.構(gòu)造函數(shù)可以帶有返回值
B.構(gòu)造函數(shù)的名字與類名完全相同
C.構(gòu)造函數(shù)必須帶有參數(shù)
D.構(gòu)造函數(shù)必須定義,不能缺省

10.假定a為一個整型數(shù)組名,則元素a[4]的字節(jié)地址為(  )

A.a+4
B.a+8
C.a+16
D.a+32

11.類中能訪問靜態(tài)成員的函數(shù)是(  )

A.虛函數(shù)
B.靜態(tài)成員函數(shù)
C.構(gòu)造函數(shù)
D.析構(gòu)函數(shù)

12.下列說明語句中正確的是(  )

A.int a, &ra=a, &&ref=ra;
B.int&refa[10];
C.int a, &ra=a, &*refp=&ra;
D.int *pi, *&pref=pi;

13.關(guān)于對象概念的描述中,說法錯誤的是(  )

A.對象就是C語言中的結(jié)構(gòu)體
B.對象代表著正在創(chuàng)建的系統(tǒng)中的一個實體
C.對象是類的一個變量
D.對象之間的信息傳遞是通過消息進行的

14.有關(guān)多態(tài)性說法不正確的是(  )

A.C++語言的多態(tài)性分為編譯時的多態(tài)性和運行時的多態(tài)性
B.編譯時的多態(tài)性可通過函數(shù)重載實現(xiàn)
C.運行時的多態(tài)性可通過模板和虛函數(shù)實現(xiàn)
D.實現(xiàn)運行時多態(tài)性的機制稱為動態(tài)多態(tài)性

15.關(guān)于友元函數(shù)的描述中,錯誤的是(  )

A.友元函數(shù)不是成員函數(shù)
B.友元函數(shù)只能訪問類中私有成員
C.友元函數(shù)破壞隱藏性,盡量少用
D.友元函數(shù)說明在類體內(nèi),使用關(guān)鍵字friend

16.類中定義的成員默認(rèn)訪問屬性為(  )

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

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

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

18.關(guān)于類模板的說法正確的是(  )

A.類模板的主要作用是生成抽象類
B.類模板實例化時,編譯器將根據(jù)給出的模板實參生成一個類
C.在類模板中的數(shù)據(jù)成員具有同樣類型
D.類模板中的成員函數(shù)沒有返回值

19.下列有關(guān)重載函數(shù)的說法中正確的是(  )

A.重載函數(shù)必須具有不同的返回值類型
B.重載函數(shù)參數(shù)個數(shù)必須相同
C.重載函數(shù)必須有不同的形參列表
D.重載函數(shù)名可以不同

20.當(dāng)一個類的某個函數(shù)被說明為virtual時,在該類的所有派生類中的同原型函數(shù)(  )

A.都是虛函數(shù)
B.只有被重新說明時才是虛函數(shù)
C.都不是虛函數(shù)
D.只有被重新說明為virtual時才是虛函數(shù)

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

11.C語言中scanf命令在C++中改用:_______。

12.假定類AB中有一個公用屬性的靜態(tài)數(shù)據(jù)成員static int bb;在類外不通過對象名給該成員bb賦值為10的寫法:_______。

13.在類內(nèi)部定義的公有(public)數(shù)據(jù)可以在類外進行存取,但_______和私有(private)數(shù)據(jù)不能在類外直接存取。

14.在C++中,虛函數(shù)幫助實現(xiàn)了類的_______。

15.如果要把類B的成員函數(shù)void fun( )說明為類A的友元函數(shù),則應(yīng)在類A中加入語句_______。

16.執(zhí)行下列程序double a= 3.1415926, b= 3.14; cout﹤﹤setprecision(5)﹤﹤a﹤﹤ "," ﹤﹤setprecision(5)﹤﹤b﹤﹤endl; 程序的輸出結(jié)果是_______。

17.在C++中,訪問一個指針?biāo)赶虻膶ο蟮某蓡T所用的指向運算符是_______。

18.基類的公有成員在派生類中的訪問權(quán)限由_______決定。

19.由const修飾的對象稱為_______。

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

111. 為了實現(xiàn)運行時的多態(tài)性,派生類需重新定義基類中的_______。

112.在C++中有兩種參數(shù)傳遞方式:傳值和傳_______。

113.C++中ostream的直接基類_______。

114.已知int *p=NULL,使用new為指針P申請一個存儲大小為10的存放int型的空間,代碼為_______。

115.在編譯指令中,宏定義使用_______指令。

116.每個對象都是所屬類的一個_______。

117.函數(shù)重載時,編譯系統(tǒng)會根據(jù)_______或形參的個數(shù)來區(qū)分。

118.靜態(tài)成員函數(shù)、友元函數(shù)、構(gòu)造函數(shù)和析構(gòu)函數(shù)中,不屬于成員函數(shù)的是_______。

119.如果要把類B的成員函數(shù)void fun( )說明為類A的友元函數(shù),則應(yīng)在類A中加入語句_______。

120.局部對象和全局對象中,在同一程序中_______生存期最長。

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

21.#include ﹤iostream﹥   using namespace std;   class base {   int *p;   public:   base (int a) {   p=&a;   }   int get( ){   return p;   }   };   int main( )   {  base b(3);   cout﹤﹤b. get( );   }

22.  #include ﹤iostream﹥   using namespace std;   clss base{   int a;   int get( ){   return a;   }   void setValue(int b) {   a=b;   }   int geta( ){   return a;   }   };   int main( )   {   base b;   b. setValue (7);   retum 0;   }

23.  #include ﹤iostream﹥   using namespace std;   class A{   static int x;   int y;   public:   A(int a, int b){   x=a;   y=b;   }  int get( ){   return x +y;   }   };   x=5;   int main( )   {   A a(1,2);   cout ﹤﹤ a. get( )﹤﹤endl;   return 0;   }

24.#include ﹤iostream﹥   using namespace std;   class A{   int x;   public:   A(int a){   x=a;   }   void set( int a){  x=a;   }   void get( ){   cout﹤﹤x﹤﹤endl;   }   };   int main( )   {   const A a(4);   a. set(6);   a. get( );   a. get(10);   a. get( );   return 0;   }

25.  #include ﹤iostream﹥   using namespace std;   class base{   int a, b;   pubic:   void setzero( ){   x=0; y=0;   }   void show( ){   cout ﹤﹤x﹤﹤" "﹤﹤y﹤﹤endl;   }   };   int main( ){   base b;   b. setzero 0, 0);   return 0;   }

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

31.用簡單選擇法對10個數(shù)排序,使其從小到大排列。   #include "stdafx. h"   #include ﹤iostream﹥   using namespace std;   int main( void)   {   int t;   int num[ 10], t, j;   for( _________ )   cin ﹥﹥num[i];   for(i=0;i﹤9;i++)   for(j=i+1;j﹤10;j++)   if(num[i]﹥ num[j])   {   t=num[i];   num[i]=num[j];   _________;   }   for(i=0;i﹤10;i++)   cout ﹤﹤num[i]﹤﹤" ";   }

32.打印以下圖案:   #include "stdafx. h"   #include ﹤iostream﹥   using namespace std;   void main( void)   {   int j, n;   for( _________ ) //i控制行號   {   for(j=1;j﹤i;j++) //j控制空格   cout ﹤﹤" ";   for( _________ ) //n控制星號   cout ﹤﹤"*";   cout ﹤﹤ endl;   }   }

33.任意輸入10個同學(xué)的成績,計算其平均成績。要求用函數(shù)average( )計算平均成績,主函數(shù)輸入數(shù)據(jù)并輸出結(jié)果。   #include "stdafx. h"   #include ﹤iostream﹥   using namespace std;   void main( void)   {   float average( float a[ ]);   float score[10];   for( _________ )   {   cin﹥ score[i];   }   cout﹤﹤"average: "﹤﹤ average( score)﹤﹤ endl;   }   float average(float a[ ])   {   float sum=0;   for( int i=0; i ﹤10; i++) {   _________;   }   return (sum/10);   }

34.編一個函數(shù)to_ lower( ),實現(xiàn)將字符串中的大寫字母轉(zhuǎn)換成相應(yīng)小寫字母。主函數(shù)輸入數(shù)據(jù)并輸出結(jié)果。   #include "stdafx. h"   #include ﹤iostream﹥   _________;   void main(void)   {   void to_lower (char a[ ]);   char str[10];   cin﹥﹥str;   to_lower(str);   cout﹤﹤str﹤﹤endl;   }   void to_ lower(char a[ ])   {   for(int i=0; i﹤10&&a[i]!='0'; i++)   if( _________ )   a[i]+=32;   }

35.下面程序用來求直角三角形斜邊長度。   #include ﹤iostream. h﹥   #include ﹤math.h﹥   class Line;   class Point;   { private:   double x, y;   _________   public:   Point(double i=0, double j=0)   { x=i; y=j; }   Point(Point &p)   { x=p.x; y=p.y; }   };   class Line   { private:   Point p1, p2;   Line( Point &xp1, Point &xp2): _________ { }   double GetLength( );   };   double Line:: GetLength( )   {double dx =p 2. x-p 1. x;   double dy =p 2. y-p 1. y;   return sqrt( dx*dx +dy*dy);   }   void main( )   { Point p1, p2(6, 8);   Line L1(p1, p2);   cout ﹤﹤L 1. GetLength( )﹤﹤endl;   }

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

41.給如下面程序輸出結(jié)果。   #include ﹤iostream. h﹥   class Base   { private:   int Y;   public:   Base (int y=0){Y=y;cout ﹤﹤"Base ("﹤﹤y ﹤﹤") ";}   ~Base( ){ cout ﹤﹤"~Base( ) ";}   void print( ){cout ﹤﹤Y﹤﹤" "; }   };   class Derived: public Base   { private:   int Z;   public:   Derived (int y, int z): Base(y)   { Z=z;   cout﹤﹤"Derived ("﹤﹤y﹤﹤","﹤﹤z﹤﹤" ";   }   ~Derived( ){ cout﹤﹤"~Derived( ) "; }   void print( )   {Base:: print( );   cout ﹤﹤Z﹤﹤endl;   }   };   void main( )   { Derived d(10, 20);   d. print( );   }

42.給出下面程序輸出結(jié)果。   include "iostream. h"   void main( )   {   int x, y, z;   x=3;   y=x++;   z=++x;   cout﹤﹤"x="﹤﹤x﹤﹤";y="﹤﹤y﹤﹤";z="﹤﹤z﹤﹤endl;   }

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

51.寫一個程序,定義一個抽象類Shape,由它派生3個類:Square(正方形)、Trapezoid(梯形)和Triangle(三角形)。用虛函數(shù)分別計算幾種圖形面積、并求它們的和。要求用基類指針數(shù)組,使它每一個元素指向一個派生類對象。   #include ﹤iostream.h﹥   class Shape   { public:   virtual double area( )const=0;   };

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

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

去領(lǐng)取