- 相關(guān)推薦
2015年9月全國計算機二級考試C++筆試模擬題及答案(三)
一、填空題
1.將代數(shù)式
______________ 換成程序設(shè)計中的表達(dá)式為 【1】。
╱ X*X+Y*Y
Z= ╱ ----------
╲╱ a+b
【參考答案】
【1】SORT(x^2+y^2)/(a+b)
2.【2】是數(shù)據(jù)庫設(shè)計的核心。
【參考答案】
【2】數(shù)據(jù)模型
3.測試的目的是暴露錯誤,評價程序的可靠性;而【3】的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
【參考答案】
【3】調(diào)試
4.在面向?qū)ο蟮脑O(shè)計中,用來請求對象執(zhí)行某一處理或回答某些信息的要求稱為【4】。
【參考答案】
【4】消息
5.常用的黑箱測試有等價分類法、【5】、因果圖法和錯誤推測法4種。
【參考答案】
【5】邊值分析法
6.【6】是C++語言程序的入口。
【參考答案】
【6】main()函數(shù)
7.C++語言的基本控制結(jié)構(gòu)為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和【7】。
【參考答案】
【7】循環(huán)結(jié)構(gòu)
8.函數(shù)重載要求重載的函數(shù)必須有和原函數(shù)一樣的【8】。
【參考答案】
【8】函數(shù)名
9.設(shè)置虛基類的目的是【9】,通過【10】表示虛基類。
【參考答案】
【9】解決二義性問題
【10】用關(guān)鍵字virtual
10. 語句cout<<′\n′還可表示為【11】。
【參考答案】
【11】cout<< p>
11.若已知a=10,b=20,則表達(dá)式!a< p>
【參考答案】
【12】1
12.友元類的所有成員函數(shù)都是另一個類的【13】。
【參考答案】
【13】友元函數(shù)
13.表達(dá)式x.operator++()還可寫成【14】。
【參考答案】
【14】++x
14.若要在C盤根目錄下作為二進(jìn)制文件打開文件test.dat,則應(yīng)該用的語句是:
【參考答案】
【15】ifstream fin(″C:\test.dat″,ios_binary);或ifstream fin;fin.open(c:\test.dat″,ios_bin
上機部分
二、改錯題
使用VC6打開考生文件夾下的工程kt2_1,此工程包含一個源程序文件kt2_1.cpp,但該程序運行有問題,請改正程序中的錯誤,使程序的輸出結(jié)果如下:
Vehiclemessage
Carmessage
Vehiclemessage
源程序文件kt2_1.cpp清單如下:
#include
classvehicle
{
intwheels;
floatweight;
public:
voidmessage(void){cout<<"Vehiclemessage\n";}
};
classcar:publicvehicle
{
intpassenger_load;
public:
voidmessage(void){cout>>"Carmessage\n";}
};
classtruck:publicvehicle
{
intpassenger_load;
floatpayload;
public:
intpassengers(void){returnpassenger_load;}
};
voidmain()
{
vehicle*unicycle;
unicycle=newvehicle;
unicycle.message();
deleteunicycle;
unicycle=newcar;
unicycle->message();
deleteunicycle;
unicycle=newtruck;
unicycle->message();
deleteunicycle;
}
【參考答案】
(1)將void message(void){ cout<<"Vehicle message\n";}
改為:virtual void message(void){ cout<<"Vehicle message\n";}
(2)將void message (void){cout>>"Car message\n";}
改為:void message (void){cout<<"Car message\n";}
(3)將unicycle.message();
改為:unicycle->message();
【試題解析】
(1)主要考查對虛函數(shù)使用規(guī)則的掌握,要實現(xiàn)對函數(shù)message的動態(tài)聯(lián)編應(yīng)該使用虛函數(shù),否則產(chǎn)生的是靜態(tài)聯(lián)編,調(diào)用的函數(shù)輸出結(jié)果就與要求不符;
(2)主要考查對流輸出操作的掌握,該處錯誤的使用了流輸入操作;
(3)主要考查對象和對象指針的概念,對象指針使用"->"調(diào)用成員函數(shù),而對象使用"."調(diào)用成員函數(shù)。
三、簡單應(yīng)用題
編寫類AA的成員函數(shù)intCompare(AAb),該函數(shù)用于比較*this與b的大小,若兩者含有元素的個數(shù)n相同,并且數(shù)組中前n個元素值對應(yīng)相同,則認(rèn)為兩者相等返回1,否則返回0。注意:用數(shù)組方式及for循環(huán)來實現(xiàn)該函數(shù)。輸出結(jié)果如下:
a=b
a<>c
注意:部分源程序已存在文件kt2_2.cpp中。
請勿修改主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)Compare的花括號中填寫若干語句。
文件kt2_2.cpp的內(nèi)容如下:
#include
#include
classAA{
int*a;
intn;
intMS;
public:
voidInitAA(intaa[],intnn,intms)
{
if(nn>ms)
{\cout<<"Error!"<< p>
exit(1);}
MS=ms;
n=nn;
a=newint[MS];
for(inti=0;i< p>
}
intCompare(AAb);
};
intAA::Compare(AAb)
{
}
voidmain()
{AAa,b,c;
intx[]={1,2,3,4,5};
inty[]={1,2,3,6,7};
intz[]={1,2,5,7,9};
a.InitAA(x,3,5);
b.InitAA(y,3,5);
c.InitAA(z,3,5);
if(a.Compare(b))
cout<<"a=b"<< p>
else
cout<<"a<>b"<< p>
if(a.Compare(c))
cout<<"a=c"<< p>
else
cout<<"a<>c"<< p>
【參考答案】
int AA::Compare(AA b)
{if(n!=b.n) return 0;
for(int i=0; i<>
if(a[i]!=b.a[i]) return 0;
return 1;}
【試題解析】
本題考查應(yīng)用for循環(huán)、if條件控制語句等基本控制結(jié)構(gòu)解決實際問題的能力。
四.綜合應(yīng)用題
使用VC6打開考生文件夾下的工程test17_3,此工程包含一個源程序文件kt2_3.cpp,其中定義了用于表示點的類Point和表示內(nèi)容的類Text以及二者的派生類CircleWithText,但它們的定義并不完整。請按要求完成下列操作,將它們的定義補充完整。
(1)定義類Point的構(gòu)造函數(shù),請使用參數(shù)列表的形式將成員函數(shù)x和y分別初始化為參數(shù)x1和y1的值。請在注釋“//**1**”之后添加適當(dāng)?shù)恼Z句。
(2)完成類Text的構(gòu)造函數(shù)Text(char*str)的定義,將char型的str指向的內(nèi)容賦值給text并且輸出str所指向的內(nèi)容,請在注釋“//**2**”之后添加適當(dāng)?shù)恼Z句。
(3)定義類CircleWithText的構(gòu)造函數(shù)CircleWithText(intcx,intcy,char*msg),int型的cx和cy用于賦值給x和y,char型的指針*msg用于賦值給text,請在注釋“//**3**”之后添加適當(dāng)?shù)恼Z句。
輸出結(jié)果如下:
Point:34
hello
注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。
源程序如下:
#include
#include
classPoint
{intx,y;
public:
//**1**
{cout<<"Point:"<<<''<<<'\N';}< p>
~Point(){}};
classText
{chartext[100];
public:
Text(char*str)
{//**2**}
~Text(){}};
classCircleWithText:publicPoint,publicText
{public:
//**3**
{}
~CircleWithText(){}};
voidmain()
{CircleWithTextcm(3,4,"hello");}
【參考答案】
(1)Point(int x1=0, int y1=0) :x(x1), y(y1)
(2)strcpy(text,str);
cout<<<"\N";< p>
(3)CircleWithText(int cx,int cy, char *msg):Point(cx,cy),Text(msg)
【試題解析】
本題主要考查考生對于多繼承中類的定義和派生類構(gòu)造函數(shù)的定義的掌握。注意學(xué)會使用參數(shù)列表的形式定義派生類的構(gòu)造函數(shù),在列表中的格式是基類名1(向基類傳遞的參數(shù)列表),基類名2(向基類傳遞的參數(shù)列表)。
【9月全國計算機二級考試C++筆試模擬題及答案三】相關(guān)文章:
全國計算機二級考試C++筆試模擬題及答案04-16
2015年9月全國計算機二級考試C++筆試模擬題及答案(四)05-02
2015年9月全國計算機二級考試C++筆試模擬題及答案(五)03-20
2015年9月全國計算機二級考試C++筆試模擬題及答案(六)07-04
全國計算機等級考試二級C++筆試題02-06
全國計算機二級考試C++精選試題及答案12-28
全國計算機等級考試二級C++筆試真題05-01