阅读以下说明和C++代码。[说明]类Stock的定义中有三处错误,分别在代码的第04、06、10行。请补齐下述代码中的空缺(1),修改错误并给出修改后该行的完整代码,最后完善程序运行后的输出结果。[C++代码]01 include <iostream>02 using namespace std;03 class Stock{04 protected:05 Stock(){shares=0;share_val=0.0;Output();}06 Stock(int n=0,double pr=3.5): (

题目

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

[说明]

类Stock的定义中有三处错误,分别在代码的第04、06、10行。请补齐下述代码中的空缺(1),修改错误并给出修改后该行的完整代码,最后完善程序运行后的输出结果。

[C++代码]

01 include <iostream>

02 using namespace std;

03 class Stock{

04 protected:

05 Stock(){shares=0;share_val=0.0;Output();}

06 Stock(int n=0,double pr=3.5): (1) {//初始化shares值为n

07 share_val=pr;

08 Output();

09 };

10 void Stock(){};

11 void Output(){cout<<shares <<':'<<share_val<<end1;}

12 public:

13 //成员函数

14 private:

15 //成员变量

16 int shares;

17 double share_val;

18 };

19

20 void main(){ //构造三个Stock对象a,b,c

21 Stock a(1);

22 Stock b;

23 Stock c=Stock();

24 //其它代码省略,且代码五输出

25 }

程序运行后的输出结果为:

1:3.5

(2)

(3)


相似考题
更多“阅读以下说明和C++代码。[说明] 类Stock的定义中有三处错误,分别在代码的第04、06、10行。请补齐下述 ”相关问题
  • 第1题:

    阅读以下说明和Java代码,请回答问题1和问题2。

    【说明】

    己知类Stock和类cxyjava都定义在cxyjava.java文件中,类Stock的定义中第14行前共有四行出现了错误,将下面代码修改正确并完善后的输出结果为:

    0:0

    1:23

    【Java代码】

    01 public class Stock{

    02 static {

    03 shares = 0;

    04 share val = 0.0;

    O5 }

    06 public Stock(){getData();}

    07 public Stock(int n, iht pr=0){

    08 shares = n;

    09 share val = pr;

    10 getData();

    11 }

    12 public void getData() {

    13 System.out.println(shares + ":"+share_val);

    14 }

    15 private int shares;

    16 private int share_val;

    17 };

    18

    19 public class cxyjava{

    20 public static void main(String args[]) {

    21 Stock a = (1) ;

    22 Stock b = new Stock(1,23);

    23 //其他无输出代码省略

    24 }

    25 }

    请指出错误所在行号并给出该行修改后的完整结果。


    正确答案:错误1:第1行修改为:class Stock{ 错误2:第2行修改为:{ 错误3:第4行修改为:share val:=0; 或share_val=(int)0.0; 错误4:第7行修改为:public Stock(int nint pr){
    错误1:第1行,修改为:class Stock{ 错误2:第2行,修改为:{ 错误3:第4行,修改为:share val:=0; 或share_val=(int)0.0; 错误4:第7行,修改为:public Stock(int n,int pr){

  • 第2题:

    阅读以下说明和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的值的和。

  • 第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++代码,请回答问题1至问题3。

    【说明】

    已知下列程序运行时的输出应为:

    1:1

    1:1

    1:1

    【C++程序】

    01 include <iostream>

    02 using namespace std;

    03 class Stock{

    04 protect:

    05 (1) {};

    06 Stock(iht 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 }

    请补齐下述代码中的空缺1和2。


    正确答案:(1)Stock():shares(1)share_val(1) 或Stock():share_val(1)shares(1) (2)cout
    (1)Stock():shares(1),share_val(1) 或Stock():share_val(1),shares(1) (2)cout

  • 第5题:

    阅读以下说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
    [说明]
    在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。其类图如下图所示,相应的C++代码附后。

    类图

    [C++代码] #include<iostream> #include<string> #include<vector> using namespacestd; class Stock { private: string name; int quantity; public: Stock(stringname,int quantity) {this->name=name;this->quantity =quantity;} void buy() {cout<<"[买进]股票名称:"<<name<<",数量:"<<quantity<< endl;} void sell() {cout<<"[卖出]股票名称:"<<name<<",数量:"<<quantity <<endl;} }; clasS order{ public: virtual voidexecute()=0; }; classBuyStock:______ { private: Stock* stock; public: BuyStock(Stock*stock){______ =stock; } void execute(){ stock一>buy(); } }; //类SellStock的实现与BuyStock类似,此处略 class Broker{ private: vector<Order*> orderList; public: voidtakeOrder(______ order)( orderLiSt.push back(order);} void placeorders() { for(int i=0;i<orderList.Size(); i++){______ ->execute();} 0rderLiSt.clear(); } }; classStockCommand{ public: VOid main(){ Stock* aStock=newStock("股票A",10); Stock*bStock=newStock("股票B",20); Order*buyStockOrder=new BuyStock(aStock); Order*sellStockOrder=new SellStock(bStock); Broker* broker=newBroker(); broker->takeOrder(buyStockorder); broker->takeOrder(sellStockOrder); broker-> ______ (); } }; int main(){ StockCommand*stockCommand=new StockCommand(); StockCommand->main(); deleteStoCkCommand; }


    答案:
    解析:
    publicOrder
    this->stock 或(*this).stock
    Order*
    orderList[i] 或 *(orderList+i)
    placeOrders


    【解析】

    本题考查C++语言程序设计能力,涉及类、对象、函数的定义和相关操作。要求考生根据给出的案例和代码说明,认真阅读理清程序思路,然后完成题目。
    先考查题目说明,在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。根据说明进行设计,题目说明中给出了类图。涉及到股票(Stock)、股票代理(Broker)、股票操作指示(StockCommand)、买卖股票(Order接口、BuyStock与SellStock类)等类以及相关操作。
    Stock类定义了两个函数buy()和sell(),分别实现买和卖的操作。在构造函数中接收参数name和quantity,分别表示买卖股票的名称和数量,对当前所创建对象中的name和quantity赋值,用this表示区别当前对象,所以构造函数为:Stock(String name,int quantity){
    thiS->name=name;
    thiS->quantity=quantity;
    }
    Order虚类声明纯虚函数execute():virtual void execute()=0;表示执行股票交易(即买和卖)的函数原型。
    BuyStock继承Order,构造函数接收参数stock,实现函数execute(),进行股票买入,stock->buy()。SellStock和BuyStock类似,继承Order,构造函数接收参数stock,实现函数execute(),进行股票卖出,stock->sell()。
    Broker类实现接受客户的买卖指示tackOrder(),接收BuyStock或者SellStock的实例,BuyStock和SellStock均是Order的子类,所以BuyStock和SellStock的实例也是Order,因此tackOrder0所接收的参数用Order类型。接收到买卖指示之后,存入vector<Order*>类型的orderList中,即orderList.push_back(order)。placeOrders()函数是实现将所有买卖股票的指示进行实际买入和卖出操作,即采用for循环,对每个orderList中的Stock实例,调用在BuyStock和SellStock中实现的execute()加以执行。for(int i=0; i<orderList.Size();i++) {orderList[i]->execute();}
    StockCommand主要是根据操作指示进行股票交易,实现为一个函数main(),其中创建欲进行交易的股票对象aStock和bStock,创建买aStock卖bStock股票的对象buyStockOrder和sellStockOrder对象:Order*buyStockorder=new BuyStock(aStock);
    Order* sellStockOrder=new SellStock(bStock);
    再创建股票代理Broker类的对象broker,并接收买卖股票的指示:broker->takeOrder(buyStockOrder);
    broker->takeOrder(sellStockOrder);
    最后将所有买卖指示用placeOrders()下执行命令:broker->placeOrders();
    主控逻辑代码在main()函数中实现。在main()函数中,先初始化StockCommand类的对象指针stockCommand,代码为:StockCommand* stockCommand=new StockCommand();
    即生成一个股票指示,并调用其main()函数启动股票交易,即调用stockCommand的main()函数,实现股票的买卖指示的创建和执行。主控main()函数中,使用完数组对象之后,需要用delete操作释放对象,对stockCommand对象进行删除,即delete StockCommand;
    因此,空(1)需要表示继承Order类的"public Order";空(2)需要表示当前对象的stock属性,填入"this->stock"或"(*this).stock";空(3)需要填入BuyStock和SellStock均能表示的父类"Order*";空(4)需要orderList中每个对象指针调用execute(),即填入"orderList[i]"或"*(orderList+i)";空(5)处为调用"placeOrders()"来下达执行命令。