问答题 请使用VC6或使用[答题]菜单打开考生文件夹proj1下的工程proj1。此工程中包含源程序文件main.cpp,其中有类TVSet(“电视机”)和主函数main的定义。程序中位于每个“//ERROR ********found********”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: 规格:29英寸,电源:开,频道:5,音量:18 规格:29英寸,电源:关,频道:-1,音量:-1 注意:只修改每个“//ERROR ****found****”下的那一行,不要改动程序中的其他内容。 #include <iostream> using namespace Std; class TVSet { //"电视机"类 const int size; int channel; //频道 int volume; //音量 bool on; //电源开关:true表示开,false表示关 public: TVSet (int size): size (size), channel(0), on{false) // ERROR ********* found********* {} int getSize () const { return size; } //返回电视机规格 bool isOn()const{ return on;} //返回电源开关状态 //返回当前音量,关机情况下返回-1 int getVolume () const { return isOn()? volume : -1;} //返回当前频道,关机情况下返回-1 int getChannel () const { return isOn()? channel: -1; } void turnOnOff() { on=! on;} //将电源在“开”和“关”之间转换 void setChannelTo (int chan) { if(isOn() &&chan >=0 && chan< =99) // ERROR ********* found********* ; } // ERROR ********* found********* void setVolumeTo (int vol)const { //设置音量(关机情况下无效) if(isOn() && vol>=0 && vol <=20) volume = vol; } void show state() { cout << "规格:" <<getSize() << "英寸"<< ",电源:" << (isOn ()? "开" : "关")<< ",频道:" << getChannel ()<< ",音量:" << getVolume () << endl; } }; int main() { TVSet tv (29); tv.turnOnOff (); tv. setChannelTo (5); tv.show state(); tv.turnOnOff (); tv.show state(); return 0; }
【正确答案】(1){volume=18;} (2)channel=chan; (3)void setVolumeTo(int vol){
【答案解析】[考点] 本题考查TVSet类,其中涉及构造函数、成员函数、const函数和bool函数。 [解析] (1)主要考查考生对构造函数的掌握,有题目要求输出音量为18,因此使用构造函数将volume初始为18。 (2)主要考查考生对成员函数的掌握,满足if条件的要设置频道,即channel=chan;。 (3)主要考查考生对const函数的掌握,函数体内存在语句volume=vol;,使变量的值发生改变,因此不能用const定义函数。