?自考C++程序設計2015年4月試題
摘要:自考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="