第 1 頁(yè):試題 |
第 2 頁(yè):參考答案 |
點(diǎn)擊查看:2018年12月計(jì)算機(jī)二級(jí)C++提分練習(xí)題及答案匯總
選擇題
1.可以用P.a的形式訪問(wèn)派生類對(duì)象P的基類成員a,其中a是( )。
A.私有繼承的公有成員
B.公有繼承的私有成員
C.公有繼承的保護(hù)成員
D.公有繼承的公有成員
2.下面程序的運(yùn)行結(jié)果為( )。
#include
classA
{
intnum;
public:
A(inti){num=i;)
A(A&a){num=a.num++;}
voidprint(){cout< };
voidmain()
{
Aa(1),b(a);
a.print();
b.print();
}
A.11B.12
C.21D.22
3.設(shè)有定義charstr[80];以下不能將輸入數(shù)據(jù)first\nsecond\n讀取到數(shù)組str中的語(yǔ)句是( )。
A.cin.get(str,strlen(str));
B.cin.getline(str,strlen(str));
C.cin>>str;
D.cin.read(str,strlen(str));
4.下列程序的輸出結(jié)果為( )。
#include
classTestClass
{
public:
TestClass(){val++;}
static,intval;
};
intTestClass::val=0;
voidmain()
{
TestClasscsl;
cout< TestClasscs2;
TestClasscs3,cs4;
cout< }
A.O3
B.13
C.14
D.24
5.有以下類定義:
classMyClass
{
private:
intid;
chargender;
char*phone;
public:
MyClass():id(0),gender(’#’),phone(NULl){}
MyClass(intn0,charge=’#’,char*ph=NULL)
{id=no;gender=ge;phone=ph;}
};
下列類對(duì)象定義語(yǔ)句中錯(cuò)誤的是( )。
A.MyClassmyObj;
B.MyClassmyObj(11,"13301111155");
C.MyClassmyObj(12,’m’);
D.MyClassmyObj(12);
6.下列是關(guān)于派生類聲明的開(kāi)始部分,其中正確的是( )。
A.classvirtualB:publicA
B.virtualclassB:publicA
C.classB:publicAvirtual
D.classB:virtualpublicA
7.如果類A被說(shuō)明成類B的友元,則( )。
A.類A的成員即類B的成員
B.類B的成員即類A的成員
C.類A的成員函數(shù)不得訪問(wèn)類B的成員
D.類B不一定是類A的友元
8.下列關(guān)于虛基類的描述,錯(cuò)誤的是( )。
A.設(shè)置虛基類的目的是為了消除二義性
B.虛基類的構(gòu)造函數(shù)在非虛基類之后調(diào)用
C.若同一層中包含多個(gè)虛基類,這些虛基類的構(gòu)造函數(shù)按它們說(shuō)明的次序調(diào)用
D.若虛基類由非虛基類派生而來(lái),則仍然先調(diào)用基類構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)
9.下列關(guān)于多態(tài)性的描述,錯(cuò)誤的是( )。
A.C++語(yǔ)言中的多態(tài)性分為編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性
B.編譯時(shí)的多態(tài)性可通過(guò)函數(shù)重載實(shí)現(xiàn)
C.運(yùn)行時(shí)的多態(tài)性可通過(guò)模板和虛函數(shù)實(shí)現(xiàn)
D.實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的機(jī)制稱為動(dòng)態(tài)綁定
10.若有如下程序:
#include
usingnamespacestd;
classTestClassl
{
private:
inta;
public:
TestClassl(inti)
{
a=i:
}
voiddisp( )
{
cout< }
};
classTestClass2
{
private:
intb:
public:
TestClass2(intj)
{
b=j;
}
voiddisp()
{
cout< }
};
classTestClass3:publicTestClass2,publicTestClassl
{
private:
intc;
public:
TestClass3(intk):TestClass1(k-2),TestClass2(k+2)
{
c=k:
}
voiddisp()
{
TestClasssl::disp();
TestClasss2::disp();
cout< }
};
intmain()
{
TestClass30bj(10);
obj.disp();
return0;
}
程序執(zhí)行后的輸出結(jié)果是( )。
A.10,10,10
B.10,12,14
C.8,10,12
D.8,12,10
11.在下列程序的橫線處填上適當(dāng)?shù)膬?nèi)容,使程序執(zhí)行后的輸出結(jié)果為ABCD( )。
#include
usingnamespacestd;
classA
{
public:A(){cout<<’A’;}
};
classB:
{
public:B(){cout<<’B’;}
};
classC:virtualpublicA
{
public:C(){cout<<’C’;}
};
classD:publicB,publicD
{
public:D(){cout<<’D’;}
};
voidmain(){D04;}
A.publicA
B.privateA
C.protectedA
D.virtualpublicA
12.有如下程序:
#include
usingnamespacestd;
classAA{
intn;
public:
AA(intk):n(k){}
intget(){returnn;}
intget()const{returnn+1;}
};
intmain()
{
AAa(5);
constAAb(6);
cout< return0;
}
執(zhí)行后的輸出結(jié)果是()。
A.55
B.57
C.75
D.77
13.有如下程序:
#include
usingnamespacestd;
classDemo
{
public:
Demo(){cout<<"defaultconstructor\n";}
Demo(constDemo&x){cont<<"copyconstruc-
tor\n";}
};
DemouserCode(Demob){Democ(b);returnC;}
intmain()
{
Demoa;d;
cout<<"callinguserCode()\n";
d=userCode(a):
return0;
}
執(zhí)行上面程序的過(guò)程中,構(gòu)造函數(shù)Demo( )和Demo(constDem0&x)被調(diào)用的次數(shù)分別是( )。
A.1和1
B.1和2
C.2和3
D.2和4
14.有如下程序:
#include
usingnamespacestd;
classDA{
intk;
public:
DA(intx=1):k(x){}
~DA(){cout< };
intmain(){
DAd[]={DA(3),DA(3),DA(3));
DA+p=newDA[2];
delete[]p;
return();
}
這個(gè)程序的輸出結(jié)果是( )。
A.111
B.333
C.11333
D.11133
15.有如下程序:
#include
usingnamespacestd;
classMyClass{
public:
MyClass(intx):val(x){}
voidPrint()const{cout<<"const:val="<< voidPrint(){cout<<"val="< private:
intval;
};
intmain(){
constMyClassobj1(10);
MyClassobj2(20);
obj1.Print();
obj2.Print();
return0;
}
程序的輸出結(jié)果是( )。
A.va1=10const:va1=20
B.const:va1=10const:va1=20
C.const:va1=10val=20
D.val=10va1=20
16.關(guān)于函數(shù)中的<返回類型>。下列表述中錯(cuò)誤的是( )。
A.<返回類型>中有可能包含關(guān)鍵字int
B.<返回類型>中有可能包含自定義標(biāo)識(shí)符
C.<返回類型>中衣可能包含字符*
D.<返回類型>中可能包含[]
17.Sample是一個(gè)類,執(zhí)行下面語(yǔ)句后,調(diào)用Sample類的構(gòu)造函數(shù)的次數(shù)是( )。
Samplea[2],*p=newSample;
A.0
B.1
C.2
D.3
18.有如下兩個(gè)類定義:
classXX{
private:
doublex1;
protected:
doublex2;
public:
doublex3;
};
claseYY:protectedXX{
private:
doubley1;
protected;
doubley2;
public:
doubley3;
};
在類YY中保護(hù)成員變量的個(gè)數(shù)是( )。
A.1
B.2
C.3
D.4
19.下列關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的是( )。
A.可以通過(guò)運(yùn)算符重載在C++中創(chuàng)建新的運(yùn)算符
B.賦值運(yùn)算符只能重載為成員函數(shù)
C.運(yùn)算符函數(shù)重載為類的成員函數(shù)時(shí),第一操作參數(shù)就是該類對(duì)象
D.重載類型轉(zhuǎn)換運(yùn)算符時(shí)不需要聲明返回類型
20.下列關(guān)于類模板的描述中,錯(cuò)誤的是( )。
A.類模板的成員函數(shù)都是模板函數(shù)
B.可以為類模板參數(shù)設(shè)置默認(rèn)值
C.類模板描述了一組類
D.類模板中只允許有一個(gè)類型參數(shù)
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關(guān)推薦:
2018年全國(guó)計(jì)算機(jī)等級(jí)考試必做試題匯總(各科目)
2018年全國(guó)計(jì)算機(jī)等級(jí)考試復(fù)習(xí)知識(shí)點(diǎn)匯總(各科目)
2018全國(guó)計(jì)算機(jī)等級(jí)考試備考經(jīng)驗(yàn)及應(yīng)試技巧匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |