- 相關(guān)推薦
2017計(jì)算機(jī)二級(jí)C++操作練習(xí)題附答案
引導(dǎo)語(yǔ):2017年9月計(jì)算機(jī)二級(jí)考試快要來(lái)臨了,你是否在煩惱沒(méi)有操作練習(xí)題呢,以下是百分網(wǎng)小編分享給大家的2017計(jì)算機(jī)二級(jí)C++操作練習(xí)題附答案,歡迎練習(xí)!
一、程序改錯(cuò)題(18分)
使用VC++6.0打開(kāi)考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,并使程序輸出的結(jié)果為 TC1 TC2
注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。 試題程序: #include
#include structTCO {
//********error******** virtualvoidfun(); };
classTCl:publicTCO { voidfun() {
cout<<"TCl"< } };
classTC2:publicTCO { voidfun() {
cout<<"TC2"< } }; voidmain() { TCO"P; TClobj1; TC2obj2;
//********error******** p=*obj1; p->fun();
//********error********
p=*obj2; p->fun(); return; }
二、簡(jiǎn)單應(yīng)用題(24分)
使用VC++6.0打開(kāi)考生交件夾下的源程序文件2.cpp。閱讀下列函數(shù)說(shuō)明和代碼,完成空出部分程序。函數(shù)fun(intN[4])的功能是用4個(gè)數(shù)字,組成互不相同且無(wú)重復(fù)數(shù)字的3位數(shù),并將滿足所有條件的數(shù)字輸出到屏幕,
并且每輸出一個(gè)3位數(shù)就換一行。
程序分析:可填在百位、十位、個(gè)位的數(shù)字都是1、2、3、0。組成所有的排列后再去掉不滿足條件的排列。如果判定第一個(gè)數(shù)字是0,則也去掉。 試題程序: #include voidfun(intN[4]) { } intmain()
intN[4]={1,2,3,0}; fun(N): return0; }
三、綜合應(yīng)用題(18分)
使用VC++6.0打開(kāi)考生文件夾下的源程序文件3.cpp。其中定義的類不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。
(1)基類People完成打印功能,定義其中的打印函數(shù)為 虛函數(shù),請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。
(2)類Boy繼承于People,在構(gòu)造函數(shù)中設(shè)置性別為1, 請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。
(3)類Girl繼承于People,在構(gòu)造函數(shù)中設(shè)置性別為0,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。 (4)實(shí)現(xiàn)函數(shù)fun,用于傳遞不同的類型,打印出性別,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。 輸出的內(nèi)容如下: Sex=Boy Sex=Girl
注意:除在指定位暨添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。 試題程序: #include classPeople { public:
//********1******** voidprint(){} intsex; };
classBoy:publicPeople
{ publiC: Boy() {
//********2********} voidprint() {
cout<<"Boy"< } };
classGirl:publicPeople { public: Girl() {
//********3********} voidprint() {
cout<<"Girl"< } };
//********4********{ cout<<"Sex="; p.print(); } intmain() { Boym: fun(m); Girln: fun(n); return0; }
參考答案
一、程序改錯(cuò)題
(1)應(yīng)改為“virtualvoidfun()=0;”。 (2)應(yīng)改為“p=&obj1;”。 (3)應(yīng)改為“p=&obj2;”。
【解析】如果在基類中不使用這個(gè)虛函數(shù),其返回值也是沒(méi)有意義的,它應(yīng)該被定義為純虛函數(shù)。所以虛函數(shù)fun應(yīng)該是純虛函數(shù),也就是聲明虛函數(shù)時(shí)初始化為0的函數(shù)。即第2處的“virtualvoidfun()=0;”。第2處的P為指針變量,將對(duì)象obj1賦值給P,實(shí)際上蹙P指向?qū)ο髈bj1的地址,所以將“p=*obj1;”修改為“P=&obj1;”。第3處的“P=*obj2;”修改為“p=&obj2;”。
二、簡(jiǎn)單應(yīng)用題
inti,j,k;
for(i=0;i<4;i++)//百位循環(huán) {
for(j=0;j<4;j++)//十位循環(huán) for(k=0;k<4;k++)//個(gè)位循環(huán) {
if(i!=j&&j!=k&&k!=i&&N[i]!=0)// 當(dāng)三位數(shù)不同,并且百位不為0 {
cout< } } }
【解析】本題利用3層循環(huán),對(duì)3位數(shù)字是否相同進(jìn)行判斷。如果3位數(shù)不同,并且百位不為0,那么依次輸出這3 位數(shù),即由3位數(shù)組成的數(shù)字。
三、綜合應(yīng)用題
(1)將“voidprint(){};”補(bǔ)充完整為“virtualvoidprint(){};”。 (2)應(yīng)添加“sex=1;”。 (3)應(yīng)添加“sex=0;”。
(4)應(yīng)添加“voidfun(People&p)”。
【解析】第1處要求“基類People完成打印功能,定義其中的打印函數(shù)為虛函數(shù)”。虛函數(shù)是函數(shù)的一種,定義虛函數(shù),在函數(shù)名前聲明virtual就可以了,所以將第1處的“voidprint(){}”語(yǔ)句修改為“virtualvoidprint(){}”。第2處要求“類Boy繼承于People,在構(gòu)造函數(shù)中設(shè)置性別為l”;怭eople中變量sex用來(lái)存放性別,Boy繼承People,所以Boy中性別的變量可以使用基類中的sex變量,設(shè)置性別為1,即“sex=1;”。第3處要求“類Girl繼承于People,在構(gòu)造函數(shù)中設(shè)置性別為0”。在第3處添加語(yǔ)句“sex=0;”。第4處要求“實(shí)現(xiàn)函數(shù)fun,用于傳遞不同的類型,打印出性別”。根據(jù)“P.print();”語(yǔ)句知道,fun函數(shù)的形參為指針P,由于它調(diào)用了基類People中的成員函數(shù)print,所以P的基類為People,即添加函數(shù)fun的定義為“voidfun(People&p)”。
【計(jì)算機(jī)二級(jí)C++操作練習(xí)題附答案】相關(guān)文章:
2015年9月計(jì)算機(jī)二級(jí)C++精選練習(xí)題(附答案)12-07
2016計(jì)算機(jī)二級(jí)《C++》練習(xí)題及答案08-14
全國(guó)計(jì)算機(jī)二級(jí)《C++》上機(jī)試題附答案01-15
2017計(jì)算機(jī)二級(jí)C++考前練習(xí)題及答案03-30
2017計(jì)算機(jī)二級(jí)C++考前練習(xí)題及答案03-11
2017計(jì)算機(jī)二級(jí)C++基礎(chǔ)練習(xí)題及答案08-07
C++備考計(jì)算機(jī)二級(jí)模擬練習(xí)題及答案04-29