2018年11月程序员考前模拟试题下午(一)之五
作者:mb60efa0d0657ac2023-11-16 01:00:15
备考咨询 刷题指导
添加专属学姐
2024上半年软考备考资料+考试大纲
下载
摘要:对于【程序员】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2018年11月程序员考前模拟试题下午(一)】部分试题的详解,一起来看看吧~1、阅读下列说明和C++代码,回答问题,将解答填入答题纸的对应栏内。【说明】某灯
摘要:对于【程序员】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2018年11月程序员考前模拟试题下午(一)】部分试题的详解,一起来看看吧~
1、阅读下列说明和C++代码,回答问题,将解答填入答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式的类图如下图所示。【C++代码】class Light {
public:
Light(string
name) { /* 代码省略 */ }
void on() {
/* 代码省略 */ } // 开灯
void off() {
/* 代码省略 */ } // 关灯
};
class Command {
public:
(1) ;
};
class LightOnCommand:public Command { // 开灯命令
private:
Light* light;
public:
LightOnCommand(Light* light) { this->light=light; }
void
execute() { (2) ; }
};
class LightOffCommand:public Command { // 关灯命令
private:
Light *light;
public:
LightOffCommand(Light* light) { this->light=light; }
void
execute() { (3) ; }
};
class RemoteControl{ // 遥控器
private:
Command*
onCommands[7];
Command*
offCommands[7];
public:
RemoteControl() { /* 代码省略
*/ }
void
setCommand(int slot, Command* onCommand, Command* offCommand) {
(4) =onCommand;
(5) =offCommand;
}
void
onButtonWasPushed(int slot) { (6) ; }
void
offButtonWasPushed(int slot) { (7) ; }
};
int main() {
RemoteControl* remoteControl=new RemoteControl();
Light*
livingRoomLight=new Light("Living Room");
Light*kitchenLight=new Light("kitchen");
LightOnCommand*livingRoomLightOn=newLightOnCommand(livingRoomLight);
LightOffCommand* livingRoomLightOff=newLightOffCommand(livingRoomLight);
LightOnCommand*kitchenLightOn=new LightOnCommand(kitchenLight);
LightOffCommand* kitchenLightOff=new LightOffCommand(kitchenLight);
remoteControl->setCommand(0, livingRoomLightOn, livingRoomLightOff);
remoteControl->setCommand(1,
kitchenLightOn, kitchenLightOff);
remoteControl->onButtonWasPushed(0);
remoteControl->offButtonWasPushed(0);
remoteControl->onButtonWasPushed(1);
remoteControl->offButtonWasPushed(1);
/* 其余代码省略 */
return 0;
}
答案:
答题解析:
1、阅读下列说明和C++代码,回答问题,将解答填入答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式的类图如下图所示。【C++代码】class Light {
public:
Light(string
name) { /* 代码省略 */ }
void on() {
/* 代码省略 */ } // 开灯
void off() {
/* 代码省略 */ } // 关灯
};
class Command {
public:
(1) ;
};
class LightOnCommand:public Command { // 开灯命令
private:
Light* light;
public:
LightOnCommand(Light* light) { this->light=light; }
void
execute() { (2) ; }
};
class LightOffCommand:public Command { // 关灯命令
private:
Light *light;
public:
LightOffCommand(Light* light) { this->light=light; }
void
execute() { (3) ; }
};
class RemoteControl{ // 遥控器
private:
Command*
onCommands[7];
Command*
offCommands[7];
public:
RemoteControl() { /* 代码省略
*/ }
void
setCommand(int slot, Command* onCommand, Command* offCommand) {
(4) =onCommand;
(5) =offCommand;
}
void
onButtonWasPushed(int slot) { (6) ; }
void
offButtonWasPushed(int slot) { (7) ; }
};
int main() {
RemoteControl* remoteControl=new RemoteControl();
Light*
livingRoomLight=new Light("Living Room");
Light*kitchenLight=new Light("kitchen");
LightOnCommand*livingRoomLightOn=newLightOnCommand(livingRoomLight);
LightOffCommand* livingRoomLightOff=newLightOffCommand(livingRoomLight);
LightOnCommand*kitchenLightOn=new LightOnCommand(kitchenLight);
LightOffCommand* kitchenLightOff=new LightOffCommand(kitchenLight);
remoteControl->setCommand(0, livingRoomLightOn, livingRoomLightOff);
remoteControl->setCommand(1,
kitchenLightOn, kitchenLightOff);
remoteControl->onButtonWasPushed(0);
remoteControl->offButtonWasPushed(0);
remoteControl->onButtonWasPushed(1);
remoteControl->offButtonWasPushed(1);
/* 其余代码省略 */
return 0;
}
答案:
(1)virtual void execute()=0
(2)light->on()
(3)light->off()
(4)onCommands[slot]
(5)offCommands[slot]
(6)onCommands[slot]->execute()
(7)offCommands[slot]->execute()
答题解析:
无
查看完整试题>>>
软考资料: 2024年软考论文范文> 软考考试核心重点难点汇总> 查看更多>
备考刷题:章节练习+每日一练> 软考历年试题+模拟题>查看更多>