第 1 頁:選擇題 |
第 5 頁:基本操作題 |
第 6 頁:綜合應用題 |
11有如下程序:
#nclude
using namespace std;
int main()
{
void function(double val);
double val;
function(val);
cout<
return 0;
}
void function(double val)
} val=3;}
編譯運行這個程序?qū)⒊霈F(xiàn)的情況是( )。
A.編譯出錯,無法運行
B.輸出:3
C.輸出:3.0
D.輸出一個不確定的數(shù)
參考答案:D
參考解析:本題考查函數(shù)調(diào)用及傳值方式傳遞參數(shù),執(zhí)行函數(shù)function時,并沒有將3的值傳回來,而val又沒有初始化,所以會輸出一個不確定的值,D選項正確。
12this指針是C++語言實現(xiàn)( )的一種機制。
A.抽象B.封裝C.繼承D.重載
參考答案:B
參考解析:this指針是c++語言實現(xiàn)封裝的一一種機制,它將對象和該對象調(diào)用的成員函數(shù)連接在一起.在外部看來,每-個對象都擁有自己的函數(shù)成員。
13下面關(guān)于虛函數(shù)的描述,錯誤的是( )。
A.在成員函數(shù)聲明的前面加上virtual修飾,就可把該函數(shù)聲明為虛函數(shù)
B.基類中說明了虛函數(shù)后,派生類中對應的函數(shù)也必須說明為虛數(shù)
C.虛函數(shù)可以是另一個類的友元函數(shù),但不能是靜態(tài)成員函數(shù)
D.基類中說明的純虛函數(shù)在其任何派生類中都必須實現(xiàn)
參考答案:B
參考解析:基類中說明的虛函數(shù),在派生類中自然就是虛函數(shù),對于純虛函數(shù)必須在后面繼承的派生類中給出具體的實現(xiàn);靜態(tài)成員函數(shù)不能進行動態(tài)聯(lián)編,所以虛函數(shù)不能是靜態(tài)的。
14有如下程序:
#include
using namespaee std;
int main()
{
void function(double val);
double val:
function(val);
eout<
return 0;
}
void function(double val)
{
val=3;
}
編譯運行這個程序?qū)⒊霈F(xiàn)的情況是( )。
A.編譯出錯,無法運行
B.輸出:3
C.輸出:3.0
D.輸出一個不確定的數(shù)
參考答案:D
參考解析:本題考查函數(shù)調(diào)用及傳值方式傳遞參數(shù),執(zhí)行函數(shù)function時,并沒有將3的值傳回來,而val又沒有初始化,所以會輸出一個不確定的值,D選項正確。
15面向?qū)ο蠓椒ㄖ,繼承是指( )。
A.一組對象所具有的相似性質(zhì)
B.一個對象具有另一個對象的性質(zhì)
C.各對象之間的共同性質(zhì)
D.類之間共享屬性和操作的機制
參考答案:D
參考解析:繼承是面向?qū)ο蟮姆椒ǖ囊粋主要特征,是使用已有的類的定義作為基礎(chǔ)建立新類的定義技術(shù)。廣義的說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復定義它們,所以說繼承是指類之間共享屬性和操作的機制。
16下列程序的運行結(jié)果為( )。 #include
void main() {
int a=2:
int b=a+1: cout<
A.0.66667B.0C.0.7D.0.66666666…
參考答案:B
參考解析:表達式值的類型是由操作數(shù)的類型決定的,因為本題的兩個數(shù)都是int型的,所以得出的結(jié)果也為int型,即去掉小數(shù)點后的部分,只取商的整數(shù)部分。
17有如下定義:
int a[5]={1,3,5,7,9},* P=a;
下列表達式中不能得到數(shù)值5的是( )。
A.a[2]B.a[3]C.*(P+2)D.+P+4
參考答案:B
參考解析:本題考查指向數(shù)組的指針,本題中指針變量P指向數(shù)組a,直接使用數(shù)組下標即可取值,數(shù)組F標是從0開始標號的,所以a[2]能取到5,而a[3]取不到5,(:選項中使用指針后移方法能夠取到5,D選項中*P為1,所以*P+4為5。
18C++系統(tǒng)預定義了4個用于標準數(shù)據(jù)流的對象,下列選項中不屬于此類對象的是( )。
A.coutB.cinC.cerrD.cset
參考答案:D
參考解析:c++標準數(shù)據(jù)流的對象分別足cout、cin、CelT、cl09,所以本題答案為D。
19有如下程序:
#include
using namespace std;
class GA{
public:
virtual int f()t retum l;}
};
class GB:public GA{
public:
virtual int f(){retum 2;}
};
void show(GA g){eout<<9.f();}
void display(GA&g){cout<<9.f();}
int main()
{
GA a;show(A.;display(A.;
GB b;show(B.;display(B.;
return 0;
}
執(zhí)行這個程序的輸出結(jié)果是( )。
A.1111B.1211C.1112D.1212
參考答案:C
參考解析:本題主要考察虛函數(shù)。虛函數(shù)指在某基類中聲明為virtual并在一一個或多個派生類中被重新定義的成員函數(shù),本題中定義類GA的對象a,執(zhí)行show(a)、display(a),輸出ll,定義了類GB的對象b,執(zhí)行show(b),仍然輸出1,display(b)執(zhí)行會調(diào)用派生類的f函數(shù),因為f函數(shù)為虛函數(shù),輸出2,所以本題答案為c。
20下列敘述中正確的是( )。
A.有一個以上根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)
B.只有一個根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)
C.循環(huán)鏈表是非線性結(jié)構(gòu)
D.雙向鏈表是非線性結(jié)構(gòu)
參考答案:B
參考解析:線性結(jié)構(gòu)應滿足:有且只有一個根結(jié)點與每個結(jié)點最多有一個前件,也最多有一個后件,所以8正確。所以有一個以上根結(jié)點的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu),所以A錯誤。循環(huán)鏈表和雙向鏈表都是線性結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |