第 1 頁:選擇題 |
第 3 頁:程序改錯題 |
第 4 頁:簡單應用題 |
第 5 頁:綜合應用題 |
21設有定義語句int(*f)(int);,則下列敘述正確的是( )。
A.f是基類型為int的指針變量
B.f是指向函數(shù)的指針變量,該函數(shù)具有一個int類型的形態(tài)
C.f是指向int類型一維數(shù)組的指針變量
D.f是函數(shù)名,該函數(shù)的返回值是其類型為int類型的地址
參考答案:B
參考解析:定義語句int(*f)(int)中f是指向函數(shù)的指針變量,該函數(shù)中也只有一個int型的形參。
22為類Matrix重載下列運算符號時,只能作為Matrix類成員函數(shù)重載的運算符是( )。
A.+B.=C.<
參考答案:B
參考解析:賦值運算符只能作為重載函數(shù)的成員函數(shù),其他運算符都可以作為友元函數(shù)重載。
23有兩個關系R和T如下所示:
則由關系R得到關系T的操作是( )。
A.選擇B.投影C.交D.并
參考答案:A
參考解析:選擇是建立一個含有與原始關系相同列數(shù)的新表,但是行只包括那些滿足某些特定標準的原始關系行。
24下列敘述中錯誤的是( )。
A.gets函數(shù)用于從終端讀入字符串
B.getchar函數(shù)用于從磁盤文件讀入字符
C.fputs函數(shù)用于把字符串輸出到文件
D.fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件
參考答案:B
參考解析:本題考查的是c語言中輸入、輸出函數(shù)的使用,gets和getchar函數(shù)用于從標準輸入設備鍵盤讀入字符串和字符;fputs用于把字符串輸出到文件;fwrite用于以二進制形式輸出數(shù)據(jù)到文件。
25下列程序的執(zhí)行結(jié)果是( )。
#include
classSample
{
intx,y;
public:
Sample(){x=y=0;}
Sample(inta,intb){x=a;y=b;}
~Sample()
{
if(x==y)
cout<<"x=y"<
else
cout<<"x!=y"<
}
voiddisp()
{
cout<<"x="<
};
voidmain()
{
Samples1(2,3);
s1.disp();
}
A.x=2,y=2B.x=3,y=3C.x=2,y=3D.x=3,y=2
參考答案:C
參考解析:本題考查類的構(gòu)造函數(shù) 和析構(gòu)函數(shù)。首先,Samplesl(2,3);會調(diào)用含有兩個參數(shù)的構(gòu)造函數(shù)Sam-ple(inta,intb){x=a;y=b;),disp()函數(shù)輸出成員變量x和y的值x=2,y=3;然后結(jié)束時調(diào)用析構(gòu)函數(shù)。因為x和y值不等,故輸出X!=Y。
26有如下程序:
#included
usingnamespqcestd;
classTestClass
{
private;
charC;
public;
TestClass(charn):c(n){}
~TestClass()
{
cout<
}
};
classTestClassl:publicTestClass
{
private:
charC;
public:
TestClassl(charn):TestClass(n+1),c(n){}~TestClassl()
{
cout<
}
};
intmain()
{
TestClasslobj('X');
return0;
}
執(zhí)行上面的程序?qū)⑤敵? )。
A.xyB.yxC.XD.y
參考答案:A
參考解析:本題中FestClass為基類,TestClass1為派生類。在主函數(shù)中定義TestClassl對象obj('x'),“TestClassl(charn):TestClass(n+1),c(n){}”,所以輸出x,然后調(diào)用基類構(gòu)造函數(shù),'x'+1='y',所以輸出y,即答案為xy。
27已知類MyClass的定義如下:
ClassMyClass{
public:
MyClass(intd){data=d;}
~MyClass(){}
private:
intdata;
};
下列對MyClass類對象數(shù)組的定義和初始化語句中,正確的是( )。
A.MyClassarray[2];
B.MyClassarray[2]={MyClass(5)};
C.MyClassarray[2]={MyClass(5),Myclass(6)};
D.MyClass*array=newMyClass[2];
參考答案:C
參考解析:A只是聲明,沒有初始化;B的初始化錯誤,另一個數(shù)組對象沒有指明地址;D同樣做的不是初始化的事情。
28下列關于二叉樹的敘述中,正確的是( )。
A.葉子結(jié)點總是比度為2的結(jié)點少一個
B.葉子結(jié)點總是比度為2的結(jié)點多一個
C.葉子結(jié)點數(shù)是度為2的結(jié)點數(shù)的兩倍
D.度為2的結(jié)點數(shù)是度為1的結(jié)點數(shù)的兩倍
參考答案:B
參考解析:葉子結(jié)點個數(shù)一度為2的結(jié)點個數(shù)+1。
29下列是關于派生類聲明的開始部分,其中正確的是( )。
A.classvirtualB:publicA
B.virtualclassB:publicA
C.classB:publicAvirtual
D.classB:virtualpublicA
參考答案:D
參考解析:聲明派生類的一般形成為class派生類名:[繼承方式]基類名。其中繼承方式包括public、private和protected。而virtual為C++中的關鍵字,所以選項C錯。虛函數(shù)的使用方法是在基類用virtual聲明成員函數(shù)為虛函數(shù)。
30針對數(shù)組定義intdata[10];,下列表述中錯誤的是( )。
A.用*data可訪問到數(shù)組的首元素
B.用data[9]可訪問到數(shù)組的末元素
C.用data[10]訪問數(shù)組元素會超出數(shù)組邊界
D.data共有10個元素,其首元素是data[1]
參考答案:D
參考解析:數(shù)組元素的下標是從0到<數(shù)組長度>-1,所以數(shù)組data的首元素是data[0],尾元素是data[9]。其他選項的描述都是正確的。
31下列關于純虛函數(shù)與抽象類的描述中,錯誤的是( )。
A.純虛函數(shù)是一種特殊的虛函數(shù),它沒有具體的實現(xiàn)
B.抽象類是指具有純虛函數(shù)的類
C.一個基類聲明了純虛函數(shù),該基類的派生類一定不是抽象類
D.抽象類只能作為基類來使用,其純虛函數(shù)的實現(xiàn)由派生類給出
參考答案:C
參考解析:純虛函數(shù)是在聲明虛函數(shù)時被“初始化”為0的虛函數(shù)。不定義對象而只作為一種基本類型作為繼承的類,稱為抽象類。凡是包含純虛函數(shù)的類都是抽象類。抽象類的作用是作為一個類族的共同基類。
32若要對Date類中重載的加法運算符成員函數(shù)進行聲明,下列選項中正確的是( )。
A.Data+{Data};
B.Dataoperator+{Data};
C.Data+operator{Data};
D.operator+{Data.Data};
參考答案:B
參考解析:重載運算符的函數(shù)一般格式如為:函數(shù)類型0perator運算符名稱(形參列表),因此選8。
33下列關于構(gòu)造函數(shù)和析構(gòu)函數(shù)的描述,錯誤的是( )。
A.析構(gòu)函數(shù)中調(diào)用虛函數(shù)采用靜態(tài)聯(lián)編
B.對虛析構(gòu)函數(shù)的調(diào)用可以采用動態(tài)聯(lián)編
C.當基類的析構(gòu)函數(shù)是虛函數(shù)時,其派生類的析構(gòu)函數(shù)也一定是虛函數(shù)
D.構(gòu)造函數(shù)可以聲明為虛函數(shù)
參考答案:D
參考解析:構(gòu)造函數(shù)的主要作用是對數(shù)據(jù)成員初始化。構(gòu)造函數(shù)不能聲明為虛函數(shù),這是因為在執(zhí)行構(gòu)造函數(shù)時類對象還未完成建立過程,當然談不上函數(shù)與類對象的關聯(lián)。
34設有如下三個關系表:
下列操作中正確的是( )。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
參考答案:C
參考解析:關系代數(shù)中的集合運算有并、差、交和笛卡兒積四種。根據(jù)本題關系T中的元組可知,它是由關系R和關系S進行笛卡兒積運算得到的。第34題 筆記記錄我的筆記(0) | 精選筆記(0)選擇筆記標簽:試題內(nèi)容(0)答案解析(0)
35類模板的使用實際上是將類模板實例化成一個具體的( )。
A.類B.對象C.函數(shù)D.模扳類
參考答案:A
參考解析:類模板就是把畿中的數(shù)據(jù)分離出來,作為一個類的描述。C++編譯器根據(jù)類模板和特定的數(shù)據(jù)類型來產(chǎn)生一個類,類模板就是一個抽象的類。
36有如下程序:
#included
usingnamespacestd;
classTestClass{
protected:
TestClass( ){cout<<'X';}
TestClass(charc){cout<
classTestClassl:publicTestClass{
public:
TestClassl(charc){cout<
intmain( ){
TestClassld1('y');
return0;}
執(zhí)行這個程序,屏幕上將顯示輸出( )。
A.yB.yxC.xyD.yy
參考答案:C
參考解析:本題中類TestClass為基類,TestClassl為TestClass的派生類。由main主函數(shù)入手,定義TestClassl類型的對象dl,參數(shù)值為y。TestClassl類繼承TestClass,所以主函數(shù)中“TestClassldl('y');”語句首先調(diào)用“TestClassl(charc){colll<
37下面程序的運行結(jié)果是( )。
#include
classbase{
protected:
inta;
public:
base(){cout<<"0";}
};
classbasel:virtualbase{
public:
basel(){cout<<"1";}
};
classbase2:virtualbase{
public:
base2(){cout<<"2";}
};
classderived:publicbasel,publicbase2{
public:
derived(){cout<<"3";}
};
voidmain()
{
derivedobj;
eout<
}
A.0123B.3120C.O312D.3012
參考答案:A
參考解析:本題考查的是含有虛基類的繼承中構(gòu)造函數(shù)的調(diào)用順序,應該先調(diào)用基類的構(gòu)造函數(shù),接著是按照派生類繼承列表的順序依次調(diào)用虛基類的構(gòu)造函數(shù),最后調(diào)用派生類自己的構(gòu)造函數(shù)。
38下列字符串中可以用作C++語言標識符的是( )。
A.1234B.foo~~barC.virtualD.34var
參考答案:A
參考解析:C++語言標識符只能由數(shù)字、字母和下畫線組成,并且只能以字母和下畫線為開頭。
39下列有關數(shù)據(jù)庫的敘述,正確的是( )。
A.數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程
B.數(shù)據(jù)的物理獨立性是指當數(shù)據(jù)的邏輯結(jié)構(gòu)改變時,數(shù)據(jù)的存儲結(jié)構(gòu)不變
C.關系中的每一列稱為元組,一個元組就是一個字段
D.如果一個關系中的屬性或?qū)傩越M并非該關系的關鍵字,但它是另一個關系的關鍵字,則稱其為本關系的外關鍵字
參考答案:D
參考解析:數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程,故選項A敘述錯誤;數(shù)據(jù)的物理獨立性是指數(shù)據(jù)的物理結(jié)構(gòu)的改變不會影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),故選項B敘述錯誤;關系中的行稱為元組,對應存儲文件中的記錄,關系中的列稱為屬性,對應存儲文件中的字段,故選項c敘述錯誤。
40下面有關重載函數(shù)的描述中正確的是( )。
A.重載函數(shù)必須具有不同的返回值類型
B.重載函數(shù)形參個數(shù)必須不同
C.重載函數(shù)必須具有不同的形參列表
D.重載函數(shù)名可以不同
參考答案:C
參考解析:所謂函數(shù)重載,是指同一個函數(shù)名可以對應多個函擻的實現(xiàn),進行函數(shù)重載時,要求同名函數(shù)的參數(shù)個數(shù)不同,或者參數(shù)類型不同。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |