2016年12月計算機二級C++上機練習
以下是本站小編為大家整理的關於2016年12月計算機二級C++上機練習,大家可以來做一做,鞏固一下自己的知識。
一、綜合應用題
使用VC6打開考生文件夾下的工程kt9_3,此工程包含一個源程序文件kt9_,其中定義了Circle類與Money類,Circle類可對半徑為r的圓進行周長與面積的計算,而Money類用於計算一圓形游泳池的造價。游泳池四周有原形過道,過道外圍上柵欄,過道寬度為3米,根據鍵入的游泳池半徑,每米柵欄價格及每平方米過道價格,即可計算出游泳池的造價。請按要求完成下列操作,將程序補充完整。
(1)定義符號常量PI(值為3.14159f)與WIDTH(值為3.00f),分別用於表示圓周率與過道的固定寬度。請在註釋“//**1**”之後添加適當的語句。
(2)定義Circle類默認構造函數,把私有成員radius初始化為參數r的值。請在註釋“//**2**”之後添加適當的語句;
(3)完成Money類默認構造函數的定義,把私有成員FencePrice(每米柵欄的價格)、ConcretePrice(每平方米過道的價格)初始化為參數f,c的值。請在註釋“//**3**”之後添加適當的語句。
(4)完成Money類成員函數floatMoney::TotalMoney(floatfencelen,floatconarea)的定義,根據參數fencelen(柵欄的長度)和conarea(過道的.面積),返回柵欄與過道的總造價。請在註釋“//**4**”之後添加適當的語句。
注意:除在指定位置添加語句之外,請不要改動程序中的其他內容。
源程序文件kt9_清單如下:
#include
//**1**
classCircle
{ private:
floatradius;
public:
//**2** floatCircumference(){return2*PI*radius;}
floatArea(){returnPI*radius*radius;} };
classMoney
{ private:
floatFencePrice;
floatConcretePrice;
public:
Money(floatf,floatc);
floatTotalMoney(floatfencelen,floatconarea); };
Money::Money(floatf,floatc)
{ //**3** }
floatMoney::TotalMoney(floatfencelen,floatconarea)
{ //**4** }
voidmain()
{ floatradius,fence,concrete;
(ios::fixed);
(ios::showpoint);
ision(2);
cout<<"Entertheradiusofthepool:";
cin>>radius;
cout<<"EntertheFencePrice:";
cin>>fence;
cout<<"EntertheConcretePrice:";
cin>>concrete;
CirclePool(radius);
CirclePoolRim(radius+WIDTH);
Moneymon(fence,concrete);
floattotalmoney=lMoney(umference(),(()()));
cout<<"ThetotalmoneyisRMB"<
【參考答案】
(1)const float PI = 3.14159f;
const float WIDTH =3.00f;
(2)Circle(float r):radius(r){};
(3)FencePrice=f;
ConcretePrice=c;
(4)return FencePrice*fencelen+ConcretePrice*conarea;
【試題解析】
本題考查對符號常量的定義及類的定義與實現等方面的內容,其中常類型的定義應使用const關鍵字。
二、改錯題
使用VC6打開考生文件夾下的工程kt9_1,此工程包含一個源程序文件kt9_,但該程序運行有問題,請改正程序中的錯誤,使程序的輸出結果如下:
4,5
20
源程序文件清單如下:
#include
classA
{ protected:
intn,m;
public:
voidset(inta,intb){m=a;n=b;}
voidshow(){cout<
/**********found**********/ }
classB:publicA
{ ints;
public:
voidset(){s=m*n;}
voidshows(){cout<
voidmain()
{
Bb;
/**********found**********/
();
();
(); /**********found**********/
();
}
【參考答案】
(1)在“}”後添加分號
(2)將();改為:b.A::set(4,5);
(3)將();改為:s();
【試題解析】
(1)主要考查對類定義格式的掌握,類的結尾應該使用";";
(2)主要考查對基類與派生類函數調用關係的掌握,根據所要求的輸出結果,應該調用的函數為類A的set,而不是類B自身的set函數,應該避免調用的二義性;
(3)主要考查對繼承與派生的理解,由所要求輸出結果可知正確:s()。
三、簡單應用題
請編寫一個函數intCalcDigital(char*str),該函數可返回字符串str中數字字符(即“0”-“9”這10個數字)的個數,如字符串"olympic2008"中數字字符的個數為4。請用if條件判斷語句與for循環語句來實現該函數。
注意:部分源程序已存在文件中。
請勿修改主函數main和其他函數中的任何內容,僅在函數find的花括號中填寫若干語句。
文件kt9_的內容如下:
#include
#include
intCalcDigital(char*str);
voidmain()
{ char*str;
str=newchar[255];
cout<<"輸入字符串:";
cin>>str;
intnum=CalcDigital(str);
cout<
intCalcDigital(char*str)
{
}
【參考答案】
int CalcDigital(char *str)
{ if(str==NULL) return 0;
int num_of_digital=0;
int len=strlen(str); for(int i=0;i
if(str[i]<='9' && str[i]>='0')
num_of_digital++;
return num_of_digital; }
【試題解析】
本題考查對於if條件判斷語句與for循環語句的熟練使用程度。注意判斷條件(判斷是否是數字是直接比較ASCII碼)的使用。
-
2016年計算機二級MSOffice模擬試題(含答案)
本文為大家整理的是2016關於計算機二級MSOffice考試題庫及答案,希望能給大家帶來幫助!一、選擇題1下面描述中,不屬於軟件危機表現的是()。A.軟件過程不規範B.軟件開發生產率低C.軟件質量難以控制D.軟件成本不斷提高參考答案:A參考解析:軟件危機主要表現在:軟件需求...
-
2017年9月計算機二級考試C++考前測試題及答案
導語:C++這個詞在中國大陸的程序員圈子中通常被讀做“C加加”,而西方的程序員通常讀做“Cplusplus”,“CPP”。它是一種使用非常廣泛的計算機編程語言。以下是小編為大家精心整理的2017年9月計算機二級考試C++考前測試題及答案,歡迎大家參考!1).下面關於C++流的敍...
-
2016年計算機二級《C語言程序設計》考試大綱
為幫助考生們更好、更有準備地參加計算機二級C語言考試,下面是本站小編搜索整理的關於二級《C語言程序設計》考試大綱,歡迎參考複習,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!全國計算機等級考試二級C語言程序設計考試大綱(2013年版...
-
2007年3月全國計算機等級考試二級VB筆試真題
一、選擇題(第小題2分,共70分)下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填塗在答題卡相應位置上,答在試卷上不得分。(1)下列敍述中正確的是(B)A)算法的效率只與問題的規模有關,而與數據的存儲結構無關B)算法的時間複雜度是指執行算法...