點(diǎn)擊查看:2018年9月計(jì)算機(jī)二級C++考試考前過關(guān)練習(xí)題匯總
選擇題
1.可以用P.a的形式訪問派生類對象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中的語句是( )。
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;}
};
下列類對象定義語句中錯誤的是( )。
A.MyClassmyObj;
B.MyClassmyObj(11,"13301111155");
C.MyClassmyObj(12,’m’);
D.MyClassmyObj(12);
6.下列是關(guān)于派生類聲明的開始部分,其中正確的是( )。
A.classvirtualB:publicA
B.virtualclassB:publicA
C.classB:publicAvirtual
D.classB:virtualpublicA
7.如果類A被說明成類B的友元,則( )。
A.類A的成員即類B的成員
B.類B的成員即類A的成員
C.類A的成員函數(shù)不得訪問類B的成員
D.類B不一定是類A的友元
8.下列關(guān)于虛基類的描述,錯誤的是( )。
A.設(shè)置虛基類的目的是為了消除二義性
B.虛基類的構(gòu)造函數(shù)在非虛基類之后調(diào)用
C.若同一層中包含多個虛基類,這些虛基類的構(gòu)造函數(shù)按它們說明的次序調(diào)用
D.若虛基類由非虛基類派生而來,則仍然先調(diào)用基類構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)
9.下列關(guān)于多態(tài)性的描述,錯誤的是( )。
A.C++語言中的多態(tài)性分為編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性
B.編譯時(shí)的多態(tài)性可通過函數(shù)重載實(shí)現(xiàn)
C.運(yùn)行時(shí)的多態(tài)性可通過模板和虛函數(shù)實(shí)現(xiàn)
D.實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的機(jī)制稱為動態(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
參考答案:
1.D!窘馕觥恐挥泄欣^承的公有成員才能被派生類的對象直接訪問,其他的情況都會因?yàn)樵L問權(quán)限問題產(chǎn)生錯誤。
2.C!窘馕觥勘绢}考查考生對拷貝構(gòu)造函數(shù)的掌握。因?yàn)?+運(yùn)算是右結(jié)合的,所以在使用a對b賦值時(shí),b的hum變?yōu)?,而a的num變?yōu)?(先賦值再自加)。
3.D!窘馕觥勘绢}考查cin流對象的幾種成員函數(shù)get,getline,read及流提取符>>的使用規(guī)則。
4.C!窘馕觥坑芍骱瘮(shù)main入手,定義TestClass類的對象cs1,執(zhí)行cs1.va1,其中va1為靜態(tài)變量,根據(jù)intTestClass::val=0;初始化,TestClass中的TestClass(){val++;}構(gòu)造函數(shù)執(zhí)行后,val值為1。主函數(shù)中接著定義對象cs2,cs3,cs4。執(zhí)行cout< 25.B!窘馕觥勘绢}考查構(gòu)造函數(shù)的應(yīng)用。對象建立用初始化列表對數(shù)據(jù)成員進(jìn)行時(shí)。列表中的參數(shù)類型要與構(gòu)造函數(shù)中形參類型一致。B選項(xiàng)中第二個參數(shù)為13301111155,是字符串,而構(gòu)造函數(shù)中第二個形參為char型,兩者不一致造成錯誤。
6.D!窘馕觥柯暶髋缮惖囊话阈纬蔀閏lass派生類名:[繼承方式]基類名。其中繼承方式包括public、private和protected。而virtual為C++中的關(guān)鍵字,所以選項(xiàng)C錯。虛函數(shù)的使用方法是在基類用virtual聲明成員函數(shù)為虛函數(shù)。
7.D!窘馕觥勘绢}考查的是友元類的定義:類A為類B的友元類,則類A的所有成員函數(shù)都是類B的友元函數(shù),但反之則不一定成立。
8.B!窘馕觥刻摶惖囊刖褪菫榱讼x性,其構(gòu)造函數(shù)的調(diào)用仍然是按照繼承的順序進(jìn)行的,對于多個虛基類則按它們說明的次序調(diào)用,虛基類的構(gòu)造函數(shù)先于非虛基類的構(gòu)造函數(shù)執(zhí)行。
9.C。【解析】編譯時(shí)的多態(tài)性是通過函數(shù)重載和模板體現(xiàn)的,運(yùn)行時(shí)的多態(tài)性是通過虛函數(shù)體現(xiàn)的。
10.D!窘馕觥渴紫榷xTestClass3的對象obj,參數(shù)為10。其中TestClass3為TestClass1和TestClass2的派生類。然后調(diào)用disp成員函數(shù)。disp中首先執(zhí)行TestClassl::disp();,然后執(zhí)行TestClass2::disp();,最后執(zhí)行輸出語句cout<
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關(guān)推薦:
2018年9月全國計(jì)算機(jī)等級考試試題匯總(各科目)
2018年全國計(jì)算機(jī)等級考試必做試題匯總(各科目)
2018年全國計(jì)算機(jī)等級考試復(fù)習(xí)知識點(diǎn)匯總(各科目)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |