?自考C++程序設(shè)計2015年10月試題
摘要:自考C++程序設(shè)計2015年10月試題及答案解析,該試卷為自考C++程序設(shè)計歷年真題試卷,包含答案及詳細解析。
自考C++程序設(shè)計2015年10月試題及答案解析
自考C++程序設(shè)計2015年10月試題及答案解析,該試卷為自考C++程序設(shè)計歷年真題試卷,包含答案及詳細解析。
一、單項選擇題(本大題共20小題,每小題1分,共20分。)在每小題列出的備選項中只有一項是最符合題目要求的,請將其代碼填寫在題后的括號內(nèi)。錯選、多選或未選均不得分。
1.在C++語言中用于注釋的標識符是( )
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.類中定義的成員默認訪問屬性為( )
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.當一個類的某個函數(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++中,訪問一個指針所指向的對象的成員所用的指向運算符是_______。
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; };
延伸閱讀
- 2023年10月自考00257票據(jù)法真題
- 2023年10月自考00249國際私法真題
- 2023年10月自考00246國際經(jīng)濟法概論真題
- 2023年10月自考00245刑法學(xué)真題
- 2023年10月自考00186國際商務(wù)談判真題
- 2023年10月自考00185商品流通概論真題
自考微信公眾號
掃碼添加
自考備考資料免費領(lǐng)取
去領(lǐng)取