21有如下類定義:
class Point
{
int xx.yy;
public:
Point():xx(0),yy(0){}
Point(int x,int Y=0):xx(X),YY(Y){}
};
若執(zhí)行語句
Point a(2),b[3],幸c[4];
則Point類的構(gòu)造函數(shù)被調(diào)用的次數(shù)是( )。
A.2次B.3次C.4次D.5次
參考答案:C
參考解析:本題考查默認(rèn)構(gòu)造函數(shù)和帶參數(shù)的構(gòu)造函數(shù),題目中定義一個(gè)對象a(2)以及對象數(shù)組b[3],共執(zhí)行4次構(gòu)造函數(shù),對象指針不調(diào)用構(gòu)造函數(shù)。所以本題答案為c。
22有如下程序:
#include
using namespace std;
class Basel
{
public:
BaseI(int D.{cout<
一Basel(){}
};
class Base2
{
public:
Base2(int D.{tout<
~Base2(){}
};
class Derived:public Basel,Base2
{
public:
Derived(int a,int b,int c,int D.:Basel(B.,Base2(A.,bl(D.,b2(C.{}
private:
int bl:
int b2:
};
int main()
{
Derived d(1,2,3,4);
return 0;
}
執(zhí)行這個(gè)程序的輸出結(jié)果是( )。
A.1234B.2134C.12D.21
參考答案:D
參考解析:本題考查派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù),在定義一個(gè)派生類的對象時(shí),先調(diào)用基類的構(gòu)造函數(shù),然后再執(zhí)行派生類的構(gòu)造函數(shù),對象釋放時(shí),先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù)。本題中定義一個(gè)派生類對象時(shí),分別調(diào)用基類的構(gòu)造函數(shù),所以分別輸出21。
23以下敘述正確的是( )。
A.函數(shù)可以嵌套定義但不能嵌套調(diào)用
B.函數(shù)既可以嵌套調(diào)用也可以嵌套定義
C.函數(shù)既不可以嵌套定義也不可以嵌套調(diào)用
D.函數(shù)可以嵌套調(diào)用但不可以嵌套定義
參考答案:D
參考解析:在c++語言中,所有的函數(shù)都是平行的,即在定義函數(shù)時(shí)是互相獨(dú)立的,一個(gè)函數(shù)并不從屬于另一個(gè)函數(shù),即函數(shù)不能嵌套定義,但可以互相調(diào)用。但是不能調(diào)用main()函數(shù)。
24必須用一對大括號(hào)括起來的程序段是( )。
A.switCh語句中的Case標(biāo)號(hào)語句
B.if語句的分支
C.循環(huán)語句的循環(huán)體
D.函數(shù)的函數(shù)體
參考答案:D
參考解析:本題考查c++基本控制結(jié)構(gòu),A、B、C三個(gè)選項(xiàng)中的大括號(hào)不是必須的,而D選項(xiàng)中的函數(shù)體必須使用大括號(hào)。
25軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是( )。
A.學(xué)生成績管理系統(tǒng)
B.C語言編譯程序
C.UNIX操作系統(tǒng)
D.數(shù)據(jù)庫管理系統(tǒng)
參考答案:A
參考解析:軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件。操作系統(tǒng)、編譯程序、匯編程序、網(wǎng)絡(luò)軟件、數(shù)據(jù)庫管理系統(tǒng)都屬于系統(tǒng)軟件。所以B、C、D都是系統(tǒng)軟件,只有A是應(yīng)用軟件。
26下面程序的運(yùn)行結(jié)果為( )。
#include
void main()
{
for(int a=0,x=0;!x&&a<=10;a++)
{
a++:
}
cout<
}
A.10B.1lC.12D.0
參考答案:C
參考解析:在進(jìn)入最后一次循環(huán)時(shí)a=10,在循環(huán)體內(nèi)執(zhí)行“a++;”后a=11,執(zhí)行完該次循環(huán)體計(jì)算for循環(huán)的增量部分后a=12小于l0,循環(huán)結(jié)束。
27有如下程序:
#include
using namespace std;
int i=1;
class Fun{
public:
static int i;
int value(){return i—l;}
int value()const{return i+1;}
};
int Fun::i=2;
int main(){
int i=3;
Fun funl;
const Fun fun2:
__________________
return 0;
}
若程序的輸出結(jié)果是:
123
則程序中下畫線處遺漏的語句是( )。
A.cout<
參考答案:A
參考解析:本題考查構(gòu)造函數(shù)、常成員函數(shù)和靜態(tài)數(shù)據(jù)成員。外部同名的變量賦值,不能改變類的靜態(tài)變量值,所以Fun對象里的i值為2,所以本題答案為A。
28下列有關(guān)模板的敘述中,正確的是( )。
A.函數(shù)模板不能含有常規(guī)形參
B.函數(shù)模板的一個(gè)實(shí)例就是一個(gè)函數(shù)定義
C.類模板的成員函數(shù)不能是模板函數(shù)
D.用類模板定義對象時(shí),絕對不能省略模板實(shí)參
參考答案:B
參考解析:本題考查函數(shù)模板和類模板的基礎(chǔ)知識(shí),所以本題答案為B。
29運(yùn)算符重載時(shí)不需要保持的性質(zhì)是( )。
A.操作數(shù)個(gè)數(shù)B.操作數(shù)類型C.優(yōu)先級D.結(jié)合性
參考答案:B
參考解析:重載運(yùn)算符的規(guī)則如下:①c++不允許用戶自己定義新的運(yùn)算符,只能對已有的c++運(yùn)算符進(jìn)行重裁;②c++不能重載的運(yùn)算符只有5個(gè);③重載不能改變運(yùn)算符運(yùn)算對象的個(gè)數(shù);④重載不能改變運(yùn)算符的優(yōu)先級和結(jié)合性;⑤重載運(yùn)算符的函數(shù)不能有默認(rèn)的參數(shù);⑥重載的運(yùn)算符必須和用戶定義的自定義類型的對象一起使用,至少應(yīng)有一個(gè)是類對象,即不允許參數(shù)全部是c++的標(biāo)準(zhǔn)類型。所以答案為B。
30下列程序的輸出結(jié)果為( )。
#include
{
if(n<1)return l;
else return n+time(n一1); return 0;
}
void main() {
cout<
}
A.0B.10C.15D.16
參考答案:D
參考解析:本題考查的是遞歸函數(shù)的使用,題中遞歸函數(shù)的結(jié)束條件為n
相關(guān)推薦:
2015年國家計(jì)算機(jī)二級C++考試復(fù)習(xí)資料匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |