软件工程师(C/C++)笔试试题
姓名: 日期:
1. 请解释以下 4 个对象的差异:
(a) int ival = 1024;
(c) int *pi2 = new
int( 1024 );
(b) int *pi = &ival;
(d) int *pi3 = new
int( 1024);
2.
type/subtype 继承体系,通常反应出是一种(is-a)的关系:具有范围检验能力
的 arrayRC 是 一 种 Array, Book 是 一 种 LibraryRentalNaterial,
AudioBook 是一种 Book…,依此类推,下面哪一组反应出是一种的关系?
(a)
member function isA_kindOf function
(b)
member function isA_kindOf class
(c)
constructor isA_kindOf member function
(d)
airplane isA_kindOf vehicle
(e)
motor isA_kindOf truck
(f)
circle isA_kindOf geometry
(g)
square isA_kindOf rectangle
(h)
automobile isA_kindOf airplane
(i)
borrower isA_kindOf library
3. 假设有以下定义:
int ival = 1024, ival2 = 2048;
int *pi1 = &ival, *pi2 = &ival2, **pi3 = 0;
请解释以下的赋值操作会发生什么事。如果其中有错误,请指出,
(a) ival = *pi3;
(e) pi1 = *pi3;
(b) *pi2 = *pi3;
(f) ival = *pi1;
(c) ival = pi2;
(g) pi1 = ival;
(d) pi2 = *pi1;
(h) pi3 = &pi2;
4. 下面哪一句话不真实?为什么?
(a)
一个 class 必须供应至少一个 constructor.
(b)
所谓 default constructor 是指其参数列表中没有参数.
(c)
如 果 class
“
”
没 有 具 意 义 的 默 认 值 , 这 个 class 就 不 应 该 提 供 一 个
default constructor.
(d)
如果 class 不明白供应一个 default constructor,编译器会自动产
生一个,用以为每个 data member 设定默认值.
5. 已知下面的 class 层次结构,其中含有虚拟函数:
class Base {