1、国家二级 C+机试(操作题)模拟试卷 222及答案与解析 一、基本操作题 1 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 pmj1,该工程中包含程序文件 main cpp,其中有关 TVSet(“电视机 ”)和主函数 main的定义。程序中位于每个 “ ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: 规格: 29英寸,电源:开,频道: 5,音量: 18 规格: 29英寸,电源:关,频道: -1,音量: -1 注意 :只修改每个 “ ERROR*found*”下的那一行,不要改动程序中的其他内容。 1 #include 2 usi
2、ng namespace std; 3 class TVSet “电视机 “类 4 const int size; 5 int channel;频道 6 int volume; 音量 7 bool on; 电源开关: true表示开, false表示关 8 public: 9 ERROR*found* 10 TVSet(int slze) 11 this-size(size); 12 channel=0; 13 volume=15; 14 on=false; 15 16 int getsize()constreturn size;)返回电视机规格 17 bool isOn()constretu
3、rn on; 返回电源开关状态 18 返回当前音量,关机情况下返回 -1 19 int getVolume()constreturn isOn()?volume: -1; 20 返回当前频道,关机情况下返回一 1 21 int getChannel()constreturn isOn()?channel: -1; 22 ERROR *found* 23 void turnOnOff()const 将电源在 “开 ”和 “关 ”之间转换 24 on=!on; 25 void setChannelTo(int chan) 设 置频道 (关机情况下无效 ) 26 if(isOn() chan=0 c
4、han=0 vol 2 using namespace std; 3 class Date 4 private: 5 int year; 6 int month; 7 int day of month; 8 public: 9 Date(int y, int m, int d) 10 this-year=y; 11 this-month=m; 12 this-day_of_month=d; 13 14 bool operatoryearyear=dt year this-monthyear=dr year this-month=dt month 19 ; 20 21 void writeToF
5、ile(const char*path); 1 Polymomial cpp 2 #include“Polynomial h“ 3 double Polynomial: getValue(doublex)const 4 多项式的值 value为各次项的累加和 5 double value=coef0; 6 *333* 7 8 *666* 9 return value; 10 ) 1 main cpp 2 #include“Polynomial h“ 3 int main() 4 double pl=5 0, 3 4, -4 0, 8 0, p2=0 0, -5 4, 0 0, 3 0, 2 0
6、; 5 Polynomial polyl(p1, sizeof(p1)sizeof(double), poly2(p2, sizeof(p2) Sizeof(double); 6 cout 国家二级 C+机试(操作 题)模拟试卷 222答案与解析 一、基本操作题 1 【正确答案】 (1)TVSet(int size): size(size) (2)void tumOnOff() (3)eout0)当 j大于零时,做相乘操作,即完成该项的乘方动作 6 7 x_value*=x; 8 j-; 9 10 value+=coefi*x value;把 i项的乘方结果乘以该项系数后加进 value中 11 【试题解析】 题目要求成员函数 getValue计算多项式的值,多项式中 x的值由参数指定,多项式的值 value为各次项的累加和。由类的定义可知数组 coef中存储的是各次项的系数,这里使用 for循环来完成题目要求,当次项为 0时,value=coef0。当次项为 1时, value=coef1*x+coef0。依次类推直到 x的最高次数。