软题库 移动APP 扫码下载APP 随时随地移动学习 培训课程
当前位置:信管网 >> 在线考试中心 >> 信息系统项目管理师题库 >> 试题查看
试卷名称 2007年下半年程序员考试下午真题试题(案例分析)
考试中心《2007年下半年程序员考试下午真题试题(案例分析)》在线考试
试卷年份2007年下半年
试题题型【分析简答题】
试题内容

阅读下列说明、图和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;


相关试题

推荐文章
合作网站内容