二、簡單應(yīng)用題
請編寫一個函數(shù)inlinelongsum(intn),用遞歸函數(shù)完成運算:sum(n)=1*1+2*2+???+n*n,遞歸表達(dá)式為sum(n)=sum(n-1)+n2。
注意:部分源程序已存在文件kt10_2.cpp中。
請勿修改主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)sum的花括號中填寫若干語句。
文件kt10_2.cpp的內(nèi)容如下:
#include
inlinelongsum(intn)
{
}
voidmain()
{ intn;
cout<<"輸入n:";
cin>>n;
cout<<"結(jié)果為:"< 【參考答案】 inline long sum(int n) { if(n==1) return 1; else return n*n+sum(n-1); } 【試題解析】 本題考查對遞歸函數(shù)掌握的熟練程度。遞歸的終止條件為n=1時,值為1。 三、綜合應(yīng)用題 使用VC6打開考生文件夾下的工程kt10_3,此工程包含一個源程序文件kt10_3.cpp,其中定義了用于表示雇員信息的CEmployee類與表示公司信息的Company類,但這兩個類的定義并不完整。請按要求完成下列操作。 (1)定義Cemployee類的私有數(shù)據(jù)成員name(大小為50的字符數(shù)組)和pay(double型數(shù)據(jù)),分別用于記錄雇員姓名和月薪。請在注釋“//**1**”之后添加適當(dāng)?shù)恼Z句。 (2)完成Company類默認(rèn)構(gòu)造函數(shù)的定義,該構(gòu)造函數(shù)將n值賦值給私有成員num,并完成指針emp所指的n個Cemployee對象空間的申請,請在注釋“//**2**”之后添加適當(dāng)?shù)恼Z句。 (3)完成Company類成員函數(shù)voidCompany::add(intcode,charname[50],doublepay)的定義,該函數(shù)將某一雇員的編號code、姓名name及月薪pay輸入到公司信息中。請在注釋“//**3**”之后添加適當(dāng)?shù)恼Z句。 (4)完成Company類成員函數(shù)voidCompany::print()的定義,使其以"_ispaid_RMBforonemonth"的格式輸出公司內(nèi)所有員工的月薪信息。請在注釋“//**4**”之后添加適當(dāng)?shù)恼Z句。 注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。 源程序清單如下: #include #include classCEmployee { public: voidputname(charn[50]){strcpy(name,n);} voidgetname(charn[50]){strcpy(n,name);} voidputpay(doubled){pay=d;} doublegetpay(){returnpay;} private: //**1** }; classCompany { private: CEmployee*emp; intnum; public: Company(intn); voidadd(intcode,charname[50],doublepay); voidprint(); }; Company::Company(intn) { //**2** } voidCompany::add(intcode,charname[50],doublepay) { //**3** } voidCompany::print() { //**4** for(inti=0;i { (emp+i)->getname(c); money=(emp+i)->getpay(); cout< "RMBforonemonth"< voidmain() { Companycom(2); com.add(0,"Jack",200); com.add(1,"Lee",300); com.print(); } 【參考答案】 (1)char name[50]; double pay; (2)num=n; emp=new CEmployee[num]; (3)(emp+code)->putname(name); (emp+code)->putpay(pay); (4)char c[50]; double money; 【試題解析】 本題考查類成員的定義、類成員函數(shù)的定義與調(diào)用、對象數(shù)組的使用。注意指針和動態(tài)申請空間new的使用方法。使用指針調(diào)用成員應(yīng)該用"->"符號,new的返回值是指針類型的。 相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |