第 1 頁:選擇題 |
第 3 頁:基本操作題 |
第 4 頁:簡單應(yīng)用題 |
第 5 頁:綜合應(yīng)用題 |
點擊查看:2015年計算機二級《C++》考前押密模擬試題匯總
一、選擇題
1在E—R圖中,用來表示實體聯(lián)系的圖形是( )。
A.橢圓形B.矩形C.菱形D.三角形
參考答案:C
參考解析:在E—R圖中實體集用矩形.屬性用橢圓,聯(lián)系用菱形。
2有如下程序:
#jnClude
using namespaCe std; Class Part{
publiC:
Part(int x=0):val(X){Cout<
private:
int val; t };
Class Whole{ publiC:
Whole(int x,int Y,int z=0):p2(x),pl(y),val(z){Cout<
private:
Part pl,p2; int val;
};
int main() {
Whole obj(1,2,3); return 0;
}
執(zhí)行這個程序的輸出結(jié)果是( )。
A.123321B.213312C.213D.123123
參考答案:B
參考解析:本題考查帶參數(shù)的構(gòu)造函數(shù)。本題中定義了一個對象obj,那么執(zhí)行其構(gòu)造函數(shù),初始化p1,p2的順序是由聲明這兩個成員的順序決定的,而不是由參數(shù)化列表順序決定,所以本題中,會先執(zhí)行p1,輸出2,然后執(zhí)行p2輸出1,然后輸出3,最后一次輸出312。所以本題答案為8。
3沒有定義int x;float Y;,則10+x+y值的數(shù)據(jù)類型是( )。
A.intB.doubleC.floatD.不確定
參考答案:C
參考解析:由算術(shù)運算符組成的表達式中,若含有不同類型的操作數(shù),則系統(tǒng)隱含地將低類型轉(zhuǎn)化為高類型,由低至高的順序為int→float→double。
4有如下類定義:
class Point{
private:
static int how_many;
};
___________how_many=0;
要初始化Point類的靜態(tài)成員how_many,下畫線處應(yīng)填入的內(nèi)容是( )。
A.intB.static intC.int Point::D.static int Point::
參考答案:C
參考解析:本題考查靜態(tài)數(shù)據(jù)成員,靜態(tài)數(shù)據(jù)成員可以初始化,但只能在類體外進行初始化,其一般形式為:數(shù)據(jù)類型類名::靜態(tài)數(shù)據(jù)成員名=初值。所以本題答案為C。
5有如下類定義:
class Test
{
public:
Test(){a=0;c=0;}//①
int f(im A.const{this->a=a;}//②
static int g(){return a;f//③
void h(int B.{Test:.b=b;};//④
private:
int a;
static int b;
const int C;
};
int Test::b=0:
在標注號碼的行中,能被正確編譯的是( )。
A.①B.②C.③D.④
參考答案:D
參考解析:只能通過構(gòu)造函數(shù)的參數(shù)初始化列表對常數(shù)據(jù)成員進行初始化,本題中常數(shù)據(jù)成員為C。①通過默認構(gòu)造函數(shù)初始化c,所以不正確。常成員函數(shù)只能引用本類中數(shù)據(jù)成員,而不能修改它,所以②不正確。靜態(tài)成員函數(shù)由于沒有this指針,所以不能訪問本類中的非靜態(tài)成員,所以③錯誤。
6某系統(tǒng)總體結(jié)構(gòu)圖如下圖所示:
該系統(tǒng)總體結(jié)構(gòu)圖的深度是( )。
A.7B.6C.3D.2
參考答案:C
參考解析:根據(jù)總體結(jié)構(gòu)圖可以看出陔樹的深度為3,比如:XY系統(tǒng)——功能2——功能2.1,就是最深的度數(shù)的一個表現(xiàn)。
7有如下類定義:
Class AA{ int a; publiC: AA(int n=0):a(n){}
};
Class BB:publiC AA{ publiC:
BB(int n)—— };
其中橫線處缺失的部分是( )。
A.:a(n){}B.:AA(n)|}C.{a(n);}D.{a=n;}
參考答案:B
參考解析:本題考查公用繼承對基類成員訪問屬性。公用繼承中,基類的公用成員和保護成員在派生類中保持原有訪問屬性,其私有成員仍為基類私有,本題中若要給派生類繼承下來基類的私有成員賦值,那么只能調(diào)用基類的成員函數(shù)來對它賦值,所以本題答案為B。
8有如下類定義:
class MyClass{
int value;
public:
MyClass(int n):value(n){}
int getValue()const{retum value;}
};
則類MyClass的構(gòu)造函數(shù)的個數(shù)是( )。
A.1個B.2個C.3個D.4個
參考答案:B
參考解析:本題考查類的默認構(gòu)造函數(shù)和自定義的構(gòu)造函數(shù)、本題中MyClass(int n):value(n){}為自定義的構(gòu)造函數(shù),加上默認構(gòu)造函數(shù),一共有2個構(gòu)造函數(shù)。
9下列關(guān)于派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的說法中,錯誤的是( )。
A.派生類的構(gòu)造函數(shù)會隱含調(diào)用基類的構(gòu)造函數(shù)
B.如果基類中沒有缺省構(gòu)造函數(shù),那么派生類必須定義構(gòu)造函數(shù)
C.在建立派生類對象時,先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)
D.在銷毀派生類對象時,先調(diào)用基類的析構(gòu)函數(shù),再調(diào)用派生類的析構(gòu)函數(shù)
參考答案:D
參考解析:在銷毀派生類對象時,先調(diào)用派生類的析構(gòu)函數(shù),再調(diào)用基類的析構(gòu)函數(shù)。
10下列敘述中正確的是( )。
A.棧是一種先進先出的線性表
B.隊列是一種后進先出的線性表
C.棧與隊列都是非線性結(jié)構(gòu)D.以上三種說法都不對
參考答案:D
參考解析:棧是一種先進后出的線性表,隊列是一種先進先出的線性表,棧與隊列都是線性結(jié)構(gòu)。
11關(guān)于關(guān)鍵字class和typename,下列表述中正確的是( )。
A. 程序中的typename都可以替換為class
B.程序中的class都可以替換為typename
C.在模板形參表中只能用{ypename來聲明參數(shù)的類型
D.在模板形參表中只能用class或typenanle來聲明參數(shù)的類型
參考答案:A
參考解析:程序中的typename都可以替換為class,但程序中的class不可以全部替換為typename。在模板類型形參中除了 typename和class以外,也可以用常規(guī)類型來聲明參數(shù)的類型,所以C、D選項錯誤。
12數(shù)據(jù)庫管理系統(tǒng)是( )。
A.操作系統(tǒng)的一部分
B.在操作系統(tǒng)支持下的系統(tǒng)軟件
C.一種編譯系統(tǒng)
D.一種操作系統(tǒng)
參考答案:B
參考解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機構(gòu),它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務(wù)等。是一種在操作系統(tǒng)之上的系統(tǒng)軟件。
13軟件生命周期是指( )。
A.軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程
B.軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程C.軟件的開發(fā)過程
D.軟件的運行維護過程
參考答案:A
參考解析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。
14下列符號中不屬于C++關(guān)鍵字的是( )。
A.friendB.namespaeeC.ContinueD.byte
參考答案:D
參考解析:本題考查C++關(guān)鍵字,屬于基本常識,顯然D選項不正確。
15下面關(guān)于數(shù)組的初始化正確的是( )。
A.char str[]={’a’,’b’,’C’}
B.char str[2]={’a’,’b’,’c’}
C.char str[2][3]={{’a’,’b’},{’C’,’d’},{’e’,’f’}}
D.char str()={~a,~b,~C}
參考答案:A
參考解析:本題考查的是字符數(shù)組的初始化。選項B中用3個庀素初始化大小為2的數(shù)組,越界了;選項c中應(yīng)該是2行3列的數(shù)組,題中使用3行2列初始化;選項D中數(shù)組合后應(yīng)用方括號。
16下列敘述中正確的是( )。
A.順序存儲結(jié)構(gòu)的存儲一定是連續(xù)的,鏈式存儲結(jié)構(gòu)的存儲空間不一定是連續(xù)的
B.順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈式存儲結(jié)構(gòu)只針對非線性結(jié)構(gòu)
C.順序存儲結(jié)構(gòu)能存儲有序表,鏈式存儲結(jié)構(gòu)不能存儲有序表
D.鏈式存儲結(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間
參考答案:A
參考解析:鏈式存儲結(jié)構(gòu)既可以針對線性結(jié)構(gòu)也可以針對非線性結(jié)構(gòu),所以B與C錯誤。鏈式存儲結(jié)構(gòu)中每個結(jié)點都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲空間,所以D錯誤。
17下列各組類型聲明符中,含義相同的一組是( )。
A.unsigned long int和long
B.signed short int和short
C.unsigned short和short
D.short int和int
參考答案:B
參考解析:本題考查整型變量的類型,A、c選項中前者為無符號的,后者為有符號的,D選項中short int為2個字節(jié),int為4個字節(jié)。
18下面程序的運行結(jié)果是( )。
#include class base{
protected: int a; public:
base(){cout<<”0”;}
}; class basel:virtual base{
public:
basel(){cout<<”1”;}
};
class base2:virtual base i public: base2(){cout<<”2”;}
};
class derived:public basel,public base2{ public:
derived(){cout<<”3”;}
};
void main()
derived obj;
cout<
A.0123B.3120C.0312D.3012
參考答案:A
參考解析:本題考查的是含有虛基類的繼承中構(gòu)造函數(shù)的調(diào)用順序,應(yīng)該先調(diào)用基類的構(gòu)造函數(shù),接著是按照派生類繼承列表的順序依次調(diào)用虛基類的構(gòu)造函數(shù),最后調(diào)用派生類自己的構(gòu)造函數(shù)。
19下列描述正確的是( )。
A.表示m>n為true或mn&&m
參考答案:D
參考解析:本題主要考查c++語言的基本語法,選項A中應(yīng)該為m>n|j m
20下列運算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是( )。
A.int operator一(FunNumber);
B.FunNumber operator一();
C.FunNumber operator一(int);
D.int operator一(FunNumber,F(xiàn)unNumber);
參考答案:D
參考解析:本題考查運算符重載的一些規(guī)則:①一般情況下,單目運算符最好重載為類的成員函數(shù),雙目運算符則最好重載為類的友元函數(shù);②雙目運算符=、()、[]、->不能重載為類的友元函數(shù);③類型轉(zhuǎn)換函數(shù)只能定義為一個類的成員函數(shù),而不能定義為類的友元函數(shù);④若一個運算符的操作需要修改對象的狀態(tài),選擇重載為成員函數(shù)較好;⑤若運算符所需的操作數(shù)(尤其是第一個操作數(shù))希望有隱式類型轉(zhuǎn)換,則只能選用友元函數(shù);⑥當運算符函數(shù)是一個成員函數(shù)時,最左邊的操作數(shù)(或者只有最左邊的操作數(shù))必須是運算符類的一個類對象(或者是對該類對象的引用);如果左邊的操作數(shù)必須是一個不同類的對象,或者是一個內(nèi)部類型的對象,該運算符函數(shù)必須作為一個友元函數(shù)來實現(xiàn)。所以答案為D。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |