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