二級(jí)C++分類(lèi)模擬128_第1頁(yè)
二級(jí)C++分類(lèi)模擬128_第2頁(yè)
二級(jí)C++分類(lèi)模擬128_第3頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、二級(jí)C+分類(lèi)模擬128( 總分: 100.00 ,做題時(shí)間: 90 分鐘 )、 基本操作題 ( 總題數(shù): 1,分?jǐn)?shù): 30.00)1. 請(qǐng)使用VC6或使用【答題】菜單打開(kāi) projl下的工程projl,該工程中包含程序文件main.cpp,其中有關(guān)TVSet( “電視機(jī)”)和主函數(shù) main的定義。程序中位于每個(gè)“ / ERROR *found* ”之后 的一行語(yǔ)句有錯(cuò)誤,請(qǐng)加以改正。改正后程序的輸出結(jié)果應(yīng)該是:規(guī)格: 29英寸,電源:開(kāi),頻道: 5,音量: 18規(guī)格: 29 英寸,電源:關(guān),頻道: -1 ,音量: -1注意:只修改每個(gè)“ / ERROR *found* ”下的那一行,不要改動(dòng)

2、程序中的其他內(nèi)容。#include < iostream >using namespace std;class TVSet / “電視機(jī)”類(lèi) const int size;int channel; / 頻道int volume; / 音量bool on; / 電源開(kāi)關(guān): true 表示開(kāi), false 表示關(guān) public: / ERROR *found*TVSet(int size) this -> size(size);channel = 0;volume = 15;on = false;返回電視機(jī)規(guī)格 返回電源開(kāi)關(guān)狀態(tài)-1int getSize() const retu

3、rn size; / bool isOn() const return on; / 返回當(dāng)前音量,關(guān)機(jī)情況下返回int getVolume() const return isOn()? volume:-1;/ 返回當(dāng)前頻道,關(guān)機(jī)情況下返回 -1 int getChannel() const return isOn()? channel: -1; / ERROR *found* void turnOnOff() const / 將電源在“開(kāi)”和“關(guān)”之間轉(zhuǎn)換on=! on;void setChannelTo (int chan) /設(shè)置頻道 ( 關(guān)機(jī)情況下無(wú)效 )if (isOn() &

4、& chan > = 0 && chan < = 99)channel = chan;void setVolumeTo (int vol) /設(shè)置音量 (關(guān)機(jī)情況下無(wú)效 )if(isOn() && vol> = 0 && vol< = 30)volume = vol;void show_state() / ERROR *found* cout << " 規(guī)格:" << getSize() << " 英寸"<< ", 電

5、源:" << (isOn()? " 開(kāi)":" 關(guān)")<< ", 頻道:" << getChannel() << ", 音量:" << getVolume() << endl;int main() TVSet tv(29); tv.turnOnOff(); tv.setChannelTo(5); tv.setVolumeTo(18); tv.show_state(); tv.turnOnOff(); tv.show_state(); r

6、eturn 0;(分?jǐn)?shù):30.00 ) 正確答案:()解析:(1)TVSet(intsize):size(size) (2) void turnOnOff()(3) cout << "規(guī)格:"<< getSize() << "英寸"答案考生文件夾考點(diǎn)主要考查T(mén)VSet類(lèi),其中涉及構(gòu)造函數(shù)、const函數(shù)和bool型函數(shù)。TVSet類(lèi)的/ 創(chuàng)建一個(gè)“無(wú)實(shí)根”的 Root 對(duì)象Root(): x1 (0.0), x2 (0.0), num_of_roots(0) / 創(chuàng)建一個(gè)“有兩個(gè)相同的實(shí)根”的 Root 對(duì)象Root

7、(double root)/*found*/ 創(chuàng)建一個(gè)“有兩個(gè)不同的實(shí)根”的 Root 對(duì)象Root (double root1, double root2): x1 (root1), x2 (root2), num_of_roots(2) void show() const / 顯示根的信息cout << "/t/t"switch(num_of_roots) case 0:/*found*case 1:cout<< " 有兩個(gè)相同的實(shí)根:"<< x1<< " 和"<< x2

8、; break;default:cout<< " 有兩個(gè)不同的實(shí)根:"<< x1<< " 和"<< x2; break;class Quadratic / 二次多項(xiàng)式public:const double a,b,c; / 分別表示二次項(xiàng)、一次項(xiàng)和常數(shù)項(xiàng)等 3 個(gè)系數(shù) Quadratic (double a, double b, double c)/ 構(gòu)造函數(shù)/*found*:Quadratic (Quadratic& x) / 復(fù)制構(gòu)造函數(shù):a(x.a), b(x.b), c(x.c) Quadr

9、atic add (Quadratic x) const / 求兩個(gè)多項(xiàng)式的和return Quadratic (a + x.a, b + x.b, c + x.c);Quadratic sub (Quadratic x) const / 求兩個(gè)多項(xiàng)式的差/*found* double value (double x) const / 求二次多項(xiàng)式的值 return a*x*x+b*x+c;Root root() const / 求一元二次方程的根 double delta = b *b - 4 * a * c;/ 計(jì)算判別式if (delta < 0.0) return Root();

10、 if (delta = 0.0) return Root(-b/(2 * a);double sq = sqrt(delta);return Root(_b+sq)/(2 * a), (-b-sq)/(2*a);void show() const /顯示多項(xiàng)式cout << endl << a << "XA2"<< showpos << b << "X"<< c << noshowpos;void showFunction() /顯示一元二次方程show()

11、;cout << "=0.0"int main() Quadratic q1(3.0, 4.0, 5.0), q2(4.5, 6.0, 2.0), q3(q2.sub(q1);q1.showFunction();q1.root().show();q2.showFunction();q2.root().show();q3.showFunction();q3.root().show();cout << endl;return 0;(分?jǐn)?shù):30.00 ) 正確答案:()解析:(1)x1(root), x2(root) , num_of_roots(1)(2

12、) cout << "無(wú)實(shí)根";break ;(3) a(a) , b(b) , c(c)(4) return Quadratie(a-x.a, b-x.b , c-x.c);答案考生文件夾考點(diǎn)本題考查Root類(lèi)和Quadratic類(lèi),其中涉及構(gòu)造函數(shù)和const函數(shù)。解析(1)主要考查考生對(duì)構(gòu)造函數(shù)的掌握,題目要求創(chuàng)建一個(gè)“有兩個(gè)相同的實(shí)根”的Root對(duì)象。說(shuō)明兩個(gè)根x1和x2相等,根的數(shù)量為 1,因此可以得出語(yǔ)句:x1(root) , x2(root) , num_of_roots(1)。(2) 主要考查考生對(duì) switch 語(yǔ)句的掌握,在語(yǔ)句switch(

13、num_of_roots) 中,num_of_roots 代表根的數(shù)量,當(dāng)為0時(shí),表示沒(méi)有根,因此輸出無(wú)實(shí)根,注意要在句尾加break。(3) 主要考查考生對(duì)構(gòu)造函數(shù)的掌握,本題使用成員初始化列表來(lái)構(gòu)造函數(shù)。(4) 主要考查考生對(duì)成員函數(shù)的掌握,題目要求求兩個(gè)多項(xiàng)式的差。兩個(gè)多項(xiàng)式的差就是各個(gè)次方的系數(shù)相減,因此得出語(yǔ)句:return Quadratic(a-x.a , b-x.b , c-x.c);。三、綜合應(yīng)用題(總題數(shù):1,分?jǐn)?shù):40.00)3. 請(qǐng)使用VC6或使用【答題】菜單打開(kāi) proj3下的工程proj3,其中包含了類(lèi)Integers和主函數(shù)main的 定義。一個(gè)Integers對(duì)

14、象就是一個(gè)整數(shù)的集合,其中包含0個(gè)或多個(gè)可重復(fù)的整數(shù)。成員函數(shù)add的作用是將一個(gè)元素添加到集合中,成員函數(shù)remove的作用是從集合中刪除指定的元素(如果集合中存在該元素),成員函數(shù)sort的作用是將集合中的整數(shù)按升序進(jìn)行排序。請(qǐng)編寫(xiě)這個(gè)sort函數(shù)。此程序的正確輸岀結(jié)果應(yīng)為:5 28 2 4 5 3 2 75 27 66 315 28 2 4 5 3 2 75 27 66 31 65 28 2 4 5 3 2 75 27 66 31 6 195 28 4 5 3 2 75 27 66 31 6 195 28 4 5 3 2 75 27 66 31 6 19 42 3 4 4 5 5 6 1

15、9 27 28 31 66 75要求:補(bǔ)充編制的內(nèi)容寫(xiě)在“ / *333* ”與“/ *666* ”之間。不得修改程序的其他 部分。注意:相關(guān)文件包括: main.cpp 、 Integers.h 。中。程序最后調(diào)用 writeToFile 函數(shù),使用另一組不同的測(cè)試數(shù)據(jù), 將不同的運(yùn)行結(jié)果輸出到文件 out.dat 輸出函數(shù) writeToFile 已經(jīng)編譯為 obj 文件。/Integers.h#ifndef INTEGERS#define INTEGERS#include < iostream >using namespace std;const int MAXELEMENT

16、S = 100;/ 集合最多可擁有的元素個(gè)數(shù)class Integersint elem MAXELEMENTS;/ 用于存放集合元素的數(shù)組int counter;/ 用于記錄集合中元素個(gè)數(shù)的計(jì)數(shù)器public:Integers(): counter(0) / 創(chuàng)建一個(gè)空集合Integers (int data, int size);/ 利用數(shù)組提的數(shù)據(jù)創(chuàng)建一個(gè)整數(shù)集合void add (int element);/ 添加一個(gè)元素到集合中void remove (int element);/ 刪除集合中指定的元素int getCount() const return counter;/ 返回集

17、合中元素的個(gè)數(shù)int getElement (int i) const return elemi;/ 返回集合中指定的元素void sort();/ 將集合中的整數(shù)按由小到大的次序進(jìn)行排序void show() const;/ 顯示集合中的全部元素;void writeToFile(const char * path);#endif/main.cpp#include "Integers.h"#include < iomanip >Integers:Integers (int data, int size): counter(0) for (int i=0; i

18、< size; i+)add(datai);void Integers:add (int element) if(counter < MAXELEMENTS)elem counter + + = element;void lntegers:remove(int element) int j;for(j = counter-1; j> =0; j-)if(elemj = element) break;for(int i=j; i < counter-1; i+) elemi = elemi+1;counter-;void Integers:sort() / *333* /

19、 *666*void Integers:show() const for(int i=0; i < getCount(); i+)cout << setw (4)<< getElement(i);cout << endl;int main() int d = 5,28,2,4,5,3,2,75,27,66,31;Integers s (d,11);s.show();s.add(6); s.show();s.add(19); s.show();s.remove(2); s.show();s.add(4); s.show();s.sort(); s.sho

20、w();writeToFile("");return 0;(分?jǐn)?shù):40.00 )正確答案:()解析:for (int i = 0; i for (int j = counter -1; j< counter; i+) /遍歷數(shù)組 elem> i; j -) /從最后一位到i到前一位遍歷elemif (elemi > elemj)/如果elemi大于elemj,則兩值替換int temp = elemi; / elemi = elemj; /定義整形變量temp并賦值為elemi; 給 elemi賦值 elemielemj = temp; / 給 elemj

21、 賦值 temp答案考生文件夾考點(diǎn)本題考查Integers類(lèi),其中涉及數(shù)組、構(gòu)造函數(shù)、成員函數(shù)、 const函數(shù)和排序 算法。解析主要考查考生對(duì)排序算法的掌握,要排序的數(shù)組為elem,元素個(gè)數(shù)為counter,在這里使用下標(biāo)i和j進(jìn)行比較,當(dāng)elemi > elemj時(shí),數(shù)組元素通過(guò)中間變量temp進(jìn)行交換。私有成員中有個(gè)常變量 const int size,這種變量只能使用成員列表初始化來(lái)賦值,判斷一個(gè)函數(shù)是否為const函數(shù),就要看函數(shù)體內(nèi)是否有成員變量的值發(fā)生了改變。解析(1)主要考查考生對(duì)構(gòu)造函數(shù)的掌握,因?yàn)閟ize是常變量,所以只能用成員初始化列表來(lái)初始size,即 TVSet(int size):size(size) 。主要考查考生對(duì)const函數(shù)的掌握,在turnOnOff函數(shù)中,有語(yǔ)句:on=!on ;,使得on的值發(fā)生改變, 因此該函數(shù)不能使用 const。(3)主要考查考生對(duì)輸岀語(yǔ)句的掌握,下一條語(yǔ)句:<<",電源:”<< (isOn()?"開(kāi)":

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論