题目详情

阅读下列说明、图和C++代码,回答问题1至问题3,将解答写在答题纸的对应栏内。

【说明】

  已知四个类之间的关系如图5-1所示,分别对每个类的方法进行编号,例如Shape的perimeter()方法为1号,表示为“1:perimeter()”,Rectangle类的perimeter()为2号,表示为“2:perimeter()”,依此类推,其中,每个类的perimeter方法都为虚函数且方法签名相同。

初级程序员,章节练习,基础复习,案例分析

【C++代码】  Triangle *tr = new Triangle();

  Square *sq = new Square();

  Shape *sh = tr;

【问题1】 关于上述C++代码中sh 和 tr的以下叙述中,哪两个是正确的(写出编号)。

  ① sh 和 tr分别引用同一个对象;

  ② sh 和 tr分别引用同一类型的不同的对象;

  ③ sh 和 tr分别引用不同类型的不同对象;

  ④ sh 和 tr分别引用同一个对象的不同拷贝;

  ⑤ sh 和 tr所引用的内存空间是相同的。

【问题2】 写出下面消息对应的方法编号(如果该消息错误或者没有对应的方法调用,请填写“无”)。

  tr->height() (1)

  sh->perimeter() (2)

  sq->height() (3)

  sq->perimeter() (4)

  sh->height() (5)

  tr->perimeter() (6)

【问题3】 不考虑内存释放问题,下列赋值语句中哪两个是合法的(写出合法赋值语句的编号)。

  ① sq = sh; ② sh = tr; ③ tr = sq; ④ sq = tr; ⑤ sh = sq;

正确答案及解析

正确答案
解析

初级程序员,章节练习,初级程序员真题卷

你可能感兴趣的试题

单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.0
  • B.1
  • C.2
  • D.3
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.1、1
  • B.1、2
  • C.2、2
  • D.2、3
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.3
  • B.4
  • C.5
  • D.6
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.V(S3)和V(S5)V(S6)
  • B.P(S3)和V(S5)V(S6)
  • C.V(S3)和P(S5)P(S6)
  • D.P(S3)和P(S5)P(S6)
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.243ms
  • B.246ms
  • C.254ms
  • D.280ms
查看答案

相关题库更多 +