LPC 程式基本能力测验
2008/12/25 16:20:59
下面就是这份考卷
中级 LPC 程式基本能力测验
本试题共有 25 大题,每大题 4 分,测验时间为 24 小时,准许翻阅任何资料,询问他人
,无论任意方式达成作答目的者均被允许,但切忌不知所云的胡乱复制不相关的程式作答
,或是随便剪下一段参考资料内容贴上来作答,违者该题不予计分。此试题并不牵涉于「
效率」、「进阶流程控制」以及「演算法」的考虑和设计阶段,仅测验对于 MudOS 所提供
之 LPC 语言的熟练度和相关知识,以及与 LPC 相关的一些 MudOS 本身之动作和行为,另
外,可能会测验一些程式写作上被要求的一些基本习惯。
此试题适合系统架构者(system architect - arch)之中级以上之巫师作答,满分 100 分,
及格分数为 60 分。
--------------------------------------------------------------------------------
1. (1) LPC 中的条件叙述结果为非零值时代表的意义为何? (1%)
(2) 如何取出一个字串中第 2 到第 7 个字之间的字串(含第 2 及第 7 个字元)? (1%)
(3) 观察以下程式码:
mapping m;
void create()
{
m["id"] = 10;
}
试问此程式码何处有误?应如何修改? (1%)
(4) 如果不希望物件中某个全域变数被 save_object 这个 efun 所储存,该如
何宣告变数? (1%)
--------------------------------------------------------------------------------
2. [题组] LPC 提供物件储存资料内容的功能,则:
(1) 试列出 LPC 支援之资料型别名称。 (1%)
(2) 哪些资料型别可被 MudOS 内建之 efun 所储存? (1%)
(3) 哪些资料型别无法被 MudOS 内建之 efun 所储存? (1%)
(4) 承上题,试说明这些资料型别无法被储存之可能原因。 (1%)
--------------------------------------------------------------------------------
3. [题组] LPC 之函示呼叫提供 call by reference 的方式,试问:
(1) 哪些资料型态在呼叫时预设为 call by reference? (1%)
(2) 如何使这些资料型别之变数在传递时模拟 call by value? (1%)
(3) 自动 call by reference 之变数在其所呼叫的目的函式中,有可能经由
assignment operator 消除其 reference 的关系,试举出一个例子。 (1%)
(4) 试撰写一个 swap_value 函式,以 call by reference 的方式交换传入之两
引数内容值,该函式传回型别为 void。 (1%)
--------------------------------------------------------------------------------
4. MudOS 为物件为基本元素所组成之系统,试问:
(1) load_object 与 new 这两个 efun 所传回之物件有何不同? (1%)
(2) 物件名称是否一定与程式档案名称有关?试说明原因。 (1%)
(3) 当一个物件 A 被 shadow 到物件 B,且两者均有一名称为 func 之函式时,
在何种情况下仍能使用 call_other 方式呼叫 B 中被遮蔽之函式? (1%)
(4) 一个物件中的程式码如果将自己摧毁,是否会立即停止程式执行?有什么该
注意的地方? (1%)
--------------------------------------------------------------------------------
5. [题组] LPC 中支援 function pointer 的资料型别,试问
(1) 每个 function pointer 指向一个函式后,会自动被指定一个 owner,请问
该如何强制变更其 owner? (1%)
(2) 试利用上题的方式,于物件 A 中撰写一段程式码,以 fetch_variable 这个
efun 取得物件 B 中的全域变数内容值。 (1%)
(3) function pointer 的操作可以使用 (: func(ob, $1) :) 的语法来指定执行
此 function pointer 时的引数传递方式,试说明 $1 的作用。 (1%)
(4) 承上题,如果 ob 为 local variable,会因为程式执行离开其有效范围后消
失,因此 MudOS compiler 会在编译时段
下一页
返回列表
返回首页
©2025 MUD游戏网_文字mud 电脑版
Powered by iwms