阅读以下应用说明、图和C++代码,根据要求回答问题1至问题3。[说明]已知以下C++程序运行时的输出结果如下。1:11:11:1[C++程序]01 include <iostream>02 using namespace std;03 class Stock{04 protect:05 (1) { };06 Stock(int n, int pr=1) {07 shares = n; share_val=pr;08 };09 void ~Stock() { };10 public:11 //成员函数12

题目

阅读以下应用说明、图和C++代码,根据要求回答问题1至问题3。

[说明]

已知以下C++程序运行时的输出结果如下。

1:1

1:1

1:1

[C++程序]

01 include <iostream>

02 using namespace std;

03 class Stock{

04 protect:

05 (1) { };

06 Stock(int n, int pr=1) {

07 shares = n; share_val=pr;

08 };

09 void ~Stock() { };

10 public:

11 //成员函数

12 void output() {

13 (2)<< shares << ":" << share_val << endl;

14 }

15 private:

16 //成员变量

17 int shares;

18 int share_val;

19 };

20

21 void main() {

22 Stock a(1); a.output

23 Stock b; b.output

24 Stock c = Stock (); c.output

25 }

请根据C++程序运行时的输出结果,将代码中(1)、(2)空缺处的内容补充完整。


相似考题
更多“阅读以下应用说明、图和C++代码,根据要求回答问题1至问题3。 [说明] 已知以下C++程序运行时的输出 ”相关问题
  • 第1题:

    请认真阅读以下关于某传输系统的技术说明、状态转换图及C++代码,根据要求回答问题1~问题2。

    [说明]

    传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening(正在打开)、 StayOpen(保持打开)和Closing(正在关闭)5种状态。触发状态的转换事件有click、complete和timeout3种。事件与其相应的状态转换如图7-15所示。

    下面的[C++代码1]与[C++代码2]分别用两种不同的设计思路对传输门进行状态模拟,请填补代码段中的空缺语句。

    [C++代码1]

    请将以上[C++代码1]与[C++代码2]程序段中的(1)~(7)空缺处的语句填写完整。


    正确答案:这是一道要求读者掌握状态转换图的程序设计与实现的综合题。本试题的解答思路如下。 根据(1)空缺处所在的程序段给出的注释信息“发生crick事件时进行状态转换”可知(1)空缺处所在的方法为click表示当发生crick事件时应该发生什么状态转换。找出传输门响应事件与其状态转换图(见图7-15)与crick事件相关的内容并特别注意箭头所指的方向。由于发生click事件前的状态CLOSED、CLOSING分别跳转到状态OPENING因此(1)空缺处所填写的内容是“state==CLOSED‖state==CLOSING”。 同理由图7-15所示中的状态转换关系可知发生click事件前的状态OPENING、STAYOPEN分别跳转到状态CLOSING即(2)空缺处所填写的内容是“state==OPENING‖state==STAYOPEN”;发生 click事件前的状态OPEN跳转到状态STAYOPEN即(3)空缺处所填写的内容是“state==OPEN”。 仔细阅读[C++代码2]程序段由语句private DoorState state=CLOSED;可知类Door的state成员变量用于记录类Door所处的状态而state变量的类型为Doorstate*。由语句“virtual void click() {}”、“virtual void complete() {}”和“virtual void timeout() {}”可知Doorstate中分别具有click、timeout和 complete方法用来响应对应的事件。根据(4)空缺处所在程序段“void Door∷click()”可得(4)空缺处所填写的内容是“state->click()”。 同理根据(5)空缺处所在程序段“void Door∷timeout()”可得(5)空缺处所填写的内容是“state->timeout()”;根据(6)空缺处所在程序段“void Door∷complete()”可得(6)空缺处所填写的内容是“state->complete()”。 根据(7)空缺处所在程序段给出的注释信息“定义一个基本的Closed状态”和语句“void DoorClosed∷click()”可知(7)空缺处所填写的内容与传输门当前状态为CLOSED且发生Click事件时状态的迁移有关。结合如图7-16所示中的状态转换关系可知在Click事件下CLOSED状态将迁移到 OPENING因此(7)空缺处应该将传输门的状态设置为OPENING。由于Doorstate变量存储了当前其存储的传输门的实例因此可直接调用其方法setState设置状态。同时考虑到传输门的状态采用类的实例变量表示故(7)空缺处所填写的内容为“door->setState(door->OPENING)”。
    这是一道要求读者掌握状态转换图的程序设计与实现的综合题。本试题的解答思路如下。 根据(1)空缺处所在的程序段给出的注释信息“发生crick事件时进行状态转换”可知,(1)空缺处所在的方法为click,表示当发生crick事件时应该发生什么状态转换。找出传输门响应事件与其状态转换图(见图7-15)与crick事件相关的内容,并特别注意箭头所指的方向。由于发生click事件前的状态CLOSED、CLOSING分别跳转到状态OPENING,因此(1)空缺处所填写的内容是“state==CLOSED‖state==CLOSING”。 同理,由图7-15所示中的状态转换关系可知,发生click事件前的状态OPENING、STAYOPEN分别跳转到状态CLOSING,即(2)空缺处所填写的内容是“state==OPENING‖state==STAYOPEN”;发生 click事件前的状态OPEN跳转到状态STAYOPEN,即(3)空缺处所填写的内容是“state==OPEN”。 仔细阅读[C++代码2]程序段,由语句private DoorState state=CLOSED;可知,类Door的state成员变量用于记录类Door所处的状态,而state变量的类型为Doorstate*。由语句“virtual void click() {}”、“virtual void complete() {}”和“virtual void timeout() {}”可知,Doorstate中分别具有click、timeout和 complete方法用来响应对应的事件。根据(4)空缺处所在程序段“void Door∷click()”可得,(4)空缺处所填写的内容是“state->click()”。 同理,根据(5)空缺处所在程序段“void Door∷timeout()”可得,(5)空缺处所填写的内容是“state->timeout()”;根据(6)空缺处所在程序段“void Door∷complete()”可得,(6)空缺处所填写的内容是“state->complete()”。 根据(7)空缺处所在程序段给出的注释信息“定义一个基本的Closed状态”和语句“void DoorClosed∷click()”可知,(7)空缺处所填写的内容与传输门当前状态为CLOSED且发生Click事件时状态的迁移有关。结合如图7-16所示中的状态转换关系可知,在Click事件下CLOSED状态将迁移到 OPENING,因此(7)空缺处应该将传输门的状态设置为OPENING。由于Doorstate变量存储了当前其存储的传输门的实例,因此可直接调用其方法setState设置状态。同时考虑到传输门的状态采用类的实例变量表示,故(7)空缺处所填写的内容为“door->setState(door->OPENING)”。

  • 第2题:

    阅读以下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

  • 第3题:

    阅读以下说明,回答问题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的部分代码,请仔细阅读该段代码,将空缺代码补齐。



    答案:
    解析:


  • 第4题:

    阅读以下说明和C++代码。

    [说明]

    已知类SubClass的getSum方法返回其父类成员与类SubClass成员j的和,类 SuperClass中的getSum为纯虚拟函数。程序中的第23行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,分析程序运行到第15行且尚未执行第15行的语句时成员变量j的值,最后给出程序运行后的输出结果。

    [C++代码]


    正确答案:(1)this->j (2)SuperClass∷ 错误更正结果:SuperClass*s=new SubClass(-3); 变量i的值:0 运行结果:-32
    (1)this->j (2)SuperClass∷ 错误更正结果:SuperClass*s=new SubClass(-3); 变量i的值:0 运行结果:-3,2 解析:本题考查的是面向对象程序设计语言C++。
    考查的主要知识点为C++程序设计语言中类成员变量的初始化、父类成员方法的调用、对象的构造等。第一空要求用用参数j的值更新数据成员,由于成员变量名也为i因此需要明确地指出需要更新的变量j为类中的成员变量,可以在前面加上一个明确的前缀this来表示,因此(1)处应填写this->j:(2)处要求调用父类的成员方法getValue(),为了和子类中的getValue()相区别,需要加上域前缀,因此(2)处应该填写SuperClass∷,表明该函数属于类SuperClass;在程序的第23行,由于SuperClass s表明已经定义了一个对象,因此,后面不应该使用new再次分配一个对象,但是后面的程序代码将s作为一个对象指针使用,因此需要将s定义为一个指针,因此更改后结果应为:SuperClass*s= new SubClass(-3);当程序运行到第15行但是还没有执行15行的语句时,成员变量i的值应为构造函数初始化列表中指定的j的初始化值,本题目为0:最后程序的输出为-3和 2,-3为子类中成员变量j的值,而2表示父类中i的值和子类中i的值的和。

  • 第5题:

    阅读以下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对象