2019年上半年软件设计师上午下午试题及答案 下载本文

请输入答案

问题:4.3 【问题3】(4分)

当n=4时,有 (6) 种摆放方式,分别为 (7) 。

解析:

(1)queen[i]==queen[j]或其等价形式 (2)1

(3)Place(j)&&j<=n或其等价形式 (4)Nqueen(j+1) 回溯法 2个 (2413) (3142)

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】

某软件公司欲开发一款汽车竞速类游戏,需要模拟长轮胎和短轮胎急刹车时在路面上留下的不同痕迹,并考虑后续能模拟更多种轮胎急刹车时的痕迹。现采用策略(Strategy)设计模式来实现该需求,所设计的类图如图5-1所示。

【Java 代码】 import java.util.*;

interface BrakeBehavior { public (1);

/* 其余代码省略 */

};

class LongWheelBrake implements BrakeBehavior { public void stop() {

System.out.println( \模拟长轮胎刹车痕迹! \}

/* 其余代码省略 */ };

class ShortWheelBrake implements BrakeBehavior { public void stop() {

System.out.println( \模拟短轮胎刹车痕迹! \}

/* 其余代码省略 */ };

abstract class Car { protected (2)wheel; public void brake() { (3); }

/* 其余代码省略 */ } :

class ShortWheelCar extends Car {

public ShortWheelCar( BrakeBehavior behavior ) { (4); }

/* 其余代码省略 */ };

class StrategyTest {

public static void main( String[] args )

{

BrakeBehavior brake = new ShortWheelBrake(); ShortWheelCar car1 = new ShortWheelCar( brake ); car1.(5); } }

问题:5.1 将应填入空白处的字句写在答题纸的对应栏内。 解析:

(1)void stop() (2)BrakeBehavior (3)wheel.stop() (4)behavior.stop() (5)brake()

阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】

某软件公司欲开发一款汽车竞速类游戏,需要模拟长轮胎和短轮胎急刹车时在路面上留下的不同痕迹,并考虑后续能模拟更多种轮胎急刹车时的痕迹。现采用策略(Strategy)设计模式来实现该需求,所设计的类图如图6-1所示。

【C++代码】

#include using namespace std; class BrakeBehavior { public: (1); /* 其余代码省略 */ }; class LongWheelBrake : public BrakeBehavior { public: void stop() { cout << \模拟长轮胎刹车痕迹! \} /* 其余代码省略 */ }; class ShortWheelBrake : public BrakeBehavior { public: void stop() { cout << \模拟短轮胎刹车痕迹! \} /* 其余代码省略 */ }; class Car { protected: (2)wheel; public: void brake() { (3); } /* 其余代码省略 */ }; class ShortWheelCar : public Car { public: ShortWheelCar( BrakeBehavior* behavior ) { (4); } /* 其余代码省略 */ }; int main() { BrakeBehavior * brake = new ShortWheelBrake(); ShortWheelCar car1( brake ) : car1.(5); return(0); }

问题:6.1 将应填入(n)处的字句写在答题纸的对应栏内。 [答案]

virtual void stop()=0; BrakeBehavior* wheel->stop() behavior->stop() brake()