阅读下列说明、C++代码和运行结果,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 对部分乐器进行建模,其类图如图5-1所示,包括:乐器(Instrument)、管乐器(Wind)、打击乐器(Percussion)、弦乐器(Stringed)、木管乐器(Woodwind)、铜管乐器(Brass)。图5-1 类图 下面是实现上述设计的C++代码,其中音乐类(Music)使用各类乐器(Instrument)进行演奏和调音等操作。【C++代码】 include<iostream> usi

题目

阅读下列说明、C++代码和运行结果,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 对部分乐器进行建模,其类图如图5-1所示,包括:乐器(Instrument)、管乐器(Wind)、打击乐器(Percussion)、弦乐器(Stringed)、木管乐器(Woodwind)、铜管乐器(Brass)。图5-1 类图 下面是实现上述设计的C++代码,其中音乐类(Music)使用各类乐器(Instrument)进行演奏和调音等操作。

【C++代码】 include<iostream> using namespace std; enum Note { /* 枚举各种音调 */ MIDDLE_C, C_SHARP, B_FLAT }; class Instrument{ /* 抽象基类,乐器 */ public: (1) ; //play函数接口 virtual void adjust()=0; //adjust函数接口 }; class Wind (2) { public: void play(Note n) { cout<<"Wind.play()"<<n<<end1; } void adjust() { cout<<"Wind.adjust()"<<end1; } }; /* 类Percussion和Stringed实现代码略 */ class Brass (3) { public: void play(Note n) { cout<<"Brass.play()"<<n<<end1; } void adjust() { cout<<"Brass.adjust ()"<<end1; } }; class Woodwind : public Wind { public: void play(Note n) { cout<<"Woodwind.play()"<<n<<end1; } }; class Music { public: void tune(Instrument* i) { i->play(MIDDLE_C); } void adjust(Instrument* i) { i->adjust(); } void tuneAll( (4) e[], int numIns) { /* 为每个乐器定调 */ for( int i=O; i<numlns; i++) { this->tune(e[i]); this->adjust(e[i]); } } }; /* 使用模板定义一个函数size,该函数将返回数组array的元素个数,实现代码略 */ int main() { Music* music= (5) Music(); Instrument* orchestra[]={ new Wind(), new Woodwind() }; music->tuneAll(orchestra, size(orchestra)); /* size数组orchestra的元素个数 */ for (int i=0; i<size (orchestra), i++) delete orchestra[i]; delete music; } 本程序运行后的输出结果为: Wind.play() 0 Wind.adjust() Woodwind.play() 0 Wind.adjust()


相似考题
更多“阅读下列说明、C++代码和运行结果,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说 ”相关问题
  • 第1题:

    阅读以下说明,回答问题,将解答填入答题纸的对应栏内。

    [说明]

    某电子商务网站采用ASP+SQL Server开发的电子商务网站系统,提供了商品查询、网上购物车、订单管理、后台商品管理和支付等功能。其后台修改商品页面如图6-12所示。

    通常,客户端浏览器不能执行(1)。

    (1) A.HTML代码 B.VBScript代码 C.JavaScript代码 D.ASP内置对象代码


    正确答案:D或ASP内置对象代码
    D,或ASP内置对象代码

  • 第2题:

    阅读下列说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 ‘ 以下C++代码实现一个简单的聊天室系统(ChatRoomSystem),多个用户(User)可以向聊天室(ChatRoom)发送消息,聊天室将消息展示给所有用户。类图如图6-1所表示。图6-1 类图

    【C++代码】 include<iostream> include <string> using namespace std; class User { private: string name; public: User(string name){ (1) =name; } ~User(){} void setName(string name) { this->name=name; } string getName(){ return name; } void sendMessage(string message); }; class ChatRoom { . public: static void showMessage(User* user, string message) { cout<<"["<<user->getName()<<"] : "<<message<<endl; } }; void User::sendMessage(string message) { (2) (this,message); } class ChatRoomSystem{ public: . . void startup() { User* zhang = new User(“John"); User* li = new User("Leo"); zhang->sendMessage("Hi! Leo!"); li_>sendMessage("Hi! John!"); } void join(User* user) { (3) ("HeIIo Everyone! l am"+user->getName()); } . }; int main(){ ChatRoomSystem*crs= (4) ; crs->startup(); crs->join( (5) ("Wayne")); delete crs; } /* 程序运行结果: [John]:Hi! Leo! [Leo]:Hi! John! [Wayne]:Hello Everyone! I am Wayne /*


    正确答案:1、this->name
    2、ChatRoom::showMessage
    3、user->sendMessage
    4、new ChatRoomSystem()
    5、new User

  • 第3题:

    阅读以下关于软件测试的说明,回答司题l至问题3,将解答填入答题纸的对应

    栏内。

    【说明】

    使用在汽车、飞机中的嵌入式软件, 日于直接影响人的生命及财产安全,测试要求

    更为严格。语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖是通常对这类软件的要求。

    以下是一段C语言代码,请仔细阅读并回答相关问题:

    【问题1】(6分)

    请根据测试要求,简要说明语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖的含义。

    将答案填写在答题纸的对应栏中。

    【问题2】(5分)

    画出以上代码的流程图,将答案填写在答题纸的对应栏中。

    【问题3】(4分)

    请根据【说明】中的C语言代码,计算满足MC/DC覆盖要求的用例数量及条件取

    值范围,将答案填写在答题纸的对应栏中.


    正确答案:
    试题三分析
    本题考查嵌入式软件测试的基本知识.
    语句覆盖要求设计足够多的测试用例,运行被测程序,使得程序中每条语句至少被
    执行一次。定覆盖(分支覆盖)要求设计足够多的测试用例,运行被测程序,使得程序
    中的每个判断的“真”和“假”都至少被执行一次。条件覆盖要求设计足够多的测试用
    例,运行被测程序,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一
    次为真值,有一次为假值。MC/DC覆盖要求每个条件的取值都有覆盖,每个判定值都有
    覆盖且每个条件都能独立影响判定结果,各覆盖率的含义如表2.5所示。

    【问题2]
    本问题考查程序流程图的画法。注意开始、结束的符号。
    根据源代码,程序流程图如下。

    【问题3]
    本问题考查MC/DC覆盖率判定的综合运用。
    MC/DC与代码中的逻辑运算有关。本题代码中的逻辑运算为x>0&&y>0。根据
    MC/DC的定义,MC/DC覆盖要求每个条件的取值都有覆盖,每个判定值都有覆盖且每
    个条件都能独立影响判定结果。对于a&&b这样的逻辑运算,真值表如下。

    对测试用例1和测试用例2,条件a不变,因为条件b的不同而导致结果的不同,
    因此条件b独立影响判定的结果。对测试用例2和测试用例3,因为条件b不变,条件a
    的不同而导致结果的不同,因此条件a独立影响判定的结果。综合以上,对逻辑运算a&&
    b应产生三个测试用例,包括:(True,False)、(True,True)、(False,True)。
    所以本题用例数量:3个;条件取值范围:(x>0andy<=0)、(x<=0andy>0)及(x>0
    andy>0)。
    参考答案

    【问题2]
    【问题3]
    用例数量:3个;
    条件取值范围:
    (x>0andy<=0)、(x<=0andy>0)及(x>0andy>0)

  • 第4题:

    阅读以下说明和Java程序,填补代码中的空缺(1)~(6),将解答填入答题纸的

    对应栏内。

    【说明】

    很多依托扑克牌进行的游戏都要先洗牌。下面的Java代码运行时先生成一副扑克

    牌,洗牌后再按顺序打印每张牌的点数和花色。

    【Java代码】


    正确答案:
    本题考查Java语言程序设计的能力,涉及类、对象、方法的定义和相关操作。要求考生根据给出的案例和代码说明,认真阅读,理清程序思路,然后完成题目。先考查题目说明。本题目中涉及到扑克牌、牌桌、玩家等类以及洗牌和按点数排序等操作。根据说明进行设计。Card类内定义了两个static枚举类型,Face枚举扑克牌点数,Suit枚举扑克牌花色。Card类有两个枚举类型的属性,face和suit,而且值不再变化,故用final修饰。在使用构造方法publicCard(Faceface,Suitsuit)新建一个Car:d的对象时,所传入的参数指定face和suit这两个属性值。因为参数名称和属性名称相同,所以用this前缀区分出当前对象。在类Card中包含方法getFace()和getSuit(),分别返回当前对象的face和suit属性值。getCard()方法返回string来表示一张牌,包括扑克牌点数和花色。牌桌类Deckofcands包含持有Card类型元素的List类型对象的声明List,用以存储牌。List是Java中的一种集合接口,是Collection的子接口。构造方法中用Card对象填充牌桌并进行洗牌。先用Card对象填充牌桌,即创建52个Card对象加入deck数组,表示牌桌上一副牌(52张)。然后洗牌,即将数组中的Card对象根据花色和点数随机排列,使用集合工具类Collechons中的shuffle方法,对以List类型表示的deck数组进行随机排列。Collectians是Java集合框架中两个主要工具类之一,用以进行集合有关的操作。printCards()方法将所有Card对象打印出来,按4列显示52张牌。每张拍的打印用list.get(i)获得list表示的deck中的第i个Card对象,然后进一步调用此对象的getCard()方法,得到String表示的当前一张牌。玩家类中包括启动发牌洗牌等操作,主入口方法main中实现创建牌桌对象,并调用按4列显示52张牌。在main()中,先初始化Deckofcards类的对象player,即生成一个牌桌:Deckofcardsplayer=newDeckofcards()并发牌,即调用player的printCards()方法,实现按4列显示52张牌打印一副扑克牌中每张牌的点数和花色。在pnntCards()方法体内部,用list调用每个数组元素,井为每个数组元素调用getCard()返回当前对象所表示一张牌的花色和点数。用格式化方法进行打印,即:因此,主(1)和(2)需要表示当前对象的this.;空(3)需要牌桌上纸牌对象,并将数组元素下标加1,即数组元素deck[count++];空(4)也需要用list对象获得纸牌对象的字符串表示,即list后的get(1)getCard();空(5)处为创建DeckOf℃ards类的对象指针player的newDeckOfCards();空(6)需要用对象player调用打印所有纸牌的printCards()函数,即player.。试题六参考答案(l)this(2)this.(3)deck[count++]或等价表示(4)get(i)getCard()(5)newDeckOfCards()(6)player.

  • 第5题:

    从下列2道试题(试题五至试题六)中任选 1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。

    试题五(共15分)

    阅读以下说明、图和C++代码,填补C++代码中的空缺(1)~(5),将解答写在答题纸的对应栏内。

    【说明】

    已知对某几何图形绘制工具进行类建模的结果如图5.1所示,其中Shape为抽象类(应至少包含一个纯虚拟( virtual)函数),表示通用图形,Box表示矩形,Ellipse表示椭圆,Circle表示圆(即特殊的椭圆),Line表示线条。

    下面的C++代码用于实现图5-1所给出的设计思路,将其空缺处填充完整并编译运行,输

    出结果为:

    Ellipse

    Circle

    Ellipse

    C

    E

    【C++代码】

    include <string>

    include <iostream>

    using namespace std;

    class Shape{

    public:

    Shape(const string& name){

    m_name= name;

    }

    ~Shape(){}

    (1) void paint() = 0;

    stringgetName()const {

    retumm name;

    }

    Private:

    string m_name;

    };

    //Box和 Line类的定义与 Ellipse类似,其代码略

    classEllipse (2) {

    public:

    Ellipse(const string& name) : Shape(name){ cout<<"Ellipse" <<endl; }

    Voidpaint() { cout<<getName()<<endl;}

    };

    classCircle (3) {

    public:

    Circle(const string& name) : Ellipse(name){ cout<<"Circl"<<endl; }

    };

    class Diagram {

    public:

    void drawAShap(Shape* shape){ shape->paint(); }

    void drawShapes() {

    shapes[0] = new Circle("C");

    shapes[l] = new Ellipse("E");

    for (int i=O;i<2; ++1) {

    drawAShap(shapes[i]);

    }

    }

    void close (){ /*删除形状,代码略 */ }

    private:

    Shape* shapes[2];

    };

    int main( )

    {

    Diagram* diagram = (4)

    diagram->drawShapes();

    diagram->close ();

    (5) diagram;

    }


    正确答案:
    试题五分析
    本题考查C++语言程序设计的能力,涉及类和抽象类、对象、函数和虚函数的定义和相关操作,以及继承关系。要求考生根据给出的案例和执行过程说明,认真阅读理清程序思路,然后完成题目。
    先考查类图整体结构。本题中根据类图定义了类:Diagram、Shape、 Box、 Ellipse、Line和Circle。其中Shape为抽象类,表示通用图形,抽象类中应至少包含一个纯虚拟( virtual)函数。Box表示矩形,Ellipse表示椭圆,Line表示线条,三者都是Shape的子类,继承了Shape类,Circle表示圆(即特殊的椭圆),继承了Ellipse。抽象类Shape的定义中,需要通过使用virtual标识虚函数,void paint()=0;表示paint()是纯虚函数,其定义前必须添加virtual进行表示。类Ellipse为Shape的子类,Circle为Ellipse的子类,需要在代码中体现出继承。另外,在子类的构造函数中,调用父类的构造函数,所以继承的权限为public。其语法为:public后加类名。
    类Diagram中没有定义构造函数,编译器生成一个缺省的构造函数,调用是采用new关键字加类名。使用完成之后,通过delete进行释放。
    因此空(1)需要表现出paint()函数为纯虚函数,即为virtual;空(2)和空(3)处添力口继承父类,并且权限为public,即为:public Shape和:public Ellipse;空(4)处补充通过使用编译器生成的缺省构造函数创建对象,即new Diagram;空(5)处通过delete释放new创建的对象diagram。
    参考答案
    (1) virtual
    (2):public Shape
    (3): public Ellipse
    (4) new Diagram
    (5) delete

  • 第6题:

    阅读下列说明和C++-代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。

    【C++代码】 #include using namespace std; class invoice{ public: (1){ cout<<"This is the content of the invoice!"<

    答案:
    解析:
    (1) virtual void printInvoice() (2) ticket->printInvoice() (3) Decorator::printInvoice() (4) Decorator::printInvoice() (5) &a
    【解析】

    试题分析
    1.Invoice类下,义虛函数,按类图,函数名是printInvoice
    2.前面定义对象名是ticket,那么在ticket不为空的时候调用函数printInvoice
    3.这部分填写发票的抬头,看类图应该实现函数printInvoice ,Decorator装饰模式使用该方法
    4.这部分是发票的脚注,看类图应该实现函数printlnvoice,Decorator装饰模式使用该方法
    5.FootDecorator a(NULL) ;脚步的装饰参数是a,调用a参数,

  • 第7题:

    试题六(共 15 分)阅读下列说明和 C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】以下 C++代码实现一个简单的聊天室系统(ChatRoomSystem),多个用户 (User)可以向聊天室(ChatRoom)发送消息,聊天室将消息展示给所有用户。 类图如图 6-1 所表示。

    【C++代码】#include#include using namespace std; class User {private:string name; public:User(string name){ (1) =name;}~User(){}
    void setName(string name) {this->name=name; } string getName(){return name;}void sendMessage(string message); }; class ChatRoom { . public:static void showMessage(User* user, string message) { cout<<"["<getName()"] : "< zhang->sendMessage("Hi! Leo!");li_>sendMessage("Hi! John!"); }void join(User* user) { (3) ("HeIIoEveryone!l am"+user->getName()); . ;} . };int main(){ChatRoomSystem*crs= (4) ; crs->startup();crs->join( (5) ("Wayne")); delete crs; }/* 程序运行结果: [John]:Hi! Leol [Leo]:Hi! John![Wayne】:Hello Everyone!Iam Wayne/*


    答案:
    解析:
    1、this->name
    2、ChatRoom::showMessage
    3、user->sendMessage
    4、new ChatRoomSystem()
    5、new User

  • 第8题:

    阅读以下代码,回答问题:1 至问题 3 ,将解答填入答题纸的对应栏内。【代码 1】#include
    void swap(int x, int y){int tmp =x; x= y; y= tmp;}int maim(){int a= 3, b= 7;printf("al= %d b1=%d\n",a,b); Swap( a, b);Printf("a2 = %d b2=%d\n”,a,b); return 0;} 【代码 2】#include#define SPACE ¨ //空格字符 Int main(){char str[128] =”Nothing is impossible! “; int i,num =0,wordMark=0; for(i=0;str[i];i++)
    If(str[i]=SPACE)WordMark=0;elseIf(wordMark=0){ wordMark=1;Mun++;} Printf(“%d/n”,num) retun 0; } 【代码 3】#include#define SPACE “//空格字符 int countStrs(char *); int main(){char str[128] = " Nothing is impossible! "; Printf(‘%d/n,(1)(str))retum 0;
    } int countStrs(char *p){int num=0, wordMark= 0; for(;(2);p++) {If((3)=SPACE)wordMark= 0;elseif( !wordMark ) { wordMark = 1;++mun}}retum (4) ;}【问题 1】(4 分)写出代码 1 运行后的输出结果。【问题 2】(3 分)写出代码 2 运行后的输出结果。【问题 3】(8 分)代码 3 的功能与代码 2 完全相同,请补充 3 中的空缺,将解答写入答题纸的对应栏内。


    答案:
    解析:
    a1=3
    b1=7
    a2=7
    b2=3

  • 第9题:

    阅读下列说明,补充(1)-(9),将解答填入答题纸的对应栏内。


    答案:
    解析:

  • 第10题:

    阅读以下说明,回答问题1至问题2,将解答填入答题纸对应的解答栏内。
    【说明】
    某留言系统采用ASP+Access开发,其后台管理登录页面如图4-1所示。

    【问题1】(9分)
    以下是该后台管理登录页面login.asp的部分代码,请仔细阅读该段代码,根据图4-1 将(1)~(9)的空缺代码补齐。



    【问题2】(6分)
    1.在登录页面 login.asp 中通过<!--#include file=“bbb.asp”-->导入了bbb.asp的代码,以下是bbb.asp的部分代码,请仔细阅读该段代码,将空缺代码补齐。



    答案:
    解析:


  • 第11题:

    阅读下列说明,回答问题1和问题2,将解答写在答题纸的对应栏内。
    【说明】
    Windows 系统的用户管理配置中,有多项安全设置,如图2-1 所示。





    答案:
    解析:
    【问题1】(3分)属于账号策略。 账户策略主要包括密码策略和账户锁定策略两种安全设置。
    【问题 2】(3分)Abcd321 test123! 123@host 密码必须符合复杂性要求:启用此策略,用户账户使用的密码必须符合复杂性的要求。 密码复杂性必须符合下列最低要求: 不能包含用户的账户名; 不能包含用户姓名中超过两个连续字符的部分; 至少有六个字符长; 密码总必须包含一下4类字符中的三类字符: 1、英文大写字母(A-Z) 2、英文小写字母(a-z) 3、10个基本数字(0-9) 4、特殊符号(!@#¥%等)

  • 第12题:

    阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
    【说明】
    阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。
    【说明】
    某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种
    类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。






    答案:
    解析:

  • 第13题:

    阅读以下代码,回答问题:1至问题3 ,将解答填入答题纸的对应栏内。 【代码1】 include<stdio.h > void swap(int x, int y) { int tmp =x; x= y; y= tmp; } int maim() { int a= 3, b= 7; printf("a1= %d b1=%d\n",a,b); Swap( a, b); Printf("a2 = %d b2=%d\n”,a,b); return 0; } 【代码2】 include<stdio.h> define SPACE " //空格字符 Int main() { char str[128] =" Nothing is impossible! "; int i,num =0,wordMark=0; for(i=0;str[i];i++) If(str[i]==SPACE) WordMark=0; else If(wordMark=0){ wordMark=1; num++; } Printf(“%d/n”,num) return 0; } 【代码3】 include<stdio.h> define SPACE " //空格字符 int countStrs(char *); int main() { char str[128] = " Nothing is impossible! "; Printf("%d/n",(1)(str)) return 0; } int countStrs(char *p) { int num=0, wordMark= 0; for(;(2); p++) { If((3)==SPACE) wordMark= 0; else if( !wordMark ) { wordMark = 1; ++num } } return (4) ; }

    【问题1】(4分) 写出代码1运行后的输出结果。 【问题2】(3分) 写出代码2运行后的输出结果。 【问题3】(8分) 代码3的功能与代码2完全相同,请补充3中的空缺,将解答写入答题纸的对应栏内。


    正确答案:1、a1=3  b1=7    a2=3  b2=7
    2、3
    3、
    1) countStrs
    2) p[i]
    3) p[i]
    4) num

  • 第14题:

    阅读以下说明和 C 函数,填补函数代码中的空缺,将解答填入答题纸的对应栏内。 【说明 1】 函数 f(double eps) 的功能是:利用公式计算并返回 π 的近似值。【说明 2】 函数fun(char *str)的功能是:自左至右顺序取出非空字符串 str中的数字字符,形成一个十进制整数(最多 8 位)。例如,若 str中的字符串为 "iyt?67kp f3g8d5.j4ia2e3p12", 则函数返回值为 67385423。


    正确答案:(1)n+2
    (2)-s 或-1*s
    (3) *p!= ' \ 0'或等价形式
    (4) num*10 或等价形式
    (5) p++或等价形式

  • 第15题:

    阅读下列说明、c++代码和运行结果,填补代码中的空缺(1)~(6),将解答填入

    答题纸的对应栏内。

    【说明】

    很多依托扑克牌进行的游戏都要先洗牌。下面的c++程序运行时先生成一副扑克牌,

    洗牌后再按顺序打印每张牌的点数和花色。

    【c++代码】

    inciude <iostream>

    4Finclude <stdlib. h>

    include <ctime>

    inciude <aigorithm>

    include <string>

    Using namespace std

    Const string Rank[13]={”A”,”2”,”3”,”4“,“5”,”6,”’“7”8“,9”,”10,”J”,

    ”Q”,”K”}j//扑克牌点数


    正确答案:
    分析本题考查c-++语言程序设计能力,涉及类、对象、函数的定义和相关操作。要求考生根据给出的案例和代码说明,认真阅读,理清程序思路,然后完成题目。本题目中涉及到扑克牌、牌桌等类以及洗牌和按点数排序等操作。根据说明进行设计。定义了两个数组,Rank表示扑克牌点数,Suits表示扑克牌花色,定义时进行初始化,而且值不再变化,故用const修饰。Card类有两个属性,rank和suit,在使用构造函数Card(intrankintsuit)新建一个Card的对象时,所传入的参数指定rank和suit这两个属性值。因为参数名称和属性名称相同,所以用this->前缀区分出当前对象。在类Card中包含方法getRank()和getSuit(),分别返回当前对象的rank和suit属性值。printCard()函数打印扑克牌点数和花色。DeckOfCards类包含Card类型元素的数组deck[52],表示牌桌上一副牌(52张)。构造函数中对牌桌进行初始化并进行洗牌。先用Card对象填充牌桌,即创建52个Card对象并加入deck数组。然后洗牌,即将数组中的Card对象根据花色和点数随机排列。printCards0函数将所有Card对象打印出来。主控逻辑代码在main函数中实现。在main()函数中,先初始化DeckOfcards类的对象指针d,即生成一个牌桌:Deckofcards*d=newdeckofcards()并发牌,即调用d的printCards()函数,实现打印一副扑克牌中每张牌的点数和花色。在printCards()函数体内部,为每个数组元素调用当前对象的pnntCard()一张牌。Main()函数中使用完数组对象之后,需要用delete操作进行释放对象,对d对象进行删除,即deleted。因此,空(1)和(2)需要表示当前对象的this->;空(3)需要牌桌上纸牌对象,即数组元素deck[i]:空(4)也需要纸牌对象调用printCard(),即数组元素deck[i].:空(5)处为创建DeckOfCards类的对象指针d的newDeckofcards0;空(6)需要用对象指针d调用打印所有纸牌的pnntCards()函数,即d->printCards0.试题五参考答案(1)this->(2)this->(3)deck[i]或*(deck+i)或等价表示(4)deck[i]或*(deck+i)或等价表示(5)newDeckOfCards()(6)d->printCards0或等价表示

  • 第16题:

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

    【说明】

    某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都

    有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌

    灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式

    的类图如图5-1所示。

    【c++代码】

    }


    正确答案:
    本题考查命令(Command)模式的基本概念和应用。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。在软件系统中,行为请求者与行为实现者之间通常呈现一种紧耦合的关系。但在某些场合,比如要对行为进行记录撤销重做事务等处理,这种无法抵御变化的紧耦合是不合适的。这种情况下,使用Command模式将行为请求者与行为实现者进行解耦。题目中给出了Command模式的类图,其中:Command类为所有命令声明了一个接口。调用命令对象的execute()方法,就可以让接收者进行相关的动作。ConcreteCommand类定义了动作和接收者之间的绑定关系。调用者只要调用execute()就可以发出请求,然后由ConcreteCommand调用接收者的一个或多个动作。Invoker持有一个命令对象,并在某个时间点调用命令对象的execute()方法,将请求付诸实行。Receiver知道如何进行必要的工作,实现这个请求。任何类都可以当接收者。了解了Command模式的内涵之后,下面来看程序。由于Command类的主要作用是为所有的ConcreteCommand定义统一的接口,在c++中通常采用抽象类来实现。C++的抽象类是至少具有一个纯虚拟函数的类。本题中的接口就是execute()方法,所以(1)处要求填写的是纯虚拟函数cxecute的定义方式,即vifrualvoidexecute()=0。类LightOnCammand、LightOfiCommand对应的就是模式中的ConcreteCommand;ConcreteCommand中execute()方法的代码在类图中已经给出,现在需要确定recelver是谁。类Light充当的是Receiver,其中定义了两种action:on和off.所以(2)、(3)对应代码分别为light->on()、light->off()。类RemoteControl对应的是模式中的Invoker,在该类中设置需要控制的命令对象。(4)处对应的代码为onCommands[slot],设置“开灯”命令对象;(5)处对应的代码为affcommands[slot].设置‘关灯”命令对象。类RemoteControl中的方法onButtanWasPushed和offlButtonWasPushed,分别完成对开灯、关灯命令对象的execute方法的调用,所以(6)、(7)处分别对应代码onCommands[slot]->execute()、offCommands[slot]->execute()。试题五参考答案(1)virtualvoidexecute()=0(2)light->on()(3)light->off()(4)onCommands[slot](5)offCommands[slot](6)onCommands[slot]->execute()(7)offCommands[slot]->execute()

  • 第17题:

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

    【说明】

    在下面的C++代码中,类SalesTicket能够完成打印票据正文的功能,类HeadDec- orator与FootDecorator分别能够完成打印票据的台头和脚注的功能。

    已知该程序运行后的输出结果如下所示,请填补该程序代码中的空缺。

    这是票据的台头!

    这是票据正文!

    这是票据的脚注!

    ---------------

    这是票据的台头!

    这是票据的脚注!

    【C++程序代码】

    #include

    using namespace std;

    class SalesTicket {

    public:

    (1) printTicket() { cout << " 是票据正文!" << endl;}

    class Decorator : public SalesTicket{

    SalesTicket *ticket;

    public:

    Decorator(SalesTicket *t){ ticket = t; }

    void printTicket(){

    if(ticket != NULL)

    ticket->printTicket();

    }

    };

    class HeadDecorator : public Decorator{

    public:

    HeadDecorator(SalesTicket *t): (2) { }

    void printTicket() {

    sour << "这是票据的台头!" << endl;

    Decorator::printTicket();

    }

    };

    class FootDecorator :public Decorator{

    public:

    FootDecorator(SalesTicket *t): (3)

    void printTicket() {

    Decorator::printTicket();

    cout << "这是票据的脚注!" << endl;

    }

    };

    void main(void) {

    SalesTicket t;

    FootDecorator f(&t);

    HeadDecorator h( (4) );

    h.printTicket();

    cout << "-------------------------"<< endl;

    FootDecorator a(NULL);

    HeadDecorator b( (5) );

    b.printTicket();

    }


    正确答案:(1)virtual void (2)Decorator(t) (3)Decorator(t) (4)&f (5)&a
    (1)virtual void (2)Decorator(t) (3)Decorator(t) (4)&f (5)&a 解析:本题实际上使用了设计模式中的Decorator模式。
      从代码可以分析得出,类SalesTicket完成了票据正文的输出,FootDceorator和 HeadDecorator类都继承了Decorator,Decorator继承SalesTicket,FootDecorator和HeadDe- corator类在构造函数的时候都需要对其父类进行初始化,因此,空(2)和(3)应为 Decorator(t);这些类中都具有printTicket方法,根据SalesTicket类中方法的定义可以得出,此方法的返回值为void类型,分析主程序中h.printTicket()可以输出“这是票据的台头!这是票据正文!这是票据的脚注!”的结果,并且考虑到h.printTieket()的执行路径为先执行cout<<"这是票据的台头!"<

  • 第18题:

    阅读以下C代码,回答问题1和问题2,将解答填入答题纸的对应栏内。【C代码1】


    【问题2】写出【代码2】的运行时的输出结果。


    答案:
    解析:
    (1)输入-1331的结果是:Palindromic number.a=-1331 b=1331 输入795的结果是:a=795 b=597(2) Passed,point=4 Passed,point=1 Passed,point=1Passed,point=1 Failed

  • 第19题:

    第一题 阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。
    【说明】
    对于大于1的正整数n,(x+1)n可展开为

    问题:1.1 【流程图】

    注:循环开始框内应给出循环控制变量的初值和终值,默认递增值为1。
    格式为:循环控制变量=初值,终值,递增值。


    答案:
    解析:
    (1)2,n,1
    (2)A[k]
    (3)k-1,1,-1
    (4)A[i]+A[i-1]
    (5)A[i]
    【解析】

    (1)(3)空为填写循环初值终值和递增值,题目中给出的格式为循环控制变量=初值,终值,递增值。按照题意,实质为求杨辉三角。如下图:

  • 第20题:

    阅读以下C++代码,回答问题(1)~(5),将解答填入答题纸的对应栏内。【说明】以下C++代码实现一个简单乐器系统,音乐类(Music)可以使用各类乐器(Instrument)进行演奏和调音等操作。对部分乐器进行建模,其类图如题6-1所示,包括:乐器(Instrument)、打击乐器(Percussion)、弦乐器(Stringed)、管乐器(Wind)、木管乐器(Woodwind)、铜管乐器(Brass)。




    答案:
    解析:
    (1)Virtul void play(Note n)=0(2)Public Instrument (3)Public Wind(4)Vector(5)Music*
    【解析】

    1空定义虚方法23空用extends继承对应的类4用容器向量创建Instrument的个各类5创建Music对象

  • 第21题:

    阅读以下说明和流程图,填写流程图中的空缺,将解答填入答题纸的对应栏内。【说明】设[a1b1],[a2b2],...[anbn]是数轴上从左到右排列的n个互不重叠的区间(a1


    答案:
    解析:
    1.A2.ai3.bi4.A 、B5.B
    【解析】

    若A≤ai则输出A,反之输出ai。若A≤bi不满足则输出bi,依次类推。

  • 第22题:

    阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。
    【说明】
    某系统在线讨论区采用ASP+Access开发,其主页如图4-1所示

    【问题1】(8分)
    以下是该网站主页部分的html代码,请根据图4-1将(1)~(8)的空缺代码补齐。

    l......
    < (2) name="guestbook" (3) ="post" (4) ="guestbook_add.asp"> l
     
      
      < (6) name="body" cols="60" rows="5">

    ...... (1)~(8)的备选答案: A. submit B.form C.text D.textarea E. include F.action G method H.value


    答案:
    解析:
    1.include
    2. form
    3.method
    4.action
    5.text
    6. input
    7.submit
    8.value

  • 第23题:

    阅读下列说明和C++代码,回答问题,将解答填入答题纸的对应栏内。
    【说明】某航空公司的会员积分系统将其会员划分为:普卡 (Basic)、银卡(Silver)和金卡 (Gold) 三个等级。非会员 (NonMember) 可以申请成为普卡会员。会员的等级根据其一年内累积 的里程数进行调整。描述会员等级调整的状态图如图 5-1 所示。现采用状态 (State) 模式实现上述场景,得到如图 5-2 所示的类图。




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


    答案:
    解析:
    注意:原版的题目应该是Cbasic、CSilve。(1) virtual double travel(int miles,FrequentFlyer* context)=0(2)context->setState(context->Cbasic)(3)context->setState(context->CSilve)(4)context->setState(context->Cbasic)(5)context->setState(context->CSilve)

  • 第24题:

    阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。
    【说明】
    某企业网络拓扑如图1-1所示,A~E是网络设备的编号。










    答案:
    解析:
    【问题1】参考答案:1.B,2.A,3.C 4.D【问题2】5.ethernet 1 6、59.74.221.254【问题3】7) C.deny 8、A 9.F【问题4】10)192.168.4.1
    11)192.168.100.0 12)设置接口的类型是trunk
    【解析】
    【问题1】试题分析:这是一道简单的概念题,考察我们对企业园区网络的基本拓扑结构的了解。通常的企业为了确保内部网络的安全,会设置防火墙,防火墙有3个区域,外网,内网和DMZ区。DMZ通常用于存放各种服务器。因此首先可以选出B这个位置是防火墙,A用于连接Internet,是路由器。DMZ区内部有多台服务器,需要使用交换机连接。【问题3】试题分析:这是网络工程师考试第一次考华为的设备配置,而我们考前准备的都是ios的命令。那这道题是不是很难呢,其实这道题非常简单,只要我们有IOS的命令经验,这道题完全可以自己凭经验做出来,题目出题也是以选择题的形式,因此更加容易,对于没有用过华为设备的考生来说,也是非常简单的。
    【问题4】试题分析:这道题同样是基本的配置,掌握基本命令即可。