首页 > 软考
题目内容 (请给出正确答案)
[主观题]

阅读以下说明和C++代码。 [说明] 已知类SubClass的getSum方法返回其父类成员与类SubClass成员j的

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

[说明]

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

[C++代码]

阅读以下说明和C++代码。 [说明] 已知类SubClass的getSum方法返回其父类成员与类Su

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“阅读以下说明和C++代码。 [说明] 已知类SubClass…”相关的问题
第1题
试题五(共 15分) 阅读以下说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 已

试题五(共 15分)

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

【说明】

已知类 LinkedList 表示列表类,该类具有四个方法:addElement()、lastElement()、

numberOfElement()以及removeLastElement()。四个方法的含义分别为:

void addElement(Object): 在列表尾部添加一个对象;

Object lastElement(): 返回列表尾部对象;

int numberOfElement(): 返回列表中对象个数;

void removeLastElement(): 删除列表尾部的对象。

现需要借助LinkedList来实现一个Stack栈类,C++代码1和C++代码2分别采用继承和组合的方式实现。

【C++代码 1】

class Stack :public LinkedList{

public:

void push(Object o){ addElement(o); }; //压栈

Object peek(){ return (1) ; }; //获取栈顶元素

bool isEmpty(){ //判断栈是否为空

return numberOfElement() == 0;

};

Object pop(){ //弹栈

Object o = lastElement();

(2) ;

return o;

};

};

【C++代码 2】

class Stack {

private:

(3) ;

public:

void push(Object o){ //压栈

list.addElement(o);

};

Object peek(){ //获取栈顶元素

return list. (4) ;

};

bool isEmpty(){ //判断栈是否为空

return list.numberOfElement() == 0;

};

Object pop(){//弹栈

Object o = list.lastElement();

list.removeLastElement();

return o;

};

};

【问题】

若类LinkedList新增加了一个公有的方法removeElement(int index),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(int index)? (5) (A. 继承 B. 组合)

点击查看答案
第2题
阅读以下应用说明、图和C++代码,根据要求回答问题1至问题3。 [说明] 已知以下C++程序运行时的输出

阅读以下应用说明、图和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)空缺处的内容补充完整。

点击查看答案
第3题
阅读以下说明和C++代码,将解答写入对应栏内。 [说明] 类Stock的定义中有三处错误,分别在代码的

阅读以下说明和C++代码,将解答写入对应栏内。

[说明]

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

[C++程序]

01 include<iostream.h>

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<<endl;}

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)

点击查看答案
第4题
试题六(共 15 分) 阅读以下说明和 C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 [说明]

试题六(共 15 分)

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

[说明]

C++标准模板库中提供了 vector 模板类,可作为动态数组使用,并可容纳任意数据类型,其所属的命名空间为 std。vector模板类的部分方法说明如下表所示:

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

[C++代码]

include <iostream>

include <vector>

using namespace (1) ;

typedef vector< (2) > INTVECTOR;

const int ARRAY_SIZE = 6;

void ShowVector(INTVECTOR &theVector);

int main(){

INTVECTOR theVector;

// 初始化 theVector,将 theVector的元素依次设置为 0 至 5

for (int cEachItem = 0; cEachItem < ARRAY_SIZE; cEachItem++)

theVector.push_back((3) );

ShowVector(theVector); // 依次输出 theVector中的元素

theVector.erase(theVector.begin() + 3);

ShowVector(theVector);

}

void ShowVector(INTVECTOR &theVector) {

if (theVector.empty()) {

cout << "theVector is empty." << endl; return;

}

INTVECTOR::iterator (4) ;

for (theIterator = theVector.begin(); theIterator != theVector.end(); theIterator++){

cout << *theIterator;

if (theIterator != theVector.end()-1) cout << ", ";

}

cout << endl;

}

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

0, 1, 2, 3, 4, 5

(5)

点击查看答案
第5题
阅读以下说明,以及用C++在开发过程中所编写的程序代码,将应填入(n)处的字句写在对应栏内。【说明】

阅读以下说明,以及用C++在开发过程中所编写的程序代码,将应填入(n)处的字句写在对应栏内。

【说明】

在下面函数横线处填上适当的字句,使其输出结果为:

构造函数.

构造函数.

1,2

5,6

析构函数

析构函数.

【C++代码】

include "iostream.h"

class AA

{ public;

AA(int i,int j)

{A=i; B=j;

cout<<"构造函数.\n";

}

~AA(){(1);}

void print();

private:

int A, B;

};

void AA∷print()

{cout<<A<<","<<B<<endl;}

void main()

{

AA *a1, *a2;

(2)=new AA(1, 2);

a2=new AA(5, 6);

(3);

a2->print();

(4) a1;

(5) a2;

}

点击查看答案
第6题
试题五(共 15分) 阅读以下说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】

试题五(共 15分)

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

【说明】

已知类 LinkedList 表示列表类,该类具有四个方法:addElement()、lastElement()、umberOfElement()以及removeLastElement()。四个方法的含义分别为:

void addElement(Object): 在列表尾部添加一个对象;

Object lastElement(): 返回列表尾部对象;

int numberOfElement(): 返回列表中对象个数;

void removeLastElement(): 删除列表尾部的对象。

现需要借助LinkedList来实现一个Stack栈类,C++代码1和C++代码2分别采用继承和组合的方式实现。

【C++代码 1】

class Stack :public LinkedList{

public:

void push(Object o){ addElement(o); }; //压栈

Object peek(){ return (1) ; }; //获取栈顶元素

bool isEmpty(){ //判断栈是否为空

return numberOfElement() == 0;

};

Object pop(){ //弹栈

Object o = lastElement();

(2) ;

return o;

};

};

【C++代码 2】

class Stack {

private:

(3) ;

public:

void push(Object o){ //压栈

list.addElement(o);

};

Object peek(){ //获取栈顶元素

return list. (4) ;

};

bool isEmpty(){ //判断栈是否为空

return list.numberOfElement() == 0;

};

Object pop(){//弹栈

Object o = list.lastElement();

list.removeLastElement();

return o;

};

};

【问题】

若类LinkedList新增加了一个公有的方法removeElement(int index),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(int index)? (5) (A. 继承 B. 组合)

点击查看答案
第7题
阅读下列说明、c++代码和运行结果,填补代码中的空缺(1)~(6),将解答填入答题纸的对应栏内。【说明】很

阅读下列说明、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++代码和运行结果,填补代码中的空缺(1)~(6),将解答填入答题纸的对应栏内。【说

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

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

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

点击查看答案
第8题
阅读以下说明C++代码,将应填入(n)处的字句写在对应栏内。[说明] 本程序实现了雇员信息管理功能,其

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

[说明]

本程序实现了雇员信息管理功能,其中封装了雇员信息及其设置、修改、删除操作。已知当输入为“Smith 31 2960.0”时,程序的输出是:

姓名:Smith 年龄:31 工资:2960

姓名:Smith 年龄:31 工资:3500

姓名:Mary 年龄:23 工资:2500

[C++程序]

include <iostream.h>

include <string.h>

class employee{

char *name; //雇员姓名

short age; //年龄

float salary;//工资

public:

employee();

void set_name(char *);

void set_age(short a) {age=a;}

void set_salary(float s) {salary=s;}

(1);

~ employee(){delete[] name;}

};

employee::employee() { name="";

age=0;

salary=0.0;

void employee::set_name(char *n)

{ name=new char[strlen(n)+1];

(2) (name,n);

}

void employee::print()

{ cout<<"姓名":"<<name<<" 年龄:"<<agc<<" 工资:" <<salary<<endl;

}

void main()

{ char *na;

short ag=0;

float sa=0;

(3);

na=new char[10];

cin>>na>>ag>>sa;

emp.set_name(na);

emp.set_age(ag);

emp.set_salary(sa);

emp.print();

(4) (3500.0);

emp.print();

(5);

emp.set_name("Mary");

emp.set_age(23);

emp.set_salary(2500.0);

emp.print();

}

点击查看答案
第9题
请认真阅读以下关于某传输系统的技术说明、状态转换图及C++代码,根据要求回答问题1和问题2。【说明】

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

【说明】

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

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

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

【C++代码1】

const int CLOSED = 1; const int PENING = 2;

const int PEN = 3; const int CLOSING = 4;

const int STAYOPEN = 5; //定义状态变量,用不同整数表示不同状态

class Door {

private:

private:

int state; //传输门当前状态

void setState(int state) { this->state = stale; } //设置当前状态

public:

Door () :state (CLOSED) { };

void getState() { //根据当前状态输出相应的字符串

switch(state) {

case OPENING: cout <<"OPENING" << endl; break;

case CLOSED: cout << "CLOSED" << endl; break;

case OPEN: cout << "OPEN" << endl; break;

case CLOSING: cout << "CLOSING" << endl; break;

case STAYOPEN: cout << "STAYOPEN" << endl; break;

}

}

void click() { //发生click事件时进行状态转换

if ((1) ) setState(OPENING);

else if ((2) ) setState(CLOSING);

else if ((3) ) setState(STAYOPEN);

}

void timeout() { //发生timeout事件时进行状态转换

if (state == OPEN) setState(CLOSING);

}

void complete() { //发生complete事件时进行状态转换

if (state == OPENING) setState(OPEN);

else if (state == CLOSING) setState(CLOSED);

}

};

int main(){

Door aDoor;

aDoor.getState(); aDoor.click(); aDoor.getState(); aDoor.complete();

aDoor.getState(); aDoor.click(); aDoor.getState(); aDoor.click();

aDoor.getState(); return 0;

}

【C++代码2】

class Door {

public:

DoorState *CLOSED, *OPENING, *OPEN, *CLOSING, *STAYOPEN, *state;

Door();

virtual ~Door() { ... //释放申请的内存,此处代码省略};

void s

点击查看答案
第10题
阅读以下说明和C++代码,将解答写入对应栏内。【说明】 请编写一个函数int SeqSearch(int list[],int

阅读以下说明和C++代码,将解答写入对应栏内。

【说明】

请编写一个函数int SeqSearch(int list[],int start,int n,int key),该函数从start开始,在大小为n的数组list中查找key值,返回最先找到的key值的位置,如果没有找到则返回-1。请修改程序中画线部分的错误并将不同情况下的输出结果补充完整。

【程序】

文件search.cpp的内容如下:

include <iostream. h >

int SeqSearch(int list[ ] ,int start,int n,int key)

{

for(int i=start;i<=n;i++) //(1)

{

if(list[i] = key)//(2)

{

return i;

}

}

return -1;

}

void main()

{

int A[10]

int key,count=0,pos;

cout <<" Enter a list of 10 integers:";

for(pos=0;pos<10;pos++)

{

cin >>A; //(3)

}

cout <<" Enter a key; ";

cin >> key;

pos=0;

while((pos = SeqSearch (A, pos, 10, key)) !=-1 )

{

count ++;

pos ++;

}

cout<<key<<"occurs" <<count<< (count!=1?" times":" time") <<" in the list,"

<< endl;

}

第一种情况:输入2 3 12 6 8 45 8 33 7输入key:8

输出:(4)

第二种情况:输入2 3 126 8 45 8 33 7输入k6y:9

输出:(5)

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改